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

下载本文档

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

文档简介

1、重庆交通大学信息科学与工程学院综合性设计性实验报告专业班级:姓名学号:实验所属课程:通信原理实验室(中心): 语音八楼指导教师:实验完成时间:2 0 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抽样抽样即是将时间连续的模拟信号由一系列时间离散的样值所取代的过程它实现的是信号在时间上的离 散化。抽样信号要想无失真的恢复出原信号,抽样频率必须要满足抽样定理。即:如果信号的最高频率 为fH,那么抽样频率fs必须要满足fs=2f H.1.2量化经过抽样后的信号还并不是数字信号, 号进行量化,实现其幅值的离散化。 的A律13折线压缩。下面主要介绍它只实现了时间上的离散化。 量化分为均匀量化和非均匀量化。 A律13折线。幅值上并不离

4、散。所以我们要对信本实验主要用到了非均匀量化中0)code(i,1)=1;elsecode(i,1)=0;endfor k=8:-1:1if Q(i)=w(k)a=dec2bi n( k-1,3);code(i,2:4)=a;%段落码的判断break;endendif k=2t=fix(Q(i)-w(k)/(2A(k-2);elset=fix(Q(i)-w(k);endcode(i,5:8)=dec2bi n( t,4);% 段内码的判断for i=1:256temp2=fi nd(c(:,2)=q(2)&c(:,6)=1,1);res=res,code(i,:);endendhuffuman

5、编码的主函数fun ctio n datastream,huff, n=hfe ncodi ngmai n(code)p,h1,h=aa(code);c,n =hufftree(p,h1);datastream,huff=hufe ncod in g(c,p,h,h1, n);EndHuffuman编码子函数1、统计各电平出现概率fun ctio n p,h1,h=aa(x)m=le ngth(x)/8;for i=1:256chars(i).data=dec2bi n(i-1,8);chars(i). num=0;endh=;for j=1:mtemp=x(j-1)*8+1:j*8);h=h

6、;temp;for k=1:256if sum(temp=chars(k).data)=8 chars(k). num=chars(k). nu m+1; break;endendendh1=;l=0;if chars(i). num=0h仁h1,chars(i);l=l+1;endendfor y=1:lP(y)=h1(y). nu m/m;endend2、构建 huffuman 树function c,n=hufftree(p,h1)n=len gth(p);for i=1: n-1for j=i:nif p(i)=p(j)P=p(i);p(i)=p(j);p(j)=P;T=h1(i);h

7、1(i)=h1(j);h1(j)=T;endendendQ=sort(p);c=-o nes(2* n-1,6);c(:,1)=1:2* n-1;c(1: n,2)=Q;q=Q;m=zeros(1,2* n-1);for i=n+1:2* n-1c(i,2)=q(1)+q(2);temp1=fi nd(c(:,2)=q(1)&c(:,6)=1,1)c(temp1,6)=1;c(i,4)=temp1;c(i,5)=temp2;c(temp1,3)=i;c(temp2,3)=i;Q=Q,q(1)+q(2);q=q(1)+q( 2),q(3:e nd);q=sort(q);endend根据构建的hu

8、ffuman树进行编码function datastream,huff=hufe ncodi ng(c,p,h,h1, n) for i=1: nhuffcode=;p=c(i,3);j=i;while(p=-1)if(c(p,4)=j)huffcode=0,huffcode;elsehuffcode=1,huffcode;endj=p;p=c(j,3);endhuff(i).ch=h1(i).data;huff(i).code=huffcode;endl,k=size(h);datastream=;for j=1: nif sum(h(i,:)=huff(j).ch)=8 datastrea

9、m=datastream,huff(j).code break;endendendend(7、4)汉明编码function bit2=ha nmen cod in g(m)H=0 1 1 1 1 0 0;1 0 1 1 0 1 1;1 1 0 1 0 0 1;G=1 0 0 0 0 1 1;0 1 0 0 1 0 1;0 0 1 0 1 1 0;0 0 0 1 1 1 1;bit2=;n=fix(le ngth(m)/4);for i=1: nt=m(i-1)*4+1:i*4);bit2=bit2,rem(t*G,2);endbit2=bit2,m(4* n+1:e nd);end通过信道的子

10、函数fun ctio n panjue=cha nn el(bit2,SNR)%调制cs=bit2*2-1;de=;title(滤波后的信号);t=li nspace(0,1,16);carrier=cos(2*pi*t);for i=1:le ngth(cs)de=de,cs(i)*carrier;endfigure;subplot(4,1,1);plot(de);axis(0,le ngth(de)/10,-1,1);title(调制信号);%加噪de=awg n( de,SNR,measured);%解调desig nal=;for i=1:16:le ngth(de)-15desig

11、nal=desig nal,de(i:i+15).*carrier;endsubplot(4,1,2);plot(desig nal);axis(0,le ngth(desig nal)/10,-1,1);title(解调信号);%滤波load lowpass;l=fix(le ngth(lowpass)/2);desig nal=desig nal,zeros(1,l);b=filter(lowpass,1,desig nal);b=b(l+1:e nd);subplot(4,1,3);plot(b);%抽样判决panjue=;panjue1=;for i=1:le ngth(b)/16;s

12、um仁 b(i-1)*16+4);if sum1=0panjue=panjue,1;panjue1=panjue1, on es(1,16); elsepanjue=panjue,0;panjue1=panjue1,zeros(1,16) end end subplot(4,1,4);plot(panjue1);axis(0,le ngth(panjue1)/10,-1,1);title(抽样判决信号);end汉明码译码函数function bit3=hamyima(bit2)H=0 1 1 1 1 0 0;1 0 1 1 0 1 1;1 1 0 1 0 0 1;j=fix(le ngth(b

13、it2)/7);bit3=;for k=1:jR=bit2(k-1)*7+1:k*7);S=rem(R*H,2);for i=1:7if sum(S=H(:,i)=3axis(0,le ngth(b)/10,-1,1);endbreak;endsymbol=1;endR(i)=R(i);bit3=bit3,R(1:4);endbit3=bit3,bit2(j*7+1:e nd);endhuffuman 译码fun ctio ntra nscode=huffdecodi ng(datastream,huff, n) k=datastream;tran scode=;le n=0;max=1;fo

14、r u=1: ntemp=le ngth(huff(u).code);if tempmaxmax=temp;endendwhile(le ngth(k)=0)d=k(1);for L=1:le ngth(k)symbol=0;for i=1: nif (le ngth(d)=le ngth(huff(i).code)if(len gth(fi nd(d=huff(i).code)=le ngth(d)tran scode=tra nscode,huff(i).ch;k=k(le ngth(d)+1:e nd);endif symbol=1break;endendif symbol=1break

15、;else if len gth(k)-le ngth(d)0d=d,k(le ngth(d)+1);elsetran scode=tra nscode,k; break;endendendendpcm译码function S=ipcm(code)len=len gth(code)/8;w(1)=0;for k=2:8w(k)=2A(k+2);%段 起 始 值0,16,32,64,128,256,512,1024endfor i=1:7b(i)=(w(i+1)-w(i)/16;%每段的最小量化间隔endb(8)=1024/16;S=;s=code(i-1)*8+1:(i-1)*8+8);t=b

16、in2dec(s(2:4)+1;% 判断段落位置 y=bin2dec(s(5:8);% 判断段内地址 m=w(t)+(y+0.5)*b(t);m=m/2048;if s(1)=0%判断极性m=-m;endS=S,m;endfunction a=bin2dec(x)% 二进制转十进制 n=len gth(x);sum=0;sum=sum+x(i)*2A( n-i);enda=sum;function a=dec2bin(x,n)% 将 x 转换为 n 位的二 进制aa=zeros(1,le ngth( n);for i=1: nif x=2A( n-i)a(i)=1;x=x-2A( n-i);e

17、lsea(i)=0;endend六、测试结果及分析:原始信号-10调制信号10100200300400500600700解调信号8009001000100 200300400500600滤波后的信号7008009001000110-10 100 200300400500600抽样判决信号7008009001000-100100200300400500600700800900100010-10信噪比为5时的重建模拟信号0.80.60.4+*0.201-0.2-0.4-0.6-0.8-1101214一 16 1820信噪比为2时的重建模拟信号0246810 1214161820信噪比为1时的重建模

18、拟信号对比不同信噪比情况下的重建信号可知,信噪比越大,信号恢复的质量越好。七、实验体会:通过本次实验我收获不少,使我对通信原理更加的了解了,尤其是模拟信号数字化这一块儿。有了以前的matlab以及信息论与编码课程设计做铺垫,这次实验相比以往要更顺利一些。但编码过程中还是遇 到了一些问题。比如抽样判决过程中,我一直有个问题不是很明白,为什么不取一个周期的平均值作为判决依据,而要取一个周期的某个点呢。我觉得取平均值的话可以在一定程度上减小误差。那么还希望老师能够解决我的这个疑问。在测试不同信噪比情况下,信号恢复情况时我发现,同一信噪比情况下, 出来的图也并不完全一样的。我想是不是信道加噪的过程是随机的原因。其间,程序出错了,自己改半 天改

温馨提示

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

评论

0/150

提交评论