基于simulink的gmsk仿真.docx
《基于simulink的gmsk仿真.docx》由会员分享,可在线阅读,更多相关《基于simulink的gmsk仿真.docx(20页珍藏版)》请在冰豆网上搜索。
基于simulink的gmsk仿真
专业课程设计报告
题目:
基于Matlab的基带GMSK的仿真研究
姓名:
陈国强
专业:
通信工程
班级学号:
09042112
同组人:
指导老师:
夏思满
南昌航空大学信息工程学院
2012年6月20日
专业课程设计任务书
2011-2012学年第2学期 第17周-20周
题目
基于Matlab的基带GMSK的仿真研究
内容及要求
设计要求:
(1)掌握GMSK的原理和Simulink仿真基本方法;
(2)通过SIMULINK对BT=0.3的GMSK调制解调系统进行仿真;
(3)观察调制信号和已调信号波形;
(4)改变BT参数,分析调制性能和BT参数的关系。
进度安排
17周:
查找资料,进行系统软件方案设计;
18周:
软件的分模块调试;
19周:
系统联调;
20周:
设计结果验收,报告初稿的撰写。
学生姓名:
指导时间2011.6~2011.7
指导地点:
E楼610室
任务下达
2011年6月13日
任务完成
2011年7月8日
考核方式
1.评阅□ 2.答辩□3.实际操作□ 4.其它□
指导教师
夏思满
系(部)主任
付崇芳
基于Matlab的基带GMSK的仿真研究
摘要:
随着现代通信技术的发展,移动通信技术得到快速发展,许多优秀的调制技术应运而生,其中高斯最小频移键控(GMSK)技术是无线通信中比较突出的一种二进制调制方法,它具有良好的功率谱特性和较好的抗干扰性能,特别适用于无线通信和卫星通信,目前,很多通信标准都采用了GMSK技术,例如,GSM,DECT等。
本文首先介绍了MSK的一般原理,接着对GMSK的调制原理和几种调制方法进行了阐述,然后,重点研究了GMSK的几种差分解调方法并进行了比较,最后用Matlab软件中的simulink进行仿真,结果表明GMSK具有包络恒定、相位连续、频道干扰小、误码率较低等优点。
关键词:
高斯最小频移键控;调制;差分解调;Matlab;simulink
第一章设计要求
1.1设计内容:
通过SIMULINK对BT=0.3的GMSK调制系统进行仿真。
1.2设计要求:
(1)掌握GMSK的原理和Simulink仿真基本方法;
(2)通过SIMULINK对BT=0.3的GMSK调制解调系统进行仿真;
(3)观察调制信号和已调信号波形;
(4)改变BT参数,分析调制性能和BT参数的关系。
第二章系统的组成及设计原理
GMSK系统主要由信号产生模块、信号调制模块、信道、信号解调模块、误码率计算模块组成。
在图形观察方面还包含频谱仪、示波器和眼图绘制模块。
本系统由信号产生模块产生一个二进制序列,再经过调制器进行调制,之后便将调制信号送入信道,经过解调器解调得到解调信号。
为计算系统误码率,则在调制器后加一误码率计算模块,计算误码率。
图2.1系统原理框图
在设计中,选用贝努力二进制序列产生器来产生器(BernoulliBinaryGenerator)产生一个二进制序列,将序列送入GMSK基带调制器模块(GMSKModulatorBaseband)中得到已调信号,再将已调信号送入一个加性高斯白噪声信道,将信噪比设为一个变量,用于绘制信噪比——误码率曲线。
解调阶段则将通过加性高斯白噪声信道的信号输入GMSK基带解调器模块(GMSKDemodulatorBaseband)中,其后接一误码率统计模块(ErrorRateCalculation),且误码率统计模块另一输入端接至源信号处。
而用示波器观察解调波形并与源信号波形进行比较。
因为已调信号是一复合信号,所以要用complextoMagnitude-Angle模块,再用示波器分别观察其幅度与相角。
另外还用频谱仪观察了已调信号的频谱。
GMSK调制
调制原理图如图2.2,图中滤波器是高斯低通滤波器,它的输出直接对VCO进行调制,以保持已调包络恒定和相位连续。
图2.2GMSK调制原理图
为了使输出频谱密集,前段滤波器必须具有以下待性:
1.窄带和尖锐的截止特性,以抑制FM调制器输入信号中的高频分量;
2.脉冲响应过冲量小,以防止FM调制器瞬时频偏过大;
3.保持滤波器输出脉冲响应曲线下的面积对应丁pi/2的相移。
以使调制指数为1/2。
前置滤波器以高斯型最能满足上述条件,这也是高斯滤波器最小移频键控(GMSK)的由来。
GMSK解调
GMSK本是MSK的一种,而MSK又是是FSK的一种,因此,GMSK检波也可以采用FSK检波器,即包络检波及同步检波。
而GMSK还可以采用时延检波,但每种检波器的误码率不同。
GMSK非相干解调原理图如图2.3,图中是采用FM鉴频器(斜率鉴频器或相位鉴频器)再加判别电路,实现GMSK数据的解调输出。
图2.3GMSK解调原理图
如图2.4为GMSK调制解调系统的SimuLink仿真模型,整个系统主要包括五大模块:
随机信号发生模块、GMSK调制模块、信道、GMSK解调模块、误码率统计模块。
所选库模块如图2.4中所示。
图2.4系统SimuLink仿真模型图
第三章系统功能模块设计
3.1信号发生模块
因为GMSK信号只需满足非归零数字信号即可,本设计中选用(BernoulliBinaryGenerator)来产生一个二进制序列作为输入信号。
图3.1GMSK信号产生器
该模块的参数设计这只主要包括以下几个。
其中probabilityofazero设置为0.5表示产生的二进制序列中0出现的概率为0.5;Initialseed为61表示随机数种子为61;sampletime为1/1000表示抽样时间即每个符号的持续时间为0.001s。
当仿真时间固定时,可以通过改变sampletime参数来改变码元个数。
例如仿真时间为10s,若sampletime为1/1000,则码元个数为10000。
3.2调制、解调模块
图3.2GMSK调制解调模块
GMSKModulatorBaseband为GMSK基带调制模块,其inputtype参数设为Bit表示表示模块的输入信号时二进制信号(0或1)。
BTproduct为0.3表示带宽和码元宽度的乘积。
其中B是高斯低通滤波器的归一化3dB带宽,T是码元长度。
当B·T=∞时,GMSK调制信号就变成MSK调制信号。
BT=0.3是GSM采用的调制方式。
Plushlength则是脉冲长度即GMSK调制器中高斯低通滤波器的周期,设为4。
Symbolprehistory表示GMSK调制器在仿真开始前的输入符号,设为1。
Phaseoffset设为0,表示GMSK基带调制信号的初始相位为0。
Samplepersymbol为1表示每一个输入符号对应的GMSK调制器产生的输出信号的抽样点数为1。
AWGNChannel为加性高斯白噪声模块,高斯白噪声信道的Mode参数(操作模式)设置为Signaltonoise(SNR),表示信道模块是根据信噪比SNR确定高斯白噪声的功率,这时需要确定两个参数:
信噪比和周期。
而将SNR参数设为一个变量xSNR是为了在m文件中编程,计算不同信噪比下的误码率,改变SNR即改变信道信噪比。
GMSKDemodulatorBaseband是GMSK基带解调器。
其前六项参数与GMSK调制器相同,并设置的值也相同。
最后一项为回溯长度TracebackLength,设为变量Tracebacklength,在m文件通过改变其值,可以观察回溯长度对调制性能的影响。
3.3误码率计算模块
图3.3误码率计算模块
Receivedely(接收端时延)设置为回溯长度加一,表示接收端输入的数据滞后发送端数据TracebackLength+1个输入数据;Computationdelay(计算时延)设为0,表示错误率统计模块不忽略最初的任何输入数据。
Computationmode(计算模式)设置为Entireframe(帧计算模块),表示错误率统计模块对发送端和接收端的所有数据进行统计。
Outputdata(输出数据)设为workspace,表示竟统计数据输出到工作区。
Variablename(变量名)则是设置m文件中要返回的参数的名称,设为xErrorRate。
3.4波形观察模块
3.4.1调制、解调信号观察模块
因为GMSK调制信号是一个复合信号,所以只用示波器(Scope)无法观察到调制波形,所以在调制信号和示波器间加一转换模块Complextomagnitude-angle将调制信号分别在幅度和相角两方面来观察。
图3.4调制信号观察模块
将Complextomagnitude-angleoutput的output参数设为magnitudeandangle,表示同时输出调制信号的幅度和相角。
示波器scope1的numberofaxes为2表明有纵坐标个数为2;timerange表示时间轴的显示范围,设为auto,表示时间轴的显示范围为整个仿真时间段。
TickTabels设为bottomaxisonly时,只显示各个纵坐标以及最下面的横坐标的标签。
图3.5解调信号观察模块
3.4.2调制信号频谱观察模块
图3.6GMSK调制信号频谱观察模块
设置了坐标Y的范围为0到7,X的范围为[-FS,FS],Amplitudescaling表示幅度计算,选择一般模式即以V为单位进行计算。
但Y坐标标记Y-axistitle设为magnitude,dB转换为dB形式。
3.4.3眼图观察模块
图3.7GMSK调制信号眼图观察模块
Offset(sample)参数表示MATLAB在开始绘制眼图之前应该忽略的抽样点的个数。
Symbolspertrace表示每径符号数,每条曲线即成为一个“径”。
Tracesdisplayed则是要显示的径数。
Newtracesperdisplay是每次重新显示的径的数目。
在系统中要求通过m文件编程绘制误码率曲线。
其程序流程图如图3.8:
图3.8程序流程图
第四章系统调试与结果分析
4.1实验调试
调试过程中主要通过MATLAB自带的Help功能来进行调试,在Help中查找所需函数的定义及形式和使用方法。
通过报错信息找出相应的错误,翻阅相关资料,与同组人经过讨论后进行修改。
在最终解决不了的情况下,请教老师,最终改正所有错误。
设计模块、参数设置及程序代码编写完成后。
先将高斯白噪声信道信噪比xSNR和GMSK解调模块的回溯长度参数设为常数,运行实验模型,观察示波器,发现没有出现基带与解调信号波形。
先检查示波器参数,发现并无问题,编译SimuLink的.mdl文件时信号发生器报错,错误信息为:
Forintegerinputs,theinputvaluesmustbeintherange+/-(M-2i-1),i=0,1,...,(M/2)-1,检查GMSK调制模块参数inputtype与GMSK解调模块output参数均设置为integer,但实际上贝努力二进制序列产生器产生的是一个由0和1组成二进制序列,与integer产生冲突,将上述两参数就改为bit,再编译mdl文件,无错误显示。
进而运行m文件,mdl文件界面弹出,说明无法执行mdl模型。
检查程序,发现xSimulationTime在m文件中有设置,而此参数在SimuLink中的simulation/simulationparameters中已根据starttime和stoptime设定,删除m文件中的xSimulationTime=10,再运行,观察示波器,示波器显示波形。
误码率曲线也能画出。
署名系统基本功能已经实现。
在执行瑞丽信道模块时,多径道瑞丽信道模块报错,报错信息为:
egalratetransitionfoundinvolvingblock'ruili_error/MultipathRayleighFadingChannel/MultipathFadingChannel/Multiplywithbackpropagation/S-Function'atinputport1.ARateTransitionblockmustbeinsertedbetweenthetwoblocks;在资料上查找多径道瑞丽信道模块的参数,发现其Sampletime参数必须设置为1/BitRate/SampleperSymbol,前面二进制序列发生器的sampletime为1/1000,而多径道瑞丽信道模块SampleperSymbol参数为1,故多径道瑞丽信道模块的Sampletime参数应为1/1000。
改正后,运行m文件,无错。
各调制信号观察时,频谱仪显示的图形都与理论频谱形状相差很大,尤其GMSK的频谱,都没有出现主瓣与旁瓣的明显区分,重新修改频谱仪的参数,将Amplitudescaling参数由dB改为magnitude,情况就好很多了。
但是无论怎样改变,都不能得到理想的状态,估计是其他模块的一些参数对频谱仪的图形观察有影响。
最后执行总的m文件,各模块都能顺利执行,说明软件调试基本完成。
4.2结果分析
4.2.1GMSK调制与解调波形:
图4.1GMSK调制信号幅度和相角波形
由于调制信号时一个复合信号,不能直接由示波器观察,通过一complextomagnitude-angle模块将调制信号分为幅度和相角两个变量来观察。
通过幅度的波形(上)验证了GMSK的幅度不变,由相角波形(下)来看,相角连续,与理论符合。
所以图形基本正确。
图4.2GMSK基带信号与解调信号
由图4.2中基带信号(上)与解调信号波形(下)比较可得,其由起始码元到最后一个码元,发现调制信号波形从第四个码元开始与基带信号完全符合,说明系统的调制性能较好,基本实现了解调的目的——将调制信号还原为基带信号。
图4.3BT=0.3的GMSK调制信号频谱
图4.4GMSK等理论调制频谱
对比图4.3和图4.4,实验所得频谱图的主瓣与理论频谱近似,只是顶端稍显尖锐,不够圆滑,可能的频谱仪的参数或去其他模块参数设置不恰当。
图4.5BT=0.9的GMSK调制信号频谱
比较图4.3和图4.5中频谱,发现BT=0.3与BT=0.9得GMSK调制频谱,并无明显差异,与GMSK调制信号的频谱随着B.T的减小而变得紧凑起来的理论结果不符合,从而验证可能是系统的某些参数设置不太合理,导致得不到正确的结果。
图5.6MSK调制信号频谱
比较图4.3和图4.5,发现GMSK的旁瓣衰减比MSK明显,也充分说明了GMSK频谱特性较MSK更好。
4.2.2GMSK调制信号眼图
图4.7BT=0.1
分析:
由图中混乱的线条可知,BT=0.1时,眼图“眼睛”睁开很小,失真严重,系统码间串扰较大。
图4.8BT=0.3
分析:
由图中混乱的线条可知,BT=0.3时,眼图“眼睛”睁开比图5.8中大,但存在过零点失真,仍然存在码间串扰,但比BT=0.1时好得多。
图4.9BT=0.9
分析:
与图4.7,4.8相比较,图4.9中眼图最为清晰,眼睛睁开程度也较大,且眼图端正,说明码间串扰较小。
综合上述分析,可知BT值越小,码间串扰越大,这也是GMSK体制的缺点。
图4.11不同BT值时的GMSK误码率曲线
在BT=0.2、0.3、0.7时,对系统误码率进行仿真。
比较三条曲线,可以看到其差别并不大。
结果表明:
不同BT值的信号调制性能差别不大.随着信噪比的增大,BT=0.2与BT=0.3的系统性能基本一致。
当BT=0.3时,既可以使频域带宽很窄,时域持续时间适当,又使时域信号容易实现。
结论
在本次专业课程设计中第一次接触到SimuLink,刚开始是一头雾水毫无头绪。
后来经过资料查阅逐渐了解了SimuLink是MATLAB提供的用于对动态系统进行建模、仿真和分析的工具包。
设计中要求用SimuLink搭建GMSK调制与解调模块、计算误码率,并且绘制信噪比——误码率曲线。
第一星期内,主要进行了资料查询及建模任务,先将各模块参数均设为常数,对调制解调波形进行观察,分析器实际波形与理论波形间的差距以及产生误差的原因。
依次采用分步进行的方式,逐步实现系统所需各个功能。
调试过程采用的也是相同的方法,每搭建一个功能模块就先进行仿真,调试待得到满意结果后再进行下一功能模块的搭建和调试。
并在不断出现错误的过程中学会了应用MATLAB的系统帮助。
整个专业课程设计中遇到的最大问题就是FFT频谱仪的参数设置及仿真参数的设置,总是solveroptions得选择时出问题,把握不好固定步长和可变步长的选择,以及固定步长时连续求解器的选择。
经实践证明,GMSK的调制与解调因选择固定步长Fixed-step,由于传输的是数字信号,所以选择离散求解器(discretesolver)。
设计中主要研究GMSK的调制特性,通过不同信噪比时的误码率绘制误码率曲线分析与比较为信号选择合适的调制、解调方式。
尽管本设计能完成调制信号频谱、眼图及波形观察以及误码率曲线的绘制,但由于频谱仪参数设置方面的问题,使得频谱图与理想形态有所差别,有待改进。
应用simulink进行仿真大大的减少了电路仿真的繁琐,其中每个模块都包含几个电路元件,减少了电路连接时的麻烦,电路连线也更清晰,而且只需改变各参数即可观察电路的特性,操作简单而且所得结果也比较理想。
外观看起来也更为美观。
两周的专业课程设计让人受益匪浅,在要感谢我的指导老师和搭档,有他们的帮助才顺利完成任务。
参考文献
[1]邓华.MATLAB通信仿真及应用实例详解.北京:
人民邮电出版社,2003年9月
[2]韩利竹王华.MATLAB电子仿真与应用.北京:
国防工业出版社,2003年9月
[3]李贺冰.Simulink通信仿真教程.北京:
国防工业出版社,2006年
[4]樊昌信曹丽娜.通信原理.北京:
国防工业出版社,2006年
[5]StephenJ.ChapmanMATLAB编程.北京:
科学出版社,2007年8月
[6]邵玉斌.Matlab/Simulink通信系统建模与仿真实例.北京:
清华大学出版社,2008年
附录一:
误码率程序
%gmsk误码率
x=0:
10;
y=x;
TracebackLength=7;%回溯长度
fori=1:
length(x)
xSNR=x(i);
sim('cgq_gmsk_error');
y(i)=xErrorRate
(1);%获取误码率
end
semilogy(x,y,'r');
gridon;%加网格
holdon;%保留当前图形
附录二:
GMSK调制解调建模图