当前位置:首页 >> 信息与通信 >>

PCM编码及解码的仿真


PCM 编码及解码的仿真

1. 仿真原理及思路 在 PCM 中,对模拟信号进行抽样、量化,将量化的信号电平值转化为对应 的二进制码组的过程称为编码,其逆过程称为译码或解码。从理论上看,任何一 个可逆的二进制码组均可用于 PCM。但是目前最常见的二进制码有三类:二进 制自然码(NBC) 、折叠二进制码组(FBC) 、格雷二进制码(RBC) 。在 PCM 中 实

际采用的是折叠二进制码。

图 1 A 律 13 折线 由表 1 可见,如果把 16 个量化级分成两部分:0~7 的 8 个量化级对于于负 极性样值脉冲,8~15 的 8 个量化级对应于正极性样值脉冲。自然二进制码就是 一般的十进制正整数的二进制表示,在 16 个量化级中: 24 ? 16 ,采用 4 位码元 表示为:b1 ? 23 、 b2 ? 22 、b3 ? 21 、 b4 ? 20 的有无组合来构成。比如第 11 个量化 级可表示为 11 ? 23 ? 0 ? 21 ? 20 ? 8 ? 0 ? 2 ? 1 其对应的码组可表示为: 1011, 其余依次类推。 本程序中采用自然码的编码方式。 表 1 自然码、折叠码、格雷码 样值脉 自然二进制码 折叠二进制码 格雷码 量化级 b1 b2 b3 b4 b1 b2 b3 b4 b1 b2 b3 b4 冲极性 15 1 1 1 1 1 1 1 1 1 0 0 0 14 1 1 1 0 1 1 1 0 1 0 0 1 正 13 1 1 0 1 1 1 0 1 1 0 1 1 极 12 1 1 0 0 1 1 0 0 1 0 1 0 性 11 1 0 1 1 1 0 1 1 1 1 1 0 部 10 1 0 1 0 1 0 1 0 1 1 1 1 分 9 1 0 0 1 1 0 0 1 1 1 0 1 8 1 0 0 0 1 0 0 0 1 1 0 0

负 极 性 部 分

7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 0

1 1 1 1 0 0 0 0

1 1 0 0 1 1 0 0

1 0 1 0 1 0 1 0

0 0 0 0 0 0 0 0

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 0 0 0 0 0 0

1 1 1 1 0 0 0 0

0 0 1 1 1 1 0 0

0 1 0 0 0 1 1 0

CCITT 建议的 PCM 编码规则,电话语音信号的频带为 300~3400Hz, 抽样速率 为 f s ? 8kHz ,对每个抽样值进行 A 律或者 ? 律对数压缩非均匀量化及非线性编 码,每个样值用八位二进制代码表示,这样,每路标准话路的比特率为 64kbps。 表 3.5.2 中给出的是信号正值的编码,负值编码是对称的,其绝对值与此表 相同。整个信号动态范围共分 13 个段落,各段落的量化间隔都不同,并且有 2 的倍数关系。每个段落内位均匀分层量化,共 16 层。每个样值用 8 比特来表示, 即 [b1 ][b2b3b4 ][b5b6b7b8 ] 。这 8 比特分为三部分: b1 为极性码,0 代表负值,1 代表
[ [ 正值。b2 ~ b4 ] 称为段落码, 表示段落的号码, 其值为 0~7, 代表 8 个段落。b5b6b7b8 ]

表示每个段落内均匀分层的位置,其值为 0~15,代表一段落内的 16 个均匀量化 间隔。在 PCM 解码时,根据八比特码确定某段落内均匀分层的位置,然后去其 量化间隔的中间值作为量化电平。 本程序首先产生一个正弦信号,并对其进行采样量化,生成一个幅值矩阵; 然后利用编码子函数对此矩阵中的每个元素按照 A 律 13 折线编码规则编码,并 产生一个输出码组矩阵; 最后利用解码子函数对输出码组矩阵解码,并画出编码 前与解码后的波形图。 2. 程序流程图 画出波形 产生正弦信号 采样量化编码 图 2 A 律十三折线编码译码 流程图 译码 画出波形

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])%设定窗口位置及大小 plot(t,yy) title('pcm decode sequence'); 编码子程序: function [out]=pcm_encode(x) %x encode to pcm code n=length(x); %-4096<x<4096 for i = 1:n if x(i)>0 out(i,1)=1; else out(i,1)=0; end if 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 32<=abs(x(i))&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)=1;out(i,4)=0;step=4;st=64; elseif 128<=abs(x(i))&abs(x(i))<256 out(i,2)=0;out(i,3)=1;out(i,4)=1;step=8;st=128; elseif 256<=abs(x(i))&abs(x(i))<512 out(i,2)=1;out(i,3)=0;out(i,4)=0;step=16;st=256; elseif 512<=abs(x(i))&abs(x(i))<1024 out(i,2)=1;out(i,3)=0;out(i,4)=1;step=32;st=512; elseif 1024<=abs(x(i))&abs(x(i))<2048 out(i,2)=1;out(i,3)=1;out(i,4)=0;step=64;st=1024; elseif 2048<=abs(x(i))&abs(x(i))<4096 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);

