基于MATLAB的PCM仿真

基于MATLAB的PCM仿真
基于MATLAB的PCM仿真

[摘要] 现在数字通信发展迅速,而在现实生活中,多数信源源本都是模拟的,本文主要讨论的就是如何将模拟信号数字化的这个过程既PCM传输系统进行仿真。包括抽样,量化,编码几个部分。将对整个过程中的信号变换做详细的分析,并提供方仿真波形图。利用Matlab仿真软件,完成一个基本的数字通信系统。脉冲编码调制(PCM)是现代语音通信中数字化的重要编码方式。学习通过利用计算机建立通信系统模型的基本方法和基本技能,学习会利用仿真的手段对通信系统的基本理论和基本算法进行验证。学习现有流行的通信系统仿真软件的基本使用方法,利用Matlab软件解决通信中存在的问题。

[关键词] PCM;Matlab;仿真

[Abstract] Now the digital communication development is rapid, and in real life, most believe this is the stream simulation, this paper mainly discusses how to analog signal digital this process is PCM transmission system was simulated. Including sampling, quantification, coding several parts. Will the whole process of the signal transformation for detailed analysis, and the supplier simulation waveform figure. Use of Matlab simulation software to a basic digital communication system. Pulse code modulation (PCM) is the modern voice communication in the important digital coding way. Learning by using a computer model established communication system the basic method and the basic skills, learning, using simulation method for communication system of basic theory and basic algorithm is verified. Learning the existing popular communication system simulation software。

[Key words] PCM;Matlab;the simulation

目录

1 绪论 (1)

1.1 PCM技术的产生和发展 (1)

1.2 设计要求 (1)

1.3 课题目标及内容 (2)

1.3.1 论文课题目标 (2)

1.3.2 论文主要内容 (2)

2 MATLAB工具介绍 (3)

2.1 MATLAB简介 (3)

2.2 MATLAB的功能和特点 (3)

3 PCM基本原理 (4)

3.1 抽样 (4)

3.2 量化 (4)

3.3 编码 (6)

3.4 时分多路复用 (8)

4 系统设计 (10)

4.1 通信系统的原理 (10)

4.2 所设计子系统的原理 (11)

4.3 详细设计与编码 (11)

4.3.1 设计方案 (11)

4.3.2 编码与测试 (12)

4.3 .3 运行结果与分析 (13)

结束语 (18)

致谢 (19)

参考文献 (20)

附录 (21)

1 绪论

数字通信系统己经成为现今通信发展的方向,但是经过传感器的转换以后自然界中的很多信息,大多数依旧为模拟量,PCM(脉冲编码调制)它是一种调制方式就是把模拟信号转换作数字信号。重点运用在语音传输,并且在数字微波通信、卫星通信、光纤通信当中得到了广阔的运用,通过凭借MATLAB软件,能够更便捷、直接的来仿真与计算。因此可以通过运行出的结果,分析系统特性。

MATLAB是美国Math Works公司开发的一套面向理论分析研究和工程设计处理的系统仿真软件。MATLAB具有强大的图形处理的能力,功能强大的数值运算功能,丰富的工具箱,高级且简单的程序环境。它被广泛应用在通信仿真中。

1.1 PCM技术的产生和发展

脉冲编码调制,是由A.里弗斯在1937年提出的,这一概念为数字通信奠定了基础[1]。光纤通信系统中,光纤中传送的是“0码”和“1码”二进制光脉冲。而数字信号是需要对持续不断变化的模拟的信号进行抽样、量化和编码所得出来的,称为PCM[1]。此电的数字信号可被称作数字基带信号,通过 PCM电端机所产生的,现在的数字传输系统都是采用脉冲编码调制体制。PCM最初并非传输计算机数据用的,而是使交换机之间有一条中继线不是只传送一条电话信号。PCM有两种标准(表现形式)即T1和E1。中国采用的是欧洲的E1标准[2]。T1的速率是1.544Mbit/s,E1的速率是

2.048Mbit/s。

脉冲编码调制是七十年代末期发展起来的,记录媒体的CD之一,在八十年代初期由索尼同飞利浦公司联合推出。脉冲编码调制所具有的音频格式同样是被DVD-A所采用的,他支持5.1环绕声与立体声,被DVD讨论会发布且推出在1999年。脉冲编码调制的比特率,从14-bit一直发展直到24-bit;采样的频率也从44.1kHz一直发展达到192kHz[3]。PCM脉冲编码调制此技术能够提高和改善的部分却一直在变小。仅是单纯的提增PCM脉冲编码调制采样率以及比特率,不能彻底的改换它的根基问题。

