基于Matlab的FM仿真实现.docx
《基于Matlab的FM仿真实现.docx》由会员分享,可在线阅读,更多相关《基于Matlab的FM仿真实现.docx(28页珍藏版)》请在冰豆网上搜索。
基于Matlab的FM仿真实现
摘要
本次设计主要是以Matlab为基础平台,对FM信号进行仿真。
介绍了FM信号,及其调制和解调的基本原理,并设计M文件,分析在混入噪声环境下的波形失真,以及分析FM的抗噪声性能。
本设计的主要目的是对Matlab的熟悉和对模拟通信理论的更深化理解。
关键词:
Matlab;FM噪声
前言.2
1设计基础.3
1.1Matlab及M文件的简介3
1.2模拟调制概述4
1.2.1模拟调制系统各个环节分析5
1.2.2模拟调制的意义6
2FM基本原理与实现7
2.1FM的基本原理7
2.1.1调制7
2.1.2解调8
2.2FM的实现8
2.2.1FM调制的实现8
2.2.2FM解调的实现9
2.3调频系统的抗噪声性能10
2.3.1高斯白噪声信道特性10
3FM的仿真实现与分析14
3.1未加噪声的FM解调实现14
3.2叠加噪声时的FM解调16
总结20
致谢21
参考文献22
附录23
、八
前言
通信按照传统的理解就是信息的传输。
在当今高度信息化的社会,信息和通信已成为现代社会的命脉。
信息作为一种资源,只有通过广泛传播与交流,才能产生利用价值,促进社会成员之间的合作,推动社会生产力的发展,创造出巨大的经济效益。
而通信作为传输信息的手段或方式,与传感技术、计算机技术相融合,已成为21世纪国际社会和世界经济发展的强大动力。
可以预见,未来的通信对人们的生活方式和社会的发展将会产生更加重大和意义深远的影响。
在通信系统中,从消息变换过来的原始信号所占的有效频带往往具有频率较低的频谱分量(例如语音信号),如果将这种信号直接在信道中进行传输,则会严重影响信息传送的有效性和可靠性,因此这种信号在许多信道中均是不适宜直接进行传输的。
在通信系统的发射端通常需要有调制过程,将调制信号的频谱搬移到所希望的位置上,使之转换成适于信道传输或便于信道多路复用的已调信号;而在接收端则需要有解调过程,以恢复原来有用的信号。
调制解调方式常常决定了一个通信系统的性能。
随着数字化波形测量技术和计算机技术的发展,可以使用数字化方法实现调制与解调过程。
调制在通信系统中具有重要的作用。
通过调制,不仅可以进行频谱搬移,把调制信号的频谱搬移到所希望的位置上,从而将调制信号转换成适合于信道传输或便于信道多路复用的已调信号,而且它对系统的传输有效性和传输可靠性有着很大的影响。
调制方式往往决定了一个通信系统的性能。
调制技术是指把基带信号变换成传输信号的技术。
基带信号是原始的电信号,一般是指基本的信号波形,在数字通信中则指相应的电脉冲。
在无线遥测遥控系统和无线电技术中调制就是用基带信号控制高频载波的参数(振幅、频率和相位),使这些参数随基带信号变化。
用来控制高频载波参数的基带信号称为调制信号。
未调制的高频电振荡称为载波(可以是正弦波,也可以是非正弦波,如方波、脉冲序列等)。
被调制信号调制过的高频电振荡称为已调波或已调信号。
已调信号通过信道传送到接收端,在接收端经解调后恢复成原始基带信号。
1设计基础
1.1Matlab及M文件的简介
美国Mathworks公司于1967年推出了矩阵实验室“MatrixLaboratory”(缩写为Matlab),这就是Matlab最早的雏形。
开发的最早的目的是帮助学校的老师和学生更好的授课和学习。
从Matlab诞生开始,由于其高度的集成性及应用的方便性,在高校中受到了极大的欢迎。
由于它使用方便,能非常快的实现科研人员的设想,极大的节约了科研人员的时间,受到了大多数科研人员的支持,经过一代代人的努力,目前已发展到了8.0版本。
Matlab是一种解释性执行语言,具有强大的计算、仿真、绘图等功能。
由于它使用简单,扩充方便,尤其是世界上有成千上万的不同领域的科研工作者不停的在自己的科研过程中扩充Matlab的功能,使其成为了巨大的知识宝库。
可以毫不夸张的说,哪怕是你真正理解了一个工具箱,那么就是理解了一门非常重要的科学知识。
科研工作者通常可以通过Matlab来学习某个领域的科学知识,这就是Matlab真正在全世界推广开来的原因。
目前的Matlab版本已经可以方便的设计漂亮的界面,它可以像VB等语言一样设计漂亮的用户接口,同时因为有最丰富的函数库
(工具箱),所以计算的功能实现也很简单,进一步受到了科研工作者的欢迎。
另外,,Matlab和其他高级语言也具有良好的接口,可以方便的实现与其他语言的混合编程,进一步拓宽了Matlab的应用潜力。
可以说,Matlab已经也很有必要成为大学生的必修课之一,掌握这门工具对学习各门学科有非常重要的推进作用。
Matlab由一系列工具组成。
这些工具方便用户使用Matlab的函数和文件,其中许多工具采用的是图形用户界面。
包括Matlab桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
他包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用Matlab的编程工作量会大大减少。
Matlab的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
Matlab自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作
图。
可用于科学计算和工程绘图。
新版本的Matlab对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),Matlab同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,Matlab也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的Matlab还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
Matlab对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
目前,Matlab已经把工具箱延伸到了科学研究和工程应用的诸
多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
所谓的M文件是由Matlab语句(命令或函数)构成的ASCII码文本文件,文件名必须以“.m”为扩展名。
主要有两种形式:
命令文件(ScriptFile)和函数文件(FunctionFile)。
命令文件与批处理文件相似,它是Matlab命令或函数的组合,没有输入输出参数,执行时只需在命令窗口中键入文件名回车即可:
而函数文件是以一条function语句作为引导。
即文件
的第一行为:
function[返回参数1,返回参数2,…]=函数名(输入参数1,输入参数2,…)这一行的有无是区分命令文件与函数文件的重要标志。
函数文件可以接受输入变量,还可以返回输出变量,执行时需在命令窗口中以固定格式调用函数方可。
其主要用处是利用Matlab语句构造一个新的函数。
M文件的编写规则:
(1)在编写函数式M文件时,M文件保存的文件名必须与函数名相同。
(2)脚本式M文件没有输入和输出参数,而函数式M文件有输入和输出参数,它根据输入输出参数提供的信息,对数据进行加工处理,然后通过输出函数返回处理结果。
(3)函数可以没有或有多个输入变量,而且可以没有或有多个输出变量。
函数nargin和nargout分别包含输入和输出变量的个数。
(4)函数M文件中的所有变量除了特别声明的以外,都是局部变量。
局部变量在自己专有的空间中工作,全局变量则在MATLAB内共享。
编写完M文件后,保存文件就可以进行M文件的调试,调试过程中设置断点即可查看各变量的值。
1.2模拟调制概述
大多数待传输的信号具有较低的频率成分。
称之为基带信号,如果将基带信号直接传输,称为基带传输。
但是,很多信道不适宜进行基带信号的传输,或者说,如果基带信号在其中传输,会产生很大的衰减和失真。
因此,需要将基带信号进行调制,变换为适合信道传输的形式,调制是让基带信号m(t)去控制载波的某个(或某些)参数,使该参数按照信号m(t)的规律变化的过程。
载波可以是正弦波,也可以是脉冲序列,以正弦信号作为载波的调制称连续波(CW)调制。
本次综合训练以FM为例子,进一步介绍模拟调制。
对于连续波调制,已调信号可表示为
Sm(t)二A(t)cos[t二(t)](1.1)
它由振幅A(t)、角频率3和相位0(t)3个参数构成。
控制3个参数中的任何一个都会实现调制,使之成为携带信息的信号。
连续波调制分为幅度调制,频率调制和相位调制。
频率调整和相位调制都是使载波的相角发生变化,因此两者又统称为角度调制。
调制在通信系统中具有十分重要的作用,通过调制,可对消息信号的频谱搬移,使已调信号适合信道传输的要求,同时也有利于实现信道复用。
例如,将多路基带信号调制到不同的载频上进行并行传输,实现信道的频分复用。
调制方式往往对通信系统的性能有很大的影响。
如果m(t)是连续信号,并且使某个参
数连续地与m(t)相对应,称为模拟调制。
1.2.1模拟调制系统各个环节分析
典型的模拟通信系统由模拟信源、调制解调、信道及受信者等环节构成,其框图如图1.1所示,模拟调制是模拟通信系统的重要组成部分,模拟调制系统的输入端是经模拟信息源变换后的基带信号。
对模拟调制系统进行仿真时,我们并不关心基带信号的波型,因此,我们在仿真的时候可以给模拟调制系统直接输入模拟基带信号。
图1.1系统框图
模拟信息源(简称信源)的作用是把各种信息转换成原始电信号,即基带信号。
通常基带信号不宜直接在信道中传输。
因此,在通信系统的发送端需将基带信号的频谱搬移(调制)到适合信道传输的频率范围内进行传输。
这就是调制的过程。
信道是一种物理媒质,用来将来自发送端的信号传送到接收端。
在无线信道中,信道可以是自由空间;在有线信道中,可以是明线、电缆和光纤。
信道既给信号以通路,也对信号产生各种干扰和噪声。
信号通过信道传输后,具有将信号放大和反变换功能的接收端将已调制的信号搬移(解调)到原来的频率范围,这就是解调的过程。
信号在信道中传输的过程总会受到噪声的干扰,通信系统中没有传输信号时也有噪声,噪声永远存在于通信系统中。
由于这样的噪声是叠加在信号上的,所以有时将其称为加性噪声。
噪声对于信号的传输是有害的,它能使模拟信号失真。
1.2.2模拟调制的意义
模拟调制是指用模拟基带信号对载波的某些参量进行控制,使载波的这些参量随基带信号的变化而变化。
调制在通信系统中具有十分重要的作用。
一方面,通过调制可以把基带信号的频谱搬移到所希望的位置上去,从而将调制信号转换成适合于信道传输或便于信道多路复用的已调信号。
另一方面,通过调制可以提高信号通过信道传输时的抗干扰能力,同时,它还和传输效率有关。
具体地讲,不同的调制方式产生的已调信号的带宽不同,因此调制影响传输带宽的利用率。
可见,调制方式往往决定一个通信系统的性能。
在本仿真的过程中我们选择用调频调制方法进行调制。
调制过程是一个频谱搬移的过程,它是将低频信号的频谱搬移到载频位置。
而解调是将位于载频的信号频谱再搬回来,并且不失真地恢复出原始基带信号。
2FM基本原理与实现
2.1FM的基本原理
2.1.1调制
频率调制是利用载波的频率变化来传递模拟信息,而振幅保持不变。
也就是说,载波信号的频率随着基带调制信号的幅度变化而改变。
调制信号幅度变大(或变小)时,载波信号的频率也变大(或变小),调制信号幅度变小时,载波信号的频率也变小(或变大)。
在FM中,FM信号的瞬时频偏与调制信号m(t)成正比。
因此FM的信号的时域表达式为:
SFM(t)=ACOS[''c':
',J(t)]
(2.1)式中:
A为载波的恒定振幅;[3ct+©(t)]为信号的瞬时相位,记为9(t);©(t)为相对于载波相位3ct的瞬时相位偏移;d[3ct+©(t)]/dt是信号的瞬时角频率,记为3(t);而d©(t)/dt称为相对于载频3c的瞬时频偏。
所谓频率调制(FM),是指瞬时频率偏移随调制信号m(t)成比例变化,即
d:
:
』(t)
Kfm(t)
(2.2)
dt
式中:
Kf为调频灵敏度(rad/(s.V))。
这时相位偏移为:
(2.3)
门(t)=Kfm(t)d.
因此,上式可改写为
Sfm⑴二Acos[,ctKfm.d]
(2.4)
2.1.2解调
设输入调频信号为
图2.2无噪声解调信号
2.2FM的实现
2.2.1FM调制的实现
调频主要有两种方法:
直接调频和间接调频。
1)直接调频法
调频就是用调制信号控制载波的频率变化。
直接调频就是用调制信号直接去控制载波振荡器的频率,使其按调制信号的规律线性的变化。
可以由外部电压控制震荡频率的振荡器叫做压控振荡器器。
每个压控振荡器自身就是一个FM调制器,因为它的振荡频率正比于输入控制电压,即
⑷i(t)=+Kfm(t)住硏
若用调制信号作控制电压信号,就能产生FM波。
若被控制的振荡器是LC振荡器,则只需控制振荡回路的某个电抗元件(L或C),使其参数随调制信号变化。
目前常用的电抗元件是变容二极管。
用变容二极管实现直接调频,由于电路简单,性能良好,已成为目前最广泛采用的调频电路之一。
在直接调频法中,振荡器与调制器合二为一。
这种方法的主要优点是在实现线性调频的要求下,可以获得较大的频偏;其主要缺点是频率稳定度不高。
m(t)SFM(t)
'VCO'
图2.3直接调频框图
2)间接调频法
间接调频法是先将调制信号积分,然后对载波进行调相,即可产生一个NBFM信号,再
经n次倍频器得到WBFM信号,这种产生WBFM信号的方法也称为阿姆斯特朗法。
图2.4间接调频框图
222FM解调的实现
调频信号的解调也分为相干解调和非相干解调。
相干解调仅适用于NBFM信号,而非相
干解调对NBFM信号和WBFM信号均适用。
1)非相干解调
非相干解调器由限幅器、鉴频器和低通滤波器等组成,其方框图如图所示。
限幅器输入为已调频信号和噪声,限幅器是为了消除接收信号在幅度上可能出现的畸变;带通滤波器的作用是用来限制带外噪声,使调频信号顺利通过。
鉴频器中的微分器把调频信号变成调幅调频波,然后由包络检波器检出包络,最后通过低通滤波器取出调制信号。
图2.5非相干解调框图
2)相干解调
由于NBFM信号可分解成同相分量与正交分量之和,因而可以采用相干解调法进行解调,
如图
c(t)
2.3调频系统的抗噪声性能
2.3.1高斯白噪声信道特性
设正弦波通过加性高斯白噪声信道后的信号为
r(t)二Acos(,ctJn(t)(2.10)
其中,白噪声n(t)的取值的概率分布服从高斯分布。
MATLAB本身自带了标准高斯分布的内部函数randn。
randn函数产生的随机序列服从均值为m=0,方差二2=1的高斯分布。
正弦波通过加性高斯白噪声信道后的信号为
(2.11)
r(t)=Acos(■ct二)n(t)
故其有用信号功率为
(2.12)
噪声功率为
(2.13)
(2.14)
信噪比SN满足公式
B=10log10(SN)
则可得到公式
我们可以通过这个公式方便的设置高斯白噪声的方差。
-5
00.511.5
时间t
无噪声条件下已调信号的时域图
图2.7无噪声条件下已调信号的时域图
0叫3芒侧珂』冷麗血4卅仏小种a.H护%/阀厲叶站如弘
-2011
00.511.5
时间t
图2.8含小信噪比高斯白噪声已调信号的时域图
-5
0
0
0.5
1
1.5
5000
-5000
0
0
500
1000
1500
时间t
含大信噪比高斯白噪声已调信号的时域图
-5
0
0
0.5
时间t
含大信噪比高斯白噪声解调信号的时域图
\
\J
1.5
图2.9含大信噪比高斯白噪声已调信号的时域图
从前面可知,调频信号的解调有相干解调和非相干解调两种。
相干解调仅适用于窄带调
频信号,且需同步信号;而非相干解调适用于窄带和宽带调频信号,而且不需同步信号,因而是FM系统的主要解调方式,所以这里仅仅讨论非相干解调系统的抗噪声性能,其分析模
型如图2.10所示。
1
L-
解调器
图2.10调频系统抗噪声性能分析模型
图中带通滤波器的作用是抑制信号带宽以外的噪声。
n(t)是均值为零,单边功率谱密度
为nc的高斯白噪声,经过带通滤波器后变为窄带高斯噪声m(t)。
限幅器是为了消除接收信号在幅度上可能出现的畸变。
设调频信号为
t
SFM
(t)=Acos(ctKfm()d)
(2.16)
故其输入功率为
A2
Si
2
(2.17)
输入噪声功率为
Ni二n°BFM
(2.18)
因此输入信噪比为
2
SiA
(2.19)
Ni2BFM
在大信噪比条件下,信号和噪声的相互作用可以忽略,这时可以把信号和噪声分开来算,
这里,我们可以得到解调器的输出信噪比
222
So3AKfm(t)
3
No8二n°fm(2.20)
上式中,a为载波的振幅,Kf为调频器灵敏度,fm为调制信号m(t)的最高频率,no为噪声单边功率谱密度。
我们如若考虑m(t)为单一频率余弦波时的情况,可得到解调器的制度增益为
S°/N。
32A2/2
Gfmmf
SUNi2n0fm(2.21)
考虑在宽带调频时,信号带宽为
Bfm=2(mf•1)fm二2C:
ffm)(2・22)
则可以得到
2
GFM=3mf(mfT)(2・23)
可以看出,大信噪比时宽带调频系统的信噪比增益是很高的,它与调频指数的立方成正比。
可见,加大调频指数mf,可使调频系统的抗噪声性能迅速改善。
3FM的仿真实现与分析
3.1未加噪声的FM解调实现
(1)参数设置
Fs=1000;Fc=200;
是对信号参数的设置,采样频率为1000Hz,载波频率为200Hz,通常在此参数设置中遵循一个规律,即Fs>2Fc,而1000Hz与200Hz的选择也正是遵循了此规律。
(2)原始时域信号输出
X=sin(2*pi*10*t);
此语句是对原始信号的一个设定,在此表达式中可以看出,信号是频率为10Hz的正弦
波信号,经过Matlab语言编程输出原始时域波形如图3.2,在此用语句xlabel('t(s)');ylabel('x');设置横坐标为t(s),纵坐标为X。
用语句title('未调制时域信号');设置标题为未调制时域信号。
用语句axis([01-11]);设置横轴纵轴的取值范围分别为[01],[-11]。
图3.2基带信号
(3)原始频域频谱输出
a=fft(x,1024);plot(abs(a));
此语句是对原始时域信号进行傅立叶变换,从而得到它的频谱图,频谱图截图如图3.2,
在此,我们也看到了FM的时域波形与频域频谱是互为傅立叶变换的。
a=fft(x,1024);
plot(abs(a));是对Matlab里边的函数进行调用,在Matlab语言中提供我们大量现有的库函数,这些函数可以直接的调用,不需要自己在自行编程。
掌握了库函数的调用对于我们来说具有重大的意义,在Matlab编程中有了很大的方便。
(4)FM解调时域波形输出
y=modulate(x,Fc,Fs,'FM');z=demod(yFc,Fs,'FM');
第一条语句y=modulate(x,Fc,Fs,'FM')是对原始信号进行调制,因为解调的前提是对调制后的信号进行解调,故先将原始信号调制,而第二条语z=demod(yFc,Fs,'FM');则是对调制
后的信号进行解调,这两个函数均是Matlab语言中的原有函数,所以这里直接调用,如果在没有的情况下,就需要自己根据基本公式自行编程。
这两个语句只是个样式,内容不是一成不变的,比如里边的“x和“y就是个自变量,可以根据自己所定义的任意其它变量替代,运行程序得到解调后时域波形如图3.3。
图3.3未加噪声解调信号
(5)FM解调频域频谱输出
在对此时域波形进行傅立叶变换,仍然用a=fft(x,1024);plot(abs(b));语句进行变换,
变换后的结果如图3.3,与原始波形和频谱进行比较,出现了一些失真情况,可能是参数设置有些出入,但波形的形状大体与原来波形一致。
3.2叠加噪声时的FM解调
(1)用Matlab语言进行噪声叠加
title('ModulatedSignal');k=(norm(yF2)/length(y);
s=sqrt(k)/1O0noise=s*randn(1,length(y));r=y+noise;
以上几个编程语句是实现对调制信号加入噪声,此语句也可以任意改变其信噪比,以实现大小噪声的变换,用此分析大噪声和小噪声对解调的不同影响,由于噪声对相位有影响,又经鉴频器的非线性作用,计算机分析很复杂,因此只考虑两种极端情况,即大信噪比和小信噪比的输入,输出信噪比和调制增益。
(2)输出有噪声时的时域波形(大信噪比)
(3)
在大信噪比情况下:
解调器输入端的信号: