通信系统课群课设.docx
- 文档编号:11281331
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:41
- 大小:391.55KB
通信系统课群课设.docx
《通信系统课群课设.docx》由会员分享,可在线阅读,更多相关《通信系统课群课设.docx(41页珍藏版)》请在冰豆网上搜索。
通信系统课群课设
目录
摘要I
AbstractII
1MATLAB简介1
2系统设计要求3
3系统原理及实现4
3.1增量调制4
3.1.1增量调制的工作原理4
3.1.2增量调制特点4
3.1.3增量调制的编码5
3.1.4增量调制信号的译码5
3.2HDB3编解码6
3.2.1HDB3码编码基本原理6
3.2.2HDB3码的解码7
3.2.3MATLAB实现HDB3码编解码8
3.3信道编码汉明码编译码原理8
3.3.1汉明码的构造原理8
3.3.2MATLAB实现汉明码编译码10
3.4ASK调制与解调12
3.4.1数字调制技术12
3.4.2二进制频移键控(2ASK)基本原理12
3.4.3二进制频移键控(2ASK)调制13
3.4.42ASK解调14
3.5AWGN信道的模拟15
4实验方案及测试方法16
5实验结果及分析17
5.1发送端仿真结果17
5.1.1增量调制仿真17
5.1.2HDB3码及汉明码编码仿真17
5.1.32ASK调制以及AWGN信道仿真18
5.2接收端仿真结果18
5.2.12ASK解调仿真18
5.2.2汉明码及HDB3码解码仿真19
5.2.3增量调制解码仿真19
5.3仿真结果分析20
6实验总结21
参考文献22
附录23
摘要
MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、FORTRAN)的编辑模式,代表了当今国际科学计算软件的先进水平。
通信系统是一个十分复杂的系统,在具体实现上有多种多样的方法,但总的过程却是具有共性的。
对于一个模拟信号数字化传输,过程可以分为数字化,信源编解码,信道编解码,调制解调,加扰等。
本实验利用MATLAB实现了增量调制,HDB3码,汉明码,ASK调制,AWGN及对应的解调过程,完整实现了一个通信系统。
关键词:
通信系统调制解调MATLAB
Abstract
MATLABisahigh-techcomputingenvironmentthatismainlyreleasedbyMathWorkscompanyinthefaceofscientificcomputing,visualizationandinteractiveprogramming.Thenumericalanalysis,matrixcomputation,scientificdatavisualizationandmodelingandSimulationofnonlineardynamicsystemssuchaspowerfulfunctionintegratedinaneasy-to-useWindowsenvironment,forscientificresearch,engineeringdesignandtheneedformanyscientificandeffectivenumericalfieldprovidesacomprehensivesolution,andgetridofthetraditionalnoninteractiveprogramminglanguagetoagreatextent(suchasC,FORTRAN)intheeditmode,onbehalfoftoday'sinternationaladvancedlevelofscientificcomputingsoftware.Communicationsystemisaverycomplexsystem,thereareavarietyofmethodsinthespecificimplementation,butthegeneralprocessiscommon.Foradigitaltransmissionofanalogsignals,theprocesscanbedividedintodigital,sourcecoding,channelcodinganddecoding,modulationanddemodulation,scrambling,etc..ThisexperimentusingMATLABtoachieveincrementalmodulation,HDB3code,Hammingcode,ASKmodulationanddemodulationprocessofAWGNandthecompleteimplementationofacommunicationsystem.
Keywords:
communicationsystem,modulation,demodulation,MATLAB
1MATLAB简介
MATLAB是MatrixLaboratory的缩写,是一款由美国MathWorks公司出品的商业数学软件。
MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。
尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。
MATLAB的主要优势如下:
1.友好的工作平台和编程环境
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
2.简单易用的程序语言
MATLAB一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
3.强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
4.出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
5.应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定4点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
6.应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。
2系统设计要求
利用仿真软件MATLAB,也可以在硬件实验系统平台上设计完成一个典型的通信系统(如图2-1所示)的仿真。
图2-1典型的通信系统
输入:
首先输入模拟信号,给出此模拟信号的时域波形。
数字化:
将模拟信号进行数字化,得到数字信号,数字化方式选择增量调制。
信源编码:
实现基带码形变换(HDB3码)。
信道编码:
实现简单的信道编译码汉明码。
调制:
ASK调制方式。
信道:
采用AWGN信道。
解调:
ASK解调。
信道解码:
采用汉明码解码。
信源解码:
HDB3解码
增量解码:
给出解码后的模拟信号的时域波形,并与输入信号进行比较。
要完成整个系统各环节以及整个系统的仿真,最终在接收端或者精确或者近似地再现输入(信源),计算失真度,并且分析原因。
3系统原理及实现
3.1增量调制
3.1.1增量调制的工作原理
增量调制简称ΔM或增量脉码调制方式(DM),它是继PCM后出现的又一种模拟信号数字化的方法。
1946年由法国工程师DeLoraine提出,目的在于简化模拟信号的数字化方法。
PCM是对每个采样信号的整个幅度进行量化编码,因此它具有对任意波形进行编码的能力;DM是对实际的采样信号与预测的采样信号之差的极性进行编码,将极性变成“0”和“1”这两种可能的取值之一。
如果实际的采样信号与预测的采样信号之差的极性为“正”,则用“1”表示;相反则用“0”表示,或者相反。
增量调制是预测编码中最简单的一种,他将信号瞬时值与前一个抽样时刻的量化值之差进行量化,而且只对这个差值的符号进行编码,而不对差值的大小编码。
因此数码“1”和“0”只是表示信号相对于前一时刻的增减,不代表信号的绝对值。
类似地,在接收端,每收到一个代码“1”,译码器的输出相对于前一时刻的值上升一个量化阶;每收到一个代码“0”就下降一个量化阶。
接收到连续的“1”时表示信号连续增长,收到连续的“0”时表示信号连续下降。
译码器的输出再经过低通滤波器滤去高频量化噪声,就被恢复成了原始模拟信号。
只要采样频率足够高,量化阶距的大小适当,则接收端恢复的信号与原始信号就非常接近,量化噪声非常小。
3.1.2增量调制特点
增量调制与PCM调制相比有如下特点:
1在比特率较低时,增量调制的量化信噪比高于PCM。
2增量调制抗误码特性好,可用于误码率为
的信道,而PCM则要求
的信道。
3增量调制通常采用单纯的比较器和积分器作编码解码器,其结构比PCM的简单。
3.1.3增量调制的编码
增量调制的基本思想使用一个阶梯波去逼近一个模拟信号,如图3-1所示。
图3-1增量调制波形示意图
首先,根据信号的幅度大小和和抽样频率确定阶梯信号的台阶
。
在抽样时刻
,比较信号
和前一时刻的阶梯波形取值
,其中
:
1如果
,则
用
上升一个台阶
表示,此时编码器输出"1"码;
2如果
,则
用
下降一个台阶
表示,此时编码器输出"0"码。
下次编码按上述方法将与比较,使之上升或下降一个台阶电压去逼近模拟信号。
如果抽样频率足够高,台阶电压足够小,则阶梯波形近似为,而上升台阶和下降台阶的二进制代码分别用"1"和"0"表示。
这个过程就是增量编码。
如图7-7-1所示的模拟信号采用增量调制编码编出的二进制代码为:
010*********。
3.1.4增量调制信号的译码
1接收端收到"1"码,就使输出上升一个台阶电压
;
2接收端收到"0"码,就使输出下降一个台阶电压
;
这些上升和下降的电压
的累积就可以近似地恢复出阶梯波形
。
增量调制信号的译码器可由一个积分器来实现,如图3-2(a)所示,当积分器的输入为"1"码时(即输入为
脉冲电压),就以固定斜率上升一个
(
等于
),当积分器的输入为"0"码时(即输入为
脉冲电压),就以固定斜率下降一个
。
图3-2(b)中表示了积分器的输入和输出波形。
积分器的输出波形并不是阶梯波形,而是一个斜变波形。
但因
等于
,所以在所有抽样时刻
上斜变波形与阶梯波形的值相同。
因而,斜变波形与原来的模拟信号也近似。
由于积分器实现起来容易,且能满足译码要求,所以通常采用如图3-2(c)所示的
积分器,其
的乘积应远大于一个二进码的脉冲宽度。
积分器输出虽已接近原来模拟信号,但往往含有不必要的高次谐波分量,故需再经低通滤波器平滑,这样,就可得到十分接近模拟信号的输出信号。
图3-2增量调制信号的译码
3.2HDB3编解码
3.2.1HDB3码编码基本原理
HDB3码是三阶高密度双极性码的简称。
是一种适用于基带传输的编码方式,他是为了克服AMI码的缺点而出现的,具有能量分散,抗破坏性强等特点。
HDB3码是基于AMI码的。
在AMI码中连续的二进制零序列会使得编码的自时钟信息丢失。
为了避免这种情况的发生HDB3码将AMI码中四个连续的二进制0使用违反AMI码规定的极性的脉冲(+1或-1)来替换。
其编码规则是:
(1)检查消息码中“0”的个数。
当连“0”数目小于等于3时,HDB3码与AMI码一样,+1与-1交替;
(2)连“0”数目超过3时,将每4个连“0”化作一小节,定义为B00V,称为破坏节,其中V称为破坏脉冲,而B称为调节脉冲;
(3)V与前一个相邻的非“0”脉冲的极性相同(这破坏了极性交替的规则,所以V称为破坏脉冲),并且要求相邻的V码之间极性必须交替。
V的取值为+1或-1;
(4)B的取值可选0、+1或-1,以使V同时满足(3)中的两个要求;
(5)V码后面的传号码极性也要交替。
如:
消息码:
AMI码:
HDB3码:
其中的V脉冲和B脉冲与1脉冲波形相同,用V或B符号表示的目的是为了示意该非“0”码是由原信码的“0”变换而来的。
HDB3码既要包含AMI的交替特性使输出无直流特性,又要不出现四个以上的连0,因此可以先满足后者。
1)把“0000”换为取代节。
规则:
先将“0000”分离开来,第一个“0000”直接变为“0000”,然后数相邻两个“0000”之间“1”
2)更新符号。
根据HDB3码的编码规则有:
B总是与其前面的1或V符号相反,V总是与前面的1或B相符号相同,1总是与前面的V或B符号相反,就可编符号了。
例如:
消息代码:
中间码:
HDB3:
3.2.2HDB3码的解码
HDB3码的编码虽然比较复杂,但译码却比较简单。
从上述编码规则看出,每一个破坏脉冲V总是与前一非“0”脉冲同极性(包括B在内)。
这就是说,从收到的符号序列中可以容易地找到破坏点V,于是也断定V符号及其前面的3个符号必是连“0”符号,从而恢复4个连“0”码,再将所有-1变成+1后便得到原消息代码。
解码规则如下:
1)若3连“0”前后非零脉冲同极性,则将最后一个非零元素译为零,如+1000+1就应该译成“10000”;若2连“0”前后非零脉冲极性相同,则两零前后都译为零,如-100-1,就应该译为0000。
2)再将所有的-1变换成+1后,就可以得到原消息代码。
3.2.3MATLAB实现HDB3码编解码
图3-3HDB3编码流程图图3-4HDB3解码流程图
3.3信道编码汉明码编译码原理
3.3.1汉明码的构造原理
汉明码是能够纠正1位错码且编码效率较高的一种线性分组码(线性分组码:
按照一组线性方程构成的分组码)。
在偶数监督码中,由于使用了一位监督位a0,它和信息位an-1…a1一起构成一个代数式:
(公式3-1)
在接收端解码时,实际上就是在计算
(公式3-2)
若S=0,就认为无错码;若S=1,就认为有错码。
现将上式称为监督关系式,S称为校正子。
由于校正子S只有两种取值,故它只能代表有错和无错这两种信息,而不能指出错码的位置。
若监督位增加一位,即变成两位,则能增加一个类似的监督关系式。
由于两个校正子的可能值有4中组合:
00,01,10,11,故能表示4种不同的信息。
若用其中1种组合表示无错,则其余3种组合就有可能用来指示一个错码的3种不同位置。
同理,r个监督关系式能指示1位错码的
个可能位置。
一般来说,若码长为n,信息位数为k,则监督位数r=n-k。
如果希望用r个监督位构造出r个监督关系式来指示1位错码的n种可能位置,则要求
(公式3-3)
按照上述方法构造的码称为汉明码。
设分组码(n,k)中k=4,为了纠正一位错码,要求监督位数r≥3。
若取r=3,则n=k+r=7。
我们用a6a5…a0表示这7个码元,用S1、S2、S3表示三个监督关系式中的校正子,则S1S2S3的值与错码位置的对应关系可以规定如下表1所列。
表1校正子与错码位置关系
S1S2S3
错码位置
S1S2S3
错码位置
001
010
100
011
a0
a1
a2
a3
101
110
111
000
a4
a5
a6
无错
由表1中规定可见,仅当一错码位置在a2、a4、a5或a6时,校正子S1为1;否则S1为0。
这就意味着a2、a4、a5和a6四个码元构成偶数监督关系
(公式3-4)
同理,a1、a3、a5和a6构成偶数监督关系
(公式3-5)
以及a0、a3、a4和a6构成偶数监督关系
(公式3-6)
在发送端编码时,信息位a6、a5、a4和a3的值决定于输入信号,因此它们是随机的。
监督位a2、a1和a0应根据信息位的取值按监督关系来确定,即监督位应使上三式中S1、S2和S3的值为零(表示变成的码组中应无错码)
(公式3-7)
由上式经移项运算,解出监督位
(公式3-8)
给定信息位后,可直接按上式算出监督位,其结果如表2所列。
表2监督位计算结果
信息位
监督位
信息位
监督位
a6a5a4a3
a2a1a0
a6a5a4a3
a2a1a0
0000
0001
0010
0011
0100
0101
0110
0111
000
011
101
110
110
101
011
000
1000
1001
1010
1011
1100
1101
1110
1111
111
100
010
001
001
010
100
111
接收端收到每个码组后,先计算出S1、S2和S3,再按表5判断错码情况。
如,若接收码组为0000011,计算可得S1=0,S2=1,S3=1。
S1S2S3等于011,可知在a3位有一错码。
按上述方法构造的码称为汉明码。
表2中所列的(7,4)汉明码的最小码距d0=3,因此这种码能纠正一个错码或检测两个错码。
汉明码有以下特点:
码长n=2r-1最小码距d=3
信息码位k=2r-m-1纠错能力t=1
监督码位r=n-k=m
这里m为大于2的正整数,给定m后,即可构造出具体的汉明码(n,k)。
3.3.2MATLAB实现汉明码编译码
MATLAB中提供了汉明码的编码和译码函数,本程序直接调用进行编程。
①encode函数
功能:
编码函数
语法:
code=encode(msg,N,K)
说明:
该函数对二进制信息msg进行汉明编码,K为信息位长度,N为码字长度。
msg是一个K列矩阵。
其中要求N=2m-1,K=N-m,m为监督位长度。
②decode函数
功能:
译码函数
语法:
rcvcode=decode(code,N,K)
说明:
该函数对接受码字进行译码,恢复出原始信息,译码参数及方式必须和编码时采用的完全相同。
③hammgen函数
功能:
汉明码生成矩阵和校验矩阵产生函数
语法:
H=hammgen(M);[H,G]=hammgen(M);[H,G,N,K]=hammgen(M)
说明:
该函数的功能是产生生成矩阵和校验矩阵,其中M=N-K为校验位的长度,H为汉明码的校验矩阵,G为汉明码的生成矩阵。
④部分源程序
汉明码编码:
ym=encode(abs(yh),7,4,'hamming/binary');
汉明码解码:
dm=decode(c_de,7,4,'hamming/binary');
3.4ASK调制与解调
3.4.1数字调制技术
为了使数字信号在带通信道中传输,必须用数字基带信号对载波进行调制以使信号与信道的特性相匹配。
这种用数字信号控制载波,把数字基带信号变换为数字带通信号(已调信号)的过程成为数字调制。
在接收端通过解调器把带通信号还原成数字基带信号的过程成为数字解调。
通常把包括调制和解调过程的数字传输系统叫做数字带通传输系统。
一般来说,数字调制与模拟调制的基本原理相同,但是数字调制有离散取值的特点。
因此数字调制技术有两种方法:
①利用模拟调制的方法去实现数字式调制;
②通过开关键控载波,通常称为键控法。
基本键控方式有振幅键控、频移键控、相移键控。
振幅键控频移键控相移键控
图3-5正弦载波的三种
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信 系统 课群课设