通信原理课程设计-PCM编码与译码.doc_第1页
通信原理课程设计-PCM编码与译码.doc_第2页
通信原理课程设计-PCM编码与译码.doc_第3页
通信原理课程设计-PCM编码与译码.doc_第4页
通信原理课程设计-PCM编码与译码.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通信原理课程设计海南大学课程设计论文 课 程:通信原理 题 目:PCM编码与译码 学 院:信息科学技术 专业班级:电子(1)班 姓 名:胡艳明 学 号:20101601310008 指导教师:周又玲 设计日期:2013年6月、目录一、设计原理- 3 -1、脉冲编码调制- 3 -2、PCM编码原理- 4 - (1) 抽样- 4 - (2) 量化- 4 - (3) 编码- 6 -(4)折叠二进制码- 7 -二、 设计过程- 8 -1、均匀量化PCM编码- 8 -(1)自然二进制码- 8 -(2)折叠二进制码- 10 -2、非均匀量化PCM编码- 11 -3、非均匀量化PCM译码- 13 -三、设计结果- 14 -1、连接全程序- 14 -(1)均匀量化PCM编码- 14 -(2)非均匀量化PCM编码与译码- 15 -(3)实验结果对比- 17 -四、 设计问题与讨论- 17 -1、设计载体的选择- 17 -2、非均匀量化问题- 17 -五、 设计心得体会- 18 -参考文献- 18 -附件:- 19 -完整程序清单- 19 -(1)均匀量化编码:- 19 -(2)PCM编码:- 19 -(3)PCM译码:- 21 -PCM编码与译码【摘要】数字脉冲编码调制(PCM)是目前模拟信号数字化的基本方法,将时间离散的抽样值序列经量化、编码变换为二进制数字序列。量化是对抽样值的取值离散,根据量化间隔的不同选取分为均匀量化和非均匀量化,非均匀量化可以有效地改善信号的量化信噪比。语音信号的量化常采用ITU建议的对数特性的A律(中国和欧洲)和律(北美和日本)压缩的非均匀量化,为了便于采用数字电路实现量化,通常采用13折线和15折线近似代替A律和律。在本设计中,主要研究13折线近似代替的A律PCM编码与译码过程及特性。关键词:A律 13折线 PCM编码及译码 非均匀量化一、设计原理1、脉冲编码调制脉冲编码调制(pulse code modulation,PCM)是概念上最简单、理论上最完善的编码系统,是最早研制成功、使用最为广泛的编码系统,但也是数据量最大的编码系统。PCM的编码原理比较直观和简单,下图为PCM系统的原理框图:抽样量化编码信道干扰m(t)ms(t)msq(t)A/D变换译码低通滤波msq(t)m(t)图中,输入的模拟信号m(t)经抽样、量化、编码后变成了数字信号(PCM信号),经信道传输到达接收端,由译码器恢复出抽样值序列,再由低通滤波器滤出模拟基带信号m(t)。通常,将量化与编码的组合称为模/数变换器(A/D变换器);而译码与低通滤波的组合称为数/模变换器(D/A变换器)。前者完成由模拟信号到数字信号的变换,后者则相反,即完成数字信号到模拟信号的变换。PCM在通信系统中完成将语音信号数字化功能,它的实现主要包括三个步骤完成:抽样、量化、编码。分别完成时间上离散、幅度上离散、及量化信号的二进制表示。根据CCITT的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A律和律方式,我国采用了A律方式,由于A律压缩实现复杂,常使用 13 折线法编码,采用非均匀量化PCM编码。2、PCM编码原理(1) 抽样所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。它的抽样速率的下限是由抽样定理确定的。(2) 量化量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。从数学上来看,量化就是把一个连续幅度值的无限数集合映射成一个离散幅度值的有限数集合。一个模拟信号经过抽样量化后,得到已量化的脉冲幅度调制信号,它仅为有限个数值。如下图所示,量化器输出L个量化值,k=1,2,3,L。常称为重建电平或量化电平。当量化器输入信号幅度x落在与之间时,量化器输出电平为。这个量化过程可以表达为:模拟入量化器量化值这里称为分层电平或判决阈值。通常称为量化间隔。模拟信号的量化分为均匀量化和非均匀量化。均匀量化: 用这种方法量化输入信号时,无论对大的输入信号还是小的输入信号一律都采用相同的量化间隔。为了适应幅度大的输入信号,同时又要满足精度要求,就需要增加样本的位数。但是,对话音信号来说,大信号出现的机会并不多,增加的样本位数就没有充分利用。为了克服这个不足,就出现了非均匀量化的方法。非均匀量化:非均匀量化是根据信号的不同区间来确定量化间隔的。对于信号取值小的区间,其量化间隔也小;反之,量化间隔就大。它与均匀量化相比,有两个突出的优点。首先,当输入量化器的信号具有非均匀分布的概率密度(实际中常常是这样)时,非均匀量化器的输出端可以得到较高的平均信号量化噪声功率比;其次,非均匀量化时,量化噪声功率的均方根值基本上与信号抽样值成比例。因此量化噪声对大、小信号的影响大致相同,即改善了小信号时的量化信噪比。实际中,非均匀量化的实际方法通常是将抽样值通过压缩再进行均匀量化。通常使用的压缩器中,大多采用对数式压缩。广泛采用的两种对数压缩律是压缩律和A压缩律。美国采用压缩律,我国和欧洲各国均采用A压缩律,所谓A压缩律也就是压缩器具有如下特性的压缩律: , 。由于A律压缩实现复杂,常使用 13 折线法编码, 压扩特性图如下图所示: A律函数13折线压扩特性图其具体分法如下:先将X轴的区间0,1一分为二,其中点为1/2,取区间1/2,1作为第八段;区间0,1/2再一分为二,其中点为1/4,取区间1/4,1/2作为第七段;区间0,1/4再一分为二,其中点为1/8,取区间1/8,1/4作为第六段;区间0,1/8一分为二,中点为1/16,取区间1/16,1/8作为第五段;区间0,1/16一分为二,中点为1/32,取区间1/32,1/16作为第四段; 区间0,1/32一分为二,中点为1/64,取区间1/64,1/32作为第三段;区间0,1/64一分为二,中点为1/128,区间1/128,1/64作为第二段;区间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轴对应。这样,它基本上保持了连续压扩特性曲线的优点,又便于用数字电路实现,本设计中所用到的PCM编码正是采用这种压扩特性来进行编码的。 表1 13折线时的值与计算值的比较0101按折线分段时的01段落12345678斜率16168421表1中第二行的 值是根据 时计算得到的,第三行的 值是13折线分段时的值。可见,13折线各段落的分界点与 曲线十分逼近,同时 按2的幂次分割有利于数字化。 (3) 编码所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。当然,这里的编码和译码与差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。在现有的编码方法中,若按编码的速度来分,大致可分为两大类:低速编码和高速编码。通信中一般都采用第二类。编码器的种类大体上可以归结为三类:逐次比较型、折叠级联型、混合型。在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。下面结合13折线的量化来加以说明。 表2 段落码 表3 段内码在13折线法中,无论输入信号是正是负,均按8段折线(8个段落)进行编码。若用8位折叠二进制码来表示输入信号的抽样量化值,其中用第一位表示量化值的极性,其余七位(第二位至第八位)则表示抽样量化值的绝对大小。具体的做法是:用第二至第四位表示段落码,它的8种可能状态来分别代表8个段落的起点电平。其它四位表示段内码,它的16种可能状态来分别代表每一段落的16个均匀划分的量化级。这样处理的结果,8个段落被划分成27128个量化级。段落码和8个段落之间的关系如表2所示;段内码与16个量化级之间的关系见表3。(4)折叠二进制码关于折叠二进制码,首先要知道自然二进制码自然二进制码与二进制数一一对应,符合二进制数的进位自然二进制码属于权重码,每一位都有确定的大小,由高位到低位顺序依次2n,2n-1,2n-2,4,2,1(n为自然数)可以比较大小和进行算术运算这里不一一举例自然二进制码的特点,关于自然二进制码,读者可以查阅相关资料,这里主要说明折叠二进制码折叠二进制码是沿中心电平上下对称,且适于表示正负对称的双极性信号的一种码型。这种码与自然二进制码的对应关系为bn=anbi=(a的非值)异或(ai)式中,an是自然二进制码;bn是折叠二进制码;i是大于1的整数;n是最高权位数;折叠二进制码与自然二进制码的最高位相同,即bn=an对于正样值,两者的各码位均相同,即bi=0异或ai=ai对于负样值,除最高一位相同外,折叠二进制码的其余各位码均是自然二进制码的非值,即bi=1异或ai折叠二进制码与自然二进制码相比较,当它的极性码发生错误时,小信号误差小,大信号误差大。例如;假设000误传为100,对应的幅度误差为+0.5-(-0.5)=1个量化级差;假设将011误传为111,对应的幅度误差为7个量化级差。实用中,折叠二进制码的最高一位代表信号的极性,称作极性码。其余各位码代表幅度绝对值的大小,称为幅度码或电平码。绝对值相等的符号,其幅度码相同。可以看出,折叠二进制码的幅度码是以零为界折叠对称的,所以叫折叠二进制码。折叠二进码的编码规则如下表所示:2 折叠二进码的特点是正、负两半部分,除去最高位后,呈倒影关系、折叠关系,最高位上半部分为全1,下半部分为全0。这种码的明显特点是,对于双极性信号,可用最高位表示信号的正、负极性,而用其余的码表示信号的绝对值,即只要正、负极性信号的绝对值相同,则可进行相同的编码。也就是说,用第一位表示极性后,双极性信号可以采用单极性编码方法。因此,采用折叠二进码可以简化编码的过程。折叠二进制码的另一个特点:对小信号时的误码影响小,例如由大信号的1111 0111,对于自然二进码解码后的误差为8个量化级;而对于折叠二进制码,误差为15个量化级。由此可见,大信号误码对折叠码影响很大。但如果是由小信号的10000111,对于自然二进制码误差为8个量化级,而对于折叠二进制码误差为1个量化级。这对于语音信号是十分有利的,因为语音信号中小信号出现的概率较大,所以在语音信号PCM系统中大多采用折叠二进制码。2、 设计过程1、均匀量化PCM编码(1)自然二进制码程序如下:编码结果如下所示:(2)折叠二进制码程序如下:编码结果如下:2、非均匀量化PCM编码流程图如下:程序如下:function out=pcm_encode(x)n=length(x);for i=1:n if x(i)0 out(i,1)=1; else out(i,1)=0 endif abs(x(i)0 abs(x(i)32 out(i,2)=0;out(i,3)=0;out(i,4)=0;step=2;st=0; elseif abs(x(i)=32 abs(x(i)64 out(i,2)=0;out(i,3)=0;out(i,4)=1;step=2;st=32; elseif abs(x(i)=64 abs(x(i)128 out(i,2)=0;out(i,3)=1;out(i,4)=0;step=4;st=64; elseif abs(x(i)=128 abs(x(i)256 out(i,2)=0;out(i,3)=1;out(i,4)=1;step=8;st=128; elseif abs(x(i)=256 abs(x(i)512 out(i,2)=1;out(i,3)=0;out(i,4)=0;step=16;st=256; elseif abs(x(i)=512 abs(x(i)1024 out(i,2)=1;out(i,3)=0;out(i,4)=1;step=32;st=512; elseif abs(x(i)=1024 abs(x(i)2048 out(i,2)=1;out(i,3)=1;out(i,4)=0;step=64;st=1024; elseif abs(x(i)=2048 abs(x(i)4096 out(i,2)=1;out(i,3)=1;out(i,4)=1;step=128;st=2048; else out(i,2)=1,out(i,3)=1;out(i,4)=1;step=128;st=2048;end if(abs(x(i)=4096) out(i,2:8)=1 1 1 1 1 1 1; else tmp=floor(abs(x(i)-st)/step); t=dec2bin(tmp,4)-48; %函数dec2bin输出的是ASCII字符串,48对应0 out(i,5:8)=t(1:4); endendout=reshape(out,1,8*n);编码结果如下:3、非均匀量化PCM译码流程图如下:程序如下:functionout=pcm_decode(in,v)n=length(in);in=reshape (in,8,n/8);slot(1)=0;slot(2)=32;slot(3)=64;slot(4)=128;slot(5)=256;slot(6)=512;slot(7)=1024;slot(8)=2048;step(1)=2;step(2)=2;step(3)=4;step(4)=8;step(5)=16;step(6)=32;step(7)=64;step(8)=128;for i=1:n/8 ss=2*in(1,i)-1; tmp=in(2,i)*4+in(3,i)*2+in(4,i)+1; st=slot(tmp); dt=(in(5,i)*8+in(6,i)*4+in(7,i)*2+in(8,i)*step(tmp)+0.5*step(tmp); out(i)=ss*(st+dt)/4096*v;end译码结果如下:(可知量化误差为+6)三、设计结果1、连接全程序(1)均匀量化PCM编码程序如下:输出结果:噪声性能:(2)非均匀量化PCM编码与译码程序如下:(n=16)输出结果: 噪声性能:(3)实验结果对比在编码位数相等时,非均匀量化PCM编码与均匀量化PCM编码的信号噪量比相等,这表明PCM系统的输出信号量噪比公和编码位数N有关,且随着N按指数律增大。量化误差与量化比特数成正比,每增加一个比特,即每增加两倍的量化电平,误差约增加6dB。4、 设计问题与讨论开始设计时,思路不是特别清楚,要做哪些准备,要用MATLAB的哪个功能?但随着设计的跟进,思路也越来越清楚,并且对课本上的一些不清楚或者容易忽略的重点都已经很好的掌握了。下面是在设计中遇到的一些问题,让我们一起探讨。1、设计载体的选择把周又玲老师的设计任务书下载下来后,看了一遍,想做的题目在脑海中了。本来想按照书上的相关方框图在MATLAB软件里的simulink工具箱来做,但是在最后发现参数的设定以及仿真的难以实现让我中途放弃了这条路,去图书管借了几本相关通信原理的书籍,例如有一本叫通信原理及system view仿真测试的书,本来想参考它完成课程设计,但可惜的是网上并没有System view这个可用软件的下载地址。但是我还是把这本书大致看了一下,其中不少好的设计思路还是激发了我。站在前人的肩膀上,才能看的更远,在最没有思绪的时候,我利用了网络这个资源共享的功能,搜索了一些优秀的设计报告以及实验报告书,仔细阅读,努力把自己不懂知识点的化为自己的东西,也是从中,我发现,其实可以利用MATLAB软件编程实现相关功能的,这是设计的前面阶段遇到的问题,与最后解决的方案。2、非均匀量化问题由于自己对PCM编码这块知识相对比较熟悉,所以,我选择均匀与非均匀PCM编码与译码作为自己设计的课题。在非均匀这块,设计完程序后,想要输出图形验证设计结果时,发现译码后的图形与原来的模拟量相差太大,几乎没有幅值。仔细阅读教材上有关译码这节内容,并没在程序中发现什么错误,于是认为是编码出了什么问题,发现,非均匀编码最大值为4096,而自己用于验证设计结果的sin(x)的幅值最大一超过1,所以编码后,再经译码肯定出错。而就我自己目前的能力,解决这个问题用了个比较笨的方法,我在sin(x)前乘了4096作为他的幅值。当然,随之结果也按期望生成。当然,我觉得这肯定不是解决问题的根本方法,还请老师予以指教。5、 设计心得体会按老师所说,设计是教学必不可少的一个环节,学生可以利用课程设计性实践活动加强对本课程的掌握与运用,以及加强本课程与自己专业的联系。在设计的同时,学生也在加强自己的动手操作能力。在设计中,有遇到许多问题,而上面我只写了其中比较突出的两项。这也是发现自己知识漏洞的绝好时机,只有真正去想去做了,才会得到自己想要的结果,并且这件事也会让你成长。这是我经过这次设计后所得到的感想。参考文献1樊昌信等.通信原理.国防工业出版社.2012.第6版2薛山.MATLAB基础教程.清华大学出版社.2011.第1版3尹立强.通信原理及System view仿真测试.西安电子科技大学出版社.2012.第1版附件:完整程序清单(1)均匀量化编码:function sqnr,a_quan,code=u_pcm1(a,n)amax=max(abs(a);a_quan=a/amax;b_quan=a_quan;d=2/n;q=d.*0:n-1;q=q-(n-1)/2)*d;for i=1:n a_quan(find(q(i)-d/2 = a_quan) (a_quan = q(i)+d/2)=. q(i).*ones(1,length(find(q(i)-d/2 = a_quan) (a_quan = q(i)+d/2);enda_quan=a_quan*amax;nu=ceil(log2(n);code=zeros(length(a),nu);for i=1:length(a) if(a_quan(i)0) code(i,(1)=1; endendb_quan=abs(a_quan);for i=1:length(a) for j=(nu-1):-1:0 if ( fix(b_quan(i)/(2j) = 1)code(i,(nu-j) = 1;b_quan(i) = b_quan(i) - 2j; end endendsqnr=20*log10(norm(a)/norm(a-a_quan);(2)PCM编码:function out=pcm_encode(x)n=length(x);for i=1:n if x(i)0 out(i,1)=1; else out(i,1)=0 endif abs(x(i)0 abs(x(i)32 out(i,2)=0;out(i,3)=0;out(i,4)=0;step=2;st=0; elseif abs(x(i)=32 abs(x(i)64 out(i,2)=0;out(i,3)=0;out(i,4)=1;step=2;st=32; elseif abs(x(i)=64 abs(x(i)128 out(i,2)=0;out(i,3)=1;out(i,4)=0;step=4;st=64; elseif abs(x(i)=128 abs(x(i)256 out(i,2)=0;out(i,3)=1;out(i,4)=1;step=8;st=128; elseif abs(x(i)=256 abs(x(i)512 out(i,2)=1;out(i,3)=0;out(i,4)=0;step=16;st=256; elseif

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论