1、 通信系统仿真训练 题 目: 2FSK数字频带系统的设计与仿真 20 / 24摘 要本文介绍了2FSK系统的两种解调方式:相干解调和非相干解调。本次课程设计主要利用MATLAB仿真2FSK系统的调制与解调过程,实现2FSK的调制与解调,主要采用相干解调的方式解调2FSK。首先,利用Matlab仿真出2FSK的调制信号、载波信号、以与已调信号的波形图和频谱图,第二,在仿真出波形图和频谱图的基础之上,通过程序编出在不同信噪比情况下,2FSK的误码率分析,画出误码率与信噪比的关系图。关键词: 仿真 FSK 误码率 信噪比目录前言1一.基本原理21.2FSK的简单介绍32.2FSK的调制原理43.2F
2、SK的解调5二、设计思路91.matlab的简单介绍92.FSK在matlab环境下实验的优劣103.信号产生114信号调制115解调116.流程图12三、仿真结果与分析121.仿真结果132.结果分析16总结16致17附录18参考文献25前言本课程设计主要研究2FSK数字频带系统的设计和仿真,通过本次设计达到以下几个目的:1.学会使用计算机建立通信系统仿真模型的基本方法与基本技能,学会利用仿真的手段对于实用通信系统的基本理论,基本算法进行实际验证。 2.学习通信系统仿真软件MATLAB7.0的基本使用方法,学会使用这些软件解决实际系统出现的问题。3.通过系统仿真加深对通信课程理论的理解。4.
3、用MATLAB7.0设计一种2FSK调制解调系统。5.掌握2FSK调制和解调的原理与实现方法。6.根据2FSK调制系统的原理给出调制和解调的原理框图。2FSK在数字通信中应用较广泛,国际电信联盟建议在数据率低于1200bs时采用2FSK体制,2FSK可以采用非相干接收方式,接受时不必利用信号的相位信息,因此特别适合应用于衰落信道随参信道(如短波无线电信道)的场合,这些信道会引起信号的相位和振幅随机抖动和起伏。一、 基本原理数字频率调制又称频移键控(FSK),二进制频移键控记作2FSK。数字频移键控是用载波的频率来传送数字消息,即用所传送的数字消息控制载波的频率。2FSK信号便是符号“1”对应于
4、载频f1,而符号“0”对应于载频f2(与f1不同的另一载频)的已调波形,而且f1与f2之间的改变是瞬间完成的。频率调制的最简单形式是二进制频率键控(FSK,frequency-shift keying)。FSK是调制解调器通过线路发送比特的方法。每个比特被转换为一个频率,0由较低的频率表示,1由较高的频率表示。1. 2FSK的简单介绍其表达式为: (1)典型波形如下图所示。图1、典型波形由图可见,2FSK信号可以看作两个不同载频的ASK信号的叠加。因此2FSK信号的时域表达式又可以写成:(2)频移键控是利用载波的频率来传递数字信号,在2FSK中,载波的频率随着二进制基带信号在f1和f2两个频率
5、点间变化。由图可见,2FSK信号的波形可以分解为两个不同载频的2ASK信号在移频键控中和不携带信息,通常可令和为零。2FSK信号的产生方法主要有两种。一种可以采用模拟调频电路来实现;另外一种可以采用键控法来实现,即在二进制基带矩形脉冲序列的控制下通过开关电路对两个不同的独立频率源进行选通,使其在每一个码元期间输出f1或f2两个载波之一,这两种方法产生2FSK信号的差异在于:由调频法产生的2FSK信号在相邻码元之间的相位变化是连续变化的。(这是一类特殊的FSK,称为连续相位FSK(Continuous-Phase FSK,CPFSK)而键控法产生的2FSK信号,是由电子开关在两个独立的频率源之间
6、转换形成,故相邻码元之间的相位不一定连续。2. 2FSK的调制原理2FSK信号的产生方法主要有两种。一种是可以用模拟调频电路来实现;另一种是可以采用键控法来实现,即在二进制基带矩形脉冲序列的控制下通过开关电路对两个不同的独立频率进行选通。使其在每一个码元期间输出f1和f2两个载波之一。这两种方法产生的2FSK信号的差异在于:由调频产生的2FSK信号在相邻码元之间的相位是连续变化的。(这是一类特殊的FSK,称为连续相位FSK)而键控产生的2FSK信号,是由电子开关在两个独立的频率源之间转换形成,故相邻码元之间的相位不一定连续。2FSK调制就是使用两个不同的频率的载波信号来传输一个二进制信息序列。
7、可以用二进制“1”来对应于载频f1,而“0”用来对应于另一相载频w2的已调波形,而这个可以用受矩形脉冲序列控制的开关电路对两个不同的独立的频率源w1、f2进行选择通。本次课程设计采用的是前面一种方法。如下原理图:图2 键控法产生2FSK信号的原理图3. 2FSK的解调2FSK的解调方式有两种:相干解调方式和非相干解调方式,本次课程设计采用的是相干解调方式。根据已调信号由两个载波f1、f2调制而成,相干解调先用两个分别对f1、f2带通的滤波器对已调信号进行滤波,然后再分别将滤波后的信号与相应的载波f1、f2相乘进行相干解调,再分别低通滤波、用抽样信号进行抽样判决器即可其原理如下:图3 相干解调原
8、理框图2FSK信号的常用解调方法是采用如下图所示的非相干解调(包络检波)和相干解调。其解调原理是将2FSK信号分解为上下两路信号抽样值的大小,可以不专门设置门限。判决规则应与解调规则相呼应,解调时若规定“1”符号对应载波频率f1,则接收时上支路的样值较大,应判为“1”;反之则判为“0”。 输出图4 非相干解调2FSK在数字通信中应用较为广泛。国际电信联盟(ITU)建议在数据率低于1200bs时采用2FSK体制。2FSK可以采用非相干接收方式,接收时不必利用信号的相位信息,因此特别适合应用于衰落信道随参信道(如短波无线电信道)的场合,这些信息会引起信号的相位和振幅随机抖动和起伏。除此之外,2FS
9、K信号还有其他解调方法,比如鉴频法、差分检测法、过零检测法等。过零检测法基于2FSK信号的过零点数随不同频率而异,通过检测过零点数目的多少,从而区分两个不同频率的信元。2FSK信号经过限幅、微分、整流后形成与频率变化相对应的尖脉冲序列,这些尖脉冲的密集程度反映了信号的频率高低,尖脉冲的个数就是信号过零点数。把这些尖脉冲变换成较宽的矩形脉冲,以增大其直流分量,该直流分量的大小和信号频率的高低成正比。然后经低通滤波器取出此直流分量,这样就完成了频率幅度变换,从而根据直流分量幅度上的区别还原出数字信号“1”和“0”。在这里主要讨论过零检测法。过零检测法的系统构成与系统中各点波形如图上图所示。特点:“
10、1”、“0” 码元对应的载波频率不同,即在单位时间载波的过零点数目不同,利用此特点,还原基带信号。图5 过零点检测法的原理框图4.功率谱密度对相位不连续的2FSK信号,可以看成由两个载频的2ASK信号的叠加,因此,2FSK信号的频谱可以近似表示成中心频率分别为f1和f2的两个2ASK频谱的叠加。根据这一思路,我们可以直接利用2ASK频谱的结果分析2FSK的频谱。 一个相位不连续的2FSK信号可以表示成 (3)其中和为两路二进制基带信号。根据2ASK信号功率谱密度的表达式,不难写出这种2FSK信号的功率谱密度的表示式: (4)令概率P=0.5,只需要将上式进行替换即可得到下面的式子:(5)由此可
11、以得出:第一,相位不连续的2FSK信号的功率谱由连续谱和离散谱组成。其中,连续由两个中心位于f1 和f2处的双边普叠加而成,离散谱位于两个载频f1和f2处;第二,连续谱的形状随着两个载频之差的大小而变化,若,连续谱在f0处出现单峰,若,出现双峰;第三,若以功率谱第一个零点之间的频率间隔计算2FSK信号的带宽,则其带宽近似为 (6)其中fs为基带信号的带宽。5.FSK的误码性能分析计算设“1”符号对应载波频率f1(w1),“0” 符号对应载波频率f2 (w2),则在一个码元的持续时间Ts,发送端产生的2FSK信号可表示为 (7)式中 (8)(9)即 (10)接收端上下支路两个带通滤波器的输出波形
12、和分别为 (11) (12)式中,n1(t)和n2(t)分别为高斯白噪声ni(t)经过上下两个带通滤波器的输出噪声窄带高斯噪声,其均值同为0,方差同为sn2,即 (13) (14)上下支路两个带通滤波器的输出波形分别为 (15) (16)抽样判决器进行比较。比较的两路输入波形分别为上支路 (17) 下支路 (18) 式中,a 为信号成分,n1c(t)和n2c(t)均为低通型高斯噪声,其均值为零,方差为sx1(t)和x2(t)抽样值的一维概率密度函数分别为 (19) (20)当x1(kTs)x2(kTs) 时,判决器输出“0”符号,造成将“1”判为“0”的错误,故这时错误概率为 (21)式中,z
13、 = x1 x2,故z是高斯型随机变量,其均值为a,方差为sz2 = 22 。设z的一维概率密度函数为f(z),则由上式得到 (22)同理可得,发送“0”错判为“1”的概率 (23)采用同步检测时2FSK系统的总误码率为 (24)在大信噪比条件下,上式可以近似表示为 (25)将上式与2FSK同步检波时系统的误码率公式比较可见,在大信噪比条件下,2FSK信号包络检波时的系统性能与同步检测时的性能相差不大,但同步检测法的设备却复杂得多。因此,在满足信噪比要求的场合,多采用包络检波法二、设计思路1.matlab的简单介绍 MATLAB是由MATH WORKS公司于1984年推出的一种面向科学与工程的
14、计算软件,通过MATLAB和相关工具箱,工程师、科研人员、数学家和教育工作者可以在统一的平台下完成相应的科学计算工作。MATLAB 本身包含了 600 余个用于数学计算、统计和工程处理的函数,这样,就可以迅速完成科学计算任务而不必进行额外的开发。业领先的工具箱算法极大的扩展了 MATLAB 的应用领域,所以MATLAB自推出以来就受到广泛的关注。MATLAB特点: 一,数值计算功能,在MATLAB中,每个数值元素都视为复数,而且只有双精度(64位)一种数据格式,省去多种的设置,虽然在运行速度和存消耗方面付出了代价,却使MATLAB的编程大大简化。MATLAB的数值计算基本功能包括:矩阵运算、多
15、项式和有理分式计算、数据统计分析以与数值分析等。二,符号计算功能,在实际应用中,除了数值计算外,还需要得到方程的解析解,简化和展开多项式和函数表达,求解函数值等,所有这些均属于符号计算的领域。三,便栈式的编程语言,与Fortran和C等高级语言相比,MATLAB的语法规则更简单,更贴近人的思维方式和表达习惯,使得编写程序就像在便栈上列写公式和演算一样。四,强大而简易的作图功能,能根据输入数据自动确定坐标绘图。五,高智能化,绘图时自动选择最佳坐标,大大方便了用户。自动检测和显示程序错误,减轻编程和调试的工作量。六,丰富实用的工具箱,MATLAB软件包括基本部分和扩展部分。扩展部分成为工具箱。工具
16、箱分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,可视建摸仿真功能以与文字处理功能等。学科性工具箱专业性比较强,如控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱、小波工具箱等。MATLAB6.x的集成环境,在Windos桌面,双击MATLAB图标,系统就会进入MATLAB6.x的工作环境。MATLAB6.x的集成环境由桌面平台以与组件组成。它包括8个组成部分:指令窗口、历史指令窗口、工作台与工具箱窗口、当前工作目录窗口、工作空间窗口、矩阵编辑器、程序编辑器和帮助浏览器。 MATLAB帮助系统,MATLAB为用户提供了三种帮助功能:一.利用
17、帮助菜单获取帮助信息。单击MATLAB工作窗口的菜单栏Help菜单项,弹出帮助菜单项。选择Help Window 选项,可以打开MATLAB的主题窗口。选择Help Desk选项,可以打开MATLAB帮助工作台。二.通过指令窗口获取帮助信息,用户可以在指令窗口直接键入帮助指令来获得帮助。三.使用演示功能(Demo)。MATLAB带有生动直观的演示程序,可以帮助用户形象直观地学习和理解MATLAB的使用方法和强大的功能。启动演示程序有下面几种方法:(一)在工作台和工具箱窗口中,列出了MATLAB和已经安装的各种工具箱。单击欲学习的工具箱前面的“+”号,在打开的功能项中,双击Demos,即可打开演
18、示程序。(二)选择Help菜单Demos选项,可以打开MATLAB的演示窗口。(三)在指令窗口中键入指令demo,同样可以打开MATLAB演示窗口。2.FSK在matlab环境下实验的优劣优点: (1)调制信号和载频都具有随机性,而且具有在课堂演示的功能。(2)实验程序已经编好,不易发生故障,多会都可进行。(3)进行了相干解调和非相干解调两种方式的比较,(4)解调后对相干解调和非相干解调的误码率统计缺点: (1)不能通过实验操作调试出实验结果。 (2)前期编程和数学建模工作也比较复杂。3.信号产生二进制随机序列和两列频率不等的载波1)利用matlab 库函数产生10个二进制随机数,也就是我们的
19、基波调制信号a。并画出其波形。2)产生两列余弦波s1和s2,频率分别为f1=3hz,f2=2hz;并画出其波形。4信号调制产生2FSK信号和加入高斯噪声后2FSK信号1)用二进制序列a去调制f1和f2,产生2fsk信号,具体做法是用以a生成的方波信号直接与s1相乘,用a取反后的方波与s2相乘,再将两列信号相加。并画出其波形。2)调用matlab 库函数产生高斯噪声no,并与2fsk信号相加得到加入噪声后的sn信号。并画出其波形。5解调1)对于两列让sn通过两个带通滤波器H1和H2,他们分别以f1和f2为中心频率,并画出经过带通滤波器后的波形。2)对这两列波形分别相干解调乘以与他们同频同相的余弦
20、波s1和s2,画出此时的波形。3)让这两列波形再通过低通滤波器sw1和sw2得到这两列基带调制波形.画出其波形。4)最后将两列波和通过抽样判决器,画出其波形,并与之前调制后的波形sn做对比。6.流程图图6 流程图三、仿真结果与分析1.仿真结果2FSK信号的调制解调原理是通过带通滤波器将2FSK信号分解为上下两路2FSK信号后分别解调,然后进行抽样判决输出信号。本实验对信号2FSK采用相干解调进行解调。对于2FSK系统的抗噪声性能,本实验采用同步检测法。设“1”符号对应载波频率f1,“0”符号对应载波频率f2。在原理图中采用两个带通滤波器来区分中心频率分别为f1和f2的信号。中心频率为f1的带通
21、滤波器之允许中心频率为f1的信号频谱成分通过,滤除中心频率为f2的信号频谱成分。 接收端上下支路两个带通滤波器的输出波形中H1,H2。在H1,H2波形中在分别含有噪声n1,n2,其分别为高斯白噪声ni经过上下两个带通滤波器的输出噪声窄带高斯噪声,其均值同为0,方差同为(n)2,只是中心频率不同而已。其抽样判决是直接比较两路信号抽样值的大小,可以不专门设置门限。判决规制应与调制规制相呼应,调制时若规定“1”符号对应载波频率f1,则接收时上支路的抽样较大,应判为“1”,反之则判为“0”。(1)信号产生图7 figure(1)波形figure(1)图。图8 figure(2)波形figure(2)f
22、igure(2)是两个载波信号和他们的频谱图,其中两个信号的频率不同,载波一较密,载波二较疏,并且其对应的频谱图为冲激响应。(2)信号调制图9 figure(3)波形figure(3):已调的2fsk信号,加入噪声之后的2fsk的波形,以与其对应的频谱图,产生的随机序(3)信号解调图10 figure(4)波形figure(4)figure(4)分析:经过带通滤波器和乘法器之后,输出的波形。图11 figure(5)波形figure(5)一样,从原始波形也可以看出,解调后的波形与调制信号一样。2FSK调制解调实现。2FSK采用相干解调后的误码率随信噪比的增加而减小。2.结果分析 2FSK信号的
23、调制解调原理是通过带通滤波器将2FSK信号分解为上下两路2FSK信号后分别解调,然后进行抽样判决输出信号。本实验对信号2FSK采用相干解调进行解调。对于2FSK系统的抗噪声性能,本实验采用同步检测法。设“1”符号对应载波频率f1,“0”符号对应载波频率f2。在原理图中采用两个带通滤波器来区分中心频率分别为f1和f2的信号。中心频率为f1的带通滤波器之允许中心频率为f1的信号频谱成分通过,滤除中心频率为f2的信号频谱成分。接收端上下支路两个带通滤波器的输出波形中H1,H2。在H1,H2波形中在分别含有噪声n1,n2,其分别为高斯白噪声ni经过上下两个带通滤波器的输出噪声窄带高斯噪声,其均值同为0
24、,方差同为(n)2,只是中心频率不同而已。其抽样判决是直接比较两路信号抽样值的大小,可以不专门设置门限。判决规制应与调制规制相呼应,调制时若规定“1”符号对应载波频率f1,则接收时上支路的抽样较大,应判为“1”,反之则判为“0”。在(0,Ts)时间发送“1”符号(对应1),则上下支路两个带通滤波器输出波形H1,H2。H1,H2分别经过相干解调(相乘低通)后,送入抽样判决器进行判决。比较的两路输入波形分别为上支路st1=a+n1,下支路st2=n2,其中a为信号成分;n1和n2均为低通型高斯噪声,其均值为零,方差为(n)2。当st1的抽样值st1(i)小于st2的抽样值st2(i),判决器输出“
25、0”符号,造成将“1”判为“0”的错误。从上面的图中可以看出程序仿真结果与实验要求相符。同时高斯白噪声对信道的各过程有很大的影响,跟误码率有很大的关系。总结通过这次课程设计,自己收获了很多新的知识;首先让自己结识了matlab这个软件。它不仅能做数学上的计算、画图,还置了很多强大的算法和一些集成的工具,如:FFT,fir,等等。而我们在使用matlab时只需要调用简单的函数命令就可以实现很多功能,用matlab可以大大简化很多运算,同时我们可以将书上的理论知识用matlab去仿真和实现。如果让自己去实现这些功能,就很难想象了。同时,这次课程设计让我对很多理论知识有了更深的了解,如:怎么用基带信
26、号去调制载波,怎么将书上的理论图变成程序,设计出系统等等。在做这次课程设计的时候,为花了很多时间去查阅matlab的相关知识,他的指令集,他的函数库等等,以后做其他东西的时候也可以用matlab来做。通过这次的课程设计是我收获很大,再一次对Matlab功能的强大有了更加这款软件同样对这次的通信原理课程设计起到了很大程度上的作用,功能同样十分强大,而且运用起来也是十分的方便。因为课设时间安排的限制,所以并不能把这两种软件学得十分的透彻,只能是现学现卖,学部分与课设相关的知识。同时这两种软件的学习过程中,碰到的最大的难处就是M语言的学习,但是经过大量的查资料还是得出了结果,自己也感到很高兴,但是很
27、明显的是自己只学到了一点皮毛。这次的课程设计让我真的很难忘,经过两个多星期的努力,终于顺利完成了课程设计。开始做课程设计不知道从何入手,困难很多,经过查阅资料,和同学讨论,终于了解了许多。在做课程设计的过程中,我学会了很多,最主要的是我对Matlab的运用更加熟练了,同时对通信原理这门课的知识又弄懂了不少,增加了对通信原理这门课程的学习兴趣。课程设计是每个大学生必须面临的一项综合素质的考验,如果说在我们的学习阶段是一个知识的积累过程,那么现在的课程设计就是对过去所学的知识的综合应用,是对理论进行深化和重新认识的实践活动。在这期间,我们有艰辛的付出,当然也有丰收的喜悦。首先,学习能力和解决问题的
28、信心都得到了提高。通过这次课程设计,我不仅对理论有了更深一步的认识,还培养了自学能力和解决问题的能力,更重要的是,培养了克服困难的勇气和信心。致最后要感老师之前对我们Matlab课程的指导。通过老师上个学年对我们进行Matlab课程的指导我们现在才能利用功能强大的Matlab软件进行各种复杂的运算。向老师致敬!在这学期的课设过程中,老师给我们用心指导,耐心答疑,使得我们才能较好的完成这次课程设计。在这里,我衷心的感王老师,向您致敬!附录clear allclose alli=10;%基带信元数j=500;a=round(rand(1,i);%产生随机序列t=linspace(0,5,j);t1
29、=length(t);f1=3;%载波1频率f2=2;%载波2频率fm=i5;%基带信号频率B1=2*f1;%载波1带宽 0B2=2*f2;%载波2带宽%产生基带信号st1=t;for n=1:10 if a(n)=1; st2(n)=0; else st2(n)=1; end end; figure(1); subplot(411); plot(t,st1); title(基带信号); xlabel(二进制序列); ylabel(幅度); subplot(412); plot(t,st2); title(基带信号反码); xlabel(二进制序列); ylabel(幅度); subplot(
30、413) y=fft(st1); plot(t,y); title(基带信号的频谱); xlabel(f(Hz); ylabel(幅度); subplot(414) y=fft(st2); plot(t,y); title(基带信号反码的频谱); xlabel(f(Hz); ylabel(幅度); %载波信号 s1=cos(2*pi*f1*t); s2=cos(2*pi*f2*t); figure(2) subplot(221) plot(s1); title(载波信号1); xlabel(t); ylabel(幅度); subplot(222) y=fft(s1); plot(t,y) ti
31、tle(s1的频谱图); xlabel(f(Hz); ylabel(幅度); subplot(223) plot(s2); title(载波信号2); xlabel(t); ylabel(幅度); subplot(224) y=fft(s2); plot(t,y); title(s2的频谱图); xlabel(f(Hz); ylabel(幅度); figure(3) fsk1=st1.*s1; fsk2=st2.*s2; fsk=fsk1+fsk2; no=0.01.*randn(1,t1); sn=fsk+no; subplot(411) plot(t,fsk); title(fsk波形);
32、 ylabel(幅度) subplot(412) plot(t,sn); title(加入噪声之后的波形); xlabel(t); ylabel(幅度); subplot(413) y=fft(fsk); plot(t,y); title(fsk的频谱图); xlabel(f(Hz); ylabel(幅度); subplot(414) y=fft(sn); plot(t,y); title(sn的频谱图); xlabel(f(Hz); ylabel(幅度); figure(4) b1=fir1(80,15300 17300); b2=fir1(80,18300 90300) %设置带宽参数 H
33、1=filter(b1,1,sn); %b1为分子,1为分母,sn为滤波器输入序列 H2=filter(b2,1,sn); %噪声信号同时通过两个滤波器 subplot(221) plot(t,H1); title(经过带通滤波器H1后的波形); xlabel(t); ylabel(幅度); subplot(222); plot(t,H2); title(经过带通滤波器H2后的波形); xlabel(t); ylabel(幅度); sw1=H1.*H1; sw2=H2.*H2; subplot(223) plot(t,sw1); title(经过乘法器一后的波形); xlabel(t); yl
34、abel(幅度); subplot(224) plot(t,sw2); title(经过乘法器二的波形); xlabel(t); ylabel(幅度); bn=fir1(8,1300 9300); %经过低通滤波器 figure(5) sr1=filter(bn,1,sw1); sr2=filter(bn,1,sw2); subplot(221) plot(t,sr1) title(经过低通滤波器后的波形); xlabel(t); ylabel(幅度); subplot(222) plot(t,sr2); title(经过低通滤波器后的波形); xlabel(t); ylabel(幅度); %
35、判决for i=1:length(t) if(sr1(i)=sr2(i) sr(i)=1; else sr(i)=0; end endsr=sr1+sr2;subplot(223)plot(t,sr);title(经过抽样判决器的波形);xlabel(t);ylabel(幅度);subplot(224)a=0.001SNR_dB=-6:0.3:20;SNR=10.(SNR_dB.10);SNR2=a.2.(2*SNR);fsk_pe0=0.5*erfc(sqrt(a.2.(4*SNR2);semilogy(SNR_dB,fsk_pe0,);legend(相干2FSK)title(相干解调的误码率);xlabel(SNR_dB);ylabel(Pe);参考文献1 志刚. 现代通信原理. 清华大学.2006.102 树棠. 信号与系统. 交通大学.2005.43 卫国. MATLAB程序设计教程. 中国水利水电. 2008.64 楼顺天. 基于MATLAB的系统分析与设计.电子科技大学出版.5 梁虹、梁洁、跃斌.信号与系统分析与MATLAB实现.电子工业出版.6 樊昌信,丽娜.通信原理.国防工业,2006