通信原理之PCM编解码.doc_第1页
通信原理之PCM编解码.doc_第2页
通信原理之PCM编解码.doc_第3页
通信原理之PCM编解码.doc_第4页
通信原理之PCM编解码.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、。重庆交通大学信息科学与工程学院综合性设计性实验报告专业班级:姓名学号:实验所属课程:通信原理实验室 ( 中心 ) : 语音八楼指导教师:实验完成时间:3年月 1日精选资料,欢迎下载。教师评阅意见:签名:年月日实验成绩:一、设计题目基于 MATLAB的通信系统仿真信源编解码二、实验目的 :1. 综合应用 Matlab 编程与系统仿真、信号与系统、现代通信原理等多门课程知识,使我们建立通信系统的整体概念;2. 培养我们系统设计与系统开发的思想;3. 培养我们利用软件进行通信仿真的能力。4. 培养我发现问题,解决问题,查阅资料解决问题的能力。5、培养我熟练掌握MATLAB,运用此 matlab 软

2、件工具进行通信仿真的能力三、实验设备及软件:PC机一台, MATBLAB。四、实验主要内容及要求:1、对通信系统有整体的较深入的理解,深入理解自己仿真部分的原理的基础,画出对应的通信子系统的原理框图2、提出仿真方案;3、完成仿真软件的编制4、仿真软件的演示5、提交详细的设计报告五、实验原理1、PCM基本原理脉冲编码调制(PCM)简称脉码调制,它是一种用二进制数字代码来代替连续信号的抽样值,从而实现通信的方式。因此此种通信方式抗干扰能力强,因此在很多领域都得到了广泛运用。PCM信号的形成主精选资料,欢迎下载。要由三大步骤组成,包括:抽样、量化和编码。它们分别完成时间上离散、幅度上离散及量化信号的

3、二进制表示。 量化分为均匀量化和非均匀量化,为了减小小信号的量化误差,我们常使用的是非均匀量化。非均匀量化分为A 律和 律。我国采用的是A 律,但由于A 律不好实现,所以我们常用近似的13 折线编码。1.1 抽样抽样即是将时间连续的模拟信号由一系列时间离散的样值所取代的过程它实现的是信号在时间上的离散化。抽样信号要想无失真的恢复出原信号,抽样频率必须要满足抽样定理。即:如果信号的最高频率为 f H,那么抽样频率 fs 必须要满足 fs=2f H.1.2 量化经过抽样后的信号还并不是数字信号,号进行量化, 实现其幅值的离散化。的 A 律 13 折线压缩。下面主要介绍它只实现了时间上的离散化。 幅

4、值上并不离散。 所以我们要对信量化分为均匀量化和非均匀量化。 本实验主要用到了非均匀量化中A律 13折线。A 律压缩是指压缩器具有如下的压缩特性:A( x ), x11 ln A VVAZln( Ax ),sgn(x) 11x11 ln AVAV由于 A 律在工程上不好实现,所以我们经常用近似的13 折线压缩法去代替A 率压缩下面是 13 折线时的 X 值与 A 律计算得的 X 的比较z01/82/83/84/85/86/87/81x准111111101确值12860.630.615.47.793.931.98X近似值02-72-62-52-42-32-22-120段号12345678斜率16

5、1684210.50.25第二行的X 值是根据A=87.6 时计算得到的,第三行的X 值是 13 折线分段时的值。可见,13 折线各段精选资料,欢迎下载。落的分界点与A=87.6 的曲线非常的接近。而13 折线的 x 按 2 的幂次分布,计算较方便,也易于实现。1.3 编码编码即把量化后的新哈变换成二进制代码,其反过程就叫做译码。本实验中我们用的是折叠二进制码。我们把一个量化电平数用一个 8 位的二进制表示。第 1 位表示信号的极性, 2-4 位表示段落码, 5-8 位表示段内码。A 律正输入值编码表段落码段落序号12345678段落码000001010011100101110111段内码量化

6、级段内码量化级段内码15111170111141110601101311015010112110040100111011300111010102001091001100018100000000在 13 折线中,用8 位的折叠二进制码表示信号量化值的具体步骤为:用第2 到 4 位表示段落码,8 个段落的起点电平由它的8 种可能状态来分别表示。其他四位表示段内码,每一个段落它的16 个均匀的划分量化级由它的16 种可能状态来分别表示。这样就使得8 个段落被划分为128 个量化级。再加上负的,相当于一共有256 种量化电平数。数字通信系统原理框图精选资料,欢迎下载。模拟信号抽样量化信源编码信道编码数

