PCM编码和译码.docx
- 文档编号:12789929
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:57
- 大小:499.07KB
PCM编码和译码.docx
《PCM编码和译码.docx》由会员分享,可在线阅读,更多相关《PCM编码和译码.docx(57页珍藏版)》请在冰点文库上搜索。
PCM编码和译码
《通信系统原理》大作业报告
PCM编码与译码
姓名:
方利缘
学号:
06
班级:
08代培班
2020年12月7日
PCM编码和译码
方利缘
06
1题目....................................................................................................................................................2
2编程原理及算法.................................................................................................................................2
A律13折线.............................................................................................................................2
PCM编码与译码原理.............................................................................................................3
程序算法..................................................................................................................................4
编码...............................................................................................................................4
译码...............................................................................................................................5
3程序实现及分析.................................................................................................................................6
PCM编码.................................................................................................................................6
PCM译码.................................................................................................................................6
正弦信号m(t)编码和译码......................................................................................................7
正弦信号m(t)取不同的频率.......................................................................................7
正弦信号m(t)取不同的幅值.......................................................................................8
附录APCM编码的Matlab实现....................................................................................................10
附录BPCM译码的Matlab实现....................................................................................................12
附录C对正弦信号m(t)进行编码和译码.......................................................................................13
1
PCM编码和译码
PCM编码和译码
方利缘
06
方利缘
06
1题目
用Matlab或C语言编程实现PCM的编码和译码,给定信号输入范围为-10~+10V,
编码采纳A律13折线。
要求如下:
(1)编码:
随机的产生一个抽样值Is,给出相应的8位PCM码组;
(2)译码:
任给一个8位PCM码组,译出其抽样值;
(3)比较分析:
输入一个正弦波信号m(t),通过PCM编码器取得PCM码组,再
^
把PCM组输入译码器,取得正弦波信号m(t),将原正弦信号m(t)和译码得
^
到正弦信号m(t)进行对照分析。
2编程原理及算法
A律13折线
1
13折线
0
0
1
图1
13折线
所谓A紧缩律也确实是紧缩器具有如下特性的紧缩律:
⎧Ax1
⎨
1
⎪⎩1+lnAA
2
⎪⎪y=1+lnAA
0 ⎪y=1+lnAx, ≤x≤1 PCM编码和译码 方利缘 06 式中,x——归一化紧缩器输入电压;y——归一化紧缩器输出电压;A——压扩 参数,表示紧缩程度。 实际应用中,采纳近似于A律函数规律的13折线(A=) 的紧缩特性。 如图1所示。 图中把x轴的0~1分为8个不均匀段,其分法是: 将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/128作为第一段。 而y 轴的0~1均匀的分为八段,与x轴的八段一一对应。 如此,即可做出由八段直线构 成的折线,折线除一、二段外,其他各段折线的斜率都不相同,如表1所示。 表1 13折线分段时的x值与计算x的值比较表 PCM编码与译码原理 抽样信号Is依照13折线A律特性编成8位码组C1CCCCCCC8,其中C1为极 性码,Is为正时取1,Is为负时取0。 表2编码段落 C2CC4为段落码,决定Is被编码所在的码段。 13折线A律PCM编码将0~2048 不均等的分为8个编码段落[0,16]、[16,32]、[32,64]、[64,128]、[128,256]、[256, 3 y 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 1 x 0 1/128 1/ 1/ 1/ 1/ 1/ 1/ 1 按折线分段 时的x 0 1/128 1/64 1/32 1/16 1/8 1/4 1/2 1 段落 1 2 3 4 5 6 7 8 斜率 16 16 8 4 2 1 1/2 1/4 段落 1 2 3 4 5 6 7 8 起点电平 0 16 32 64 128 256 512 1024 均匀量化数 16 16 32 64 128 512 256 1024 量化间隔 1 1 2 4 8 16 32 64 C2CC34 000 001 010 011 100 101 110 111 234567 3 PCM编码和译码 方利缘 06 512]、[512,1024]、[1024,2048]。 各个段落的编号和起点电平如表1所示。 将每一个码段做16等分,每一份作为量化距离,并用段内码C5C6C7C8来表示之。 13折线中的第一、二段最短,只有动态范围的1/128,将其等分为16小段后,每一 小段的长度为(1/128)×(1/16)=1/2048,第八段归一化值为1/2,等分16小段后每一 段的最小长度为1/32。 显然,随着段落编号的增大,量化距离越大,量化误差也越 大。 编码时,先确信极性码;再采纳逐次比较的方法,确信段落码;最后,由Is与段 落起点电平的差值来确信段内码。 译码时,先由段落码确信编码所在段落,确信段 落起点电平和量化距离,由段落起点电平加上段内码与相应量化距离的乘积之和, 即取得了抽样信号的绝对值,再由极性码C1来确信抽样值的正负号。 程序算法 把各个段落的起点电平存入矩阵QidianDianping,各个段落内的量化距离值存入 矩阵LianghuaJiange,并用DuanluoN表示段落编号。 QidianDianping=[0,16,32,64,128,256,512,1024]; LianghuaJiange=[1,1,2,4,8,16,32,64]; %段落起始电平 %相应的段落量化值 编码 编码时,信号的正负确信极性码C1,采纳逐次比较的方法先确信段落码C2CC4。 段落码对应的十进制数再加1,即为信号所在的码段DuanluoN。 由DuanluoN找到 段落起点电平Mark=QidianDianping(DuanluoN)和相应的段内量化间隔 Lianghuazhi=LianghuaJiange(DuanluoN)。 将信号的绝对值|Is|与段落起点电平Mark 的差值按量化距离LianghuaJiange(DuanluoN)进行量化,并把量化结果用4位二进制 数表示,即取得段内码C5CCC8。 程序算法实现如图2所示。 4 3 67 PCM编码和译码 给定抽样信号Is Is>0? Yes C1=1 |Is|>128? Yes C2=1 No C1=0 No C2=0 方利缘 06 |Is|>512? Yes C3=1 No C3=0 |Is|>32? Yes C3=1 No C3=0 |Is|>1024? |Is|>256? |Is|>64? No |Is|>16? No No No Yes Yes Yes Yes C4=1 C4=0 C4=1 C4=0 C4=1 C4=0 C4=1 C4=0 段落起点电平矩阵QidianDianping,各段内量化距离矩阵LianghuaJiange 所在码段: DuanluoN=(C2C3C4)+1 (C5C6C7C8)=num2str(dec2bin((|Is|-QidianDianping(DuanluoN))/LianghuaJiange(DuanluoN),4)) 编码终止 图2编码程序算法 译码 译码时,先由极性码C1确信信号的符号sign,再由段落码C2CC4确信信号所在 码段DuanluoN,同时由段内码C5CCC8确信段内量化单位数LianghuaDanweiN。 由 段落数DuanluoN确信段落起点电平Mark和段内量化值Lianghuazhi。 最后译码得 到的信号Signal=sign*(Mark+Lianghuazhi*LianghuaDanweiN)。 程序算法实现如 图3所示。 5 3 67 PCM编码和译码 方利缘 06 图3译码程序算法 3程序实现及分析 在Matlab环境下编程实现上述算法。 PCM编码 通过round(2048*unifrnd(-1,1))语句随机地产生一个抽样值Is,采纳A律13折线 逐次比较法,取得相应的PCM码组。 如: Is=-498时,PCM码组为Code=01011111,又如Is=1475时,Code=1111 0111。 编码成效专门好。 实验说明,对以幅值较小的抽样信号,编码误差越小,越准确; 关于幅值较大的抽样信号,编码误差越大。 如: Is=-10时,Code=00001010;Is=478时,Code=11011101。 前者编码 误差为0,而后者,(11011101)=256+13*16=464,存在14个单位的量化误差。 Matlab源代码见附录A。 PCM译码 循环floor(2*unifrnd(0,1))语句随机的产生一个8位PCM码组。 6 PCM编码和译码 方利缘 06 如Code=10111111时,相应的抽样值Signal=124;又如Code=01001100时, 相应的抽样值为Signal=-224。 Matlab源代码见附录B。 对正弦信号m(t)编码和译码 编码与所不同的是,此刻的抽样信号为一个信号列,对那个信号列中的每一 个抽样值采纳的编码算法,就能够对整个正弦信号实现PCM编码。 现在编码序列 为Code(i,8)。 同理,译码也是对编码序列Code(i,8)一一译码。 正弦信号m(t)取不同的频率 维持抽样时刻距离为个时刻单位不变,同时维持正弦波的幅值8不变,在 给定的1个单位的时刻内,频率别离取、1、2、4、8、16,那么在这段时刻内完整 正弦波的个数依次为、1、2、4、8、16周期的正弦波信号。 以频率取4为例, Matlab程序实现如下。 t=0: : 1; x=0: *pi: 8*pi; Signal_m=8*sin(x); %给定1个单位的时刻 %给一个正弦信号,信号输入范围为[-10,10] subplot(2,1,1); plot(t,Signal_m); title('输入正弦信号'); 将上述频率的正弦波经编码译码以后取得的波形见表3所示。 由表3能够看出, ^ 编码再译码后的m(t)随着频率的增大,台阶愈来愈不明显,波形图愈来愈滑腻。 说 明,随着频率的增大,编码误差愈来愈小。 表3不同频率正弦波编码和译码后的波形对照 7 频率 原信号m(t) ^ 编码再译码后的波形m(t) 输入正弦信号 8 6 4 2 0 01 编码再译码后的正弦信号 8 6 4 2 0 01 PCM编码和译码 方利缘 06 1 10 5 0 -5 输入正弦信号 10 5 0 -5 编码再译码后的正弦信号 -10 0 1 -10 0 1 10 5 输入正弦信号 10 5 编码再译码后的正弦信号 2 0 -5 0 -5 -10 0 1 -10 0 1 4 10 5 0 -5 输入正弦信号 10 5 0 -5 编码再译码后的正弦信号 -10 0 1 -10 0 1 8 10 5 0 -5 输入正弦信号 10 5 0 -5 编码再译码后的正弦信号 -10 0 1 -10 0 1 16 10 5 0 -5 输入正弦信号 10 5 0 -5 编码再译码后的正弦信号 -10 0 1 -10 0 1 正弦信号m(t)取不同的幅值 维持抽样时刻距离为个时刻单位不变,同时维持正弦波的频率1不变,在 给定的1个单位的时刻内,幅值别离取2、4、6、8、10。 以幅值取4为例,Matlab 程序实现如下。 t=0: : 1; x=0: *pi: 2*pi; Signal_m=4*sin(x); %给定1个单位的时刻 %给一个正弦信号,信号输入范围为[-10,10] subplot(2,1,1); plot(t,Signal_m); title('输入正弦信号'); 8 PCM编码和译码 方利缘 06 将上述频率的正弦波经编码译码以后取得的波形见表4所示。 由表4能够看出, ^ 编码再译码后的m(t)随着幅值的增大,台阶愈来愈明显,乃至在幅值为10时,出 ^ 现了“凸起”。 说明,随着频率的增大,编码误差愈来愈大。 从图中还能够看出,m(t) 的波形越靠近横轴,越滑腻,这说明对幅值较小的信号译码较为准确,这与13折线 的PCM编码规律符合得专门好。 表4不同幅值正弦波编码和译码后的波形对照 幅值 原信号m(t) ^ 编码再译码后的波形m(t) 2 1 输入正弦信号 2 1 编码再译码后的正弦信号 2 0 -1 0 -1 -2 0 1 -2 0 1 编码再译码后的正弦信号 输入正弦信号 4 4 2 2 4 0 0 -2 -2 -4 0 1 -4 0 编码再译码后的正弦信号 1 输入正弦信号 10 10 5 5 6 0 -5 0 -5 -10 0 1 -10 0 1 编码再译码后的正弦信号 10 5 输入正弦信号 10 5 8 0 -5 0 -5 -10 0 1 -10 0 1 10 10 5 0 -5 输入正弦信号 10 5 0 -5 编码再译码后的正弦信号 -10 0 1 -10 0 1 综上能够得出,A律13折线的PCM编码,对小幅值、高频率的信号编码成效 较好。 Matlab源代码见附录C。 9 PCM编码和译码 方利缘 06 附录APCM编码的Matlab实现 %********************PCM编码: 由抽样值给出PCM码组**************************** %********************方利缘************************************************ %********************日期: 2020年12月7日*************************************** %--------------------------随机的产生一个抽
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PCM 编码 译码