您的当前位置:首页正文

基于matlab的通信系统仿真

2020-11-28 来源:步旅网
武汉理工大学《学科基础课群综合训练》报告

通信系统课群综合应用课程设计任书

学生姓名: 专业班级: 指导教师: 工作单位:

题 目: 基于matlab的通信系统仿真 初始条件:

理论方面——电路分析基础、模拟电子、高频电子线路、通信原理、数字信号处理等专业知识

设备方面——微型计算机 软件方面——matlab仿真平台 场地方面——鉴主15楼通信实验室1

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明

书撰写等具体要求)

题目模拟信源(模拟话序号 1 音) 自己构造一时间函数 数字化方式 PCM 基带码 HDB3码 信道调制码 方式 循环码 PSK 信道 衰落信道 1. 理论设计与分析,包括理论的推导和计算过程。

2. 制作相应的matlab编制仿真程序,并与理论结果对比,最后得出结论。

3. 完成课程设计报告,包括必要的公式、文字/图表说明和仿真结果。 时间安排:

武汉理工大学《学科基础课群综合训练》报告

本课程设计自任务书发布之日开始,分散进行,答辩时间统一。

指导教师签名: 2018年12月3日

系主任(或责任教师)签名: 2018年12月3日

武汉理工大学《学科基础课群综合训练》报告

目录

摘要................................................................................................................................ 1 Abstract .......................................................................................................................... 2 1.绪论............................................................................................................................. 3

1.1课程设计任务与要求...................................................................................... 3

1.1.1课程设计的目的................................................................................... 3 1.1.2课程设计的任务与要求....................................................................... 3 1.2 数字通信系统原理分析................................................................................. 3 1.3 MATLAB基本介绍 ........................................................................................ 4 2.各部分电路的原理与分析......................................................................................... 5

2.1 PCM编码原理及设计 .................................................................................. 5

2.1.1脉冲编码调制....................................................................................... 5 2.1.2 PCM编码原理 ..................................................................................... 6 2.1.3逐次比较法译码原理........................................................................... 9 2.1.4用MATLAB实现 PCM编译码 ......................................................... 9 2.2 HDB3码编译码原理 .................................................................................... 10

2.2.1 AMI码编码基本原理 ........................................................................ 10 2.2.2 HDB3码编码基本原理 ..................................................................... 10 3.2.4用MATLAB实现HDB3编译码 ...................................................... 11 2.3循环码编译码原理........................................................................................ 12

2.3.1 循环码编译码原理与特点................................................................ 12 2.3.2循环码编码基本原理......................................................................... 12 2.3.3循环码译码原理................................................................................. 13 2.2.4用MATLAB实现循环码编译码 ...................................................... 14 2.4 PSK调制解调原理 ....................................................................................... 16

2.4.1 PSK基本原理 .................................................................................... 16 2.4.2 PSK调制基本原理及方案选择 ........................................................ 16 2.4.3 PSK解调基本原理 ............................................................................ 17 2.4.4 用MATLAB实现PSK调制解调 .................................................... 18 2.5衰落信道........................................................................................................ 19 3.MATLAB仿真结果分析 ......................................................................................... 21

3.1 PCM编码模块仿真分析................................................................................. 21 4.小结及心得体会....................................................................................................... 25 参考文献...................................................................................................................... 26 附录.............................................................................................................................. 27

武汉理工大学《学科基础课群综合训练》报告

附录一.................................................................................................................. 27 附录二.................................................................................................................. 29 附录三.................................................................................................................. 31 附录四.................................................................................................................. 32 附录五.................................................................................................................. 33

武汉理工大学《学科基础课群综合训练》报告

摘要

在当今信息化社会中,随着通信技术的飞速发展,相关的通信理论、技术也得到了飞速发展。数字通信已成为信息传输的重要手段,数字通信的新设备不断涌现,全球数字化已成为当今社会发展的主要潮流,人们越来越离不开数字通信,越来越期望了解和掌握数字通信技术。

数字通信的过程主要由信息源、信源编码、信道编码、调制、加噪声、解调、信道译码、信源译码以及接收等几个比较重要的环节,每个环节都有着至关重要的作用,因此应该对每个环节都采用相对失真度较低的方法进行实现,才能达到近乎无失真的传输,本课设运用Matlab及附带的图形函数工具设计了脉冲编码调制、基带码为HDB3、信道码为循环码、调制方式为PSK和信道为衰落信道的数字通信系统仿真模型。通过仿真,观察了解到了数字通信模型中各个环节的实现过程,并从中了解到数字信号处理对于数字通信的巨大作用。

本文介绍了整个通信系统的各个模块的程序以及仿真过程,分析地比较透彻,便于理解,本次设计是利用仿真软件进行仿真,是在理想条件下进行,没有外界其他因素的干扰,因此最后的结果也较为理想。

关键词:PCM编码;HDB3码;循环码;PSK;衰落信道;

1

武汉理工大学《学科基础课群综合训练》报告

Abstract

In today's information society, with the rapid development of communication technology, related communication theory and technology have also been rapidly developed. Digital communication has become an important means of information transmission. New devices for digital communication are constantly emerging. Global digitization has become the main trend in the development of today's society. People are increasingly dependent on digital communication and are increasingly looking forward to understanding and mastering digital communication technologies. The process of digital communication mainly consists of several important links such as information sources, source codes, channel codes, modulation, noise addition, demodulation, channel decoding, source decoding, and reception, each of which plays a crucial role. Therefore, each link should be implemented with a relatively low degree of distortion in order to achieve almost no distortion of transmission. This lesson uses Matlab and the accompanying graphical function tools to design a simulation model of a digital communication system with pulse coding modulation, a base band code of HDB3, a channel code of circular code, and a modulation method of PSK and a channel of fading. Through the simulation, the realization process of each link in the digital communication model is observed and the great effect of digital signal processing on digital communication is learned.

