AM信号调制解调

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%AM信号调制解调

%% 符号说明

%m 调制信号M 调制信号频谱

%A 直流信号

%c 载波信号 C 载波信号频谱

%noise 信道噪声noisef 噪声信号频谱

%u 已调信号U 已调信号频谱

%sam 信道中的信号samf 信道中信号的频谱

%dem 经过理想带通滤波器后的信号DEM 经过理想带通滤波器后信号的频谱%dm 经过理想低通滤波器后的信号dmf 经过理想低通滤波器后信号的频谱%dmd 恢复信号dmdf 恢复信号频谱

%H 理想带通滤波器频谱

%LPF 理想低通滤波器频谱

%% 变量定义

clear;clc;

A = 2; %直流分量

f0 = 1; %信源信号频率(Hz)

E0 = 1; %信源信号振幅(V)

E = 1; %载波分量振幅(V)

fc = 10; %载波分量频率(Hz)

t0 = 1; %信号时长

snr = 15; %解调器输入信噪比dB

dt = 0.003; %系统时域采样间隔

fs = 1/dt; %系统采样频率

df = 0.001; %所需的频率分辨率

t = 0:dt:t0;

Lt = length(t); %仿真过程中,信号长度

snr_lin = 10^(snr/10);%解调器输入信噪比

%-------------画出调制信号波形及频谱

%产生模拟调制信号

m = E*cos(2*pi*f0*t)+A;

L = min(abs(m));%包络最低点

R = max(abs(m));%包络最高点

%画出调制信号波形和频谱

clf;

figure(1);

%% 调制信号波形及频谱

%画出调制信号波形

subplot(321);

plot(t,m(1:length(t)));

axis([0,t0,L-0.3,R+0.3]);%设置坐标范围

xlabel('t');title('调制信号');

set(gca,'YTick', [0:1:R+0.3]);

[M,m,df1,f] = T2F_new(m,dt,df,fs); %求出调制信号频谱

[Bw_eq] = signalband(M,df,t0); %求出信号等效带宽

subplot(322);

plot(f,fftshift(abs(M))); %画出调制信号频谱%M:傅里叶变换后的频谱序列

xlabel('f');title('调制信号频谱');

axis([-fc-5*f0,fc+5*f0,0,max(M)+0.3]);

set(gca,'XTick',-10:10:10);

set(gca,'XGrid','on');

%% 载波信号波形及频谱

%载波及其频谱

subplot(323);

c = cos(2*pi*fc*t); %载波

plot(t,c);

axis([0,t0,-E-0.2,E+0.2]);

xlabel('t');title('载波');

subplot(324); %载波频谱

[C,c,df1,f] = T2F_new(c,dt,df,fs);

plot(f,fftshift(abs(C))); %画出载波频谱

xlabel('f');title('载波频谱');

axis([-fc-5*f0,fc+5*f0,0,max(C)+0.3]);

set(gca,'XTick',-10:10:10);

set(gca,'XGrid','on');

%% 已调信号波形及频谱

%已调信号及其频谱

subplot(325); %画已调信号

u = m(1:Lt).*c(1:Lt);

plot(t,u);

axis([0,t0,-max(u)-0.5,max(u)+0.5]);

xlabel('t');title('已调信号');

set(gca,'YTick', [-max(u):1:max(u)]);

subplot(326);

[U,u,df1,f] = T2F_new(u,dt,df,fs);

plot(f,fftshift(abs(U))); %画出已调信号频谱

xlabel('f');title('已调信号频谱');

axis([-fc-5*f0,fc+5*f0,0,max(U)+0.3]);

set(gca,'XTick',-10:10:10);

set(gca,'XGrid','on');

%% 噪声信号波形及频谱

%将已调信号送入信道

%先根据所给信噪比产生高斯白噪声

signal_power = power_x(u(1:Lt)); %已调信号的平均功率

noise_power = (signal_power * fs)/(snr_lin*4*Bw_eq); %求出噪声方差(噪声均值为0)noise_std = sqrt(noise_power); %噪声标准差

noise = noise_std * randn(1,Lt); %产生噪声

%画出信道高斯白噪声波形及频谱,此时,噪声已实现,为确知信号,可求其频谱figure(2);

subplot(321);

plot(t,noise);

axis([0,t0,-max(noise),max(noise)]);

xlabel('t');title('噪声信号');

subplot(322);

[noisef,noise,df1,f] = T2F_new(noise,dt,df,fs); %噪声频谱

plot(f,fftshift(abs(noisef))); %画出噪声频谱

xlabel('f');title('噪声频谱');

%%

%信道中的信号

sam = u(1:Lt) + noise(1:Lt);%叠加了噪声的已调信号频谱

subplot(323);

plot(t,sam);

axis([0,t0,-max(sam),max(sam)]);

xlabel('t');title('信道中的信号');

subplot(324);

[samf,sam,df1,f] = T2F_new(sam,dt,df,fs); %求出叠加了噪声的已调信号频谱plot(f,fftshift(abs(samf))); %画出叠加了噪声的已调信号频谱xlabel('f');title('信道中信号的频谱');

axis([-fc-5*f0,fc+5*f0,0,max(samf)+0.3]);

set(gca,'XTick',-10:10:10);

set(gca,'XGrid','on');

相关文档
最新文档