基于MATLAB的DSB和FM的解调与调制.docx
《基于MATLAB的DSB和FM的解调与调制.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的DSB和FM的解调与调制.docx(16页珍藏版)》请在冰豆网上搜索。
基于MATLAB的DSB和FM的解调与调制
前言
在当今高度信息化的社会,信息和通信已成为现代社会的命脉。
信息作为一种资源,只有通过广泛的传播和交流,才能产生利用价值,促进社会成员的合作,推动社会生产力的发展,创造出巨大的经济效益。
而通信作为传输信息的手段或方式,与传感技术,计算机技术相互融合,已成为21世纪国际社会和世界经济发展的强大推动力。
可以预见,未来的通信对人们的生活方式和社会的发展将产生更加重大和意义深远的影响。
信号的调制与解调在通信系统中具有重要的作用。
调制过程是一个频谱搬移的过程,它是将低频信号的频谱搬移到载频位置。
解调是调制的逆过程,即是将已调制的信号还原成原始基带信号的过程。
信号的接收端就是通过解调来还原已调制信号从而读取发送端发送的信息。
因此信号的解调对系统的传输有效性和传输可靠性有着很大的影响。
调制与解调方式往往决定了一个通信系统的性能。
本课程设计主要论述了FM和DSB基本原理以及如何在MATALB环境中实现FM和DSB的调制与解调,在这里使用m(t)=sinc(100*t)作为基带信号进行调制,形式简单,便于产生及接收。
做此课程设计不仅加强了我们对原来的通信原理知识的巩固和了解,更加对利用MATLAB这个工具如何进行通信仿真有了更进一步的了解,为以后用MATLAB做诸如此类的学习与研究打下了基础。
工程概况
本次课程设计的主题是采用MATLAB仿真实现FM、DSB的调制与解调。
首先要求对MATLAB软件有着较为深入地了解和认识,掌握一些MATLAB语言的用法,对MATLAB代码进行仿真,例如:
用MATLAB的代码实现电路的正弦波波形图、频谱分析图等等。
同时利用MATLAB软件也能对书本上的知识进行验证,在利用MATLAB代码绘制相关原理电路图,然后仿真电路,与书本上的电路仿真进行对照分析和比较。
本次课程设计要求的技术对我们通信的学习起着很大的作用。
正文
3.1设计的目的和意义
3.1.1设计的目的
1.掌握利用MATLAB实现信号频率调制与解调的方法。
2.掌握FM、DSB调制和解调原理。
3.学会MATLAB仿真软件在振幅调制和解调中的应用。
4.掌握参数设置方法和性能分析方法。
5.通过实验中波形的变换,学会分析实验现象。
3.1.2设计的意义
通过对模拟通信系统的仿真,学习通信系统的仿真方法,进一步理解模拟通信系统的调制解调方法,掌握各种模拟调制解调系统的性能,包括已调信号的时域表示、频域表示、已调信号的带宽、已调信号的功率含量,解调信号的信噪比等。
学会用傅立叶变换方法分析信号的频域成分及相关的数字信号处理方法。
3.2DBSFM与解调原理
被调信号m(t)=sinc(100*t)
t0=0.2,载波
,其中fc=300hz,偏移常量kf=100
3.2.DSB调制的原理
在AM信号中,载波分量并不携带信息,信息完全由边带传送。
AM调制模型中将直流分量去掉,即可得到一种高调制效率的调制方式——抑制载波双边带信号,即双边带信号(DSB)。
DSB信号的时域表示式:
式中,假设
的平均值为0。
解调是调制的逆过程,其作用是从接受信号中恢复出原基带信号。
解调的方法分为两类:
相干解调和非相干解调(如包络检波)。
相干解调也称同步检波,适用于所有线性调制信号的解调。
其关键是必须在已调信号的接收端产生与信号载波同频同相的本地载波。
包络检波多用于广播接收机中,也适用于AM信号中。
3.2.2抑制载波的双边带调制与解调的原理
频率调制的一般表达式为:
FM和PM非常相似,如果预先不知道调制信号的具体形式,则无法判断已调信号是调频信号还是调相信号。
图2-1
图2-2
图(2-1)所示的产生调频信号的方法称为直接调频法。
图(2-2)所示的产生调频信号的方法称为间接调频法。
由于实际相位调制器的调节范围不可能超出
,因而间接调频的方法仅适用于相位偏移和频率偏移不大的窄带调制情形,而直接调频则适用于宽带调制情形。
角度调制信号的一般表达式为
调制信号的解调分为相干解调和非相干解调两种。
相干解调仅仅适用于窄带调频信号,且需同步信号,故应用范围受限;而非相干解调不需同步信号,且对于NBFM信号和WBFM信号均适用,因此是FM系统的主要解调方式。
在本仿真的过程中我们选择用非相干解调方法进行解调。
非相干解调器由限幅器、鉴频器和低通滤波器等组成,其方框图如图2-3所示。
限幅器输入为已调频信号和噪声,限幅器是为了消除接收信号在幅度上可能出现的畸变;带通滤波器的作用是用来限制带外噪声,使调频信号顺利通过。
鉴频器中的微分器把调频信号变成调幅调频波,然后由包络检波器检出包络,最后通过低通滤波器取出调制信号。
设输入调频信号为
微分器的作用是把调频信号变成调幅调频波。
微分器输出为:
包络检波的作用是从输出信号的幅度变化中检出调制信号。
包络检波器输出为:
称为鉴频灵敏度(
),是已调信号单位频偏对应的调制信号的幅度,经低通滤波器后加隔直流电容,隔除无用的直流,得
3.3DSB和AM的解调与调制分析
3.3.1DSB原始信号和已调信号的时域与频域
连续傅里叶变换是一个特殊的把一组函数映射为另一组函数的线性算子。
傅里叶变换就是把一个函数分解为组成该函数的连续频率谱。
在数学分析中,信号f(t)的傅里叶变换被认为是处在频域中的信号。
画出原调制信号的时域图
2.4原调制信号的时域图
被调信号m(t)=sinc(100*t)
t0=0.2,载波
,其中fc=300hz
2.5已调信号时域图
DSB频谱分析:
DSB的频谱与AM的频谱相近,只是没有了在
处的冲激函数,即
其频域表达式为:
频谱图如下
2.6DSB混频的效果
如图混频信号,用来提取原调制信号的频率,更好的还原出输入信号。
信号经过低通滤波器的波形如下:
2.7混频器输出的波形的频谱效果
由图可知混频信号经过低通滤波器后,滤除了低频分量
频谱图如3下
DSB信号的频谱图
原调制信号和通过滤波器后的信号的频谱图如下:
2.8原调制信号和解调器输出信号对比
可见,DSB信号的频谱含有两个边带,即上、下边带。
两个边带所含的信息相同。
它的带宽是基带信号带宽的两倍为
。
因为其频谱中不含有载有无用信息的载波分量,只含有载有无用信息的边带分量,因此其信号的功率利用率较大。
DSB解调原理图如下:
通过MATLAB验证的图如下:
2.9原调制信号和解调器输出信号对比
DSB是AM调制的一种,AM信号通过信道后自然会叠加有燥声,经过接收天线进入带通滤波器。
BPF的作用有两个,一是让AM信号直接通过,二是滤出带外噪声。
AM信号通过BFP后与本地载波相乘后。
进入LPF,LPF的截止频率设定为一个定值,它不允许频率大于截止频率的成分通过,因此LPF的输出仅为与要的信号。
3.3.2FM原始信号和已调信号的时域与频域
1),根据表达式利用plot函数求出时域曲线,调用傅里叶变换模块求出频域表达式,利用plot函数求出频域曲线。
(2)已知调频信号表达式为:
将被调信号
带入,即可求得调频信号的时域表达式X(t),然后求解即可求得调频信号的时域=表达式:
3.0原调制信号和已调信号的时域图
持续时间t0=0.2,抽样间隔ts=0.001,偏差常数kf=100,频率分辨率df=0.25
3.1原调制信号和已调信号的在频域内的图形
解调信号的时域与频域
由于非相干解调对NBFM信号及WBFM信号均适用,所以采用非相干的解调方法。
调频信号的一般表达式为:
则解调输出应为:
这就是说,调频信号的解调是要产生一个与输入调频信号的频率呈线性关系的输出电压。
完成这种频率-电压转化关系的器件是频率检波器,简称鉴频器。
将原始信号
带入上式即可求得解调信号
的时域表达式,然后类似于第一问求解可画出解调信号的时域及频域曲线。
结果如下:
用MATLAB解调得:
3.2在无噪声情况下的原调制信号的波形和解调信号的输出情况
3.4结论
(1)通过MATLAB对DSB调制和解调系统的模拟仿真,观察各波形和频谱,在波形上,已调信号的幅度随基带信号的规律呈正比地变化;在频谱结构上,它的频谱完全是基带信号频谱在频域内的简单搬移
DSB优点是功率利用率高,接收设备较复杂;还可以知道DSB调制是在AM调制模型的基础上去掉直流分量以后所得到的一种高调制效率的调制方式,它的全部功率都是用于信息的传输
(2)FM属于角度调制,已调信号频谱不再是原调制信号频谱的线性搬移,而是频谱的非线性变换,会产生与频谱搬移不同的新的频率成分。
FM信号是用载波频率的变化表征被传输信息状态的。
1.FM调制的载波信号的频率按调制信号规律变化;
2.FM是相位偏移随
的积分呈线性变化;
3.FM调制有较高的抗噪声性能,但获得这种优势的代价是增大带宽;
4.调频是幅度恒定的已调信号。
5.当取fs≥2*fm时,可以无失真的恢复出原信号。
致谢
首先,我要感谢我的导师蒋霞,她严谨细致、一丝不苟的作风一直是我工作、学习中的榜样,给了起到了指明灯的作用;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪,让我很快就感受到了设计的快乐并融入其中。
其次我要感谢同组同学对我的帮助和指点,没有他们的帮助和提供资料,没有他们的鼓励和加油,这次课程设计就不会如此的顺利进行。
俗话说的好,“磨刀不误砍柴工”,当每次遇到不懂得问题时,我都会第一时间记在本子上面,然后等答疑的时候问两位老师,老师对于我提出来的问题都一一解答,从来都不会因为我的问题稍过简单加以责备,而是一再的告诫我做设计该注意的地方,从课题的选择到项目的最终完成,老师都始终给予我细心的指导和不懈的支持,他们真正起到了“传道授业解惑疑”的作用,让人油然而生的敬佩。
在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!
参考文献
[1]樊昌新,曹丽娜.通信原理.国防工业出版社,2011
[2]《MATLAB程序设计教程》第二版,刘卫国主编,中国水利水电出版社
[3]罗军辉.MATLAB7.0在数字信号处理中的应用.机械工业出版社。
[4]黄文梅,熊桂林,杨勇.信号分析与处理.国防科技大学出版社,2000
[6]黄文梅,熊桂林,杨勇.信号分析与处理.国防科技大学出版社,2000
[7]韩利竹,王华.MATLAB电子仿真与应用.国防工业出版社,2003
[8]谢沅清,邓刚.通信电子电路.电子工业出版社,2005
附录
%dsb.m
%本例调制信号为m(t)=sinc(100*t)
echooff
closeall
clc
t0=0.2;%信号的持续时间
ts=0.001;%抽样间隔
fs=1/ts;%抽样频率
%*********************************************************************
fc=300;%载波频率
%*********************************************************************
t=[-t0/2:
ts:
t0/2];%时间向量
df=0.25;%所需的频率分辨率
%*********************************************************************
m=sinc(100*t);%调制信号
%*********************************************************************
c=cos(2*pi*fc.*t);%载波信号函数
u=m.*c;%已调信号
y=u.*c;%混频信号,用来提取原调制信号的频率
[M,m,df1]=fftseq(m,ts,df);%对调制信号m(t)求傅里叶变换
M=M/fs;%缩放,便于在频谱图上整体观察
[U,u,df1]=fftseq(u,ts,df);%对调制后的信号u求傅里叶变换
U=U/fs;%缩放
[Y,y,df1]=fftseq(y,ts,df);%对混频后的信号y求傅里叶变
Y=Y/fs;%缩放
%*********************************************************************
%以下这段程序构建在频谱上的滤波器的方法
f_cutoff=150;%滤波器的截止频率
n_cutoff=floor(150/df1);%设计的滤波器的带宽
f=[0:
df1:
df1*(length(y)-1)]-fs/2;%频率分量
H=zeros(size(f));%构建滤波器的步骤之一
H(1:
n_cutoff)=2*ones(1,n_cutoff);%构建滤波器的步骤之一
H(length(f)-n_cutoff+1:
length(f))=2*ones(1,n_cutoff);%滤波器的频带函数
%********************************************************************
DEM=H.*Y;%经过滤波器后输出信号的频谱
dem=real(ifft(DEM))*fs;%ifft为傅里叶反变换函数,滤波器的输出-解调信号
%乘以fs是为了恢复原信号,因为前面使用了缩放
disp('按任意键可看到混频的效果')
pause
figure
(1)
subplot(3,1,1)
plot(f,fftshift(abs(M)))%fftshift:
将FFT中的DC分量移到频谱中心
title('原调制信号的频谱图')
xlabel('频率f')
subplot(3,1,2)
plot(f,fftshift(abs(U)))
title('已调信号的频谱图')
xlabel('频率f')
subplot(3,1,3)
plot(f,fftshift(abs(Y)))
title('混频信号的频谱图')
xlabel('频率f')
disp('按任意键可看到混频器输出的波形的频谱效果')
pause
figure
(2)
subplot(3,1,1)
plot(f,fftshift(abs(Y)))
title('混频信号的频谱图')
xlabel('频率f')
subplot(3,1,2)
plot(f,fftshift(abs(H)))
title('低通滤波器的频谱图')
xlabel('频率f')
subplot(3,1,3)
plot(f,fftshift(abs(DEM)))
title('混频信号通过滤波器后的信号的频谱图')
xlabel('频率f')
disp('按任意键可看到原调制信号和接受信号频谱的比较')
pause
figure(3)
subplot(2,1,1)
plot(f,fftshift(abs(M)))
title('原调制信号的频谱图')
xlabel('频率f')
subplot(2,1,2)
plot(f,fftshift(abs(DEM)))
title('混频信号通过滤波器后的信号的频谱图')
xlabel('频率f')
disp('按任意键可看到原调制信号和解调器输出信号对比')
pause
figure(4)
subplot(2,1,1)
plot(t,m(1:
length(t)))
title('原调制信号的时域图')
xlabel('时间t')
subplot(2,1,2)
plot(t,dem(1:
length(t)))
title('解调后信号的时域图')
xlabel('时间t')
disp('按任意键可看到已调信号')
pause
figure(5)
plot(u(1:
250))
title('已调信号')
%求傅里叶变换的子函数
function[M,m,df]=fftseq(m,ts,df)
fs=1/ts;
ifnargin==2%nargin为输入参量的个数
n1=0;
else
n1=fs/df;
end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2)));%nextpow2(n)取n最接近的较大2次幂
M=fft(m,n);%M为信号m的傅里叶变换,n为快速傅里叶变换的点数,及为基n-FFT变换
m=[m,zeros(1,n-n2)];%构建新的m信号
df=fs/n;%重新定义频率分辨率
%fm.m
%本例调制信号为m(t)=sinc(100*t)
echooff
closeall
clc
t0=0.2;%信号的持续时间,用来定义时间向量
ts=0.001;%抽样间隔
fs=1/ts;%抽样频率
%*********************************************************************
fc=300;%载波频率
%*********************************************************************
t=[-t0/2:
ts:
t0/2];%时间向量
kf=100;%偏差常数
df=0.25;%所需的频率分辨率,用在求傅里叶变换时,它表示FFT的最小频率间隔
%*********************************************************************
m=sinc(100*t);%调制信号
%*********************************************************************
%*********************************************************************
%求信号m(t)的积分,这是对离散信号求积分的好方法
int_m
(1)=0;
fori=1:
length(t)-1
int_m(i+1)=int_m(i)+m(i)*ts;
end
%*********************************************************************
[M,m,df1]=fftseq(m,ts,df);%对调制信号m(t)求傅里叶变换
M=M/fs;%缩放,便于在频谱图上整体观察
f=[0:
df1:
df1*(length(m)-1)]-fs/2;%时间向量对应的频率向量
u=cos(2*pi*fc*t+2*pi*kf*int_m);%调制后的信号
[U,u,df1]=fftseq(u,ts,df);%对调制后的信号u求傅里叶变换
U=U/fs;%缩放
%*********************************************************************
t1=[0:
ts:
ts*(length(u)-1)];
z=hilbert(u);
yq=z.*exp(-j*2*pi*fc*t1);
dem=(1/(2*pi*kf))*diff(unwrap(angle(yq))*fs);
%*********************************************************************
%*********************************************************************
disp('按任意键可以看到原调制信号和已调信号的曲线')
pause
figure
(1)
subplot(2,1,1)
plot(t,m(1:
length(t)))%现在的m信号是重新构建的信号,
%因为在对m求傅里叶变换时m=[m,zeros(1,n-n2)]
xlabel('时间t')
title('原调制信号的时域图')
subplot(2,1,2)
plot(t,u(1:
length(t)))
xlabel('时间t')
title('已调信号的时域图')
disp('按任意键可以看到原调制信号和已调信号的在频域内的图形')
pause
figure
(2)
subplot(2,1,1)
plot(f,abs(fftshift(M)))%fftshift:
将FFT中的DC分量移到频谱中心
xlabel('频率f')
title('原调制信号的频谱图')
subplot(2,1,2)
plot(f,abs(fftshift(U)))
xlabel('频率f')
title('已调信号的频谱图')
disp('按任意键可以看到在无噪声情况下的原调制信号的波形和解调信号的输出情况')
pause
figure(3)
subplot(2,1,1)
plot(t,m(1:
length(t)))
xlabel('时间t')
title('原调制信号的时域图')
subplot(2,1,2)
plot(t,dem(1:
length(t)))
xlabel('时间t')
title('解调后信号的时域波形')