基于matlab的AMDSB调制与解调并用GUI实现.docx
《基于matlab的AMDSB调制与解调并用GUI实现.docx》由会员分享,可在线阅读,更多相关《基于matlab的AMDSB调制与解调并用GUI实现.docx(42页珍藏版)》请在冰豆网上搜索。
基于matlab的AMDSB调制与解调并用GUI实现
机电信息工程学院
“通信电子线路”精品实验项目
实验报告
系别:
电子信息工程系
专业:
通信工程
班级:
08级1班
实验题目:
基于Matlab的AM-DSB调制系统仿真
学生姓名:
祝健博
指导教师:
李厚杰,郭丽萍,孙炎辉
学期:
2010—2011年度第一学期
基于Matlab的AM-DSB调制系统仿真
一、实验类型(Experimentaltype)
设计性实验
二、实验目的(Experimentalpurposes)
1.掌握振幅调制(amplitudedemodulation,AM以及DSB)和解调(amplitudedemodulation)原理。
2.学会Matlab仿真软件在振幅调制和解调中的应用。
3.掌握参数设置方法和性能分析方法。
4.通过实验中波形的变换,学会分析实验现象。
三、实验内容(Experimentcontents)
1.设计AM-DSB信号实现的Matlab程序,输出调制信号、载波信号以及已调
2.号波形以及频谱图,并改变参数观察信号变化情况,进行实验分析。
3.设计AM-DSB信号解调实现的Matlab程序,输出并观察解调信号波形,分析实验现象。
四、实验要求(Experimentalrequirements)
利用Matlab软件进行振幅调制和解调程序设计,输出显示调制信号、载波信号以及已调信号波形,并输出显示三种信号频谱图。
对产生波形进行分析,并通过参数的改变,观察波形变化,分析实验现象。
五、振幅调制原理
5.1振幅调制产生原理
所谓调制,就是在传送信号的一方将所要传送的信号附加在高频振荡上,再由天线发射出去。
这里高频振荡波就是携带信号的运载工具,也叫载波。
振幅调制,就是由调制信号去控制高频载波的振幅,直至随调制信号做线性变化。
在线性调制系列中,最先应用的一种幅度调制是全调幅或常规调幅,简称为调幅(AM)。
为了提高传输的效率,还有载波受到抑制的双边带调幅波(DSB)和单边带调幅波(SSB)。
在频域中已调波频谱是基带调制信号频谱的线性位移;在时域中,已调波包络与调制信号波形呈线性关系。
设正弦载波为
式中,A为载波幅度;
为载波角频率;
为载波初始相位(通常假设
=0).
调制信号(基带信号)为
。
根据调制的定义,振幅调制信号(已调信号)一般可以表示为
设调制信号
的频谱为
,则已调信号
的频谱
:
5.2两种调幅电路方案分析
(1)、标准调幅波(AM)产生原理
调制信号是只来来自信源的调制信号(基带信号),这些信号可以是模拟的,亦可以是数字的。
为首调制的高频振荡信号可称为载波,它可以是正弦波,亦可以是非正弦波(如周期性脉冲序列)。
载波由高频信号源直接产生即可,然后经过高频功率放大器进行放大,作为调幅波的载波,调制信号由低频信号源直接产生,二者经过乘法器后即可产生双边带的调幅波。
设载波信号的表达式为
,调制信号的表达式为
,则调幅信号的表达式为
图5.1标准调幅波示意图
(2)双边带调幅(DSB)产生原理
在AM信号中,载波分量并不携带信息,信息完全由便在传送。
如果在AM调制模型中将直流分量去掉,即可得到一种高调制效率的调制方式——抑制载波的双边带调幅波
双边带调幅波的表达式为
5.3信号解调思路
从高频已调信号中恢复出调制信号的过程称为解调(demodulation),又称为检波(detection)。
对于振幅调制信号,解调(demodulation)就是从它的幅度变化上提取调制信号的过程。
解调(demodulation)是调制的逆过程。
可利用乘积型同步检波器实现振幅的解调,让已调信号与本地恢复载波信号相乘并通过低通滤波可获得解调信号。
六.AM和DSB信号基于matlab的调制与解调(demodulation)
6.1载波信号与调制信号分析
%======================载波信号===========================
t=-1:
0.00001:
1;
A0=10;%载波信号振幅
A1=5;%调制信号振幅
A2=3;%已调信号振幅
f=3000;%载波信号频率
w0=2*f*pi;m=0.15;%调制度
k=0.5;%DSB前面的系数
Uc=A0*cos(w0*t);%载波信号
figure
(1);
subplot(2,1,1);
plot(t,Uc);
title('载频信号波形');
axis([0,0.01,-15,15]);
subplot(2,1,2);
Y1=fft(Uc);%对载波信号进行傅里叶变换
plot(abs(Y1));title('载波信号频谱');
axis([5800,6200,0,1000000]);
图6.1载波信号
%======================调制信号==============================
t=-1:
0.00001:
1;
A0=10;%载波信号振幅
A1=5;%调制信号振幅
A2=3;%已调信号振幅
f=3000;%载波信号频率
w0=2*f*pi;
m=0.15;%调制度
k=0.5;%DSB前面的系数
mes=A1*cos(0.001*w0*t);%调制信号
subplot(2,1,1);
plot(t,mes);
xlabel('t'),title('调制信号');
subplot(2,1,2);
Y2=fft(mes);%对调制信号进行傅里叶变换
plot(abs(Y2));
title('调制信号频谱');
axis([198000,202000,0,1000000]);
如图6.2调制信号
%=======================AM已调信号=========================
t=-1:
0.00001:
1;
A0=10;%载波信号振幅
A1=5;%调制信号振幅
A2=3;%已调信号振幅
f=3000;%载波信号频率
w0=2*f*pi;
m=0.15;%调制度
k=0.5;%DSB前面的系数
mes=A1*cos(0.001*w0*t);%消调制信号
Uam=A2*(1+m*mes).*cos((w0).*t);%AM已调信号
subplot(2,1,1);
plot(t,Uam);
gridon;
title('AM调制信号波形');
subplot(2,1,2);
Y3=fft(Uam);%对AM已调信号进行傅里叶变换
plot(abs(Y3)),grid;
title('AM调制信号频谱');
axis([5950,6050,0,500000]);
如图6.3AM已调信号
%=======================DSB已调信号=========================
t=-1:
0.00001:
1;
A0=10;%载波信号振幅
A1=5;%调制信号振幅
A2=3;%已调信号振幅
f=3000;%载波信号频率
w0=2*f*pi;
m=0.15;%调制度
k=0.5;%DSB前面的系数
Uc=A0.*cos(w0*t);%载波信号
mes=A1*cos(0.001*w0*t);%调制信号
Udsb=k*mes.*Uc;%DSB已调信号
subplot(2,1,1);
plot(t,Udsb);
gridon;
title('DSB已调信号波形');
axis([0,1,-40,40]);
subplot(2,1,2);
Y4=fft(Udsb);%对DSB已调信号进行傅里叶变换
plot(abs(Y4)),grid;
title('DSB已调信号频谱');
axis([193960,194040,0,1300000]);
如图6.4DSB已调信号
6.2设计FIR和IIR数字低通滤波器
IIR滤波器和FIR滤波器的设计方法完全不同。
IIR滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计方法进行的。
其设计步骤是:
先设计过渡模拟滤波器得到系统函数H(s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。
FIR滤波器比鞥采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。
对于线性相位滤波器,经常采用FIR滤波器。
对于数字高通、带通滤波器的设计,通用方法为双线性变换法。
可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。
具体设计步骤如下:
(1)确定所需类型数字滤波器的技术指标。
(2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为Ω=2/Ttan(0.5ω)
(3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。
(4)设计模拟低通滤波器。
(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。
(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。
我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。
为了克服之一缺点,可以采用双线性变换法。
下面我们总结一下利用模拟滤波器设计IIR数字低通滤波器的步骤:
(1)确定数字低通滤波器的技术指标:
通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。
(2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。
(3)按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。
(4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。
如前所述,IIR滤波器和FIR滤波器的设计方法有很大的区别。
下面我们着重介绍用窗函数法设计FIR滤波器的步骤。
如下:
(1)根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。
先按照阻带衰减选择窗函数类型。
原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。
(2)构造希望逼近的频率响应函数。
(3)计算h(n).。
(4)加窗得到设计结果。
接下来,我们根据语音信号的特点给出有关滤波器的技术指标:
低通滤波器的性能指标:
通带边界频率fp=300Hz,阻带截止频率fc=320Hz,阻带最小衰减As=100db,通带最大衰减Ap=1dB
在Matlab中,可以利用函数fir1设计FIR滤波器,利用函数butter,cheby1和ellip设计IIR滤波器,利用Matlab中的函数freqz画出各步步器的频率响应。
hn=fir1(M,wc,window),可以指定窗函数向量window。
如果缺省window参数,则fir1默认为哈明窗。
其中可选的窗函数有RectangularBarlrttHammingHannBlackman窗,其相应的都有实现函数。
MATLAB信号处理工具箱函数buttpbuttorbutter是巴特沃斯滤波器设计函数,其有5种调用格式,本课程设计中用到的是[N,wc]=butter(N,wc,Rp,As,’s’),该格式用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc。
MATLAB信号处理工具箱函数cheblap,cheblord和cheeby1是切比雪夫I型滤波器设计函数。
我们用到的是cheeby1函数,其调用格式如下:
[B,A]=cheby1(N,Rp,wpo,’ftypr’)
[B,A]=cheby1(N,Rp,wpo,’ftypr’,’s’)
函数butter,cheby1和ellip设计IIR滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即可。
下面我们将给出FIR和IIR数字滤波器的主要程序。
%=========================IIR低通滤波器=======================
Ft=1000;
Fp=80;%通带边界频率
Fs=100;%阻带截止频率
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Ft*tan(wp/2);
fs=2*Fs*tan(wp/2);
[n11,wn11]=buttord(wp,ws,1,50,'s');%求低通滤波器的阶数和截止频率
[b11,a11]=butter(n11,wn11,'s');%求S域的频率响应的参数
[num11,den11]=bilinear(b11,a11,0.5);%双线性变换实现S域到Z域的变换
[h,w]=freqz(num11,den11);%根据参数求出频率响应
plot(w*800*0.5/pi,abs(h));
title('IIR低通滤波器');
legend('用巴特沃斯butter设计');
如图6.5IIR低通滤波器
%=========================FIR低通滤波器=======================
Ft=1000;%采样频率
fpts=[100120];%通带边界频率fp=100Hz,阻带截止频率fs=120Hz
mag=[10];
dev=[0.010.05];%通带波动1%,阻带波动5%
[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev,Ft);%kaiserord估计采用凯塞窗设计的FIR滤波器的参数
b21=fir1(n21,wn21,Kaiser(n21+1,beta));%由fir1设计滤波器
[h,w]=freqz(b21,1);%得到频率响应
plot(w/pi,abs(h));
gridon
title('FIR低通滤波器');
如图6.6FIR低通滤波器
6.3AM、DSB解调
%=========================AM信号解调=======================
t=-1:
0.00001:
1;
A0=10;%载波信号振幅
A1=5;%调制信号振幅
A2=3;%已调信号振幅
f=3000;%载波信号频率
w0=2*f*pi;
m=0.15;%调制度
k=0.5;%DSB前面的系数
mes=A1*cos(0.001*w0*t);%调制信号
Uam=A2*(1+m*mes).*cos((w0).*t);%AM已调信号
Dam=Uam.*cos(w0*t);%对AM调制信号进行解调
subplot(2,1,1);
plot(t,Dam);
gridon;
title('滤波前AM解调信号波形');
subplot(2,1,2);
Y5=fft(Dam);%对AM解调信号进行傅里叶变换
plot(abs(Y5)),grid;
title('滤波前AM解调信号频谱');
axis([187960,188040,0,200000]);
如图6.7AM解调信号
%=========================DSB信号解调=======================
t=-1:
0.00001:
1;
A0=10;%载波信号振幅
A1=5;%调制信号振幅
A2=3;%已调信号振幅
f=3000;%载波信号频率
w0=2*f*pi;
m=0.15;%调制度
k=0.5;%DSB前面的系数
Uc=A0.*cos(w0*t);%载波信号
mes=A1*cos(0.001*w0*t);%调制信号
Udsb=k*mes.*Uc;%DSB已调信号
Ddsb=Udsb.*cos(w0*t);%对DSB已调信号进行解调
subplot(2,1,1);
plot(t,Ddsb);
gridon;
title('滤波前DSB解调信号波形');
axis([0,1,-40,40]);
subplot(2,1,2);
Y6=fft(Ddsb);%对DSB解调信号进行傅里叶变换
plot(abs(Y6)),grid;
title('滤波前DSB解调信号频谱');
axis([187960,188040,0,1300000]);
如图6.8DSB解调信号
6.4对AM、DSB解调信号进行滤波
%=======================AM解调信号FIR滤波=================
t=-1:
0.00001:
1;
A0=10;%载波信号振幅
A1=5;%调制信号振幅
A2=3;%已调信号振幅
f=3000;%载波信号频率
w0=2*f*pi;
m=0.15;%调制度
k=0.5;%DSB前面的系数
Uc=A0.*cos(w0*t);%载波信号
subplot(5,2,1);
plot(t,Uc);
title('载波信号');
axis([0,0.01,-15,15]);
T1=fft(Uc);
subplot(5,2,2);
plot(abs(T1));
title('载波信号频谱');
axis([5800,6200,0,1000000]);
mes=A1*cos(0.001*w0*t);%调制信号
subplot(5,2,3);
plot(t,mes);
title('调制信号');
T2=fft(mes);
subplot(5,2,4);
plot(abs(T1));
title('调制信号频谱');
axis([192000,196000,0,2000000]);
Uam=A2*(1+m*mes).*cos((w0).*t);%AM已调信号
subplot(5,2,5);
plot(t,Uam);
title('已调信号');
T3=fft(Uam);
subplot(5,2,6);
plot(abs(T3));
title('已调信号频谱');
axis([5950,6050,0,500000]);
Dam=Uam.*cos(w0*t);%对AM已调信号进行解调
subplot(5,2,7);
plot(t,Dam);
title('滤波前的AM解调信号波形');
T4=fft(Dam);%求AM信号的频谱
subplot(5,2,8);
plot(abs(T4));
title('滤波前的AM解调信号频谱');
axis([187960,188040,0,200000]);
z21=fftfilt(b21,Dam);%FIR低通滤波
subplot(5,2,9);
plot(t,z21,'r');
title('滤波后的AM解调信号波形');
T5=fft(z21);%求AM信号的频谱
subplot(5,2,10);
plot(abs(T5),'r');
title('滤波后的AM解调信号频谱');
axis([198000,202000,0,200000]);
如图6.9AM解调信号FIR低通滤波
%=======================AM解调信号IIR滤波=================
t=-1:
0.00001:
1;
A0=10;%载波信号振幅
A1=5;%调制信号振幅
A2=3;%已调信号振幅
f=3000;%载波信号频率
w0=2*f*pi;
m=0.15;%调制度
k=0.5;%DSB前面的系数
Uc=A0.*cos(w0*t);%载波信号
subplot(5,2,1);
plot(t,Uc);
title('载波信号');
axis([0,0.01,-15,15]);
T1=fft(Uc);
subplot(5,2,2);
plot(abs(T1));
title('载波信号频谱');
axis([5800,6200,0,1000000]);
mes=A1*cos(0.001*w0*t);%调制信号
subplot(5,2,3);
plot(t,mes);
title('调制信号');
T2=fft(mes);
subplot(5,2,4);
plot(abs(T1));
title('调制信号频谱');
axis([192000,196000,0,2000000]);
Uam=A2*(1+m*mes).*cos((w0).*t);%AM已调信号
subplot(5,2,5);
plot(t,Uam);
title('已调信号');
T3=fft(Uam);
subplot(5,2,6);
plot(abs(T3));
title('已调信号频谱');
axis([5950,6050,0,500000]);
Dam=Uam.*cos(w0*t);%对AM已调信号进行解调
subplot(5,2,7);
plot(t,Dam);
title('滤波前的AM解调信号波形');
T4=fft(Dam);%求AM信号的频谱
subplot(5,2,8);
plot(abs(T4));
title('滤波前的AM解调信号频谱');
axis([187960,188040,0,200000]);
z11=filter(num11,den11,Dam);%IIR滤波器滤波
subplot(5,2,9);
plot(t,z21,'r');
title('滤波后的AM解调信号波形');
T5=fft(z11);%求AM信号的频谱
subplot(5,2,10);
plot(abs(T5),'r');
title('滤波后的AM解调信号频谱');
axis([198000,202000,0,200000]);
如图6.10AM解调信号IIR低通滤波
%=======================DSB解调信号FIR滤波===================
t=-1:
0.00001:
1;
A0=10;%载波信号振幅
A1=5;%调制信号振幅
A2=3;%已调信号振幅
f=3000;%载波信号频率
w0=2*f*pi;
m=0.15;%调制度
k=0.5;%DSB前面的系数
Uc=A0.*cos(w0*t);%载波信号
subplot(5,2,1);
plot(t,Uc);
title('载波信号');
axis([0,0.01,-15,15]);
T1=fft(Uc);
subplot(5,2,2);
plot(abs(T1));
title('载波信号频谱');
axis([5800,6200,0,1000000]);
mes=A1*cos(0.001*w0*t);%调制信号
subplot(5,2,3);
plot(t,mes);
title('调制信号');
T2=fft(mes);
subplot(5,2,4);
plot(abs(T1));
title(