课程设计脉冲编码调制(PCM)系统设计与仿真_第1页
课程设计脉冲编码调制(PCM)系统设计与仿真_第2页
课程设计脉冲编码调制(PCM)系统设计与仿真_第3页
课程设计脉冲编码调制(PCM)系统设计与仿真_第4页
课程设计脉冲编码调制(PCM)系统设计与仿真_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、 重庆三峡学院 通信原理课程设计题 目:脉冲编码调制(PCM)系统设计与仿真院 (系): 物理与电子工程学院 班 级: 2007级1班 负 责 人: 学号: 小组成员: 学号: 指导教师: 摘要 :脉冲编码调制(PCM)是现代语音通信中数字化的重要编码方式。 MATLAB 仿真软件可以实现多层次的通信系统仿真。利用MATLAB 软件实现脉冲编码调制(PCM)仿真,可以为硬件电路实现提供理论依据。通过仿真展示了PCM编码实现的设计思路及具体过程,并加以进行分析。关键词: PCM 编译码1、脉冲编码调制(PCM)原理脉冲编码调制(PCM)简称脉码调制,它是一种用二进制数字代码来代替连续信号的抽样值

2、,从而实现通信的方式。由于这种通信方式抗干扰能力强,因此在光钎通信、数字微波通信、卫星通信中均获得了极为广泛的运用。PCM信号的形成是模拟信号经过“抽样、量化、编码”三个步骤实现的。分别完成时间上离散、幅度上离散、及量化信号的二进制表示。根据CCITT的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A律和律方式,我国采用了A律方式,由于A律压缩实现复杂,常使用 13 折线法编码。PCM系统的原理框图如图1.1所示。在编码器(1.1(a)中由冲击脉冲对模拟信号抽样,得到在抽样时刻上的信号抽样值。这个抽样值仍是模拟量。在它量化之前,通常用保持电路将其做短暂保存,以便电路有时

3、间将其量化。在实际电路中常把抽样和保持电路做在一起,称为抽样保持电路。图中的量化器把模拟抽样信号变成离散的数字量,然后在编码器中进行二进制编码。这样,每个二进制码组就代表一个量化后的信号抽样值。图1.1(b)中的译码器的原理与编码过程相反,这里不再赘述。 模拟信号输入 抽样保持 量化器 编码器 PCM信号输出 冲激脉冲 (a)编码器PCM信号输入 译码器 低通滤波器 模拟信号输出 (b)译码器 图1.1 PCM原理方框图1.1 抽样所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。它

4、的抽样速率的下限是由抽样定理确定的。在一个频带限制在(0,f h)内的时间连续信号f(t),如果以1/2 f h的时间间隔对它进行抽样,那么根据这些抽样值就能完全恢复原信号。或者说,如果一个连续信号f(t)的频谱中最高频率不超过f h,当抽样频率f S2 f h时,抽样后的信号就包含原连续的全部信息。这就是抽样定理。1.2量化从数学上来看,量化就是把一个连续幅度值的无限数集合映射成一个离散幅度值的有限数集合。如图2所示,量化器Q输出L个量化值,k=1,2,3,L。常称为重建电平或量化电平。当量化器输入信号幅度落在与之间时,量化器输出电平为。这个量化过程可以表达为: (1-1) 这里称为分层电平

5、或判决阈值。通常称为量化间隔。模拟入量化器量化值 图1.2 模拟信号的量化 量化后的抽样信号于量化前的抽样信号相比较,当然有所失真,且不再是模拟信号。这种失真在接收端还原模拟信号是变现为噪声,并称为量化噪声。量化噪声的大小取决于把样值分级“取整”的方式,分的级数越多,即量化极差或间隔越小,量化噪声也越小。模拟信号的量化分为均匀量化和非均匀量化。由于均匀量化存在的主要缺点是:无论抽样值大小如何,量化噪声的均方根值都固定不变。因此,当信号较小时,则信号量化噪声功率比也就很小,这样,对于弱信号时的量化信噪比就难以达到给定的要求。通常,把满足信噪比要求的输入信号取值范围定义为动态范围,可见,均匀量化时

6、的信号动态范围将受到较大的限制。为了克服这个缺点,实际中,往往采用非均匀量化。非均匀量化是根据信号的不同区间来确定量化间隔的。对于信号取值小的区间,其量化间隔也小;反之,量化间隔就大。它与均匀量化相比,有两个突出的优点。首先,当输入量化器的信号具有非均匀分布的概率密度(实际中常常是这样)时,非均匀量化器的输出端可以得到较高的平均信号量化噪声功率比;其次,非均匀量化时,量化噪声功率的均方根值基本上与信号抽样值成比例。因此量化噪声对大、小信号的影响大致相同,即改善了小信号时的量化信噪比。实际中,非均匀量化的实际方法通常是将抽样值通过压缩再进行均匀量化。通常使用的压缩器中,大多采用对数式压缩。广泛采

7、用的两种对数压缩律是压缩律和A压缩律。美国采用压缩律,我国和欧洲各国均采用A压缩律,因此,PCM编码方式采用的也是A压缩律。所谓A压缩律也就是压缩器具有如下特性的压缩律: (1-2) (1-3)未压缩(1)(2)(3)(4)(5)(6)(7)(8) 0 A律压扩特性是连续曲线,A值不同压扩特性亦不同,在电路上实现这样的函数规律是相当复杂的。实际中,往往都采用近似于A律函数规律的13折线(A=87.6)的压扩特性。这样,它基本上保持了连续压扩特性曲线的优点,又便于用电路实现,本设计中所用到的PCM编码正是采用这种压扩特性来进行编码的。图1.3示出了这种压扩特性。 图1.3 A律13折线表1.1列

8、出了13折线时的值与计算值的比较。表1.1 13折线时的x值与计算x值的比较 y0 1 x0 1按折线分段时的x01段落12345678斜率161684211/21/4 表1.1中第二行的值是根据时计算得到的,第三行的值是13折线分段时的值。可见,13折线各段落的分界点与曲线十分逼近,同时按2的幂次分割有利于数字化。1.3编码(Coding)所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。当然,这里的编码和译码与差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。量化后的抽样信号在一定的取值范围内仅有有限个可取的样值,且信号正、负幅度分布的对称性使正、负样值的个数相等,正、负

9、向的量化级对称分布。若将有限个量化样值的绝对值从小到大依次排列,并对应的依次赋予一个十进制数字代码,在码前以“+”、“”号为前缀,来区分样值的正负,则量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。把量化的抽样信号变换成给定字长的二进制码流的过程为编码。在现有的编码方法中,若按编码的速度来分,大致可分为两大类:低速编码和高速编码。通信中一般都采用第二类。编码器的种类大体上可以归结为三类:逐次比较型、折叠级联型、混合型。在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。下面结合13折线的量化来加以说明。表1.2 段落码 表2.3 段内

10、码段落序号段落码量化级段内码8111151111141110711013110112110061011110111010105100910018100040117011160110301050101401002001300112001010001000100000 在13折线法中,无论输入信号是正是负,均按8段折线(8个段落)进行编码。若用8位折叠二进制码来表示输入信号的抽样量化值,其中用第一位表示量化值的极性,其余七位(第二位至第八位)则表示抽样量化值的绝对大小。具体的做法是:用第二至第四位表示段落码,它的8种可能状态来分别代表8个段落的起点电平。其它四位表示段内码,它的16种可能状态来分别

11、代表每一段落的16个均匀划分的量化级。这样处理的结果,8个段落被划分成27128个量化级。段落码和8个段落之间的关系如表1.2所示;段内码与16个量化级之间的关系见表1.3。话音PCM的抽样频率为8KHZ,每个量化样值对应一个8位二进制码,故话音数字编码信号的速率为8bits×8kHz=64kb/s.量化噪声随级数的增多和极差的缩小而缩小。量化级数增多即样值个数增多,就要求更长的二进制编码。因此,量化噪声随二进制编码的位数增多而减少,即随数字编码信号的速率提高而减少。自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码。PCM通过抽样、量化、编码三个步

12、骤将连续变化的模拟信号转换为数字编码。2、 量化噪声比 PCM系统输出端平均信号量化噪声比仅依赖于每一个编码组数N。对于一个频带限制在的信号,按照抽样定理,此时要求每秒钟最少传输的抽样脉冲数等于2;若PCM系统的编码位数为N,则需要系统每秒钟传输2个二进制脉冲。为此,这时的系统的总带宽B至少等于N。故可用公式: (2-1) 如果模拟信号的概率表示为,则信号量化噪声比(SQNR)为: (2-2) 其中Y表示为如下式所示的归一化输入 (2-3)进而用dB表示的SQNR为 (2-4)量化后,通过为每个量化级数使用v比特来对这些级数进行编码。编码方案通常选择为自然二进制编码(NBC),即最低量化级映射

13、为全0序列而最高量化级映射到全1序列。所有其他级数以升序映射为各量化值。3、 设计步骤3.1、产生一个幅度为1,频率w=1的正弦序列。采用均匀PCM方案,将其进行8级和16级量化。在同一坐标系内绘出原始信号和量化信号的曲线。将两种情况得到的SQNR进行比较。3.2、对长度为500的高斯随机变量序列计算当量化电平数为64时所得的SQNR,并求出该序列的前5个值,相应的量化值以及相应的码字。最后,画出量化误差。3.3、再分别以量化电平为16和128时重做步骤2,并对二者以及步骤2的结果进行比较。4、 仿真结果和分析 4.1、MATAB程序u_pcm.m以为抽样值序列和所需要的量化级的数目作为输入。

14、u_pcm.mfunction sqnr,a_quan,code=u_pcm(a,n)%U_PCM 一个序列的均匀PCM编码。% SQNR,A_QUAN,CODE=U_PCM(A,N)% a=输入序列。% n=量化级数的数目(偶数)。% sqnr=输入信号量化噪声比 (以 dB为单位)。%a_quan=编码前的量化输出。%code=编码后的输出。amax=max(abs(a);a_quan=a/amax; b_quan=a_quan;d=2/n; %取样间隔 q=d.*0:n-1;q=q-(n-1)/2)*d;%q是从(11/n)到(11/n),且间隔为2/n的序列;for i=1:n a_q

15、uan(find(q(i)-d/2 <= a_quan) & (a_quan <= q(i)+d/2)=. q(i).*ones(1,length(find(q(i)-d/2 <= a_quan) & (a_quan <= q(i)+d/2);b_quan(find( a_quan=q(i) )=(i-1).*ones(1,length(find( a_quan=q(i) );end a_quan=a_quan*amax; %循环结束后,a_quan中为量化后的值,b_quan为量化码号nu=ceil(log2(n); %天花板函数求得PCM码比特数co

16、de=zeros(length(a),nu); %二维数组储存PCM码%下面代码为求PCM码矩阵codefor i=1:length(a) for j=nu:-1:0 if ( fix(b_quan(i)/(2j) = 1)code(i,(nu-j) = 1;b_quan(i) = b_quan(i) - 2j; end endend sqnr=20*log10(norm(a)/norm(a-a_quan); 4.2、选择信号的持续时间为10秒。然后用MATLAB程序u_pcm.m,生成8级量化和16级量化两种情况下的量化信号。程序如下:echo ont=0:0.01:10;a=sin(t);

17、sqnr8,aquan8,code8=u_pcm(a,8);sqnr16,aquan16,code16=u_pcm(a,16);pause %按任意键可看到当N=8时的信号量化噪声比。sqnr8pause %按任意键可看到当N=16时的信号量化噪声比。sqnr16pause %按任意键可看到信号及其量化后的曲线。plot (t,a,'-',t,aquan8,'-.',t,aquan16,'-',t,zeros(1,length(t)运行MATLAB可得到如下结果:sqnr8 = 18.9023sqnr16 = 25.1272 图4.2.1 8级(

18、断线)和16级(连续线)正弦信号均匀PCM 4.3、用MATLAB程序PCM3.m找出当量化级数为64、16、128时的SQNR,求出该序列的前5个值、相应的量化值和相应的码字。PCM3.m程序如下:x=1:500;y=randn(1,500);sqnr64, a_quan64, code64 = u_pcm(y, 64);SQNR64=sqnr64a_quan64_result = a_quan64(1), a_quan64(2), a_quan64(3), a_quan64(4), a_quan64(5) %前五个量化值code64_result = code64(1,1:6), code

19、64(2,1:6), code64(3,1:6), code64(4,1:6), code64(5,1:6) %前五个相应的码字sqnr16, a_quan16, code16 = u_pcm(y, 16);SQNR16=sqnr16a_quan64_result = a_quan16(1), a_quan16(2), a_quan16(3), a_quan16(4), a_quan16(5) code64_result = code64(1,1:4), code64(2,1:4), code64(3,1:4), code64(4,1:4), code64(5,1:4) sqnr128, a_

20、quan128, code128 = u_pcm(y, 128);SQNR128 = sqnr128a_quan128_result = a_quan128(1), a_quan128(2), a_quan128(3), a_quan128(4), a_quan128(5) code128_result = code128(1,1:7), code128(2,1:7), code128(3,1:7), code128(4,1:7), code128(5,1:7) %下面为量化误差图形的代码subplot(2,3,1);plot(x,a_quan16); %画出量化后的图形subplot(2,3

21、,4);Y,I = sort(y);% Y, I = sort(A)plot(a_quan16(I),abs(Y-a_quan64(I); %以量化值为横坐标,量化误差为纵坐标的图形xlabel('N = 16');subplot(2,3,2);plot(x,a_quan64);subplot(2,3,5);Y,I = sort(y); plot(a_quan64(I),abs(Y-a_quan64(I);xlabel('N = 64');subplot(2,3,3);plot(x,a_quan128);subplot(2,3,6);Y,I = sort(y);

22、 plot(a_quan128(I),abs(Y-a_quan128(I);xlabel('N = 128');运行MATLAB可得到如下结果:SQNR64 = 32.3455a_quan64_result = -0.4331 -1.6931 0.1181 0.2756 -1.1419code64_result = 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1SQNR16 = 20.0591a_quan64_result = -0.4725 -1.7325 0.1575 0.1575 -1.1025code64_result = 0 1 1 0 0 0 1 0 1 0 0 0

温馨提示

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

评论

0/150

提交评论