FM调制与解调系统课程设计报告.docx
《FM调制与解调系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《FM调制与解调系统课程设计报告.docx(55页珍藏版)》请在冰豆网上搜索。
FM调制与解调系统课程设计报告
FM调制与解调系统的设计
摘要:
调频和调相是广泛采用的两种调角的基本调制方式。
其中调频(FM)是载波信号的频率按调制信号的规律变化;调相(PM)是载波信号的相位按调制信号的规律变化。
两种调制方式都表现为信号的瞬时相位受到调变。
调频波的解调称为鉴频;调相波的解调称为鉴相。
在掌握模拟系统FM和PM调制与解调原理和设计方法的基础上,可以通过MATLAB进行编程仿真实现对系统的时域、频域特性分析,可以通过Simulink动态建模和Labview虚拟仪器对系统进行仿真,检测所设计系统的功能,还可以通过GUI设计实现针对该系统的图形用户界面。
关键词:
调制,解调,系统,仿真
一、课题的目的
本课程设计课题主要研究FM调制与解调模拟系统的理论设计和软件仿真方法。
通过完成本课题的设计,拟主要达到以下几个目的:
1.掌握模拟系统FM调制与解调的原理。
2.掌握模拟系统FM调制与解调的设计方法;
3.掌握应用MATLAB分析系统时域、频域特性的方法,进一步锻炼应用Matlab进行编程仿真的能力;
4.熟悉基于Simulink的动态建模和仿真的步骤和过程;
5.了解基于LabVIEW虚拟仪器的特点和使用方法,熟悉采用LabVIEW进行仿真的方法。
二、课题任务
设计FM调制与解调模拟系统,仿真实现相关功能。
包括:
可实现单音调制的FM调制及解调、PM调制及解调的系统设计及仿真,要求给出系统的设计框图、源程序代码及仿真结果,并要求给出程序的具体解释说明,记录系统的各个输出点的波形和频谱图。
具体内容为:
(1)设计FM调制与解调、PM调制与解调的模拟系统,给出系统的原理框图,对系统的主要参数进行设计说明。
(2)采用Matlab语言设计相关程序,实现系统的功能,要求采用两种方式进行仿真,即直接采用Matlab语言编程的静态仿真方式、采用Simulink进行动态建模和仿真的方式。
要求采用两种以上调制信号源进行仿真,并记录系统的各个输出点的波形和频谱图。
(3)采用LabVIEW进行仿真设计,实现系统的功能,要求给出系统的前面板和框图,采用两种以上调制信号源进行仿真,并记录仿真结果。
(4)要求对系统的时域、频域特性进行分析,并与理论设计结果进行比较分析。
(5)对系统功能进行综合测试,整理数据,撰写设计报告。
三、设计方案论证
调频(FM):
载波信号的频率按调制信号的规律变化;
调相(PM):
载波信号的相位按调制信号的规律变化;
两种调制方式均表现为载波信号的瞬时相位收到调变。
在设计调频(FM)和调相(PM)系统时,由于调频(FM)可以看成是相位按调制信号的时间积分值规律变化的的调相信号,故可以都借助调相系统,只是调频时,需先将调制信号积分以后再通过调相系统。
设计调相系统时,在确定载波幅度和频率、调制信号幅度和频率、调频或调相比例常数后,将调制信号与比例常数的乘积(调相时)或调制信号积分以后与比例常数的乘积(调频时),即可完成调相功能。
由于等幅调频波通过延时网络以后,在限制
(
为调制信号的角频率,
为延时量)的条件下,输出调频波与输入时相比会产生附加相移,该附加相移反映了输入调频波的瞬时频率变化,即输出为调频-调相波,再将其通过鉴相器即可完成鉴频。
此即相位鉴频器的理论设计模型。
假设调相波和载波之间的相位差为
,使调相波产生
固定相移后,和载波一起通过相乘器,再通过低通滤波器后,输出波在限制
的条件下,幅度反映了输入调相波的瞬时相位变化,即完成了鉴相功能。
此即乘积型鉴相器的理论设计模型。
故在设计鉴频(FM)和鉴相(PM)系统时,只需在确定系统参数的情况下,按上述原理完成相位鉴频器和乘积型鉴相器的功能即可完成相应的解调功能。
在MATLAB静态编程仿真部分,将上述原理转换成相应的数学关系,即可完成编程;
在Simulink动态建模仿真部分,根据上述原理选择合适的模型,并做合适的参数设置,即可完成系统方框图的设计;
在Labview仿真部分,根据上述原理选择合适的函数和控件,并做合适的参数设置,即可完成前面板和程序框图的设计;
在GUI图形用户界面设计部分,在了解设计方法的基础上,根据上述原理给添加的按钮或文本框添加对应的代码,即可实现图形用户界面。
四、设计内容、步骤和要求
4.1必选部分
(1)设计实现FM、PM调制与解调的模拟系统,给出系统的原理框图,对系统的主要参数进行设计说明,具体参数包括:
载波频率、调制信号频率、载波大小、调制信号大小、调制系数等参数。
并对所设计的系统进行理论分析计算。
(2)根据所设计的FM、PM调制与解调的模拟系统,进行基于Matlab语言的静态仿真设计。
分别实现单音调制的FM调制及解调、PM调制及解调的系统仿真设计,要求给出系统的Matlab编程仿真程序及结果,并要求写出程序的具体解释说明,记录系统的各个输出点的波形和频谱图。
要求调制信号分别采用不同类型的信号进行仿真,至少给出两种以上调制信号源,具体参数自定。
载波信号频率根据设计情况设定。
(3)根据所设计的FM、PM调制与解调的模拟系统,采用Simulink进行动态建模仿真设计。
分别实现单音调制的FM调制及解调、PM调制及解调的系统动态仿真设计,要求包括调制和解调的部分,并给出采用Simulink进行动态建模仿真的系统方框图,同时记录系统的各个输出点的波形和频谱图。
要求采用两种以上调制信号源进行仿真,具体参数自定。
载波信号频率根据设计情况设定。
(4)根据仿真结果,对系统的时域、频域特性进行分析,并与理论设计结果进行比较分析。
4.2拓展部分
(1)根据所设计的FM、PM调制与解调的模拟系统,说明具体的参数,进行基于LabVIEW环境的仿真,分别实现单音调制的FM调制及解调、PM调制及解调的系统仿真设计,要求包括调制和解调的部分,给出系统的前面板和框图,并记录仿真结果。
(2)要求调制信号采用不同类型的信号源,进行进一步的仿真,给出系统的前面板和框图,并记录仿真结果,观察分析频谱的变化情况。
(3)比较分析采用以上两种软件环境:
Matlab与LabVIEW,进行仿真的各自的特点,分析说明不同语言环境的各自优势。
4.3选作部分
(1)根据所设计的FM、PM调制与解调的模拟系统,采用Matlab语言设计相关程序,并且利用GUI设计图形用户界面,完成4.1必选部分所要求的功能。
(2)分析比较采用Matlab语言的GUI设计图形用户界面与采用LabVIEW进行设计的各自的特点。
、实验具体过程、结果与分析
实现FM、PM调制与解调的模拟系统的原理框图:
MATLAB静态编程仿真
FM和PM的调制
程序流程图:
编程仿真程序代码
参数设置为:
调制信号频率:
10Hz;调制信号幅度:
1V;载波信号频率:
100Hz;载波信号幅度:
1V;调频比例常数kf:
2000;调相比例常数kp:
100;采样频率fs:
500Hz。
正弦波:
T=0.002;%采样间隔
fs=1/T;%采样频率
N=256;%采样点数
n=0:
N-1;t=n*T;
vx=cos(2*pi*10*t);%调制信号
int_vx
(1)=0;
fori=1:
(length(t)-1)
int_vx(i+1)=int_vx(i)+vx(i)*T;
end
vc=cos(2*pi*100*t);%载波信号
kf=2000;%调频比例常数
vf=cos(2*pi*100*t+2*pi*kf*int_vx);%调频信号
VX=fft(vx,N);
VC=fft(vc,N);
VF=fft(vf,N);
f=n*fs/N;
figure
(1)
subplot(3,2,1)
plot(vx);title('时域调制信号')
gridon
subplot(3,2,2)
plot(f(1:
N/2),abs(VX(1:
N/2)));title('频域调制信号')
xlabel('Hz')
gridon
subplot(3,2,3)
plot(vc);title('时域载波信号')
gridon
subplot(3,2,4)
plot(f(1:
N/2),abs(VC(1:
N/2)));title('频域载波信号')
xlabel('Hz')
gridon
subplot(3,2,5)
plot(vf);title('时域调频信号')
gridon
subplot(3,2,6)
plot(f(1:
N/2),abs(VF(1:
N/2)));title('频域调频信号')
xlabel('Hz')
gridon
kp=100;%调相比例常数
vp=cos(2*pi*100*t+kp*vx);%调相信号
VP=fft(vp,N);
figure
(2)
subplot(3,2,1)
plot(vx);title('时域调制信号')
gridon
subplot(3,2,2)
plot(f(1:
N/2),abs(VX(1:
N/2)));title('频域调制信号')
xlabel('Hz')
gridon
subplot(3,2,3)
plot(vc);title('时域载波信号')
gridon
subplot(3,2,4)
plot(f(1:
N/2),abs(VC(1:
N/2)));title('频域载波信号')
xlabel('Hz')
gridon
subplot(3,2,5)
plot(vp);title('时域调相信号')
gridon
subplot(3,2,6)
plot(f(1:
N/2),abs(VP(1:
N/2)));title('频域调相信号')
xlabel('Hz')
gridon
方波:
T=0.002;%采样间隔
fs=1/T;%采样频率
N=256;%采样点数
n=0:
N-1;t=n*T;
vx=square(2*pi*10*t,50);%调制信号
int_vx
(1)=0;
fori=1:
(length(t)-1)
int_vx(i+1)=int_vx(i)+vx(i)*T;
end
vc=cos(2*pi*100*t);%载波信号
kf=2000;%调频比例常数
vf=cos(2*pi*100*t+kf*int_vx);%调频信号
VX=fft(vx,N);
VC=fft(vc,N);
VF=fft(vf,N);
f=n*fs/N;
figure
(1)
subplot(3,2,1)
plot(vx);title('时域调制信号')
axis([0,300,-1.2,1.2])
gridon
subplot(3,2,2)
plot(f(1:
N/2),abs(VX(1:
N/2)));title('频域调制信号')
xlabel('Hz')
gridon
subplot(3,2,3)
plot(vc);title('时域载波信号')
gridon
subplot(3,2,4)
plot(f(1:
N/2),abs(VC(1:
N/2)));title('频域载波信号')
xlabel('Hz')
gridon
subplot(3,2,5)
plot(vf);title('时域调频信号')
gridon
subplot(3,2,6)
plot(f(1:
N/2),abs(VF(1:
N/2)));title('频域调频信号')
xlabel('Hz')
gridon
kp=100;%调相比例常数
vp=cos(2*pi*100*t+kp*vx);%调相信号
VP=fft(vp,N);
figure
(2)
subplot(3,2,1)
plot(vx);title('时域调制信号')
axis([0,300,-1.2,1.2])
gridon
subplot(3,2,2)
plot(f(1:
N/2),abs(VX(1:
N/2)));title('频域调制信号')
xlabel('Hz')
gridon
subplot(3,2,3)
plot(vc);title('时域载波信号')
gridon
subplot(3,2,4)
plot(f(1:
N/2),abs(VC(1:
N/2)));title('频域载波信号')
xlabel('Hz')
gridon
subplot(3,2,5)
plot(vp);title('时域调相信号')
gridon
subplot(3,2,6)
plot(f(1:
N/2),abs(VP(1:
N/2)));title('频域调相信号')
xlabel('Hz')
gridon
运行结果:
正弦波:
方波:
FM和PM的解调
程序流程图:
编程仿真程序代码
参数设置如下:
调制信号频率:
10Hz;调制信号幅度:
1V;载波信号频率:
100Hz;载波信号幅度:
1V;
调频比例常数kf:
pi/2;调相比例常数kp:
pi/20;采样频率fs:
500Hz;低通滤波器参数:
正弦波:
fir1(80,0.1),方波:
fir1(80,0.35)。
正弦波:
T=0.002;%采样间隔
fs=1/T;%采样频率
N=256;%采样点数
n=0:
N-1;t=n*T;
kf=pi/2;%调频比例常数
kp=pi/20;%调相比例常数
vx=cos(2*pi*10*t);%调制信号
int_vx=sin(20*pi*t)/(20*pi);%对调制信号积分
vc=cos(2*pi*100*t);%载波信号
vf=cos(2*pi*100*(t-0.002)+2*pi*kf*(sin(20*pi*(t-0.002))/(20*pi)));%对调频FM信号延时,相位变化中含0.4*pi的恒定相移
vf1=cos(2*pi*100*(t-0.002)+2*pi*kf*(sin(20*pi*(t-0.002))/(20*pi))-pi/10);%对调频FM信号延时后,再加上pi/10的固定相移
vp1=cos(2*pi*100*t+kp*vx-pi/2);%给调相信号加上pi/2的固定相移
vip=vc.*vp1;%通过相乘器
vif=vc.*vf1;%通过相乘器
b=fir1(80,0.1);
vof=filter(b,1,vif);
vop=filter(b,1,vip);
VOF=fft(vof,N);
VOP=fft(vop,N);
f=n*fs/N;
figure
(1)
subplot(2,2,1)
plot(vx);title('时域调制信号')
gridon
VX=fft(vx,N);
subplot(2,2,2)
plot(f(1:
N/2),abs(VX(1:
N/2)));title('频域调制信号')
xlabel('Hz')
gridon
subplot(2,2,3)
plot(vof);title('时域解调FM信号')
gridon
subplot(2,2,4)
plot(f(1:
N/2),abs(VOF(1:
N/2)));title('频域调制FM信号')
xlabel('Hz')
gridon
figure
(2)
subplot(2,2,1)
plot(vx);title('时域调制信号')
gridon
VX=fft(vx,N);
subplot(2,2,2)
plot(f(1:
N/2),abs(VX(1:
N/2)));title('频域调制信号')
xlabel('Hz')
gridon
subplot(2,2,3)
plot(vop);title('时域解调PM信号')
gridon
subplot(2,2,4)
plot(f(1:
N/2),abs(VOP(1:
N/2)));title('频域调制PM信号')
xlabel('Hz')
gridon
方波:
T=0.002;%采样间隔
fs=1/T;%采样频率
N=256;%采样点数
n=0:
N-1;t=n*T;
kf=pi/2;%调频比例常数
kp=pi/20;%调相比例常数
vx=square(2*pi*10*t,50);%调制信号
int_vx=25*sawtooth(2*pi*t*10,0.5);%调制信号
vc=cos(2*pi*100*t);%载波信号
vf=cos(2*pi*100*(t-0.002)+2*pi*kf*25*sawtooth(2*pi*(t-0.002)*10,0.5));%对调频FM信号延时,相位变化中含0.4*pi的恒定相移
vf1=cos(2*pi*100*(t-0.002)+2*pi*kf*25*sawtooth(2*pi*(t-0.002)*10,0.5)-pi/10);%对调频FM信号延时后,再加上pi/10的固定相移
vp1=cos(2*pi*100*t+kp*vx-pi/2);%给调相信号加上pi/2的固定相移
vip=vc.*vp1;%通过相乘器
vif=vc.*vf1;%通过相乘器
b=fir1(80,0.35);
b1=fir1(80,0.2);
vof=filter(b1,1,vip);
vop=filter(b,1,vip);
VOF=fft(vof,N);
VOP=fft(vop,N);
f=n*fs/N;
figure
(1)
subplot(2,2,1)
plot(vx);title('时域调制信号')
axis([0,300,-1.2,1.2])
gridon
VX=fft(vx,N);
subplot(2,2,2)
plot(f(1:
N/2),abs(VX(1:
N/2)));title('频域调制信号')
xlabel('Hz')
gridon
subplot(2,2,3)
plot(vof);title('时域解调FM信号')
gridon
subplot(2,2,4)
plot(f(1:
N/2),abs(VOF(1:
N/2)));title('频域调制FM信号')
gridon
figure
(2)
subplot(2,2,1)
plot(vx);title('时域调制信号')
axis([0,300,-1.2,1.2])
gridon
VX=fft(vx,N);
subplot(2,2,2)
plot(f(1:
N/2),abs(VX(1:
N/2)));title('频域调制信号')
xlabel('Hz')
gridon
subplot(2,2,3)
plot(vop);title('时域解调PM信号')
axis([0,300,-0.1,0.1])
gridon
subplot(2,2,4)
plot(f(1:
N/2),abs(VOP(1:
N/2)));title('频域调制PM信号')
gridon
运行结果:
正弦波:
方波:
结果分析:
Simulink动态建模仿真
FM调制和解调
系统方框图:
参数设置:
正弦波:
方波:
仅改变signalgenerator的参数设置如下,其余参数设置与正弦波时相同。
运行结果:
正弦波:
示波器(从上到下一次是:
调制信号、调频信号、解调信号):
调制信号频谱:
调频信号频谱:
解调信号频谱:
方波:
示波器(从上到下一次是:
调制信号、调频信号、解调信号):
调频信号频谱:
解调信号频谱:
调制信号频谱:
PM的调制和解调
系统方框图:
参数设置:
正弦波:
方波:
仅改变signalgenerator的参数设置如下,其余参数设置与正弦波时相同:
运行结果:
正弦波:
示波器(从上到下一次是:
调制信号、调相信号、解调信号):
调相信号频谱:
调制信号频谱:
解调信号频谱:
方波:
示波器(从上到下一次是:
调制信号、调相信号、解调信号):
调相信号频谱:
调制信号频谱:
调制信号频谱:
解调信号频谱:
结果分析:
Labview仿真
PM调制
前面板:
程序框图:
参数设置及运行结果:
FM调制
前面板:
程序框图:
参数设置及运行结果:
结果分析
GUI设计图形用户界面
程序代码:
functionvarargout=jiaodu_tiaozhiANDjietiao(varargin)
%JIAODU_TIAOZHIANDJIETIAOM-fileforjiaodu_tiaozhiANDjietiao.fig
%JIAODU_TIAOZHIANDJIETIAO,byitself,createsanewJIAODU_TIAOZHIANDJIETIAOorraisestheexisting
%singleton*.
%
%H=JIAODU_TIAOZHIANDJIETIAOreturnsthehandletoanewJIAODU_TIAOZHIANDJIETIAOorthehandleto
%theexistingsingleton*.
%
%JIAODU_TIAOZHIANDJIETIAO('CALLBACK',hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinJIAODU_TIAOZHIANDJIETIAO.Mwiththegiveninputarguments.
%
%JIAODU_TIAOZHIANDJIETIAO('Property','Value',...)createsanewJIAODU_TIAOZHIANDJIETIAOorraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforejiaodu_tiaozhiANDjietiao_OpeningFcngetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.Allinputsarepassedtojiaodu_tiaozhiANDjietiao_OpeningFcnviavarargin.
%
%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone
%inst