This paper introduces the program and simulation process of each module of the entire communication system, analyzes it thoroughly and is easy to understand. This design is based on simulation software and is carried out under ideal conditions without interference from other external factors. Therefore, the final result is also more satisfactory.

Key words: PCM encoding; HDB3 code;Circular code; PSK; Decline channel;

2

武汉理工大学《学科基础课群综合训练》报告

1.绪论

1.1课程设计任务与要求

1.1.1课程设计的目的

通过课程设计,使学生加强对电子电路的理解,学会对电路分析计算以及设计。进一步提高分析解决实际问题的能力,通过完成综合设计型和创新性实验及训练,创造一个动脑动手﹑独立开展电路实验的机会,锻炼分析﹑解决电子电路问题的实际本领,实现由课本知识向实际能力的转化;加深对通信原理的理解,提高学生对现代通信系统的全面认识,增强学生的实践能力。

1.1.2课程设计的任务与要求

要求利用仿真软件(如Matlab或SystemView),或硬件实验系统平台上设计完成一个典型的通信系统(如图1-1所示)。其中信源为随机确定的一个模拟时间函数,数字化方式采用PCM编码,基带码为HDB3码,信道码采用循环码,调制方式为PSK,信道类型为衰落信道。要求完成整个系统各环节以及整个系统的仿真,最终在接收端或者精确或者近似地再现输入(信源),计算失真度,并且分析原因。

发送设备信息源编码调制传输介质噪声干扰接收者译码解调接收设备

图1 典型的通信系统

1.2 数字通信系统原理分析

通信系统就是传递信息所需要的一切技术设备和传输媒质的总和,包括信息源、发送设备、信道、接收设备和信宿(受信者) ,它的一般模型如图1-1所示。通信系统可分为数字通信系统和模拟通信系统,数字通信系统较模拟通信系统而

3

武汉理工大学《学科基础课群综合训练》报告

言,具有抗干扰能力强、便于加密、易于实现集成化、便于与计算机连接等优点。因而,数字通信更能适应对通信技术的越来越高的要求。近二十年来,数字通信发展十分迅速,在整个通信领域中所占比重日益增长,在大多数通信系统中已代替模拟通信,成为当代通信系统的主流。本次课程设计的数字通信系统原理框图如图2所示。

信道译码循环码译码模拟信号源PCM信源编码基带编码HDB3信道编码循环码PSK数字调制衰落信道加噪声PSK数字解调基带译码PCM信源译码受信者 图2 数字通信系统框图

1.3 MATLAB基本介绍

MATLAB软件由美国Math Works公司于1984年推出,经过不断的发展和完善,如今己成为覆盖多个学科的国际公认的最优秀的数值计算仿真软件。MATLAB具备强大的数值计算能力,许多复杂的计算问题只需短短几行代码就可在MATLAB中实现。作为一个跨平台的软件,MATLAB已推出Unix、Windows、Linux和Mac等十多种操作系统下的版本,大大方便了在不同操作系统平台下的研究工作。

MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,它是一种以矩阵运算为基础的交互式程序语言,专门针对科学﹑工程计算机绘图的需求。与其他计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。它用解释方式工作,键入程序立即得出结果,人机交互性能好,深得科技人员喜爱。特别是数值计算用的最频繁的电子信息类的学科中,已成为每个学生都掌握的工具了。它大大提高了课程教学﹑解题作业分析研究的效率。学习掌握MATLAB,也可以说在科学计算工具上与国际接轨。

它具有强大的功能:

(1)强大的科学计算机数据处理能力

MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用

4

武汉理工大学《学科基础课群综合训练》报告

到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少

(2)出色的图形处理功能

图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。

(3)应用广泛的模块集合工具箱

MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。

2.各部分电路的原理与分析

2.1 PCM编码原理及设计

2.1.1脉冲编码调制

脉冲编码调制(pu1se code modulation,PCM)是概念上最简单、理论上最完善的编码系统,是最早研制成功、使用最为广泛的编码系统,但也是数据量最大的

5

武汉理工大学《学科基础课群综合训练》报告

编码系统。PCM的实现主要包括三个步骤完成: 抽样、量化、编码。分别完成时间上离散、幅度上离散、及量化信号的二进制表示。根据ITU的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A律和u律方式,我国、欧洲以及国际互联采用了A律方式,北美、日本、韩国等采用u律。但由于题目要求采用u律对语音信号进行编码,因此仅讨论u律。下图为PCM系统的原理框图:

图3 PCM编码原理框图

2.1.2 PCM编码原理

(1)抽样

所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。它的抽样速率的下限是由抽样定理确定的。

在一个频带限制在0,f h 内的时间连续信号f t,如果以1/2 fh的时间间隔对它进行抽样,那么根据这些抽样值就能完全恢复原信号。或者说,如果一个连续信号ft的频谱中最高频率不超过 fh当抽样频率fs2 fh时,抽样后的信号就包含原连续的全部信息。抽样定理在实际应用中应注意在抽样前后模拟信号进行滤波,把高于二分之一抽样频率的频率滤掉。这是抽样中必不可少的步骤。

(2)量化

