PCM编码的Matlab实现.docx
- 文档编号:10913286
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:32
- 大小:1.35MB
PCM编码的Matlab实现.docx
《PCM编码的Matlab实现.docx》由会员分享,可在线阅读,更多相关《PCM编码的Matlab实现.docx(32页珍藏版)》请在冰豆网上搜索。
PCM编码的Matlab实现
PCM编码的Matlab实现
课程设计任务书
学生姓名:
专业班级:
通信
指导教师:
工作单位:
信息工程学院
题目:
脉冲编码调制(PCM)的实现
初始条件:
实现脉冲编码调制(PCM)技术的三个过程:
采样、量化与编码。
要求完成的主要任务:
用仿真软件对电路进行验证,使其满足以下要求:
1)模拟信号的最高频率限制在4KHZ以内
2)分别实现64级电平的均匀量化和
压缩率的非均匀量化
3)按照13折线A律特性编成8位码;
时间安排:
序号
阶段内容
所需时间
1
方案设计
2天
2
硬件设计
3天
3
软件设计
3天
4
系统仿真
2天
5
系统调试
3天
6
答辩
1天
14天
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
本设计结合PCM的抽样、量化、编码原理,利用MATLAB软件编程和绘图功能,完成了对脉冲编码调制(PCM)系统的建模与仿真分析。
课题中主要分为三部分对脉冲编码调制(PCM)系统原理进行建模与仿真分析,分别为采样、量化和编码原理的建模仿真。
同时仿真分析了采样与欠采样的波形、均匀量化与A律13折线非均匀量化的量化性能及其差异。
通过对脉冲编码调制(PCM)系统原理的仿真分析,设计者对PCM原理及性能有了更深刻的认识,并进一步掌握MATLAB软件的使用。
关键词:
matlab;脉冲编码调制(PCM)均匀与非均匀量化MATLAB仿真。
1绪论
数字通信作为一种新型的通信手段,早在20世纪30年代就已经提出。
在1937年,英国人里费(A.H.Reeves)提出了脉冲编码调制(PCM)方式。
从此揭开了近代数字传输的序幕。
PCM系统的优点是:
抗干扰性强;失真小;传输特性稳定,远距离再生中继时噪声不累积,而且可以采用有效编码、纠错编码和保密编码来提高通信系统的有效性、可靠性和保密性。
另外,由于PCM可以把各种消息(声音、图像、数据等等)都变换成数字信号进行传输,因此可以实现传输和交换一体化的综合通信方式,而且还可以实现数据传输与数据处理一体化的综合信息处理。
故它能较好地适应信息化社会对通信的要求。
PCM的缺点是传输带宽宽、系统较复杂。
但是,随着数字技术的飞跃发展这些缺点也不重要。
因此,PCM是一种极有发展前途的通信方式。
2MATLAB简介
2.1MATLAB软件简介
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
其具有以下特点:
友好的工作平台和编程环境;简单易用的程序语言;强大的科学计算机数据处理能力;出色的图形处理功能;应用广泛的模块集合工具箱;实用的程序接口和发布平台;应用软件开发(包括用户界面)。
2.2MATLAB程序设计方法
MATLAB有两种工作方式:
一种是交互式的命令行工作方式;另一种是M文件的程序工作方式。
在前一种工作方式下,MATLAB被当做一种高级数学演算纸和图形表现器来使用,MATLAB提供了一套完整的而易于使用的编程语言,为用户提供了二次开发的工具,下面主要介绍MATLAB控制语句和程序设计的基本方法。
用MATLAB语言编写的程序,称为M文件。
M文件有两类:
命令文件和函数文件。
两者区别在于:
命令文件没有输入参数,也不返回输出参数;而函数文件可以输入参数,也可以返回输出参数。
命令文件对MATLAB工作空间的变量进行操作,而且函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除。
M文件可以使用任何编辑程序建立和编辑,而一般常用的是使用MATLAB提供的M文件窗口。
首先从MATLAB命令窗口的File菜单中选择New菜单项,在选择M-file命令,将得到的M文件窗口。
在M文件窗口输入M文件的内容,输入完毕后,选择此窗口File菜单的saveas命令,将会得到saveas对话框。
在对话框的File框中输入文件名,再选择OK按钮即完成新的M文件的建立。
然后在从MATLAB命令窗口的File菜单中选择Open对话框,则屏幕出现Open对话框,在Open对话框中的FileName框中输入文件名,或从右边的directories框中打开这个M文件。
在M文件所在的目录,再从FileName下面的列表框中选中这个文件,然后按OK按钮即打开这个M文件。
在M文件窗口可以对打开的M文件进行编辑修改。
在编辑完成后,选择File菜单中的Save命令可以把这个编辑过的M文件报存下来。
当用户要运行的命令较多或需要反复运行多条命令时,直接从键盘逐渐输入命令显得比较麻烦,而命令文件则可以较好地解决这一问题。
我们可以将需要运行的命令编辑到一个命令文件中,然后再MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。
3PCM脉冲编码原理
3.1模拟信号的抽样及频谱分析
3.1.1信号的采样
离散时间信号通常是有连续时间信号经周期采样得到的。
完成采样功能的器件称为采样器,下图所示为采样器的示意图。
图中Xa(t)表示模拟信号,Xa(nt)表示采样信号,T为采样周期,n=0,1,2,。
一般可以把采样器视为一个每隔T秒闭合一次的电子开关S。
在理想情况下,开关闭合时间τ满足τ< 实际采样过程可视为脉冲调幅过程,Xa(t)为调制信号,被调脉冲载波p(t)是周期为T、脉宽为τ的周期脉冲串。 当τ→0时的理想采样情况是实际采样的一种科学的、本质的抽象,同时可使数学推导得到简化。 下面主要讨论理想采样。 图3.1采样器示意图及波形图 3.1.2抽样定理 抽样也称取样、采样,是把时间连续的模拟信号变换为时间离散信号的过程。 抽样定理是指: 一个频带限制在(0,fH)内的时间连续信号m(t),如果以T≤1/2fH秒的间隔对它进行等间隔抽样,则m(t)将被所得到的抽样值完全确定。 这意味着,若m(t)的频谱在某一角频率ωH上为零,则m(t)中的全部信息完全包含在其间隔不大于1/2fH秒的均匀抽样序列里。 换句话说,在信号最高频率分量的每一个周期内起码应抽样两次。 根据抽样脉冲的特性,抽样分为理想抽样、自然抽样(亦称曲顶取样)、瞬时抽样(亦称平顶抽样);根据被抽样信号的性质,抽样又分为低通抽样和带通抽样。 虽然抽样种类很多,但是间隔一定时间,抽样连续信号的样值,把信号从时间上离散,这是各种抽样共同的作用,抽样是模拟信号数字化及时分多路的理论基础。 我们考察一个频带限制在(0,fH)赫的信号m(t)。 假定将信号m(t)和周期性冲击函数δ(t)相乘,如图所示,乘积函数便是均匀间隔为T秒的冲激序列,这些冲激的强度等于相应瞬时上的m(t)值,它表示对函数m(t)的抽样。 我们用ms(t)表示此已抽样的函数,即有 ms(t)=m(t)δ(t) 上述关系如下图所示。 图3.2抽样示意图 3.1.3采样信号的频谱分析 频谱分析自然要使用快速傅里叶变换FFT了,对应的命令即fft,简单使用方法为: Y=fft(b,N),其中b即是采样数据,为fft数据采样个数。 N一般不指定N,即简化为Y=fft(b)。 Y即为FFT变换后得到的结果,与b的元素数相等,为复数。 以频率为横坐标,Y数组每个元素的幅值为纵坐标,画图即得数据b的幅频特性;以频率为横坐标,Y数组每个元素的角度为纵坐标,画图即得数据b的相频特性。 对于现实中的情况,采样频率fs一般都是由采样仪器决定的,fs为一个给定的常数;即另一方面,为了获得一定精度的频谱,对频率分辨率F有一个人为的规定,一般要求F<0.01,即采样时间ts>100秒;由采样时间ts和采样频率fs即可决定采样数据量,即采样总点数N=fs*ts。 这就从理论上对采样时间ts和采样总点数N提出了要求,以保证频谱分析的精准度。 3.2量化 3.2.1量化的定义 模拟信号进行抽样以后,其抽样值还是随信号幅度连续变化的,即抽样值m(kT)可以取无穷多个可能值,如果用N个二进制数值信号来代表该样值的大小,以便利用数字传输系统来传输该样值的信息,那么N个二进制信号只能同M=2^N个电平样值相对应,而不能同无穷多个电平值相对应。 这样一来,抽样值必须被划分成M个离散电平,此电平被称作量化电平。 或者说,采用量化抽样值的方法才能够利用数字传输系统来实现抽样值信息的传输。 利用预先规定的有限个电平来表示模拟抽样值的过程称为量化。 抽样是把一个时间连续信号变换成时间离散的信号,而量化则是将取值连续的抽样变换成取值离散的抽样。 通常,量化器的输入是随机模拟信号。 可以用适当速率对此随机信号m(t)进行抽样,并按照预先规定,将抽样值m(kT)变换成M个电平q1,q2,„,qM之一,有 mq(kTs)=qi,若mi-1≤m(kTs) 3.2.2量化的分类 (1)按照量化级的划分方式分,有均匀量化和非均匀量化。 均匀量化: 把输入信号的取值域按等距离分割的量化称为均匀量化。 在均匀量化中,每个量化区间的量化电平在各区间的中点。 其量化间隔Δv取决于输入信号的变化范围和量化电平数。 当信号的变化范围和量化电平数确定后,量化间隔也被确定。 上述均匀量化的主要缺点是,无论抽样值的大小如何,量化噪声的均方根都固定不变。 因此,当信号较小时,则信号量化噪声功率比也就很小,这样,对于弱信号时的信号量噪比就很难达到给定的要求。 通常,把满足信噪比要求的输入信号取值范围定义为动态范围。 可见,均匀量化是的信号动态范围将受到较大的限制。 为了克服这一个缺点,实际中往往采用非均匀量化。 非均匀量化: 非均匀量化是根据信号的不同区间来确定量化间隔的。 对于信号取值小的区间,其量化间隔也小;反之,量化间隔就大。 它与均匀量化相比,有两个突出的优点。 首先,当输入量化器的信号具有非均匀分布的概率密度时,非均匀量化器的输出端可以得到较高的平均信号量化噪声功率比;其次,非均匀量化时,量化噪声功率的均方根基本上与信号抽样值成比例。 因此量化噪声对大、小信号的影响大致相同,即改善了小信号时的信号量噪比。 常见的非均匀量化有A律和μ率等,它们的区别在于量化曲线不同。 μ压缩律: 所谓μ压缩律就是压缩器的压缩特性具有如下关系的压缩律: Y=ln(1+μx)/ln(1+μ) 式中y为归一化的压缩器输出电压,x为归一化的压缩器输入电压,μ为压扩参数,表示压缩的程度。 由于上式表示的是一个近似对数关系,因此这种特性也称为近似对数压扩律,其压缩特性曲线如下图所示。 由图可知,当μ=0时,压缩特性是通过原点的一条直线,故没有压缩效果;当μ值增大时,压缩作用明显,对改善小信号的性能也有利。 一般当μ=100时,压缩器的效果就比较理想了。 另外,需指出,μ律压缩特性曲线是以原点奇对称的,图中只画出了正向部分。 图3.3μ压缩率特性 A压缩律: 所谓A压缩律也就是压缩器具有如下特性的压缩律: 其中,A为压缩系数;y为归一化的压缩器输出电压;x为归一化的压缩器输入电压。 图画出了A为某一取值的归一化压缩特性。 A律压缩特性是以原点奇对称的,为了简便,图中只给出了正半轴部分。 图3.4A压缩率特性 上图中,x和y都在-1和+1之间,取量化级数为N(在y方向上从-1到+1被均匀划分为N个量化级),则量化间隔为 Δy=2/N 当N很大时,在每一量化级中压缩特性曲线可看作是直线,因此有 式中,xi为第i个量化级间隔的中间值。 因此 为了使量化信噪比不随信号x变化,也就是说在小信号时的量化信噪比不因x的减小而变小,即应使各量化级间隔与x成线性关系,即 Δxi∝xi 则式3.1可写成 其中k为比例常数。 当量化级数很大时,可以将它看成连续曲线,因而式(3.2)成为线性微分方程 dx/dy=kxi 解此微分方程 dx/x=kdy lnx=ky+c(3.3) 其中c为常数。 为了满足归一化要求,当x=1时,y=1,代入式(3.3)可得 k+c=0 故所得结果为 lnx=ky-k 即 y=1+lnx/k(3.4) 如果压缩特性满足上式,就可获得理想的压缩效果,其量化信噪比和信号幅度无关。 满足上式的曲线如下图所示,由于其没有通过坐标原点,所以还需要对它作一定的修改。 图3.5理性压缩特性曲线 A率压缩特性就是对式(3.4)修改后的函数。 在上图中,通过原点作理想压缩特性曲线的切线oc,将oc、od作为实际的压缩特性。 修改以后,必须用两个不同的方程来描述这段曲线,以切点c作为分界点, 线段oc的方程: 设切点c的坐标为(x1,y1)的斜率为 (dx/dy)∣x-xi 则由式(3.4)可得 所以线段oc的方程为 y=x/(kx1) 所以当x=x1时,y1=1/k时,有 1/k=1+lnx1/k 因此有 x1=e-(k-1) 所以,切点坐标为(exp[-(k-1)],1/k),令 x1=1/A=e-(k-1) 则 k=1+lnA 将它代入式(3.5),就可得到以切点c为边界的段的方程为 因cd段的方程,满足式(3.4),所以由该式可得 由以上分析可见,经过修改以后的理想压缩特性与图5中所示的曲线近似,而式(3.6)式(3.7)和式(3.4)完全一样。 13折线: 实际中,A压缩律通常采用13折线来近似,13折线法如图7-4-7所示,图中先把轴的[0,1]区间分为8个不均匀段。 图3.613折线示意图 其具体分法如下: a.将区间[0,1]一分为二,其中点为1/2,取区间[1/2,1]作为第八段; b.将剩下的区间[0,1/2]再一分为二,其中点为1/4,取区间[1/4,1/2]作为第七段; c.将剩下的区间[0,1/4]再一分为二,其中点为1/8,取区间[1/8,1/4]作为第六段; d.将剩下的区间[0,1/8]再一分为二,其中点为1/16,取区间[1/16,1/8]作为第五段; e.将剩下的区间[0,1/16]再一分为二,其中点为1/32,取区间[1/32,1/16]作为第四段; f.将剩下的区间[0,1/32]再一分为二,其中点为1/64,取区间[1/64,1/32]作为第三段; g.将剩下的区间[0,1/64]再一分为二,其中点为1/128,取区间[1/128,1/64]作为第二段; h.最后剩下的区间[0,1/128]作为第一段。 然后将y轴的[0,1]区间均匀地分成八段,从第一段到第八段分别为[0,1/8],(1/8,2/8],(2/8,3/8],(3/8,4/8],(4/8,5/8],(5/8,6/8],(6/8,7/8],(7/8,1]。 分别与x轴的八段一一对应。 采用上述的方法就可以作出由八段直线构成的一条折线,该折线和A压缩律近似,图3.6中的八段线段的斜率分别为: 表1个段落的斜率 段落 1 2 3 4 5 6 7 8 斜率 16 16 8 4 2 1 1/2 1/4 从上表中可以看出,除一、二段外,其他各段折线的斜率都不相同。 图7-4-8中只画出了第一象限的压缩特性,第三象限的压缩特性的形状与第一象限的压缩特性的形状相同,且它们以原点为奇对称,所以负方向也有八段直线,总共有16个线段。 但由于正向一、二两段和负向一、二两段的斜率相同,所以这四段实际上为一条直线,因此,正、负双向的折线总共由13条直线段构成,这就是13折线的由来。 从A律压缩特性中可以看出,取A=87.6主要基于下述两个原因: 1使压缩特性曲线在原点附近的斜率为16; 2当用13折线逼近时,的八段量化分界点近似为1/2^n(n=0,1,2,„,7)。 从表1可以看出,当要求满足x=1/2^n时,相应有y=1-n/8代入式中,有 因此有 将上式代入式(7.4-16),就可以得到对应A=94.4时的压缩特性 此压缩特性如果用13折线逼近,除了第一段落起始点外,其余各段落的分界点的x、y都应满足式(3.8)。 在13折线中,第一段落起始点要求的x、y都应该为零,而若按照式(3.8)计算时,当x=0时,y→-∞;而当y=0,x=1/2^8。 因此,需要对式(3.8)的压缩特性曲线作适当的修正,我们可以在原点和点(1/2^7,1/8)之间用一段直线代替原来的曲线,这段直线的斜率是1/8÷1/2^7=16。 为了找到一个能够表示修正后的整个压缩特性曲线的方程,将式(3.8)变成 从上式中可以看出,它满足x=0时,y=0;x=1时,y=1。 虽然式(3.9)在其他点上会有误差,但x在区间(1/128,1]内,1+255x都能和原来的256x比较接近。 所以,在绝大部分范围内的压缩特性仍和A律压缩特性非常接近,只有在x→0的小信号部分和A律压缩特性有些差别。 若在式(3.9)中,令μ=255,则式(3.9)可写成 式(3.10)的压缩特性与μ律压缩特性完全一致。 (2)按照量化的维数分,量化分为标量量化和矢量量化。 标量量化是一维的量化,一个幅度对应一个量化结果。 而矢量量化是二维甚至多维的量化,两个或两个以上的幅度决定一个量化结果。 以二维情况为例,两个幅度决定了平面上的一点。 而这个平面事先按照概率已经划分为N个小区域,每个区域对应着一个输出结果(码数,codebook)。 由输入确定的那一点落在了哪个区域内,矢量量化器就会输出那个区域对应的码字(codeword)。 矢量量化的好处是引入了多个决定输出的因素,并且使用了概率的方法,一般会比标量量化效率更高。 3.2.3MATLAB的A率13折线量化 13折线量化在MATLAB中编写程序实现A律对数量化,并输出13折线对数量化特性曲线如图所示 图3.713折线量化曲线 3.3PCM编码 3.3.1编码的定义 量化后的抽样信号在一定的取值范围内仅有有限个可取的样值,且信号正、负幅度分布的对称性使正、负样值的个数相等,正、负向的量化级对称分布。 若将有限个量化样值的绝对值从小到大依次排列,并对应地依次赋予一个十进制数字代码(例如,赋予样值0的十进制数字代码为0),在码前以“+”、“-”号为前缀,来区分样值的正、负,则量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。 简单高效的数据系统是二进制码系统,因此,应将十进制数字代码变换成二进制编码。 根据十进制数字代码的总个数,可以确定所需二进制编码的位数,即字长。 这种把量化的抽样信号变换成给定字长的二进制码流的过程称为编码。 话音PCM的抽样频率为8kHz,每个量化样值对应一个8位二进制码,故话音数字编码信号的速率为8bits×8kHz=64kb/s。 量化噪声随量化级数的增多和级差的缩小而减小。 量化级数增多即样值个数增多,就要求更长的二进制编码。 因此,量化噪声随二进制编码的位数增多而减小,即随数字编码信号的速率提高而减小。 自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码。 PCM通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码。 3.3.2码型的选择 常用的二进制码型有自然二进制码和折叠二进制码两种。 折叠码优点: 只需对单极性信号进行,再增加最高位来表示信号的极性;小信号的抗噪性能强,大信号的抗噪性能弱。 3.3.3PCM脉冲编码的原理 若信源输出的是模拟信号,如电话机传送的话音信号,模拟摄象机输出的图像信号等,要使其在数字信道中传输,必须在发送端将模拟信号转换成数字信号,即进行A/D变换,在接收端则要进行D/A。 对语音信号最典型的数字编码就是脉冲编码调制(PCM)。 所谓脉冲编码调制: 就是将模拟信号的抽样量化值转换成二进制码组的过程。 下图给出了脉冲编码调制的一个示意图 图3.8脉冲编码调制示意图 假设模拟信号m(t)的求值范围为[-4V,+4V],将其抽样值按8个量化级进行均匀量化,其量化间隔为1s,因此各个量化区间的端点依次为-4、-3、-2、-1、0、1、2、3、4V,8个量化级的电平分别为-3.5、-2.5、-1.5、-0.5、0.5、1.5、2.5和3.5V。 PCM系统的原理方框图如下图所示。 图中,输入的模拟信号m(t)经抽样、量化、编码后变换成数字信号,经信道传送到接收端的译码器,由译码器还原出抽样值,再经低通滤波器滤出模拟信号m^(t)。 其中,量化与编码的组合通常称为A/D变换器;而译码与低通滤波的组合称为D/A变换。 图3.9PCM通信系统方框图 4PCM的MATLAB实现 4.1PCM抽样的MATLAB实现 PCM抽样的MATLAB程序设计按如下步骤进行: (1)确定输入的模拟信号为sa(200t); (2)根据输入的模拟信号,确定抽样频率,对输入信号进行抽样,并将正常抽样和会产生失真的抽样进行对比,对抽样定理加以验证; (3)编写程序,画出满足采样定理和不满足的时、频域图形。 PCM抽样的MATLAB实现源程序如下: t=-2: 0.01: 2; x=0.5*sin(2*pi*15*t); subplot(2,1,1); plot(t,x) fs=100;N=128; n=0: N-1;t=n/fs; x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); y=fft(x,N); mag=a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PCM 编码 Matlab 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)