基于matlab simulink的fm调制解调.docx
- 文档编号:11385945
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:31
- 大小:906.88KB
基于matlab simulink的fm调制解调.docx
《基于matlab simulink的fm调制解调.docx》由会员分享,可在线阅读,更多相关《基于matlab simulink的fm调制解调.docx(31页珍藏版)》请在冰豆网上搜索。
摘要
在模拟通信系统中,由模拟信源产生的携带有信息的消息经过传感器转换成电信号。
模拟基带信号在经过调制将低通频谱搬移到载波频率上适应信道,最终解调还原成电信号。
本文应用了频率调制法产生调制解调信号。
本论文中主要通过对SIMULINK工具箱的学习和使用,利用其丰富的模板以与本科对通信原理知识的掌握,完成了FM信号的调制与解调,以与用SIMULINK进行设计和仿真。
首先利用简单的正玄波信号发生器作为信源,对模拟信号进行FM调制解调原理的仿真。
关键词 :
调制解调;FM ;MATLAB;SIMULINK仿真
Abstract
In the simulation of communication systems, generated by the analog source carrying amessage through the sensor into electrical signals. Analog baseband signal after the modul--ation of the low pass spectrum to carrier frequency to adapt to the channel, the final reducti--on into electrical signal demodulation. This paper applied the frequency modulation method to generate the signal modulation and demodulation. Mainly through the study and use of SIMULINK toolbox in this thesis, with its rich template and undergraduate course on comm--unication theory knowledge,the modulation and demodulation of FM signal, as well asthe design and simulation with SIMULINK. Firstly, sine wave signal generator is simple asthe source, simulation FM modulation anddemodulation principle of analogue signals. Then, using the song as the source.
Keywords:
modulationanddemodulation;FM;MATLAB; SIMULINK simulation
1 FM调制与解调原理
1.1模拟通信系统的简介
通信的目的是传输信息。
通信系统的作用就是将信息从信息源发送到一个或多个目的地。
通信系统对信号进行两种基本变换:
第一、要把发送的消息要变换成原始电信号。
第二、将原始电信号调制到频率较高的载频上,使其频带适合信道的传输。
调制前和解调后的信号称为基带信号,已调信号也称为频带信号。
对于任何一个通信系统,均可视为由发送端、信道和接收端三大部分组成(如图2-1所示)。
图1-1 通信系统一般模型
信息源(简称信源)的作用是把各种信息转换成原始信号。
根据消息的种类不同信源分为模拟信源和数字信源。
发送设备的作用产生适合传输的信号,即使发送信号的特性和信道特性相匹配,具有抗噪声的能力,并且具有足够的功率满足原距离传输的需求。
信息源和发送设备统称为发送端。
发送端将信息直接转换得到的较低频率的原始电信号称为基带信号。
通常基带信号不宜直接在信道中传输。
因此,在通信系统的发送端需将基带信号的频谱搬移(调制)到适合信道传输的频率围进行传输。
这就是调制的过程。
信号通过信道传输后,具有将信号放大和反变换功能的接收端将已调制的信号搬移(解调)到原来的频率围,这就是解调的过程。
信号在信道中传输的过程总会受到噪声的干扰,通信系统中没有传输信号时也有噪声,噪声永远存在于通信系统中。
由于这样的噪声是叠加在信号上的,所以有时将其称为加性噪声。
噪声对于信号的传输是有害的,它能使模拟信号失真。
在本仿真的过程中我们假设信道为高斯白噪声信道。
模拟系统框图如下图1-2所示:
图1-2 模拟系统框图
调制在通信系统中具有十分重要的作用。
一方面,通过调制可以把基带信号的频谱搬移到所希望的位置上去,从而将调制信号转换成适合于信道传输或便于信道多路复用的已调信号。
另一方面,通过调制可以提高信号通过信道传输时的抗干扰能力,同时,它还和传输效率有关。
不同的调制方式产生的已调信号的带宽不同,因此调制影响传输带宽的利用率。
可见,调制方式往往决定一个通信系统的性能。
在本仿真的过程中我们选择用调频调制方法进行调制。
在本仿真的过程中我们选择用同步解调方法进行解调。
1.2 FM调制模型的建立
为基带调制信号,设调制信号为
m(t)=cos(2*pi*fm*t) 公式(1-1)
设正弦载波为
c(t)=cos(2*pi*fc*t) 公式(1-2)
信号传输信道为高斯白噪声信道,其功率为。
在调制时,调制信号的频率去控制载波的频率的变化,载波的瞬时频偏随调制信号成正比例变化,即:
公式(1-3)
式中,为调频灵敏度。
这时相位偏移为
公式(1-4)
公式(1-5)
则可得到调频信号为
公式(1-6)
FM 的频谱的计算:
公式(1-7)
公式(1-8)
公式(1-9)
可以看出FM 的频谱与的值有关。
其信号带宽为
公式(1-10)
FM 的频谱理论值无穷大,但可根据调频指数分为宽带调频和窄带调频。
1.3 FM解调模型的建立
调制信号的解调分为相干解调和非相干解调两种。
相干解调即同步解调,仅仅适用于窄带调频信号,且需同步信号,故应用围受限;而非相干解调不需同步信号,且对于NBFM信号和WBFM信号均适用,因此是FM系统的主要解调方式。
但在本仿真的过程中我们对窄带信号进行调制与解调,选择用同步解调方法进行解调。
图2-1FM同步解调解调模型
限幅器输入为已调频信号和噪声,限幅器是为了消除接收信号在幅度上可能出现的畸变;带通滤波器的作用是用来限制带外噪声,使调频信号顺利通过。
鉴频器中的乘法器把调频信号与相干载波相乘,然后由低通滤波器和微分器取出调制信号。
解调过程分析
由上述公式(2-6)知道输入调频信号为
设相干载波为
c(t)=cos(2*pi*fc*t) 公式(1-11)
乘法器的作用是把调频信号变成有多种频率的波的混合,乘法器输出为
公式(1-12)
经低通滤波器后取出器低频分量为
公式(1-13)
在经过微分器,即得出解调出的基带信号:
公式(1-14)
相干解调可以恢复出原来的基带信号,而且要求本地载波与调制载波同步,否则会使解调信号失真。
2 2FM调制解调系统方案
2.1调制模块设计
根据FM调制的原理,了解MATLAB软件中的仿真工具Smulink中各个模块的功能后,根据调制的原理框图,使用SineWave产生调制信号,用幅度为3 ,频率为100Hz,直接用FMModulatorPassband进行调制,设置载波频率为 300Hz,频率偏移为50Hz。
在Smulink文件中调用相关模块,连线后对信号进行调制产生FM调制信号。
2.2解调模块设计
利用FMDemodulatorPassband对调制的FM信号进行解调。
根据解调的原理框图,经调制后的信号经信道中加高斯白噪声和不加噪声的信号进行解调,并把两个解调出来的波形进行对比。
在Smulink中调用相应的模块,连接各个模块,设置各个模块的参数,并用scope显示仿真波形。
3FM调制解调系统设计
3.1各单元模块功能介绍与电路设计
仿真过程中用SineWave产生调制信号,连接一个零阶保持器然后直接送入FMModulatorPassband进行调制,把调制信号直接送到FMDemodulatorPassband进行解调,再把调制信号加高斯噪声后送入FMDemodulatorPassband解调,观察解调后的频谱。
图3.1和图3.2即为调制与解调电路。
图3.1 调制模块
图3.2 解制模块
3.2 元器件属性介绍
1.正弦波发生器,用于产生调制信号,其参数设置如图3.3所示:
图3.3调制信号参数设置
2.频率调制器,用于FM频率调制,具体参数设置如图3.4所示:
图3.4调制模块参数设置
3. 噪声发生器,调制信号在实际的信道中传输的时候会加入噪声,所以在已调信号中加入高斯噪声来模拟实际情况,具体参数设置如图3.5所示:
图3.5高斯噪声发生器参数设置
4.解调器,把已调信号送到FMDemodulatorPassband进行解调,具体设置参数如图3.6所示:
图3.6低通滤波器参数的设置
5.信号频谱仪。
分析调制信号、已调信号、噪声信号、加噪声已调信号和解调信号的频谱,属性设置如图3.7所示。
图3.7比较运算模块参数的设置
6.示波器模块,用来显示仿真过程号的波形,可通过修改属性中Numberofaxes的值设置输入信号的个数。
3.3系统整体电路图
图3.8 系统整体电路图
4 FM调制解调系统仿真和调试
4.1 仿真工具介绍
4.1.1 MATLAB
MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以与数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大面对科学计算、可视化以与交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以与非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以与必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
4.1.2 Simulink
Simulink是MATLAB中的一种可视化仿真工具, 是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制与数字信号处理的建模和仿真中。
对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。
.
构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。
Simulink与MATLAB紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以与信号参数和测试数据的定义。
其特点为:
1、丰富的可扩充的预定义模块库。
2、交互式的图形编辑器来组合和管理直观的模块图。
3、以设计功能的层次性来分割模型,实现对复杂设计的管理。
4、通过ModelExplorer 导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码。
5、提供API用于与其他仿真程序的连接或与手写代码集成
6、使用EmbeddedMATLAB™ 模块在Simulink和嵌入式系统执行中调用MATLAB算法。
7、使用定步长或变步长运行仿真,根据仿真模式(Normal,Accelerator,RapidAccelerator)来决定以解释性的方式运行或以编译C代码的形式来运行模型。
8、图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为。
9、可访问MATLAB从而对结果进行分析与可视化,定制建模环境,定义信号参数和测试数据模型分析和诊断工具来保证模型的一致性,确定模型中的错误。
4.2 系统仿真实现
4.2.1 FM调制仿真波形
图4.1信源信号
图4.2已调信号与信源信号
图4.3信源频谱
图4.4已调信号频谱
4.2.2FM解调仿真波形
图4.5高斯噪声频谱
图4.6加噪声已调信号频谱
图4.7解调信号频谱
图4.8加噪声解调信号频谱
4.3解调信号频谱分析
调制前信号频谱与解调后信号频谱比较:
图4.9频谱比
调制后的信号频谱与调制器前的相似
图4.10调制信号与解调后的信号
由上图通过比较解调出来的信号与调制前的信号,可知二者信号大致一样,但是解调出来的有相位的偏移,但是不影响信号的质量。
5MATLAB代码仿真
5.1程序流程图
图5.1程序流程图
5.2 程序代码
%FM调制解调系统.m
%频率调制与解调的Matlab演示源程序
%电信1006班 石勇
%*****************初始化******************
echooff
closeall
clearall
clc
%****************FM调制*******************
dt=0.001; %设定时间步长
t=0:
dt:
1.5; %产生时间向量
am=5;%设定调制信号幅度
fm=5;%设定调制信号频率
mt=am*cos(2*pi*fm*t);%生成调制信号
fc=50;%设定载波频率
ct=cos(2*pi*fc*t);%生成载波
kf=10;%设定调频指数
int_mt
(1)=0;
fori=1:
length(t)-1
int_mt(i+1)=int_mt(i)+mt(i)*dt;%求信号m(t)的积分
end %调制,产生已调信号
sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt);%调制信号
%*************添加高斯白噪声**************
sn1=10;%设定信躁比(小信噪比)
sn2=30;%设定信躁比(大信噪比)
sn=0;%设定信躁比(无信噪比)
db=am^2/(2*(10^(sn/10)));%计算对应的高斯白躁声的方差
n=sqrt(db)*randn(size(t));%生成高斯白躁声
nsfm=n+sfm;%生成含高斯白躁声的已调信号(信号通
%过信道传输)
%****************FM解调*******************
fori=1:
length(t)-1%接受信号通过微分器处理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;
end
diff_nsfmn=abs(hilbert(diff_nsfm));%hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn-zero;
%**************时域到频域转换**************
ts=0.001;%抽样间隔
fs=1/ts;%抽样频率
df=0.25;%所需的频率分辨率,用在求傅里叶变换
%时,它表示FFT的最小频率间隔
%*****对调制信号m(t)求傅里叶变换*****
m=am*cos(2*pi*fm*t);%原调信号
fs=1/ts;
ifnargin==2
n1=0;
else
n1=fs/df;
end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2)));
M=fft(m,n);
m=[m,zeros(1,n-n2)];
df1=fs/n;%以上程序是对调制后的信号u求傅里变换
M=M/fs;%缩放,便于在频铺图上整体观察
f=[0:
df1:
df1*(length(m)-1)]-fs/2;%时间向量对应的频率向量
%************对已调信号u求傅里变换**********
fs=1/ts;
ifnargin==2
n1=0;
else
n1=fs/df;
end
n2=length(sfm);
n=2^(max(nextpow2(n1),nextpow2(n2)));
U=fft(sfm,n);
u=[sfm,zeros(1,n-n2)];
df1=fs/n;%以上是对已调信号u求傅里变换
U=U/fs;%缩放
%***************显示程序******************
disp('按任意键可以看到原调制信号、载波信号和已调信号的曲线')
pause
%**************figure
(1)******************
figure
(1)
subplot(3,1,1);plot(t,mt); %绘制调制信号的时域图
xlabel('时间t');
title('调制信号的时域图');
subplot(3,1,2);plot(t,ct); %绘制载波的时域图
xlabel('时间t');
title('载波的时域图');
subplot(3,1,3);
plot(t,sfm); %绘制已调信号的时域图
xlabel('时间t');
title('已调信号的时域图');
%******************************************
disp('按任意键可以看到原调制信号和已调信号在频域的图形')
pause
%************figure
(2)*********************
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)******************
figure(3)
subplot(3,1,1);plot(t,mt); %绘制调制信号的时域图
xlabel('时间t');
title('调制信号的时域图');
subplot(3,1,2);plot(t,sfm); %绘制已调信号的时域图
xlabel('时间t');
title('无噪声条件下已调信号的时域图');
nsfm=sfm;
fori=1:
length(t)-1%接受信号通过微分器处理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;
end
diff_nsfmn=abs(hilbert(diff_nsfm));%hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn-zero;
subplot(3,1,3); %绘制无噪声条件下解调信号的时域图
plot((1:
length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');
xlabel('时间t');
title('无噪声条件下解调信号的时域图');
%*****************************************
disp('按任意键可以看到原调制信号、小信噪比高斯白噪声条件下已调信号和解调信号已调信号的曲线')
pause
%**************figure(4)******************
figure(4)
subplot(3,1,1);plot(t,mt); %绘制调制信号的时域图
xlabel('时间t');
title('调制信号的时域图');
db1=am^2/(2*(10^(sn1/10)));%计算对应的小信噪比高斯白躁声的方差
n1=sqrt(db1)*randn(size(t)); %生成高斯白躁声
nsfm1=n1+sfm;%生成含高斯白躁声的已调信号(信号通
%过信道传输)
fori=1:
length(t)-1%接受信号通过微分器处理
diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;
end
diff_nsfmn1=abs(hilbert(diff_nsfm1));%hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn1-zero;
subplot(3,1,2);
plot(1:
length(diff_nsfm),diff_nsfm);%绘制含小信噪比高斯白噪声已调信号的时域图
xlabel('时间t');
title('含小信噪比高斯白噪声已调信号的时域图');
subplot(3,1,3);%绘制含小信噪比高斯白噪声解调信号的时域图
plot((1:
length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');
xlabel('时间t');
title('含小信噪比高斯白噪声解调信号的时域图');
%*****************************************
disp('按任意键可以看到原调制信号、大信噪比高斯白噪声条件下已调信号和解调信号已调信号的曲线')
pause
%**************figure(5)******************
figure(5)
subplot(3,1,1);plot(t,mt); %绘制调制信号的时域图
xlabel('时间t');
title('调制信号的时域图');
db1=am^2/(2*(10^(sn2/10)));%计算对应的大信噪比高斯白躁声的方差
n1=sqrt(db1)*randn(size(t));%生成高斯白躁声
nsfm1=n1+sfm;%生成含高斯白躁声的已调信号(信号通过信道传输)
fori=1:
length(t)-1%接受信号通过微分器处理
diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;
end
diff_nsfmn1=abs(hilbert(diff_nsfm1));%hilbert变换,求绝对值得到瞬时幅度(包
%络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn1-zero;
subplot(3,1,2);
plot(1:
len
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于matlab simulink的fm调制解调 基于 matlab simulink fm 调制 解调