PCM编码及解码的仿真.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PCM编码及解码的仿真 1. 仿真原理及思路 在PCM中,对模拟信号进行抽样、量化,将量化的信号电平值转化为对应的二进制码组的过程称为编码,其逆过程称为译码或解码。从理论上看,任何一个可逆的二进制码组均可用于PCM。但是目前最常见的二进制码有三类:二进制自然码(NBC)、折叠二进制码组(FBC)、格雷二进制码(RBC)。在PCM中实际采用的是折叠二进制码。 图1 A律13折线 由表1可见,如果把16个量化级分成两部分:0~7的8个量化级对于于负极性样值脉冲,8~15的8个量化级对应于正极性样值脉冲。自然二进制码就是一般的十进制正整数的二进制表示,在16个量化级中:,采用4位码元表示为:、、、的有无组合来构成。比如第11个量化级可表示为 其对应的码组可表示为:1011,其余依次类推。本程序中采用自然码的编码方式。 表1 自然码、折叠码、格雷码 样值脉冲极性 量化级 自然二进制码 b1 b2 b3 b4 折叠二进制码 b1 b2 b3 b4 格雷码 b1 b2 b3 b4 正极性部分 15 14 13 12 11 10 9 8 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 负极性部分 7 6 5 4 3 2 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 CCITT建议的PCM编码规则,电话语音信号的频带为300~3400Hz,抽样速率为,对每个抽样值进行A律或者律对数压缩非均匀量化及非线性编码,每个样值用八位二进制代码表示,这样,每路标准话路的比特率为64kbps。 表3.5.2中给出的是信号正值的编码,负值编码是对称的,其绝对值与此表相同。整个信号动态范围共分13个段落,各段落的量化间隔都不同,并且有2的倍数关系。每个段落内位均匀分层量化,共16层。每个样值用8比特来表示,即。这8比特分为三部分:为极性码,0代表负值,1代表正值。称为段落码,表示段落的号码,其值为0~7,代表8个段落。表示每个段落内均匀分层的位置,其值为0~15,代表一段落内的16个均匀量化间隔。在PCM解码时,根据八比特码确定某段落内均匀分层的位置,然后去其量化间隔的中间值作为量化电平。 本程序首先产生一个正弦信号,并对其进行采样量化,生成一个幅值矩阵;然后利用编码子函数对此矩阵中的每个元素按照A律13折线编码规则编码,并产生一个输出码组矩阵;最后利用解码子函数对输出码组矩阵解码,并画出编码前与解码后的波形图。 2. 程序流程图 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; %normalize sxx = floor(xx*4096); y = pcm_encode(sxx); yy = pcm_decode(y,v); drawnow figure(1) set(1,Position,[10,350,600,200])%设定窗口位置及大小 plot(t,x) title(sample sequence); figure(2) set(2,Position,[10,50,600,200

文档评论(0)

guocuilv2018 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档