它的原因是PCM主要的问题所在为:

任何的脉冲编码调制数字音频系统必须要在它的输入端置设可以快速降升的滤波器,仅仅让20Hz-22.05Hz的频率通过(22.05kHz是由CD44.1kHz频率的一半所确定的)。录音的时候采用串联抽选或多级数字滤波器(降低采样频率),在重放的时候采纳用有多级内插的数字滤波器(提升采样的频率)[8],二者加入重复定量噪声可以控制小信号编码的时候的失真。以此限制了在音频还原时候脉冲编码调制技术的保真度。

1.2 设计要求

(1)自己要独立完成题目内容。

(2)对通信系统有整体且深入的理解,深入理解自己需要仿真部分的原理的基础内容,画出相互对应的通信子系统的原理框图。

(3)提出仿真的方案;

(4)独立的完成仿真软件的编制;

(5)演示仿真软件;

1.3 课题目标及内容

1.3.1 论文课题目标

(1)培养我综合运用多门课程知识的能力。

(2)培养我熟练掌握MATLAB,运用此MATLAB软件工具进行通信系统仿真的能力。

(3)培养我发现问题,解决问题,查阅资料解决问题的能力。

(4)加强我对通信系统各个不同方面的理解。

(5)培养我们系统设计和系统开发的良好的思想。

1.3.2 论文主要内容

本课题是基于MATLAB的通信系统仿真— PCM系统仿真, 用Matlab软件仿真来实现PCM的编码过程并得出相应的图形。

2 MATLAB工具介绍

2.1 MATLAB简介

Matlab是由美国的mathworks公司出品的一款商业性数学软件[4]。可用于数据的可视化、算法的开发、数值的计算和数据分析的交互式的环境和高级的技术计算语言。

其主要包括SIMULINK与MATLAB两大部分。其把科学数据可视化、数值计算,数值分析,矩阵计算,及其非线性动态系统的仿真与建模等众多的高级的功用统一于一个比较容易使用地视窗环境当中,它代表了当今的国际科学计算软件的先进水平。

三大数学软件包括MATLAB和MATHEMATICA、MAPLE。MATLAB能够进行绘制函数与数据、运算矩阵、用户界面的创建、算法的实现、matlab的开发工作界面连到其它编程语言程序等等。它重点运用在控制设计、工程的计算、金融建模分析和设计、检测信号、处理图像、信号通讯和处理等方面。

2.2 MATLAB的功能和特点

我这次所要选用的软件是MATLAB,因为这款软件的功能很是强大,学习起来也很方便,仿真也比较容易实现。

MATLAB具有以下六个特点:

(1)较高的编程效率

(2)MATLAB把连接、编辑、编译及其执行融合为一体。可以使用户方便的使用。

(3)具有很强扩充能力,数学运算可以直接调用丰富得库函数用户文件也能调用当做库函数。

(4)matlab的语句很简单,内涵也是十分的丰富

(5)在matlab中矩阵和数组运算是十分高效十分方便的

(6)有一系列绘图命令可调用,能够更加方便的进行绘图,自变量可调。

最主要的是MATLAB软件学习起来方便容易,以前有学习C、VB语言的基础,MATLAB 与C、VB语言有类似之处,编程流程大概差不多,但要注意的是MATLAB与C、VB语言在程序代码上也有细微的差别,MATLAB是一种解释性的语言,在写程序代码时相对容易方便些,与C、VB语言相比较来说它的运算速度慢,但是它功能强大。

3 PCM基本原理

脉冲编码调制(PCM)简称脉码调制,它是一种用二进制数字代码来代替连续信号的抽样值,从而实现通信的方式。因为此种通信方式抗干扰能力强,因此在光钎通信、数字微波通信、卫星通信中均获得了极为广泛的运用[1]。PCM信号的形成是模拟信号经过“抽样、量化、编码”三个步骤实现的。分别完成时间上离散、幅度上离散、及量化信号的二进制表示。根据CCITT的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A律和μ律方式,我国采用了A律方式,由于A 律压缩实现复杂,常使用 13 折线法编码[2]。

3.1 抽样

抽样,即是对模拟的信号所进行的周期性的扫描,将在时间上连续的信号变为在时间上离散的信号[1]。这个模拟信号经过抽样以后还应要包含原有信号当中所有信息,也就是说能够无失真的恢复原有模拟信号。抽样定理可确定其抽样速率下限。于一个

频带限制在(0,f

h )内的时间连续信号f(t),若以1/2 f