量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。

,L。以常称为重建电平或如下图所示,量化器输出L个量化值V,k1,2,3..,量化电平。当量化器输入信号幅度xk落在xk1与+之间时,量化器输出电平为yk。这个量化过程可以表达为:

6

武汉理工大学《学科基础课群综合训练》报告

yQxQxk xk1yk,k 1,2,3,

(1)

这里xk称为分层电平或判决阙值。通常kxk1xk称为量化间隔。

图4 量化模型

模拟信号的量化分为均匀量化和非均匀量化两种方式。均匀量化时,由于对编码范围内小信号或大信号都采用等量化级进行量化,因此小信号的“信号与量化噪声比”小,而大信号的“信号与量化噪声比\"大,这对小信号来说是不利的。为了提高小信号的信噪比.可以将量化级再细分些,这时大信号的信噪比也同样提高,但这样做的结果使数码率也随之提高,将要求用频带更宽的信道来传输。采用压缩的量化特性是改善小信号信噪比的一种有效方法。它的基本思想是在均匀量化前先让信号经过一次处理,对大信号进行压缩而对小信号进行较大的放大。由于小信号的媒度得到较大的放大,从而使小信号的信噪比大为改善。这一处理过程通常简称为“压缩量化”,它是用压缩器来完成的。压缩量化的实质是“压大补小”,使小信号在整个动态范围内的信噪比基本一致。目前常用的压扩方法是对数型的A压缩律和u压缩律。其中u律压缩公式为[1]:

yln(1ux)

ln(1u)(2)

其中x为归一化的量化器输入,y为归一化的量化器输出。常数u愈大,则小信号的压扩效益愈高,目前多采用u255。

由于u律不易用电子线路准确实现,所以目前采用特性近似的u255/15折线代替,把纵坐标y从0到1划分为8等份。各转折点横坐标为:

2561256812i1x

255255255压扩特性如图所示:

yi(3)

7

武汉理工大学《学科基础课群综合训练》报告

图5 u255/15折线压扩特性

(3) 编码

最常用的编码是用进制的符号,例如“0”和“1”,表示此离散数值。在用电路实

现时,最常用的是一种方案称为逐次比较法编码,其基本原理方框图如图4-4 所示。此图示出的是一个3 位编码器。

图6 逐次比较法编码电路原理框图

如图6所示,输入信号抽样脉冲电流Is 由保持电路短时间保持,并各几个称为权值电流的标准电流Iw逐次比较。每比较一次,得出1位二进制码。权值电流Iw是在电路中预先产生的。Iw的个数决定于编码的位数。

在15折线法中采用的折叠码有8位。其中第一位C1表示量化值的极性正负。后面的7位分为段落码和段内码两部分,用于表示量化值的绝对值。其中第2到

