DSB matlab仿真

没啥好说的,照着基本框图搭的,直接上代码.
先选一个信号,再找个载波把信号的信息搬到高频上去.
在接受端接到信号后,理论上应该过bpf减小噪声因为懒没写 .然后理论上应该提取载波,但是太难了不好写其实是懒没写.得到载波后恢复信号,过lpf就可以了.当时刚学,还不知道什么IIR/FIR什么,就算了个sinc函数当lpf,效果极其差,这里最好根据原信号截止频率重新设计一个lpf.

fs=100;		%采样频率
Ts=1/fs;
N=128;		%采样点数
t=0:Ts:(N-1)*Ts;
m=exp(-t);	%调制信号

%绘制调制信号相关图像
figure
subplot(1,2,1)
plot(t,m);
title('信号时域图像');
ylabel('margin'),xlabel('time (10 ms)');
grid on
subplot(1,2,2)
plot([-N/2:1:(N/2-1)]*fs/N,real(fftshift(fft(m))))
title('信号频域图像');
ylabel('Amplitude'),xlabel('Freq (Hz)');

c=2*cos(2*pi*20*t);	%载波信号
s=m.*c;			%已调信号

%绘制已调信号图像
figure
subplot(1,2,1);
plot(t,s);
title('调制信号时域图像');
ylabel('margin'),xlabel('time (10 ms)');
grid on
subplot(1,2,2)
plot([-N/2:1:(N/2-1)]*fs/N,real(fftshift(fft(s))));
title('调制信号频域图像');
ylabel('Amplitude'),xlabel('Freq (Hz)');
grid on

r1=s.*c;		%相干解调
lpf = 20*sinc(20*pi*t);	%设计LPF
rm=conv(lpf,r1);	%通过LPF

%绘制
figure
subplot(1,2,1)
plot([-N/2:1:(N/2-1)]*fs/N,real(fftshift(fft(r1))));
title('相干解调后信号');
ylabel('Amplitude'),xlabel('Freq (Hz)');
subplot(1,2,2)
rm=[rm 0];
plot([-N:1:N-1]*fs/N,real(fftshift(fft(rm))));
title('恢复信号');
ylabel('Amplitude'),xlabel('Freq (Hz)');
%滤波器可视化
fvtool(lpf,'Analysis','impulse')




 
发布了161 篇原创文章 · 获赞 170 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/white_156/article/details/102980716
今日推荐