搭建高斯白噪声信道下的二进制频移键控(FSK)模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信原理课程设计
1.设计内容概述
1.1 设计目的
本次课程设计主要运用MATLAB软件,在Simulink平台下建立仿真模型,实现模拟基带信号经过2FSK调制与非相干解调的传输过程。通过分析比较调制解调的输出波形,理解2FSK调制原理。
1.2设计题目:
搭建高斯白噪声信道下的二进制频移键控(FSK)模型
a)按照《通信原理》中的调制解调原理来搭建模型
b)直接调用FSK调制解调模块来搭建模型,并比较有、无信道编码(汉明
码)时的误码率。
1.3 2FSK数字系统的调制解调原理
2FSK调制就是使用两个不同的频率的载波信号来传输一个二进制信息序列。可以用二进制“1”来对应于载频f1,而“0”用来对应于另一相载频w2的已调波形,而这个可以用受矩形脉冲序列控制的开关电路对两个不同的独立的频率源w1、f2进行选择通。原理图如图1-1。
载波 f1
2FS K输出信号
载波 f2
二进制数据
2FS K的调制原理图
图1-1
2FSK的解调方式有两种:相干解调方式和非相干解调方式。我所用的为相干解调。根据已调信号由两个载波f1、f2调制而成,则先用两个分别对f1、f2带通的滤波器对已调信号进行滤波,然后再分别将滤波后的信号与相应的载波f1、f2相乘进行相干解调,再分别低通滤波、用抽样信号进行抽样判决器即可。原理图如图1-2。
图1-2
2.Simulink建模及仿真
2.1所用仿真工具简要介绍
Matlab simulink
2.2仿真模型
a 按照《通信原理》中的调制解调原理来搭建模型
图2-1 下面一一介绍其他各主要模块的参数设定
1.伯努利二进制基带信号:
图2-2
图2-3
图2-3
2.带通滤波器:通过设定滤波器的相关参数,可以分别滤出两个相应的频率不同的正弦波信号。其中参数设定分别如下:
图2-4
图2-5
3低通滤波器:作用为包络检波,其中两个低通滤波器的参数设定一样
图2-6 4加性高斯白噪声(AWGN):
图2-7
b直接调用FSK调制解调模块来搭建模型,并比较有、无信道编码(汉明码)时的误码率。
有汉明码
图2-1
无汉明码
伯努利二进制信号
图2-2 hamming调制
图2-3 Hamming解调
图2-4 2FSK
图2-5
图2-6 高斯白噪声
图2-7 计算误差模块awgn
图2-8
3.仿真结果
a.误差显示
模块搭建完成,参数设定好以后,对系统进行仿真。其仿真结果如图3-1。其中示波器显示的第一个子图为原始基带信号,第二子图为调制后的信号,第三个子图为经延时的基带信号,第四的子图为解调后的信号。
b.有hamming码
图3-1 无hamming码
图3-2
4. 结论(结果分析)
4.1系统性能分析
对于该系统而言,最重要的性能指标就是误码率。在白色高斯噪声信道中,
误码率决定于监控体制和接收端的信噪比222/n A r σ=。对于2FSK 调制与解调
系统,相干解调的误码率小于非相干解调的误码率。其中,相干检测法的误码率为:
)2
(21r erfc P e = 当信噪比很大时,上式可近似的表示为:
2
/21r e e r P -=π
根据上面的两个式子,可以计算出本系统的相干检测法的误码率。但本系统在仿真过程中,因抽样判决存在一些问题,导致误码率较高,而理论上相干调解性能优良,误码率很低。
加了hamming ,误码率降低。
4.2课程设计总结
真正开始接触Matlab 是大二下学期赵老师的课,到现在差不多两年了,在此之间Matlab 的确为我提供了很多便利。Matlab 的确不愧成为是草稿纸上的语言。我们不必去为很简单的显示效果图形去找一些什么其他软件或者研究比较复
杂的计算机图形学,一个plot 或者别的函数往往就可以得到很满意的效果。 其实最初开始学习matlab 的时候感觉这个东西和C 没什么两样,但是后来具体到一些东西,比如信号处理和数学建模上以后才感觉到使用matlab 编写程序去验证结果比C 要节 省很多时间,而且matlab 写东西基本都是按照自己的思路平铺直叙很少去考虑什么函数的嵌套调用或者指针等等很头疼的东西。
我感觉其实百度和matlab自带的help基本能够解决绝大数问题,而且一关键是在于多动手实践,多思考。但是matlab毕竟只是一个工具,原理和一些基本的编程素质还是必须有的,否则matlab最多也只能是验证一些别人的东西而已,根本帮不上什么忙的。
对于simulink来说其实没什么好说的,需要什么就把什么拖到Model里面连线之后设定参数。不是很麻烦的。但是重要的是对于系统的设计与仿真思想才是最重要的。