4位(C2C3C4是段落码,共计3位,可以表示8种斜率的段落; 其他4位(C5~C8)

8

武汉理工大学《学科基础课群综合训练》报告

为段内码,可以表示每一段落内的16种量化电平,段内码代表的16个量化电平是均匀划分的。

2.1.3逐次比较法译码原理

下图所示编码器虚线方框是本地译码器,而接收器的核心部分和本地译码器的原理一样。

图7 逐次比较法非均匀编码器原理框图

在上图中,本地译码器的记忆电路得到输入c7值后,使恒流源产生为下次比较所需要的权值电流Iw。在编码器输出c8后,对此抽样值的编码已经完成,所以比较器要等待下一个抽样值到达,暂不需要恒流源产生新的权值电流。

在接收端的译码器中,仍保留本地译码器部分,由记忆电路接收发送来的码组。当记忆电路接收到码组的最后一位c8后,使恒流源再产生一个权值电流,它等于最后一个间隔的中间值。由于编码器中的比较器只是比较抽样的绝对子,本地译码器也只是产生正值权值电流,所以在接收端的译码器中,要根据接收码组的第一位c1值控制输出电流的正负极性。

2.1.4用MATLAB实现 PCM编译码

对时间函数进行PCM编译码程序见附录二

9

武汉理工大学《学科基础课群综合训练》报告

模拟时间信号无失真抽样(fs>=2fh)离散信号量化输入码组量化值大于0NY编码第一位为1编码第一位为0提取符号位判断段落码判断段内码确定段落码确定段内吗判断符号位编码结束

输出

图8 PCM编码流程图 图9 PCM译码流程图

2.2 HDB3码编译码原理

2.2.1 AMI码编码基本原理

其编码规则为将消息码的\"1\"交替变换为\"1\"和AMI码为传号交替反转码,

\"1\",而'\"0\"保持不变。

AMI码对应的波形是具有正、负、零三种电平的脉冲序列。它可以看成是单极性波形的变形,即'\"0\"仍对应零电平,而\"1\"交替对应正负电平。

AMI码的优点:没有直流分量,且高低频分量少,编译码电路简单,且可利用传号极性交替这一规律观察误码情况:如果它是AMIRZ波形,接收后只要全波整流,就可变为单极性RZ波形,从中可以提取定时分量。

AMI码的缺点:当原信码出现长连'\"0\"串时,信号的电平长时间不跳变,造成提取定是信号的困难。解决连'\"0\"码的有效方法之一是采用HDB3码。

2.2.2 HDB3码编码基本原理

它是AMI码的一种改进型,改进之后既HDB3码称为三阶高密度双极性码,

保持了AMI码的有点,没有直流成分,高低频分量少,能量集中在频率为1/2码速处,并且又解决了AMI码的提取信号困难的缺点,是一种较为常用的基带码

10

武汉理工大学《学科基础课群综合训练》报告

型。该码型编译码的实现都比较简单。

其编码规则为:

(1)先将消息代码变换成AMI码,若AMI码中连0的个数小于4,此时的

AMI码就是HDB3码;

(2)若AMI码中连0的个数大于3,则将每4个连0小段的第4个0变换成与前一个非0符号(1或1)同极性的符号;

(3)为了不破坏极性交替反转,当相邻符号之间有偶数个非0符号时,再将该小段的第1个变换成+B或B,符号的极性与前一非零符号的相反,并让后面的非零符号从这一符号开始再交替变化。2.2.3 HDB3码译码基本原理

解码规则为:

(1)虽然编码很复杂,但解码规则很简单,若3连'\"0\"前后非零脉冲同极性,则将最后一个非零元素译为零,如10001 就应该译成10000,若2连 '\"0\"前后非零脉冲极性相同,则两零前后都译为零,如1001,就应该译为0000;

(2)再将所有的1变换成1后,就可以得到原消息代码。

3.2.4用MATLAB实现HDB3编译码

对信号进行HDB3编译码程序见附录三

图10 HDB3编码流程图 图11HDB3译码流程图

11

武汉理工大学《学科基础课群综合训练》报告

2.3循环码编译码原理

2.3.1 循环码编译码原理与特点

设C是某(n,k)线性分组码的码字集合,如果对任

C(cn1,cn2,,c0)C,它的循环移位C(1)(cn2,cn3,c0,cn1)也属于C,

则称该(n,k)码为循环码。

该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。其特点有:

(1)循环码是线性分组码的一种,所以它具有线性分组的码的一般特性,且具有循环性,纠错能力强。

(2)循环码是一种无权码,循环码编排的特点为相邻的两个数码之间符合卡诺中的邻接条件,即相邻数码间只有一位码元不同,因此它具有一个很好的优点是它满足邻接条件,没有瞬时错误(在数码变换过程中,在速度上会有快有慢,中间经过其他一些数码形式,即为瞬时错误)。

(3)码字的循环特性,循环码中任一许用码经过循环移位后,所得到的码组仍然是许用码组。

图12 循环码编译码总原理方框图

循环码的编、译码系统由下列五部分组成:定时单元、信码发生器及显示部分、编码器和译码器。

2.3.2循环码编码基本原理

有信息码构成信息多项式m(x)mk1xk1m0,其中最高幂次为k1;

用xnk乘以信息多项式mx,得到的xnkm(k),最高幂次为n1,该过程相

12

武汉理工大学《学科基础课群综合训练》报告

当于把信息码(mk1,mk2,为零的监督位;

,m1,m0)移位到了码字的前k个信息位,其后是r个全

用gx除xnkm(k)得到余式rx,其次数必小于gx的次数,即小于,将此rx加于信息位后做监督位,即将rx于xnkm(k)相加,得到的(nk)多项式必为一码多项式。

2.3.3循环码译码原理

纠错码的译码是该编码能否得到实际应用的关键所在。译码器往往比编码较难实现,对于纠错能力强的纠错码更复杂。根据不同的纠错或检错目的,循环码译码器可分为用于纠错目的和用于检错目的的循环码译码器。

通常,将接收到的循环码组进行除法运算,如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。用于纠错目的的循环码的译码算法比较复杂。

而用于检错目的循环码,一般使用ARQ通信方式。检测过程也是将接受到的码组进行除法运算,如果除尽,则说明传输无误:如果未除尽,则表明传输出现差错,要求发送端重发。用于这种目的的循环码经常被成为循环冗余校验码,即CRC校验码。CRC校验码由于编码电路、检错电路简单且易于实现,因此得到广泛的应用。在通过MODEM传输文件的协议如ZMODEM、XMODEM协议中均用到了CRC 校验技术。在磁盘、光盘介质存储技术中也使用该方法。

当码字c通过噪声信道传送时,会受到干扰而产生错误。如果信道产生的错误图样是e,译码器收到的n重接受矢量是y,则表示为:

上式也可以写成多项式:

y(x)c(x)e(x)

yce (4)

(5)

译码器的任务就是从y(x)中得到e(x),然后求估值码字

^^

c(x)c(x)e(x)

^^(6)

并从中得到信息组m(x)

循环码译码可按下面三个步骤进行: (1)有接收到的y(x)计算伴随式s(x);

(2)根据伴随式s(x)找出对应的估值错误图样;

13

武汉理工大学《学科基础课群综合训练》报告

(3)计算c^(x)=y(x)+e^(x),得估计码字。若c^(x)= c(x),则译码正确,否则错误。

由于g(x) 的次数为n - k 次,g(x) 除E(x) 后得余式(即伴随式)的最高次数为n-k-1次,故S(x) 共有2nk个可能的表达式,每一个表达式对应一个错误格式。可以知道(7,4)循环码的S(x) 共有2(74)8个可能的表达式,可根据错误图样表来纠正(7,4)循环码中的一位错误,其伴随式如下表所示:

表1 BCH(7,4)循环码错误图样表

将接收到的码字R(x)用g(x)去除,如果除尽则无错;否则有错。如果有错,可由余式S(x)一一找出对应图样,然后将错误图样E(x)与R(x)模2和,即为所求码字C(x),从而实现纠错目的。

2.2.4用MATLAB实现HDB3编译码

对信号进行HDB3编译码程序见附录三

14

武汉理工大学《学科基础课群综合训练》报告

图13循环码编码原理

图14循环译码的程序框图

15

武汉理工大学《学科基础课群综合训练》报告

2.4 PSK调制解调原理

2.4.1 PSK基本原理

相移键控(PSK)是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。在2PSK中通常用初始相位0和分别表示二进制的“1”和“0”。因此,2PSK信号的时域表达式为[2]

e2PSK(t)Acos(wctn)

其中,n为载波初始相位:

(7)

0,\"1\"n

,\"0\"(8)

这种以载波的不同相位直接表示相应二进制数字信号的调制方式,成为二进制相移

键控。二进制移相键控信号的典型时域波形如图4-5所示。

图15 二进制移相键控信号的典型时域波形

从波形图中可以看出,当数字基带信号s(t)为双极性不归零序列时,利用乘法器将s(t)与正弦载波c(t)相乘能产生2PSK信号,其时域波形还可表示为:

Acos2fct,\"1\"sm(t)s(t)c(t),0tTB

Acos2fct,\"0\"(9)

2.4.2 PSK调制基本原理及方案选择

在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控信号。2PSK信号调制有两种办法,一是模拟调制法,二是键控法。

16

武汉理工大学《学科基础课群综合训练》报告

图16 2PSK信号模拟调制原理框图

图17 2PSK信号监控调制原理框图

本次课程任务是要对语音信号进行u律PCM编码,故选择方法一—模拟调制法。

2.4.3 PSK解调基本原理

由于2PSK的幅度是恒定的,必须进行相干解调。经过带通滤波的信号在相乘器中

与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。判决器是按极性来判决的。即正抽样值判为1,负抽样值判为0。2PSK信号的相干解调原理图如图4-8所示,其各点波形如图4-9所示。

由于2PSK信号的载波回复过程中存在着180。的相位模糊,即恢复的本地载波与所需相干载波可能相同,也可能相反,这种相位关系的不确定性将会造成解调出的数字基

带信号与发送的基带信号正好相反,即“1”变成“0”吗“0”变成“1”,判决器输出数字信号全部出错。这种现象称为2PSK方式的“倒”现象或“反相工作”。

17

武汉理工大学《学科基础课群综合训练》报告

图18 2PSK相干解调原理框图

图19 相干解调各点波形图

2.4.4 用MATLAB实现PSK调制解调

PSK调制解调程序见附录四。

18

武汉理工大学《学科基础课群综合训练》报告

图20 PSK调制流程图 图21 PSK解调流程图

2.5衰落信道

瑞利衰落信道(PSKRayleigh fading channel)是一种无线电信号传播环境的“统计模型(statistical model)”。这种模型假设信号通过无线信道之后,其信号幅度(amplitude)是随机的,即“衰落(fading)”,并且其包络(envelope)服从瑞利分布(Rayleigh distribution)。

这一信道模型能够描述由电离层和对流层反射的短波信道,以及建筑物密集的城市环境。瑞利衰落只适用于从发射机到接收机不存在直射信号(LoS,Line of Sight)的情况,否则应使用莱斯衰落信道(Ricean fading channel)作为信道模型。 瑞利衰落能有效描述存在能够大量散射无线电信号的障碍物的无线传播环境。若传播环境中存在足够多的散射,则冲激信号到达接收机后表现为大量统计独立的随机变量的叠加,根据中心极限定理,则这一无线信道的冲激响应将是一个高斯过程。如果这一散射信道中不存在主要的信号分量,通常这一条件是指不存在直射信号(LoS),则这一过程的均值为0,且相位服从0到2π的均匀分布。即,信道响应的包络服从瑞利分布。设随机变量R,于是其概率密度函数为:

其中E(R2)。

(8)

若信道中存在一主要分量,例如直射信号(LoS),则信道响应的包络服从莱斯分布,对应的信道模型为莱斯衰落信道。

19

武汉理工大学《学科基础课群综合训练》报告

通常将信道增益以等效基带信号表示,即用一复数表示信道的幅度和相位特性。由此瑞利衰落即可由这一复数表示,它的实部和虚部服从于零均值的独立同分布高斯过程。

瑞利衰落模型适用于描述建筑物密集的城镇中心地带的无线信道。密集的建筑和其他物体使得无线设备的发射机和接收机之间没有直射路径,而且使得无线信号被衰减、反射、折射、衍射。在曼哈顿的实验证明,当地的无线信道环境确实接近于瑞利衰落。通过电离层和对流层反射的无线电信道也可以用瑞利衰落来描述,因为大气中存在的各种粒子能够将无线信号大量散射。

瑞利衰落属于小尺度的衰落效应,它总是叠加于如阴影、衰减等大尺度衰落效应上。

信道衰落的快慢与发射端和接收端的相对运动速度的大小有关。相对运动导致接收信号的多普勒频移。图中所示即为一固定信号通过单径的瑞利衰落信道后,在1秒内的能量波动,这一瑞利衰落信道的多普勒频移最大分别为10Hz和100Hz,在GSM1800MHz的载波频率上,其相应的移动速度分别为约6千米每小时和60千米每小时。特别需要注意的是信号的“深衰落”现象,此时信号能量的衰减达到数千倍,即30~40分贝。

20

武汉理工大学《学科基础课群综合训练》报告

3.MATLAB仿真结果分析

3.1 PCM编码模块仿真分析

图22 PCM编码仿真波形

对初始正弦时间信号进行20个抽样点, 连续时间信号的前5个抽样点值分别为: 0 0.3150 0.5979 0.8200 0.9585 经过PCM编码后的编码信号为:

00000000 11100100 11110011 11111010 11111110 转化为10进制并去归一化后为: 0 0.3125 0.5938 0.8125 0.9375

平均差错率为0.92%,因此可以认为PCM编码成功且准确。

21

武汉理工大学《学科基础课群综合训练》报告

图23 HDB3码和循环码编码仿真波形

与PCM输出信号波形相对照,可以发现,HDB3码在连“1”码是+1,-1交替出现,连“0”部分构成破坏节,B与V极性相同,可以证明基带码HDB3码的转化是正确的。

信道编码采用循环码的形式,但从经过HDB3基带编码后的信号是双极性码,需要将三元码转化为二元码后在进行循环编码。

由循环码波形可以看出它满足循环码的特点,将任一码元移动一位后,仍为该码中的许用码组。经循环编码输出的信号波形可以看到有很多次重复相同的码元序列,这符合循环码的特点。

22

武汉理工大学《学科基础课群综合训练》报告

图24 PSK调制、过衰落信道与PSK解调仿真波形

上图的PSK调制波形图至截取了调制信号的一部分,可以明显看到在输入信号0、1交替时,载波信号相位发生180度的转变,证明进行了正确的调制。

调制后的信号经过衰落信道后,受干扰信号的影响波形发生失真。 对通过衰落信道的信号进行PSK解调选定合适的低通滤波器,又重新得到了脉冲信号。

23

武汉理工大学《学科基础课群综合训练》报告

图25 HDB3码和循环码编解码仿真波形

将经过PSK解调后的码组进行循环码解码,由图中可以看到,码元序列又呈现出循环特性。

在进行HDB3译码之前要先将循环码译码出的二进制码元转化为三进制码元,再进行HDB3译码后恢复二进制码元。

24

武汉理工大学《学科基础课群综合训练》报告

最后一步为PCM译码,将经过各个部分的译码后最后恢复为初始的时间抽样信号,从上图来看,译码结果不理想,差错率达0.5885。需要重新检查各个部分的程序,找出关键所在。

4.小结及心得体会

在本次课程设计的学习中,让我受益颇多。一、在进行一项课程设时要充分了解项目的各个环节的原理,否则是无法进行下一步的编程,会漏洞百出,有错也不自知,所以基础知识的掌握很重要。二、让我在探索中求得真知。那些伟大的科学家之所以伟大就是他们利用实验证明了他们的伟大。实验是检验理论正确与否的试金石。虽说我们的通信原理实验只是对前人的经典实验的重复,但是对于一个知识尚浅、探索能力还不够的人来说,这些探索也非一件易事。通信原理实验都是一些经典的给人类带来了难以想象的便利与财富。对于这些实验,我在探索中学习、在模仿中理解、在实践中掌握。通信原理实验让我慢慢开始“摸着石头过河”。学习就是为了能自我学习,这正是实验课的核心,它让我在探索、自我学习中获得知识。三、教会了我检验程序正确性的能力,如何验证得出的结果的正确性,在结果不满足预期时,如何根据原理逆推找出问题所在,并解决问题。

25

武汉理工大学《学科基础课群综合训练》报告

经过这次课程设计的学习,让我收获多多。但在这中间,我也发现了我存在的很多不足。我的发现错误并改正错误的能力还不够强,当实验结果不符合预期时,怎样寻找错误点,探索方式还有待改善,当面对一些复杂的实验时我还不能很快很好的完成;我的数据处理能力还得提高,当眼前摆着一大堆复杂数据时我处理的方式及能力还不足,不能用最佳的处理手段使实验误差减小到最小程度。

参考文献

[1]刘泉《通信电子线路》 武汉理工大学出版社 2004年9月 [2]樊昌信《通信原理》国防科技出版社 2007年 [3]THEX-1型实验平台实验指导书

[4]居来提. PCM通信系统采用15折线μ律编码时的量化信噪比[J]. 新疆教育学院学报, 2001, 17(2):77-82.

[5]王虹.《通信系统原理》.国防工业出版社,2014. [6]郑阿奇.《MATLAB实用教程》.电子工业出版社.2012

26

武汉理工大学《学科基础课群综合训练》报告

附录

附录一

%主程序

%-------------------------------------

%--------PCM编码------------- t=[0:1.7*10^-4:0.00335]; S=sin(600*pi*t); m=length(S); code=pcm(S); figure(1);

subplot(2,1,1);stem(t,S);title('原始正弦信号'); subplot(2,1,2);

stairs([0:length(code(1:160))-1],code(1:160));

axis([0 length(code(1:160)) -1.2 1.2]);

title('PCM编码信号输出');

%-------------------------------%---------HDB3编码-------- yh=hdb3(code); figure(2);

subplot(3,1,1);

stairs([0:length(yh(1:160))-1],yh(1:160));

axis([0 length(yh(1:160)) -1.2 1.2]);

title('HDB3码信号输出');

%----------------------------------

%----------三进制转二进制程序------- t=tribin(yh); subplot(3,1,2);

stairs([0:length(t(1:100))-1],t(1:100));

axis([0 length(t(1:100)) -1.2 1.2]);

title('三进制转二进制码信号输出');

%----------------------------------

%-------循环码编码---------

27

武汉理工大学《学科基础课群综合训练》报告

yx=xunhuan(t); subplot(3,1,3);

stairs([0:length(yx(1:160))-1],yx(1:160));

axis([0 length(yx(1:160)) -1.2 1.2]);

title('循环码信号输出');

%---------------------- %--------PSK调制-------- [yp,mod1,mod]=psk(yx); figure(3); grid on; subplot(3,1,1); plot(yp);

axis([0 length(yp(1:160)) -1.2 1.2])

title('PSK调制信号输出'); %--------------------------- %---------衰落信道--------- sn=awgn(yp,10); grid on; subplot(3,1,2); plot(sn);

axis([0 length(sn(1:160)) -1.2 1.2])

title('通过衰落信道后的2PSK信号'); %------------------------------ %---------PSK解调------------- deyp=ipsk(sn,mod1,yx); grid on; subplot(3,1,3);

stairs([0:length(deyp(1:200))-1],deyp(1:200));

axis([0 length(deyp(1:200)) -1.2

1.2])

title('PSK解调后信号波形')

figure(4); grid on; subplot(2,1,1);

stairs([0:length(deyp(1:100))-1],deyp(1:100));

axis([0 length(deyp(1:100)) -1.2 1.2])

title('PSK调制前信号波形') grid on; subplot(2,1,2);

stairs([0:length(deyp(1:100))-1],deyp(1:100));

axis([0 length(deyp(1:100)) -1.2 1.2])

title('PSK解调后信号波形')

%----------------------------------

%--------循环码解码---------------- recode=ixunhuan(yx); figure(5); grid on; subplot(2,1,1);

stairs([0:length(t(1:160))-1],t(1:160));

axis([0 length(t(1:160)) -1.2 1.2])

title('循环码编码前信号波形') subplot(2,1,2); grid on;

stairs([0:length(recode(1:160))-

28

武汉理工大学《学科基础课群综合训练》报告

1],recode(1:160));

axis([0 length(recode(1:160)) -1.2 1.2]);

title('循环码解码后信号波形'); %--------------------------- %-------二进制转三进制----- t1=bin2tri(recode); figure(6); grid on; subplot(2,1,1);

stairs([0:length(yh(1:160))-1],yh(1:160));

axis([0 length(yh(1:160)) -1.2 1.2])

title('三进制转二进制码前信号波形') subplot(2,1,2); grid on;

stairs([0:length(t1(1:160))-1],t1(1:160));

axis([0 length(t1(1:160)) -1.2 1.2]);

title('二进制转三进制码后信号波形'); %--------------------------- %-------HDB3译码----------- deco=ihdb3(t1); figure(7); grid on; subplot(2,1,1);

stairs([0:length(code(1:160))-1],code(1:160));

axis([0 length(code(1:160)) -1.2 1.2])

title('HDB3编码前信号波形') subplot(2,1,2); grid on;

stairs([0:length(deco(1:160))-1],deco(1:160));

axis([0 length(deco(1:160)) -1.2 1.2]);

title('HDB3译码后信号波形'); %--------------------------- %-------PCM译码------------ deco1=ipcm(deco); figure(8);

t=[0:1.7*10^-4:0.00335]; s=sin(600*pi*t); subplot(2,1,1); stem(s);

title('PCM译码前信号波形') subplot(2,1,2); grid on; stem(deco1);

title('PCM译码后信号波形'); %------------------------ %-------计算失真度------- error=sum((deco1-s).^2)/m;

附录二

%PCM编码 %PCM编码程序

function code=pcm(S) %S为输入信号 z=sign(S); %判断S的正负

MaxS=max(abs(S)); %求S的最大值

S=abs(S/MaxS); %归一化

Q=2048*S; %量化

code=zeros(length(S),8); %代码存储矩阵(全零)

29

武汉理工大学《学科基础课群综合训练》报告

%段落码判断程序 for i=1:length(S)

if (Q(i)>=128)&(Q(i)<=2048) code(i,2)=1; %在第五段与第八段之间,段位码第一位都为“1” end if

(Q(i)>32)&(Q(i)<128)||(Q(i)>=512)&(Q(i)<=2048)

code(i,3)=1; %在第三四七八段内,段位码第二位为“1” end if

(Q(i)>=16)&(Q(i)<32)||(Q(i)>=64)&(Q(i)<128)||(Q(i)>=256)&(Q(i)<512)||(Q(i)>=1024)&(Q(i)<=2048) code(i,4)=1; %在二四六八段内,段位码第三位为“1” end end

%段内码判断程序 N=zeros(length(S)); for i=1:length(S)

N(i)=bin2dec(num2str(code(i,2:4)))+1; %找到code位于第几段 end

a=[0,16,32,64,128,256,512,1024]; %量化间隔

b=[1,1,2,4,8,16,32,64]; %除以16,得到每段的最小量化间隔

for i=1:length(S)

q=ceil((Q(i)-a(N(i)))/b(N(i))); %求出在段内的位置

if q==0

code(i,(5:8))=[0,0,0,0]; %如果输入为零则输出“0” else

k=num2str(dec2bin(q-1,4)); %编码段内码为二进制

code(i,5)=str2num(k(1)); code(i,6)=str2num(k(2)); code(i,7)=str2num(k(3)); code(i,8)=str2num(k(4)); end

if z(i)>0 code(i,1)=1; elseif z(i)<0 code(i,1)=0;

end %符号位的判断 end

%PCM译码 %PCM译码程序

function S=ipcm(icode)

code=reshape(icode,8,length(icode)/8)';%将8*N行1列矩阵转换为N行8列矩阵

I=size(code,1);

a=[0,16,32,64,128,256,512,1024]; b=[1,1,2,4,8,16,32,64]; c=[0,1.5:15.5]; for i=1:I x=code(i,1);

30

武汉理工大学《学科基础课群综合训练》报告

T=bin2dec(num2str(code(i,(2:4))))+1;

Y=bin2dec(num2str(code(i,(5:8))));

if Y==0

k(i)=a(T)/2048; else

k(i)=(a(T)+b(T)*c(T))/2048; end if x==0 S(i)=-k(i); else S(i)=k(i); end end end

yn(k)=-1; end end

end %yn为AMI码

num=0; %连零计数器初始化 yh=yn; %输出初始化 sign=0; %极性标志初始化为0

V=zeros(1,length(yn));%V脉冲位置记录变量

B=zeros(1,length(yn));%B脉冲位置记录变量

for k=1:length(yn) if yn(k)==0

num=num+1; %连“0”个数计数 if num==4 %如果4连“0” num=0; %计数器清零 yh(k)=1*yh(k-4); %让0000最后一个0改变为与前一个非零符号相同极性的符号

V(k)=yh(k);%V脉冲位置记录

if yh(k)==sign %如果当前V符号与前一个V符号的极性相同 yh(k)=-1*yh(k); %让当前V符号极性反转,以满足V符号间相互极性反转要求

yh(k-3)=yh(k);%添加B符号,与V符号同极性

B(k-3)=yh(k);%B脉冲位置记录

V(k)=yh(k); %V脉冲位置记录

附录三

%HDB3调制

function yh=hdb3(S)

xn=S(1:20*8); %输入单极性码PCM %[m,n]=size(code); %xn=reshape(code',1,m*n); yn=xn; %输出yn初始化 num=0; %计数器初始化 for k=1:length(xn) if xn(k)==1 num=num+1;

if num/2==fix(num/2) %偶数个1时输出1,进行极性交替,fix()为取整函数,不管小数部分有没有超过5,都只留下整数部分

yn(k)=1; else

31

武汉理工大学《学科基础课群综合训练》报告

yh(k+1:length(yn))=-1*yh(k+1:length(yn));%并让后面的非零符号从V符号开始再交替变化 end

sign=yh(k); %记录前一个V符号的极性 end

else num=0; %当前输入为“1”则连“0”计数器清零 end End

%HDB3译码

function deco1=ihdb3(x) input=x;

deco1=input;sign=0; %输出和极性标志初始化

for k=1:length(input) if input(k)~=0

if k>3&&sign==x(k) %如果当前码与前一个非零码的极性相同

deco1(k-3:k)=[0 0 0 0];%则该码判为V码并将*00V清零 end

sign=input(k);%极性标志 end end

deco1=abs(deco1); %整流

t(2*i)=0; elseif x(i)==0 t(2*i-1)=0; t(2*i)=1; else

t(2*i-1)=1; t(2*i)=0; end end %循环码编码

function code=xunhuan(x) n=7;k=4;

p=cyclpoly(n,k); %循环码生成多项式 code=encode(x,n,k,'cyclic',p);%对信号进行差错编码

code=reshape(code',1,length(code)); %循环码解码

function recode=ixunhuan(x) n=7;k=4;

p=cyclpoly(n,k); %循环码生成多项式 recode=decode(x,n,k,'cyclic',p);%对信号进行差错编码

recode=reshape(recode',1,length(recode)); end

%二进制转三进制

function t=bin2tri(x) L =length(x); for i=1:L/2

if x(2*i-1)==0&&x(2*i)==0 t(i)=-1;

elseif x(2*i-1)==0&&x(2*i)==1 t(i)=0;

else x(2*i-1)==1&&x(2*i)==0

附录四

%三进制转二进制程序 function t=tribin(x) m=length(x); for i=1:m if x(i)==-1 t(2*i-1)=0;

32

武汉理工大学《学科基础课群综合训练》报告

t(i)=1; end End

mod=[mod c]; %与s(t)等长的载波信号 end

tiaozhi=cm.*mod;%e(t)调制 %psk解调

附录五

%PSK调制 function

[tiaozhi,mod1,mod]=psk(g) cp=[]; mod1=[]; f=600*pi;

t=[0:1.7*10^-4:0.00335]; for n=1:length(g); if g(n)==0;

A=zeros(1,20);%每个值200个点 else g(n)==1;

A=ones(1,20); end

cp=[cp A]; %s(t),码元宽度200 c=cos(f*t);%载波信号

mod1=[mod1 c];%与s(t)等长的载波信号,变为矩阵形式 end

cm=[];mod=[]; for n=1:length(g); if g(n)==0;

B=ones(1,20);%每个值200个点 c=sin(f*t); %载波信号 else g(n)==1; B=ones(1,20);

c=sin(f*t+pi); %载波信号 end

cm=[cm B]; %s(t),码元宽度200

function jt=ipsk(g,mod1,g1) jiet=2*mod1.*g;%与载波相乘 %低通滤波器

fp=200;fs=400;rp=3;rs=20;fn=1000;

ws=fs/(fn/2); wp=fp/(fn/2);%计算归一化角频率

[n,wn]=buttord(wp,ws,rp,rs);%计算阶数和截止频率

[b,a]=butter(n,wn);%计算H(z) jt=filter(b,a,jiet); %抽样判决

for m=1:20*length(g1); if jt(m)<0; jt(m)=1; else jt(m)>=0; jt(m)=0; end end

33

武汉理工大学《学科基础课群综合训练》报告

34

因篇幅问题不能全部显示,请点此查看更多更全内容