均匀脉冲编码调制仿真.doc_第1页
均匀脉冲编码调制仿真.doc_第2页
均匀脉冲编码调制仿真.doc_第3页
均匀脉冲编码调制仿真.doc_第4页
均匀脉冲编码调制仿真.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

通信原理课程设计题目:均匀脉冲编码调制仿真 院系: 专业: 班级: 姓名: 学号: 指导老师: 时间:2010年12月27日2010年12月31日一.均匀脉冲编码调制原理1.均匀量化原理 设模拟信号的取值范围是a,b,量化电平数是M,那么均匀量化的量化间隔是: 量化取间的端点是: 若量化输出电平取量化间隔的中点,则 , 显然,量化输出电平和量化前的信号的抽样值一般是不同的,即量化输出电平有误差,这个误差称谓量化噪声(quantization noise),并用信号功率之比(简称为信号量噪比),衡量此误差对信号的影响的大小。对给定的信号最大幅度,量化电平数越多,量化的噪声越小,信号量噪比越高。在均匀量化时,量化噪声功率的平均值可以用下面的式子表示:式子中的为模拟信号的抽样值,即,为量化信号值,为信号的抽样值的概率密度。为求统计平均值。为量化电平数。信号的平均功率可表示为:若已知信号的概率密度函数,则由公式可计算出平均信号量噪声比。计算时可用如下公式直接计算,对于具有均匀概率密度的信号则有:。所以平均信号量噪比为: 在实际的应用中,对于给定的量化器的,量化电平数M和量化间隔都是给定的。所以,量化噪声也是给定的,但是,信号的强度可能是随时间变化的,像语音信号就是这样子的。当信号小时,信号的量噪比也小。所以这种均匀量化器对于小输入信号很不利。所以一般对小信号采用非均匀量化。2.编码原理量化后的信号,已经是取值离散的信号数字信号,下一步是如何进行编码。这里采用自然二进制编码和折叠二进制编码。自然二进制编码的编码方法如下:对于模拟信号的抽样值为0,0.0998,0.1987,0.2955,0.3894,0.4794,0.5646,0.6442。采用的是8电平的量化级数。量化输出电平范围是 -0.8750,-0.6250,-0.3750,-0.1250,0.1250,0.3750,0.6250,0.8750。则量化后的电平是:-0.1250,0.1250 ,0.1250 ,0.3750,0.3750,0.3750 ,0.6250,0.6250。对应的采用自然二进制码是:011 100 100 101 101 101 110 110 110 111。采用折叠二进制码编码,则输出为:000 100 100 101 101 101 110 110 110 111。具体编码的方法见程序。二程序运行结果:对于输入信号为sin(t)信号进行量化编码,其持续时间是10s,分别采用量化电平是8和16进行量化编码。运行结果是:原模拟信号为的采样值为:0,0.0998,0.1987,0.2955,0.3894,0.4794,0.5646,0.6442。1.采用8量化后的输出量化值为:-0.1250,0.1250 ,0.1250 ,0.3750,0.3750,0.3750 ,0.6250,0.6250。 相应的编码是:000 100 100 101 101 101 110 110 110 111相应的量化误差为:sqnr = 18.8549波形图:2.采用16量化电平进行量化值为:-0.0625,0.0625,0.1875,0.3125,0.4375,0.4375,0.5625,0.6875相应的编码是:0000 1000 1001 1010 1011 1011 1100 1100相应的量化误差sqnr =25.1185波形图:三小结通过这次通信原理课程设计,锻炼了自己的对PCM编码原理的理解和掌握。同时,加强了对matlab编程的练习。我复习了MATLAB编程语言的基本概念、语法、语义和数据类型的使用特点,加深了对课堂所学理论知识的理解,掌握了运用结构化程序设计的基本思想和方法,更重要的是培养了自己的自学能力。因为这是我们第二次接触MATLAB编程语言,在编写程序以及调试的过程中遇到了很多困难,但是我通过去图书馆查找资料,请教同学老师,再自己一点点改善程序,最终编写出一个比较完善的程序,实现了所有要求功能,这是最值得我欣慰的一点。 以下是我的几点切身感受: (一)编写程序需要一个清醒的头脑,明确的思路,同时也要有耐心毅力。刚拿到程序设计课题时,我感觉一片茫然,因为在之前的学习中,只是在一些例题中接触过MATLAB语言,甚至没有看过一些基础的书籍,所以初次遇到一个实际问题,感觉无从下手。由于自己对MATLAB的设计不够熟悉,同时对MATLAB的基本语句掌握不扎实,编写程序遇到了很大的困难,不过通过请教老师,和同学共同探讨后思路一下子豁然开朗,掌握了基本设计思路之后,后面的编程就顺利多了。至此,我真真体会到清晰地思路对成功编写一个程序的重要性。 当然成功编写一个程序绝非易事,之前,我总以为程序能够正常运行,就代表着编程成功,后来我才发现我大错特错了。我用了三天时间,完成了程序的编写、改错,但我立刻发现尽管程序能够正常运行,部分功能却不完善,甚至不能实现。经过一次又一次调试、修改又修改,一点一点发现问题并改正,我才真正发现编程远没有想象中的简单。它需要的不仅是清晰地编程思路、编程技巧,还需要有耐心有毅力,不要放弃。(二)我们在大学需要学习的不仅是基础知识、专业知识,更重要的是一种学习能力。正如老师所说学习是终生的,因此学习能力也就能让我们受益终生。由于课堂时间有限,MATLAB的许多知识需要靠我们自学,实践也证明我们是有自学的潜能的,通过自学相关知识,查找资料,请教老师,最终掌握知识。因此,这次课程设计时间培养了我们的自学能力。 四附录(源程序代码)折叠法syms nn=input(量化电平n=)m=log2(n); t=0:0.1:10;a=sin(t);M=length(a);a_quan=a; b_quan=a_quan;d=2/n; % d:为量化间隔;q=d*(0:n-1-(n-1)/2) % q:每个量化区间对应的判决阀值code=zeros(M,m); %创建一个编码矩阵%以下对上面归一化后的信号序列进行量化%for k=1:M for i=1:n if (q(i)-d/2=a_quan(k) a_quan(k)=q(i); end endenda_quan %以下对上面归一化后的信号序列进行编码% for k=1:M j=1; if a_quan(k)0 %a_quan(k)0 % code(k,j)=0; j=j+1; d=n/2-n/(2j); if j=m while (j=m)&(a_quan(k)=q(d) code(k,j)=1; j=j+1; d=d-n/(2j); end while (jq(d) code(k,j)=0; j=j+1; d=d+n/(2j); end end end if a_quan(k)=0 %a_quan(k)=0% code(k,j)=1; j=j+1; d=n/2+n/(2j); if j=m while (j=m)&(a_quan(k)=q(d) code(k,j)=0; j=j+1; d=d-n/(2j); end while (jq(d) code(k,j)=1; j=j+1; d=d+n/(2j); end end end endplot(t,a,t+0.2,a_quan)code% 计算量化信噪比sqnr % sqnr=20*log10(norm(a)./norm(a-a_quan) 若采用自然编码法,只要将相应的编码程序改成下面即可。 %以下对上面归一化后的信号序列进行编码% e=0;f=0;c1=0;p=0;c2=0; for k=1:M j=1;f=f+1; if a_quan(k)0 %a_quan(k)=0 %a_quan(k)=0% code(k,j)=1; j=j+1; d=n/2+n/(2j); end if j=m while (j=m)&(a_quan(k)=q(d) code(k,j)=0; j=j+1; d=d-n/(2j); end while (jq(d) code(k,j)=1; j=j+1; d=d+n/(2j); end end end 七、参考文献【1】 冯象初.甘小冰. 数值泛函与

温馨提示

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

评论

0/150

提交评论