基于MATLAB调制解调仿真设计.docx
《基于MATLAB调制解调仿真设计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB调制解调仿真设计.docx(14页珍藏版)》请在冰豆网上搜索。
基于MATLAB调制解调仿真设计
数字信号处理实验八
调制解调系统的实现
一、实验目的:
(1)深刻理解滤波器的设计指标及根据指标进行数字滤波器设计的过程
(2)了解滤波器在通信系统中的应用
二、实验步骤:
1.通过SYSTEMVIEW软件设计与仿真工具,设计一个FIR数字带通滤波器,预先给定截止频率和在截止频率上的幅度值,通过软件设计完后,确认滤波器的阶数和系统函数,画出该滤波器的频率响应曲线,进行技术指标的验证。
通过仿真验证,原理图如下:
输入方波与锯齿波,都为10HZ,载波100hz与300hz正弦波,仿真的结果如下:
还是可以比较好的恢复信号。
基带信号1
建立一个两载波幅度调制与解调的通信系统,将该滤波器作为两个载波分别解调的关键部件,验证其带通的频率特性的有效性。
系统框图如下:
基带信号2
规划整个系统,确定系统的采样频率、观测时间、细化并设计整个系统,仿真调整并不断改进达到正确调制、正确滤波、正确解调的目的。
(参考文件zhan3.svu)
设计的思路是:
基带信号乘上一个高频信号,称为调制,实现频谱搬移,与另一调制信号叠加,再分别通过以W为中心频率的带通FIR数字滤波器,再乘以原来的高频信号,实现再频谱搬移,最后通过IIR低通滤波器得到解调信号。
本实验是通过编程的方式完成的。
1、首先,产生信号:
n=1;
f1=100;
f2=300;
fs=1000;%采样频率
t=0:
1/fs:
n;
fre=10;
y1=square(2*fre*pi*t)/2+1.1;
y2=sawtooth(fre*2*pi*t)/2+1.1;
观察图形与频谱:
2、基带信号乘以一个高频载波:
yy1=y1.*z1;
yy2=y2.*z2;
观察频谱:
3、两调制信号相加:
yy3=yy1+yy2;
4、设计带通滤波器:
设计100-200,330-430hz的FIR数字滤波器,用汉明窗实现。
fp1=100;fp2=200;%FIR滤波器100-200hz
fs1=50;fs2=250;
As=15;
Ws1=(fp1+fs1)/fs;
Ws2=(fp2+fs2)/fs;
w=(fp1-fs1)/fs;
M=ceil((As-7.95)/(14.36*w));
hamming=Hamming(M+1);
b=fir1(M,[Ws1,Ws2],hamming);
%figure
(2);
%freqz(b,1,fs,fs);
t=0:
1/fs:
n;
yyy1=filter(b,2,yy3);
zz1=filter(b,2,z1);
fp1=330;fp2=430;%FIR滤波器330-430hz
fs1=200;fs2=490;
As=15;
Ws1=(fp1+fs1)/fs;
Ws2=(fp2+fs2)/fs;
w=(fp1-fs1)/fs;
M=ceil((As-7.95)/(14.36*w));
hamming=Hamming(M+1);
b=fir1(M,[Ws1,Ws2],hamming);
%figure(4);
%freqz(b,1,fs,fs);
t=0:
1/fs:
n;
yyy2=filter(b,2,yy3);
zz2=filter(b,2,z2);
5、滤波后的信号再乘载波信号:
k1=yyy1.*zz1;
k2=yyy2.*zz2;
6、设计低通滤波器为100hz的巴特沃斯低通滤波器。
N=8;%8阶巴特沃斯低通滤波器上限频率100hz
Wn=100/(fs/2);
[b,a]=butter(N,Wn,'low');
kk1=filter(b,a,k1);
%figure(5);
%[H,W]=freqz(b,a);%返回频率响应
%subplot(1,2,1);plot(W*fs/(2*pi),abs(H));xlabel('频率HZ');ylabel('幅值');gridon;
%subplot(1,2,2);plot(W*fs/(2*pi),20*log10(abs(H)));xlabel('频率HZ');ylabel('幅值dB');gridon;
7、调制信号经过低通滤波器后的到的信号就是解调信号。
8、观察调制信号的频谱:
结论与体会:
调制解调实际就是频谱的搬移,达到高频传播,本次实验的关键就是滤波器的设计,滤波器设计不好解调不了波形导致失真,通过写代码使我的编程能力加强了,学会了移植代码,matlab是个很不错的仿真软件。
附录:
n=1;
f1=100;
f2=300;
fs=1000;%采样频率
t=0:
1/fs:
n;
fre=10;
y1=square(2*fre*pi*t)/2+1.1;
dt=1/fs;%定义时间步长。
n1=length(t);%样点个数
%y1=cos(2*pi*fre*t);%余弦信号
f_end=1/dt;%频率轴的显示围
f=(0:
n1-1)*f_end/n1-f_end/2;%频率自变量
Xf=dt*fftshift(fft(y1));%频谱
figure
(1);
subplot(211);plot(t,y1);xlabel('t');title('时间波形');%时间波形
subplot(212);plot(f,abs(Xf));xlabel('f');title('方波幅度频谱');%频谱波形
y2=sawtooth(fre*2*pi*t)/2+1.1;
Xf1=dt*fftshift(fft(y2));%频谱
figure
(2);
subplot(211);plot(t,y2);xlabel('t');title('时间波形');%时间波形
subplot(212);plot(f,abs(Xf1));xlabel('f');title('三角波幅度频谱');%频谱波形
z1=10*sin(2*pi*f1*t);
z2=10*sin(2*pi*f2*t);
yy1=y1.*z1;
yy2=y2.*z2;
yy3=yy1+yy2;
Xf=dt*fftshift(fft(yy1));%频谱
figure(3);
subplot(211);plot(t,yy1);xlabel('t');title('时间波形');%时间波形
subplot(212);plot(f,abs(Xf));xlabel('f');title('调制信号频谱');%频谱波形
Xf=dt*fftshift(fft(yy2));%频谱
figure(7);
subplot(211);plot(t,yy2);xlabel('t');title('时间波形');%时间波形
subplot(212);plot(f,abs(Xf));xlabel('f');title('调制信号频谱');%频谱波形
fp1=100;fp2=200;%FIR滤波器100-200hz
fs1=50;fs2=250;
As=15;
Ws1=(fp1+fs1)/fs;
Ws2=(fp2+fs2)/fs;
w=(fp1-fs1)/fs;
M=ceil((As-7.95)/(14.36*w));
hamming=Hamming(M+1);
b=fir1(M,[Ws1,Ws2],hamming);
%figure
(2);
%freqz(b,1,fs,fs);
t=0:
1/fs:
n;
yyy1=filter(b,2,yy3);
zz1=filter(b,2,z1);
fp1=330;fp2=430;%FIR滤波器330-430hz
fs1=200;fs2=490;
As=15;
Ws1=(fp1+fs1)/fs;
Ws2=(fp2+fs2)/fs;
w=(fp1-fs1)/fs;
M=ceil((As-7.95)/(14.36*w));
hamming=Hamming(M+1);
b=fir1(M,[Ws1,Ws2],hamming);
%figure(4);
%freqz(b,1,fs,fs);
t=0:
1/fs:
n;
yyy2=filter(b,2,yy3);
zz2=filter(b,2,z2);
k1=yyy1.*zz1;
k2=yyy2.*zz2;
N=8;%8阶巴特沃斯低通滤波器上限频率100hz
Wn=100/(fs/2);
[b,a]=butter(N,Wn,'low');
kk1=filter(b,a,k1);
figure(10);
[H,W]=freqz(b,a);%返回频率响应
subplot(1,2,1);plot(W*fs/(2*pi),abs(H));xlabel('频率HZ');ylabel('幅值');gridon;
subplot(1,2,2);plot(W*fs/(2*pi),20*log10(abs(H)));xlabel('频率HZ');ylabel('幅值dB');gridon;
figure(4);
subplot(211);
plot(t,kk1);
gridon;
title('解调信号kk1');
kk2=filter(b,a,k2);
subplot(212);
plot(t,kk2);
gridon;
title('解调信号kk2');
Xf2=dt*fftshift(fft(kk1));%频谱
figure(5);
subplot(211);plot(t,kk1);xlabel('t');title('时间波形');%时间波形
subplot(212);plot(f,abs(Xf2));xlabel('f');title('解调方波幅度频谱');%频谱波形
Xf3=dt*fftshift(fft(kk2));%频谱
figure(6);
subplot(211);plot(t,kk2);xlabel('t');title('时间波形');%时间波形
subplot(212);plot(f,abs(Xf3));xlabel('f');title('解调三角波幅度频谱');%频谱波形