基于MATLABSIMULINK的FM调制解调.docx

上传人:b****3 文档编号:5468512 上传时间:2022-12-16 格式:DOCX 页数:22 大小:841.16KB
下载 相关 举报
基于MATLABSIMULINK的FM调制解调.docx_第1页
第1页 / 共22页
基于MATLABSIMULINK的FM调制解调.docx_第2页
第2页 / 共22页
基于MATLABSIMULINK的FM调制解调.docx_第3页
第3页 / 共22页
基于MATLABSIMULINK的FM调制解调.docx_第4页
第4页 / 共22页
基于MATLABSIMULINK的FM调制解调.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于MATLABSIMULINK的FM调制解调.docx

《基于MATLABSIMULINK的FM调制解调.docx》由会员分享,可在线阅读,更多相关《基于MATLABSIMULINK的FM调制解调.docx(22页珍藏版)》请在冰豆网上搜索。

基于MATLABSIMULINK的FM调制解调.docx

基于MATLABSIMULINK的FM调制解调

1FM调制与解调原理

1.1模拟通信系统的简介

通信的目的是传输信息。

通信系统的作用就是将信息从信息源发送到一个或多个目的地。

通信系统对信号进行两种基本变换:

第一、要把发送的消息要变换成原始电信号。

第二、将原始电信号调制到频率较高的载频上,使其频带适合信道的传输。

调制前和解调后的信号称为基带信号,已调信号也称为频带信号。

对于任何一个通信系统,均可视为由发送端、信道和接收端三大部分组成(如图2-1所示)。

 

图1-1通信系统一般模型

信息源(简称信源)的作用是把各种信息转换成原始信号。

根据消息的种类不同信源分为模拟信源和数字信源。

发送设备的作用产生适合传输的信号,即使发送信号的特性和信道特性相匹配,具有抗噪声的能力,并且具有足够的功率满足原距离传输的需求。

信息源和发送设备统称为发送端。

发送端将信息直接转换得到的较低频率的原始电信号称为基带信号。

通常基带信号不宜直接在信道中传输。

因此,在通信系统的发送端需将基带信号的频谱搬移(调制)到适合信道传输的频率范围内进行传输。

这就是调制的过程。

信号通过信道传输后,具有将信号放大和反变换功能的接收端将已调制的信号搬移(解调)到原来的频率范围,这就是解调的过程。

信号在信道中传输的过程总会受到噪声的干扰,通信系统中没有传输信号时也有噪声,噪声永远存在于通信系统中。

由于这样的噪声是叠加在信号上的,所以有时将其称为加性噪声。

噪声对于信号的传输是有害的,它能使模拟信号失真。

在本仿真的过程中我们假设信道为高斯白噪声信道。

模拟系统框图如下图1-2所示:

图1-2模拟系统框图

调制在通信系统中具有十分重要的作用。

一方面,通过调制可以把基带信号的频谱搬移到所希望的位置上去,从而将调制信号转换成适合于信道传输或便于信道多路复用的已调信号。

另一方面,通过调制可以提高信号通过信道传输时的抗干扰能力,同时,它还和传输效率有关。

不同的调制方式产生的已调信号的带宽不同,因此调制影响传输带宽的利用率。

可见,调制方式往往决定一个通信系统的性能。

在本仿真的过程中我们选择用调频调制方法进行调制。

在本仿真的过程中我们选择用同步解调方法进行解调。

1.2FM调制模型的建立

为基带调制信号,设调制信号为

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.3FM解调模型的建立

调制信号的解调分为相干解调和非相干解调两种。

相干解调即同步解调,仅仅适用于窄带调频信号,且需同步信号,故应用范围受限;而非相干解调不需同步信号,且对于NBFM信号和WBFM信号均适用,因此是FM系统的主要解调方式。

但在本仿真的过程中我们对窄带信号进行调制与解调,选择用同步解调方法进行解调。

图2-1FM同步解调解调模型

限幅器输入为已调频信号和噪声,限幅器是为了消除接收信号在幅度上可能出现的畸变;带通滤波器的作用是用来限制带外噪声,使调频信号顺利通过。

鉴频器中的乘法器把调频信号与相干载波相乘,然后由低通滤波器和微分器取出调制信号。

解调过程分析

由上述公式(2-6)知道输入调频信号为

设相干载波为

c(t)=cos(2*pi*fc*t)公式(1-11)

乘法器的作用是把调频信号变成有多种频率的波的混合,乘法器输出为

公式(1-12)

经低通滤波器后取出器低频分量为

公式(1-13)

在经过微分器,即得出解调出的基带信号:

公式(1-14)

相干解调可以恢复出原来的基带信号,而且要求本地载波与调制载波同步,否则会使解调信号失真。

 

22FM调制解调系统方案

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系统整体电路图

4FM调制解调系统仿真和调试

4.1仿真工具介绍

4.1.1MATLAB

MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

4.1.2Simulink

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.1FM调制仿真波形

图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:

length(diff_nsfm1),diff_nsfm1);%绘制含大信噪比高斯白噪声已调信号

%的时域图

xlabel('时间t');

title('含大信噪比高斯白噪声已调信号的时域图');

subplot(3,1,3);%绘制含大信噪比高斯白噪声解调信号

%的时域图

plot((1:

length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');

xlabel('时间t');

title('含大信噪比高斯白噪声解调信号的时域图');

%******************结束*******************

5.3程序结果

图5.2调制与解调信号比较

图5.3含不同信噪比高斯白噪声的信号比较

图5.4调制信号与已调信号频谱比较

以上是用Matlab做的FM调制与解调的图与用simulink快做的相同,调制借条的结果都很理想。

 

6心得体会

参考文献

[1]孙屹,吴磊编著.Simulink通信仿真开发手册.国防工业出版社,2003

[2]徐明远.MATLAB仿真在通信与电子工程中的应用.西安电子科技大学出版社,2005

[3]王兴亮.数字通信原理与技术(第二版).西安电子科技大学出版社,2006

[4]王秉钧,王少勇,王彦杰.通信原理基本教程.北京.北京邮电大学出版社,2005

[5]王兴亮编著.数字通信原理与技术(第二版).西安电子科技大学出版社,2006

[6]樊昌信,曹丽娜.通信原理(第6版).国防工业出版社,2009.5

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1