7、字调制加噪信道模拟信号信源译码信道译码抽样判决滤波数字解调本实验详细设计方案主函数产生模拟信源PCM 编码并得到抽样信Huffuma汉明编码信道汉明译码Hufuman 解n 编码压缩Pcm 反变换重建模拟信号Bpsk 调制加噪解调滤波抽样判决各子系统详细介绍:1、模拟信号为原始的信源信号2、抽样是将上述的时间和幅值都连续的模拟信号转换为时间离散,幅值连续的信号。3、量化是将上述信号转换为时间和幅值均离散的数字信号4、Pcm编码是将量化后的信号转换为01 比特流5、Huffuman 编码是为了减少冗余,提高传输效率6、汉明编码是通过增加冗余位来提高传输效率7、Bpsk 调制式将上述0、1 比特流

8、转换成适合在信道中传输的波形8、加噪是模仿信号传输过程中噪声的干扰,解调、滤波是为了恢复原信号。抽样判决是把信号恢复成0 、 1 比特流的形式9、汉明译码、 huffuman 解压缩、 pcm 反变换分别是汉明编码,huffuman 编码, pcm编码的反过程。10、最后还原成模拟信号六、主要代码及必要说明:function PCMmain()主函数close all;精选资料,欢迎下载。clc;z=sign(s);clear;maxs=max(abs(s);A=3;s=abs(s/maxs);%归一化t1=0:0.1:6*pi;Q=2048*s;%一个量化单位为1/2048;a1=sin(t

9、1);code=zeros(length(s),8);figure;w(1)=0;subplot(2,1,1);for k=2:8plot(t1,a1);w(k)=2(k+2);%段起始值title(原始信号 );0,16,32,64,128,256,512,1024t2=0:2*pi/32:6*pi;enda=sin(t2);res=;subplot(2,1,2);for i=1:length(s)stem(t2,a);if(z(i)0)title(抽样信号 );code(i,1)=1;res=pcm(a);else%-code(i,1)=0;enddatastream,huff,n=hfe

10、ncodingmain(res);for k=8:-1:1bit2=hanmencoding(datastream);panjue=channel(bit2,5);if Q(i)=w(k)bit22=hamyima(panjue);a=dec2bin(k-1,3);code(i,2:4)=a;%段落码的判断bit3=huffdecoding(bit22,huff,n);S=ipcm(bit3);break;figure;endtitle(经过信道的重建信号end);if k=2t=linspace(0,6*pi,length(S);t=fix(Q(i)-w(k)/(2(k-2);plot(t,

11、S,r);elsehold on;t=fix(Q(i)-w(k);plot(t,S,.b);endpcm 编码code(i,5:8)=dec2bin(t,4); %段内码的判function res=pcm(s)精选资料,欢迎下载。断h1=;l=0;res=res,code(i,:);for i=1:256endif chars(i).num=0endh1=h1,chars(i);huffuman 编码的主函数l=l+1;functionenddatastream,huff,n=hfencodingmain(code)endp,h1,h=aa(code);for y=1:lc,n=hufftr

12、ee(p,h1);p(y)=h1(y).num/m;datastream,huff=hufencoding(c,p,h,h1,n);endEndendHuffuman 编码子函数2、构建 huffuman 树1、统计各电平出现概率function c,n=hufftree(p,h1)function p,h1,h=aa(x)n=length(p);m=length(x)/8;for i=1:n-1for i=1:256for j=i:nchars(i).data=dec2bin(i-1,8);if p(i)=p(j)chars(i).num=0;P=p(i);p(i)=p(j);p(j)=P;

13、endT=h1(i);h1(i)=h1(j);h1(j)=T;h=;endfor j=1:mendtemp=x(j-1)*8+1:j*8);endh=h;temp;Q=sort(p);for k=1:256c=-ones(2*n-1,6);if sum(temp=chars(k).data)=8c(:,1)=1:2*n-1;chars(k).num=chars(k).num+1;c(1:n,2)=Q;q=Q;break;m=zeros(1,2*n-1);endfor i=n+1:2*n-1endc(i,2)=q(1)+q(2);endtemp1=find(c(:,2)=q(1)&c(:,6)=

14、1,1);精选资料,欢迎下载。c(temp1,6)=1;endtemp2=find(c(:,2)=q(2)&c(:,6)=1,1);l,k=size(h);c(temp2,6)=1;datastream=;c(i,4)=temp1;for i=1:lc(i,5)=temp2;for j=1:nc(temp1,3)=i;if sum(h(i,:)=huff(j).ch)=8c(temp2,3)=i;Q=Q,q(1)+q(2);datastream=datastream,huff(j).code;q=q(1)+q(2),q(3:end);break;q=sort(q);endendendenden

15、d根据构建的 huffuman 树进行编码endfunction( 7、 4)汉明编码datastream,huff=hufencoding(c,p,h,h1,n)function bit2=hanmencoding(m)for i=1:nH=0111100;huffcode=;1011011;p=c(i,3);1101001;j=i;G=1000011;while(p=-1)0100101;if(c(p,4)=j)0010110;huffcode=0,huffcode;0001111;elsebit2=;huffcode=1,huffcode;n=fix(length(m)/4);endfo

16、r i=1:nj=p;t=m(i-1)*4+1:i*4);p=c(j,3);bit2=bit2,rem(t*G,2);endendhuff(i).ch=h1(i).data;bit2=bit2,m(4*n+1:end);huff(i).code=huffcode;end精选资料,欢迎下载。通过信道的子函数b=filter(lowpass,1,designal);function panjue=channel(bit2,SNR)b=b(l+1:end);%-调制 -subplot(4,1,3);cs=bit2*2-1;plot(b);de=;axis(0,length(b)/10,-1,1);t

17、=linspace(0,1,16);title(滤波后的信号 );carrier=cos(2*pi*t);%-抽样判决 -for i=1:length(cs)panjue=;panjue1=;de=de,cs(i)*carrier;for i=1:length(b)/16;endsum1=b(i-1)*16+4);figure;if sum1=0subplot(4,1,1);panjue=panjue,1;plot(de);axis(0,length(de)/10,-1,1);panjue1=panjue1,ones(1,16);title(调制信号 );else%-加噪 -panjue=pa

18、njue,0;de=awgn(de,SNR,measured);panjue1=panjue1,zeros(1,16);%-解调 -enddesignal=;endfor i=1:16:length(de)-15subplot(4,1,4);plot(panjue1);designal=designal,de(i:i+15).*carrier;axis(0,length(panjue1)/10,-1,1);endtitle(抽样判决信号 );subplot(4,1,2);endplot(designal);汉明码译码函数axis(0,length(designal)/10,-1,1);func

19、tion bit3=hamyima(bit2)title(解调信号 );H=0111100;%-滤波 -1011011;load lowpass;1101001;l=fix(length(lowpass)/2);j=fix(length(bit2)/7);designal=designal,zeros(1,l);bit3=;精选资料,欢迎下载。for k=1:jfor i=1:nR=bit2(k-1)*7+1:k*7);ifS=rem(R*H,2);(length(d)=length(huff(i).code)for i=1:7if(length(find(d=huff(i).code)=le

20、ngth(dif sum(S=H(:,i)=3)break;endtranscode=transcode,huff(i).ch;endk=k(length(d)+1:end);R(i)=R(i);symbol=1;bit3=bit3,R(1:4);endendendbit3=bit3,bit2(j*7+1:end);if symbol=1endbreak;huffuman 译码endfunctionendtranscode=huffdecoding(datastream,huff,nif symbol=1)break;k=datastream;else if length(k)-length(

21、d)0transcode=;len=0;d=d,k(length(d)+1);max=1;elsefor u=1:ntranscode=transcode,k; break;temp=length(huff(u).code);endif tempmaxendmax=temp;endendendendpcm 译码while(length(k)=0)function S=ipcm(code)d=k(1);len=length(code)/8;for L=1:length(k)w(1)=0;symbol=0;for k=2:8精选资料,欢迎下载。w(k)=2(k+2);%段起始值0,16,32,64

22、,128,256,512,1024function a=bin2dec(x)%二进制转十进制endn=length(x);for i=1:7sum=0;b(i)=(w(i+1)-w(i)/16;%每段的最小量化for i=1:n间隔endsum=sum+x(i)*2(n-i);b(8)=1024/16;endS=;a=sum;for i=1:lenfunction a=dec2bin(x,n)%将 x 转换为 n 位的二进制 as=code(i-1)*8+1:(i-1)*8+8);a=zeros(1,length(n);t=bin2dec(s(2:4)+1;%判断段落位置for i=1:ny=

23、bin2dec(s(5:8);%判断段内地址if x=2(n-i)m=w(t)+(y+0.5)*b(t);a(i)=1;m=m/2048;x=x-2(n-i);if s(1)=0%判断极性elsem=-m;a(i)=0;endendS=S,m;endend六、测试结果及分析:精选资料,欢迎下载。原始信号10.50-0.5-102468101214161820抽样信号10.50-0.5-102468101214161820调制信号10-110020030040050060070080090010000解调信号10-101002003004005006007008009001000滤波后的信号10-110020030040050060070080090010000抽样判决信号10-110020030040050060070080090010000信噪比为 5 时的重建模拟信号10.80.60.40.20-0.2-0.4-0.6-0.8-102468101214161820精选资料,欢迎下载。信噪比为 2 时的重建模拟信号10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论