PCM编码及解码的仿真

上传人:工**** 文档编号:507635798 上传时间:2023-12-17 格式:DOCX 页数:4 大小:11.91KB
返回 下载 相关 举报
PCM编码及解码的仿真_第1页
第1页 / 共4页
PCM编码及解码的仿真_第2页
第2页 / 共4页
PCM编码及解码的仿真_第3页
第3页 / 共4页
PCM编码及解码的仿真_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《PCM编码及解码的仿真》由会员分享,可在线阅读,更多相关《PCM编码及解码的仿真(4页珍藏版)》请在金锄头文库上搜索。

1、PCM编码及解码的仿真1.仿真原理及思路在PCM中,对模拟信号进行抽样、量化,将量化的信号电平值转化为对应的二 进制码组的过程称为编码,其逆过程称为译码或解码。从理论上看,任何一个可 逆的二进制码组均可用于PCMo但是目前最常见的二进制码有三类:二进制自 然码(NBC)、折叠二进制码组(FBC)、格雷二进制码(RBC)。在PCM中实际 采用的是折叠二进制码。图1 A律13折线由表1可见,如果把16个量化级分成两部分:07的8个量化级对于于负极性样值脉冲,815的8个量化级对应于正极性样值脉冲。自然二进制码就是4-162,采用4 一般的十进制正整数的二进制表示,在16个量化级中:位码元的有无组合

2、来构成。比如第11表示为:、个量化、22b“2?bb?2?b32i4级可表示为jio?8?O?2211 ?2?0?21其对应的码组可表示为:1011,其余依次类推。本程序中采用自然码的编码方式。表1自然码、折叠码、格雷码样值脉 冲极性量化级自然二进制码折叠二进制码格雷码bb 413 2bbbb b b 2341bb b b 142 3正极性15 14111111111000部分13 1211101110100111 10 911011101101181100110010101011101111101010101011111001100111010001000100 11负极性7 6 54110

3、10 0 0 01000部分32 101100 00 0 0 10101101000 1 0001101001 0 0 10110011100 0 1000100000 1 1 00011001 000 110 10001000 1 10000CCITT建议的PCM编码规则,电话语音信号的频带为3003400Hz,抽样速 率?kHz8f律对数压缩非均匀量化及非线性编律或者为,对每个抽样值进行A,码, 每个样值用八位二进制代码表示,这样,每路标准话路的比特率为64kbps。表352中给出的是信号正值的编码,负值编码是对称的,其绝对值与此表相同。 整个信号动态范圉共分13个段落,各段落的量化间隔都

4、不同,并且有2的倍数 关系。每个段落内位均匀分层量化,共16层。每个样值用8比特来表示, bbbbbbbbb为极性码,0即代表负值,1代表比特分为三部分:。这 8i54iS237bbbbb-b称为段落码,正值。表示段落的号码,其值为07,代表8个 段落。血間表示每个段落内均匀分层的位置,其值为015,代表一段落内的16 个均匀量化间隔。在PCM解码时,根据八比特码确定某段落内均匀分层的位置, 然后去其量化间隔的中间值作为量化电平。本程序首先产生一个正弦信号,并对其进行釆样量化,生成一个幅值矩阵;然后 利用编码子函数对此矩阵中的每个元素按照A律13折线编码规则编码,并产生 一个输出码组矩阵;最后

5、利用解码子函数对输出码组矩阵解码,并画岀编码前与 解码后的波形图。2.程序流程图画出波形产生正弦信号 采样量化编码 译码画出波形律十三折线编码译码A2图 流程图3仿真程序及运行结果 仿真程序:%实验四:PCM编码及解码仿真clear all;close all;global dt t df N t = 0:0.01:10;x = sin(t);v = max(x);xx = x/v; %nonnalizesxx = floor(xx*4096);y = pcm_encode(sxx);yy = pcm_decode(y,v);drawnowfigure(l)set(l,Position1,10

6、,350,600,200)% 设定窗口位置及大小plot)titb(sampb sequence1);figure(2)set(2,Position*,10,50,600,200)% 设定窗 口位置及大小plot(t.yy)titl亡(pcm decode sequence1);编码子程序:fiuiction out=pcm_encode(x)%x encode to pcm coden=length(x); %-4096x0out(i,l)=l;elseou 坦,1)=0;endif abs(x(i) =0 & abs(x(i)32 out(i,2)=0;out(i,3)=0;out(i,4

7、)=0;step=2;st=0;elseif 32=abs(x )&abs(x (i)64 out(i,2)=0;out(i,3)=0;out(i,4)= 1 ;step=2;st=32;elseif 64=abs(x (i)&abs(x(i) 128 out(i,2)=0;out(i,3)=l;out(i,4)=0;step=4;st=64;elseif 128=abs(x (i)&abs(x(i)256out(i,2)=0;out(i,3)=l ;out(i,4)=l ;step=8;st=12 &elseif 256v=abs(x(i)&abs(x(i)512out(i,2)=l ;ou

8、t(i,3)=0;out(i,4)=0;step=l 6;st=256;elseif 512=abs(x (i)&abs(x(i)vi 024out(i,2)=l ;out(i53)=0;out(i,4)=l ;step=32;st=512;elseif 1024=abs(x(i)&abs(x(i)2048out(i,2)=1 ;out(i,3)=1; out (i ,4)=0; st ep=64; s t=1024;elseif 2048=abs(x(i)&abs(x(i)4096out(i,2)=l ;out(i,3)=l ;out(i,4)=l ;step=128;st=2048;end

9、if abs(x(i)=4096out(i,2:8)=l 111111;elsetmp=floor(abs(x(i)-st)/step);t=dec2bin(tmp,4)-4&%函数 dec2bin 输出的是 ASCH 字符串,48 对应 0 out(i,5:8)=t(l:4);endendout=ieshape(out 1,8*n);解码子程序:fiuiction out= pcm_decode(in,-) Tcode the input pcm code%in : input the pcm code 8 bits sample %v:qiiantized level n=length(m

10、);iii=i-eshape(m&n/8);slot(l)=0;slot(2)=32;slot(3)=64;slot(4)=12 &slot(5)=256;slot(6)=512;slot(7)=1024;slot(8)=2048;step(l)=2;step(2)=2;step(3)=4;step =8;step(5)=16;step(6)=32;step(7)=64;step(8)=128;fori=l:n/8ss=2*m(i,l)-l;tmp = in(i,2)*44-in(i,3)*2+m(i,4)+l;st = slot(tmp);dt = (in(i,5)*8+in(i,6)*4+in(i,7)*2+in(i,8)*step(tmp)4-0.5*step(tmp); out =ss*(st+dt)/4096*v;end4.程序结果:图3 PCM编码、解码仿真结果 5.实验结果分析从上图可以看出,该程序能将正弦信号正确采样量化编码解码。正弦信号经A 律13折线编码解码后,两条曲线基本一致。此图可以清晰地看岀当信号幅度较 小时,解码后的波形是平滑的曲线,而当信号幅度较大时(比如波峰和波谷附近) 可以看到细小的锯齿状波形,此现象说明了 A率13折线编码当输入信号小时, 段落小,量化级间隔小;当输入信号大时,段落大,量化级间隔大的特点,可 以有效减低小信号的量化误差。.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号