h

的时间间隔对它进行抽样,

以此能完全恢复有原信号依靠这些个抽样值。也就是说,要是一个连续信号f(t)的频

谱当中其最高的频率不大于f

h ,在抽样的频率f

s

≥2f

h

时候,原有连续的所有信息也

就包含于抽样后的信号[1]。这就是抽样定理。

3.2 量化

从数学上来看,量化是将一个连续幅度值的无限数集合映射成一个离散幅度值的有限数集合[5]。像图 3.1所展现出来的量化器Q传输出来M个量化的值yk,k=1,2,3,…,M。yk常被称作量化电平或者是重建电平。在量化器所要输进去的信号的幅度值x落在xk和xk+1当中的时候,量化器就传送输出的电平是yk。此量化过程就可写成表达式为:

Y=Q(x)=Q{Xk

一般来讲△k=xk+1-xk称作量化间隔,在此xk被称作判决阈值或者是分层电平。

图3.1模拟信号的量化

量化后的抽样信号于量化前的抽样信号相比较,当然有所失真,且不再是模拟信号。这种失真在接收端还原模拟信号是变现为噪声,并称之为量化噪声[9]。量化噪声的大小取决于把样值分级“取整”的方式,分的级数越多,即量化极差或间隔越小,量化噪声也越小。

模拟信号的量化分为均匀量化和非均匀量化。在现实中,一般爱采用非均匀量化。 非均匀量化的量化间隔是依据信号的不同的区间来定的。信号取值大的区间,它的量化间隔△v 大;在信号的取值小的区间,它的量化间隔△v 小[5]。将它和均匀量化作比较,它有俩主要好处。首先,在信号具非均匀的分布概率密度(现实中经常如此)时当在输入量化器的时候,能够取得比更加高地的平均信号的量化噪声的功率比在非均匀量化器输出端上;第二是,量化噪声功率的它均方根值大体上和信号的抽样值成比例在非均匀量化的时候。所以说大信号和小信号在量化噪声影响下大体是一样的,也就是改良小信号的时候其量化的信噪比。

在实际中,非均匀的量化的办法通常是将获得的抽样值经过压缩然后再均匀量化。通常使用的压缩器中,大多数是采用对数式压缩。广泛被采用的两种对数压缩律是μ压缩律和A 压缩律。美国μ采用压缩律,我国和欧洲各国均采用A 压缩律,因此,PCM 编码方式采用的也是A 压缩律[5]。

所谓A 压缩律也就是压缩器具有如下特性的压缩律:

A

x A Ax y 1

0,ln 1≤<+=

;(3.1)

11

,ln 1ln 1<≤++=

x A

A Ax y ;(3.2)

A 律压扩特性是连续曲线,A 值不同压扩特性亦不同,在电路上实现这样的函数规律是相当复杂的。实际中,往往都采用近似于A 律函数规律的13折线(A=87.6)的压扩特性。如此,它便于用电路实现,又基本上保持了连续压扩特性曲线的优点,在这个设计之中所用着的PCM 编码正是采用这种压扩特性来编码的[8]。图3.2示出了这种压扩特性,表3.1列出了13折线时的x 值与计算x 值的比较。

图3.2 A律函数13折线

表3.1中第二行的x值是根据A=87.6时计算得到的,第三行的x值是13折线分段时的值。可见,13折线各段落的分界点与A=87.6曲线十分逼近,同时x按2的幂次分割有利于数字化。

3.3 编码

所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码[1]。当然,这

里的编码和译码与差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。

在现有的编码方法中,若按编码的速度来分,大致可分为两大类:低速编码和高速编码。通信中一般都采用第二类。编码器的种类大体上可以归结为三类:逐次比较型、折叠级联型、混合型。在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。下面结合13折线的量化来加以说明。

表3.3 段内码

是输入信号抽样量化值由8位折叠二进制码表示,在此间量化值极性就要用第一位表示,抽样量化值其绝对的大小就要用其余七位(第2至8位)来表示。详细的做法是:

用第2到第4位表示段落码,八个段落的起点电平由它的八种可能状态来分别表示。其它四位表示段内码,每一个段落它的16个均匀的划分地量化级由它的16种可能状态来分别的代表。这样处理的结果,8个段落被划分成128个量化级。段落码和8个段落之间的关系如表3.2所示;段内码与16个量化级之间的关系见表3.3。 3.4 时分多路复用

TDM (时分多路复用)是按传输信号时间来进行分割的,它能使不一样的信号在不一样的时间里来传送,把全部个传输时间划分作很多时隙(Slot time ,TS ,又称为时间间隔)

,一路信号占用一个时间片[7]。

图3.3 时分多路复用原理图

如上图电话通信为例说明时分多路复用的过程:发送端的各路话音信号经低通滤波器将带宽限制在3400Hz 以内,然后加到匀速旋转的电子开关 SA1上,依次接通各路信号,它相当于对各路信号按一定的时间间隙进行抽样。SA1旋转一周的时间为一个抽样周期T,这样就做到了对每一路信号每隔周期T时间抽样一次,此时间周期称为1帧长。发送端电子开关 SA1不仅起到抽样作用,同时还要起到复用和合路的作用。合路后的抽样信号送到编码器进行量化和编码,然后,将信号码流送往信道。在接收端,将各分路信号码进行统一译码,还原后的信号由分路开关SA2依次接通各分路,在各分路中经低通滤波器将重建的话音信号送往收端用户。在上述过程中,应该注意的是,发、收双方的电子开关的起始位置和旋转速率都必须一致,否则将会造成错收,这就是PCM系统中的同步要求。收、发两端的数码率或时钟频率相同叫位同步或称比特同步,也可通俗的理解为两电子开关旋转速率相同;收、发两端的起始位置是每隔1帧长(即每旋转一周)核对一次的,此称帧同步。这样才一能保证正确区分收到的哪8位码是属于一个样值的,又是属于哪一路的。为了完成上述同步功能,在接收端还需设有两种装置:一是同步码识别装置,识别接收的PCM信号序列中的同步标志码的位置;二是调整装置,当收、发两端同步标志码位置不对应时,需在收端进行调整使其两者位置相对应。以上两种装置统称为帧同步电路。时分多路复用不仅局限于传输数字信号,也可同时交叉传输模拟信号。

4 系统设计

4.1 通信系统的原理

通信的目的是传递消息,通信系统是一个以传递消息为目地的系统,通信系统的一般模型如下图所示:

图4.1 通信系统的一般模型

图中,信源的作用是把待传输的消息转换成原始的电信号,比如电话系统中电话机可以看成是信源。信源输出的信号称为基带信号。所谓基带信号是指没有经过调制(进行频谱搬移和变换)的原始电信号,其特点是信号频谱从零频附近开始,具有低通形式。根据原始电信号的特征,基带信号可分为数字基带信号和模拟基带信号,相应地,信源也分为数字信源和模拟信源。发送设备的基本功能是将信源和信道匹配起来,即将信源产生的原始电信号(基带信号)变换成适合在信道中传输的信号在需要频谱搬移的场合,调制是最常见的变换方式;对传输数字信号来说,发送设备又常常包含信源编码和信道编码等。

信道是指信号传输的通道,可以是有线的,也可以是无线的,甚至还可以包含某些设备。图中的噪声源,是信道中的所有噪声以及分散在通信系统中其它各处噪声的集合。

在接收端,接收设备的功能与发送设备相反,即进行解调、译码、解码等。它的任务是从带有干扰的接收信号中恢复出相应的原始电信号来。信宿是将复原的原始电信号转换成相应的消息。

我做的是通信系统中的一种系统:数字通信系统的仿真。

其基本框图如下:

我负责独立完成以上各部分。

4.2 所设计子系统的原理

现在更详细说明以上数字通信系统的原理。

(1)模拟信号为原始的信源信号。

(2)抽样是将上述的时间和幅值都连续的模拟信号转换成时间离散幅值连续的信

号。

(3)量化是将上述的时间离散幅值连续的抽样信号转换成时间离散幅值离散的信

号。

(4)信源编码是将上述量化后的值编码成0、1比特流的形式,并且可以减少冗余,

提高效率。

(5)信道编码是为了提高传输可靠性。

(6)数字调制是将上述0、1比特流转换成适合在通信信道中传输的波形。

(7)信道是信号传输的通道,信号在信道中传输时经常会有噪声的干扰。

(8)数字滤波器是将调制并加有噪声的信号,去除噪声,并且解调后形成方波形

式的信号。

(9)抽样判决是将方波形号转换成0、1比特流。

(10)信道译码是信道编码的反过程。

(11)信源译码是信道编曲码的反过程。

(12)最后还原成模拟信号。

4.3 详细设计与编码

4.3.1 设计方案

经过我的思考,再加上查阅了大量资料后,有了以下编程设计思路。

图4.3 编程设计思路

在主函数中,先产生一个模拟信号,再经过抽样后得到抽样值,将抽样值通过13拆线法转换成对应值,将转换后的值经过量化和编码后得到0、1比特流,再经过信道译码,再经过BPSK调制,再人为加入一些噪声,再通过数字滤波器将噪声和载波滤掉,取出直流分量,得到方波波形。再经过抽样判决后得到0、1比特流,再经过

线性分组码译码,最后经过信源译码,再经过A侓公式反转成原始模拟信号,画出各阶段的波形。

4.3.2 编码与测试

调试过程:

将各个子程序和主程序都放入MATLAB的工作空间中,双击main.m文件后,点击Debug → Run运行程序。

图4.4 MATLAB界面

在这次通信系统仿真编程中,我遇到了很多问题,例如在利用13折线进行数值变转时,需要考虑归一化问题,并且考虑到在第一象限和第三象限的情况基本相同,只是符号相反,所以只需考虑一段,那么在进行运算是得先把原来的值的符号位保存,再在变换后的值上添加符号值。还有在对连续幅值进行量化时,我也犯了一些思路上的混乱,导致我在调试的时候出现错误,但当我反复一遍遍检查,发现只是在取值端点上没有弄好,当我改后就好了。

还有在编码时,一开始不知怎么的老是前几个数编出来只有六位,我又上那块去

找原因,发现又是在取值边界上的问题,我改后这个问题也解决了。在进行BPSK 调制时,出现了相位模糊的问题,我在抽样判决后,人为的进行取反,就得到了正确的0、1比特流。在信源译码的时候要注意的是,取的量化电平及值要和发送端事约定好,以便在接收到0、1比特流后能够正确译出量化值,在量化值恢复成原始抽样值时,我采用的是A 律反解法,因为在我设计的程序中令A 的值为87.65,此时的A 律曲线和13拆线很接进,为了观查它们的近似度,我在发送端和接收端分别用了13折线和A 律公试。

4.3 .3 运行结果与分析

先得到原始模拟信号如下图:

2

4

6

8

10

12

14

16

18

20

-1-0.8-0.6-0.4-0.200.20.40.60.8

1原始模拟信号

图4.5 原始模拟信号

将此模拟信号按每周期取32个点抽样,得到以下图形:

图4.6 抽样信号

将抽样后的量化值进行二进制编码,第八位二进制数表示一个量化值,将得到的二进制数进行信道编曲码,得到如下图形:

00.51 1.52 2.53 3.5

-0.5

0.5

1

1.5

信道编码后的信号

图4.7 信道编码后的信号

经过BPSK 调制后的信号和在调制后的信号中加入噪声有如下图形:

0.005

0.01

0.0150.02

0.025

0.03

-10

1

数字调制后的信号

0.005

0.01

0.015

0.02

0.025

0.03

0.035

0.04

加噪后的信号

图4.8 数字调制后的信号

(值得引起注意的是,我用0.1的宽度来表示一个比特,所以如果在0.1的整数倍的地方才能看到有0比特的相位表示用0相位,1比特的相位表示用pi/2)

在接收端用一个与调制后的波同频的相干波与接收到的信号相乘后得到以下图形:

0.2

0.4

0.6

0.8

1

-1.5

-1-0.500.51

1.52

2.5与相干波相乘后的波形

图4.9 与相干波相乘后的波形

经过数字低通滤波器滤除噪声和载波后的波形如下图:

00.51 1.52 2.53 3.54

-1

-0.5

0.5

1

1.5

低通滤波后的波形

图4.10 低通滤波后的信号

(值得引起注意的是在BPSK 调制中会出现相位模糊问题,在些处是通过在抽样判决时加以处理,使其能够正确译码输出)

通过信道译码后的图形如下:

0.5

1

1.5

2

2.5

-0.4

-0.200.20.40.60.811.2

1.4信道译码信号

图4.11 信道译码信号

将信道译码后的信号,分为八位二进制位一组一组的,再将其恢复成十进制数,到对应段去找取值,即恢复原始信号的量化值,再将其值通过A 律公式反解出原始信号的抽样值,画出如下图形:

-1-0.8-0.6-0.4-0.200.20.40.60.8

1

图4.12 反解出的原始信号的抽样值图形

将上图用平滑的曲线边接起来,再标注上抽样点则得到如下图形:

-1-0.8-0.6-0.4-0.200.20.40.60.81

图4.13 经过仿真后的图

通过将原始信号与接收端得到的信号进行比较,可见信号恢复情况良好,只是在信号经过系统后,稍有些延时。

相关主题
相关文档
最新文档