end end out=reshape(out',1,8*n); 解码子程序: function [out]= pcm_decode(in,v) %decode the input pcm code %in : input the pcm code 8 bits sample %v:quantized level 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(i,1)-1; tmp = in(i,2)*4+in(i,3)*2+in(i,4)+1; st = slot(tmp); dt = (in(i,5)*8+in(i,6)*4+in(i,7)*2+in(i,8))*step(tmp)+0.5*step(tmp); out(i)=ss*(st+dt)/4096*v; end 4. 程序结果:

图 3 PCM 编码、解码仿真结果 5. 实验结果分析 从上图可以看出, 该程序能将正弦信号正确采样量化编码解码。正弦信号经 A 律 13 折线编码解码后,两条曲线基本一致。此图可以清晰地看出当信号幅度 较小时,解码后的波形是平滑的曲线,而当信号幅度较大时(比如波峰和波谷附 近)可以看到细小的锯齿状波形,此现象说明了 A 率 13 折线编码当输入信号小 时,段落小,量化级间隔小;当输入信号大时,段落大,量化级间隔大的特点, 可以有效减低小信号的量化误差。


相关文章:
PCM编码及解码的仿真
PCM编码及解码的仿真_信息与通信_工程科技_专业资料。PCM编码及解码的仿真 PCM 编码及解码的仿真 1. 仿真原理及思路 在 PCM 中,对模拟信号进行抽样、量化,将...
PCM编解码仿真系统
PCM 编解码器的测试模型及仿真结果 其中的 PCM 编码和议案子系统已经封装好,经过编码和解码之后,通过低通滤波器,在 示波器 Scope 上得出输出波形,示波器上显示 原...
1142051154陆顺杰pcm编解码simulink仿真
基于simulink 的 pcm 编解码建模与仿真 一、实验目的 1、理解 pcm 编解码原理及过程 2、利用 MATLAB 集成环境下的 Simulink 仿真平台,设计一个 PCM 编码解码 ...
PCM编解码的MATLAB实现
PCM编码器与PCM解码器的... 32页 1下载券 PCM编码器与PCM解码器的... 28页 免费 PCM编解码器的Matlab仿真... 暂无评价 2页 免费 PCM编码器与PCM解码器的...
PCM编码及解码
在本设 , 计中由于采用软件仿真, 没有用噪声的方式来产生误码,而是人为的用...('PCM 编码输入输出关系曲线'); figure;%打开新的窗口,绘制编码与解码信号时域...
PCM编码Simulink仿真实验报告
图 3 A 律 13 折线近似的 PCM 解码器测试模型和仿真结果 《PCM 编码 Simulink 仿真实验报告》 Table and breakpoints data for block: pcm/Lookup Table1 1 ...
PCM编码及解码
PCM编码及解码_专业资料。PCM编码及解码西南科技大学 课程设计报告 课程名称: 课程名称: 设计名称: 设计名称: 姓学班名: 号: 级: 数字通信课程设计 PCM 编码及...
PCM编码及解码
PCM编码及解码_信息与通信_工程科技_专业资料。&#61548; 产生长度为1000的标准...从简单的软件仿真让 我知晓了通信系统的整个框架结构,同时在更多的学习通信原理...
A律PCM编码系统设计与仿真
A律PCM编码系统设计与仿真_电子/电路_工程科技_专业资料。 通信系统建模与仿真实验...A 律 PCM 编解码的系统框图 3 程序块流程设计与检验 3.1 A 律 PCM 编码...
PCM编码器与PCM解码器的MATLAB实现
仿真波形 图 36 Scope 图 37 15 Scope1 5.6 无干扰信号的 PCM 编码解码 图 38 经过编码与解码之后,然后通过低通滤波器,最后在示波器 Scope 上 得出输出波形...
更多相关标签:
pcm编码与解码仿真 | pcm单路编解码实验 | matlab pcm编码仿真 | 调频立体声编解码仿真 | pcm解码 | pcm1794解码器 | ios aac转pcm解码 | ffmpeg aac 解码 pcm |