实验三 PCM 编码译码仿真学院(院、系) 专业 班 通信原理 课程学号_姓名 _ 实验日期— 教师评定 实验目的1•熟悉PCM (脉冲编码调制)原理2 •掌握编写PCM (脉冲编码调制)程序的要点3 •掌握使用Matlab调制仿真的要点1•根据PCM (脉冲编码调制)原理,设计源程序代码2 •通过Matlab软件仿真给定模拟信号编码后的波形3. 对比给的原始信号波形和译码后的波形验原1. 脉冲编码调制脉冲编码调制在通信系统中是一种对模拟信号数字化的取样技术,将模拟信号变换 为数字信号的编码方式 PCM 的实现主要包括三个步骤完成:抽样、量化、编码分 别完成时间上离散、幅度上离散、及量化信号的二进制表示根据 CCITT 的建议,为 改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为 A 律和 律方 式,本设计采用了 A律方式由于A律压缩实现复杂,常使用13折线法编码,采用非均匀量化PCM编码示意图如图1所示图1 PCM编码示意图2.抽样:在一系列离散点上,对信号抽取样值称为抽样其模拟信号的抽 样过程如图2所示图2 模拟信号的抽样过程图3.非均匀量化128 32 166412864图 3 非均匀 13 折线压缩特性曲线3216*1图 4 非均匀 13 折线编码原理图在实际应用中,量化器设计好后,量化电平数M和量化间隔Av都是确定的。
量化 噪声Nq也是确定的但是,信号的强度会影响信号量噪比,当信号小时,信号量噪比 也就越小因此,均匀量化器对小输入信号很不利,为了克服这个缺点,以改善小信号 时的信号量噪比,采用下述的非均匀量化方式在非均匀量化中,量化间隔是随信号抽样值的不同而变化的信号抽样值小时,量 化间隔Av也小;信号抽样值大时,量化间隔Av也大,非均匀量化的实现方法有两种:—种是北美和日本采用的p律压扩,一种是欧洲和我国采用的A律压扩,常采用的近似 算法是 13 折线法,该算法的压缩特性图如图3 所示信号小时,△小,信号大时,△大一般语音信号,信号幅度小出现的概率大,信号幅度大出现的概率小通过非均匀量化,使得平均信噪比增大13折线A律PCM的非线性编码方法具体过程如表1所示在13折线法中采用的折叠码有8位其中一位c1表示量化值的极性正负,后7 位分为段落码和段内码两部分用于表示量化值的绝对值其中第2~4位(c2~c4 )是 段落码,5~8位(c5~c8 )为段内码,可以表示每一段落内的16种量化电平段内码 代表的16个量化电平是均匀分布的,因此,这7位码总共能表示27=128种量化值 编码方法如下所示:极性码 段落码 段内码C1 C2C3C4 C5C6C7C8(1) 将量化区间[a,b ]分为4096个小段(2) 正半轴2048个小段,负半轴2048个小段(3 )每个小段用△表示表 1 非均匀 13 折线编码原理雷00Q口匚一口一11CI一匚JO恐1—1EnGO Zr^\g2i―•-1_L■■-1 ..1 "■-..―1―•■ :护 1 1CD1—11—*T ■_i—*COi―i i―•■ cnL1―■■71―11_L5L1―LB1 1i 2 ■-'GJ1 11—L21 1o1―LV-i-s:骂CO3ii 32i—li oio mio1—•■ :°■o1=11—*■Q1 010 Q0010000 010 Ii ooi mi1 001 00101 001 00010000 100 T1 000 11110W0 000 T1 000 00010000 000 T冈1->旦S.'A1—•- r:i co84CO- ■--i11 -1 -2 .001―■■D■—■-34cn i担m0吕;1—1i on mio二1o1=11—*■QO i―■-oi—■-11Ll—*o1=1 o1—•-匚i o o1cn-.PI舄co-..舄cn 0Lra■-_■■z co oz B1111—k■—*-1—■-o o1o o1—•-O o o〔Lnle 1|=|養〕〔一吕严KI口帯〕Kin 544〕KTH m口巴5詈5ECI5為匚口 000Q 匚 口 000- 匚匸00SsBd 1 口里〕L1CIM严S0OSLlclmg., 一一阴〕5Q«1曹 112 口 1184匚Cl 11匚KI2GL L L Li—•- i—* i—•- i—I―・ ■ I » I―・ I―L1 ■ d d d1 O O Oi—*■ i—* o oI—t~l I—t~l“ s^LM进nl>和—養S黑。
2・ 1 PCM ( SSX ) 3、、 讪sfG-LLLEsM 黑書、1 一3wfflMat-abPCM4. 将经过 PCM 调制的信号叠加上一个高斯白噪声信道,然后,根据非均匀量化译码原理,得到译码后的波形,即原始的模拟信号五、设计流程1. 输入一个模拟信号,根据奈奎斯特定理,进行抽样,得到时间上离散的模拟信 号2. 根据非均匀量化编码(13 折线法),设定模拟信号各个段的段落码和段内码 并画出量化编码后的波形3. 根据非均匀量化编码(13 折线法)的逆向思想,即不同的段落码和段内码分别 对应不同的电平值,最终得到译码后的模拟信号,然后画出译码后的模拟信号的波形 六、源程序代码T=0.002;t=-0.1:T:0.1;xt=cos(2*pi*30*t)+sin(2*pi*65*t);fs=500;sdt=1/fs;t1=-0.1:sdt:0.1;st=cos(2*pi*30*t)+sin(2*pi*65*t);figure(1);subplot(3,1,1);plot(t,xt);title('始信号');grid onsubplot(3,1,2);stem(t1,st,' ・');title('量化信号');title('抽样信号');grid onn=length(st);M=max(st);C=(st/M)*2048;code=zeros(1,8);for i=1:nif C(i)>=0code(i,1)=1elsecode(i,1)=0endif abs(C(i))>=0&&abs(C(i))<16 code(i,2)=0;code(i,3)=0;code(i,4)=0;step=1;start=0;elseif 16<=abs(C(i))&&abs(C(i))<32code(i,2)=0;code(i,3)=0;code(i,4)=1;step=1;start=16;elseif 32<=abs(C(i))&&abs(C(i))<64code(i,2)=0;code(i,3)=1;code(i,4)=0;step=2;start=32;elseif 64<=abs(C(i))&&abs(C(i))<128code(i,2)=0;code(i,3)=1;code(i,4)=1;step=4;start=64;elseif 128<=abs(C(i))&&abs(C(i))<256code(i,2)=1;code(i,3)=0;code(i,4)=0;step=8;start=128;elseif 256<=abs(C(i))&&abs(C(i))<512code(i,2)=1;code(i,3)=0;code(i,4)=1;step=16;start=256;elseif 512<=abs(C(i))&&abs(C(i))<1024code(i,2)=1;code(i,3)=1;code(i,4)=0;step=32;start=512;elseif 1024<=abs(C(i))&&abs(C(i))<2048code(i,2)=1;code(i,3)=1;code(i,4)=1;step=64;start=1024;endB=floor((abs(C(i))-start)/step);t=dec2bin(B,4)-48;code(i,5:8)=t(1:4);endcode=reshape(code',1,8*n);subplot(3,1,3);stem(code,'.');axis([1 64 0 1]);title('编码信号');grid ony=awgn(code,5);figure(2);stem(y,'.');axis([1 64 0 3]);title('叠加加性高斯信号的信号');n=length(code);code=reshape(code',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/8ss=2*code(i,1)-1;tmp=code(i,2)*4+code(i,3)*2+code(i,4)+1;st=slot(tmp);dt=(code(i,5)*8+code(i,6)*4+code(i,7)*2+code(i,8))*step(tmp)+0.5*step(tmp);v=1;r(i)=ss*(st+dt)/4096*v;endHNO.OOWtu・o・l:T:oiffigu『e(asubpot(l?epotpmtEAttffianaB^IIIDrfg『id on□ft©©1颊口□Eilt: Edit 上i a% Lns tr t Tools IihiEktcp ^irnlow■・ £rn 1is nei1 H IH□ 回 a J■t 吉 \11-------1•—,• k :1•—t:*—sz■1 -J13 :1-4 1 * -亍«~:*= 1• 。