当前位置:文档之家› 脉冲编码PCM调制设计

脉冲编码PCM调制设计

探※※※※※※※※探2007级学生数字通探% 信原理课程设计%探%数字通信原理课程设计报告书脉冲编码调制(PCM)系统课题名称设计与仿真姓名_______________________________________ 学号院系物理与电信工程系专业通信工程指导教师2010年01月09日一、设计任务及要求(1)完成脉冲编码调制(PCM系统的设计与仿真。

⑵ 用MATLAB^件将此次设计在电脑上实现,观察输出的波形(3)要求有各种需要的信号波形输出,并记录。

指导教师签名:2010年01月15日、指导教师评语:指导教师签名:__________________2010 年01 月15 日二、成绩盖章验收2010 年01 月15 日脉冲编码调制(PCM) 系统设计与仿真一、设计目的加深对《数字通信原理与技术》及《MATLA》课程的认识,进一步熟悉M语言编程中各个指令语句的运用;进一步了解和掌握数字通信原理课程设计中各种原理程序的设计技巧;掌握宏汇编语言的设计方法;掌握MATLAB^件的使用方法,加深对试验设备的了解以及对硬件设备的正确使用。

加强对于电路图的描绘技能,巩固独立设计实验的实验技能。

提高实践动手能力。

二、设计要求采用matlab或者其它软件工具实现脉冲编码调制 (PCM系统的设计与仿真,并且绘制相关的图形;通过编程设置对参数进行调整,可以调节输出信号的显示效果。

所有设计要求,均必须在实验室调试,保证功能能够实现。

三、设计原理在PCM中,波形的每个样本独立进行编码。

然而,以奈奎斯特速率或更高速率采样的绝大多数信号(包括语音信号) ,其相邻的样本之间呈现明显的相关性,换言之,相邻采样幅度间的平均变化较小。

所以,利用采样中多余度的编码方案将使语音信号的码率降低。

一种简单的解决方法就是对相邻样本之差编码而不是对样本本身编码,由于相邻样本之差比实际样本幅度小,所以表示差信号需要较小的位数。

这种普通方法的一种改进方案是用前面的n 个样本根据一定的规律来预测当前的样本,然后将预测值与实际值的误差进行量化后传输,在根据误差信号,采用和发送端相同的预测方法恢复出原始信号。

k■话音输出:诣曰输入1FI fiKN I I一L—L:_|抽祥解码量化再生-------------- 信道---------------- 编码图1 PCM的原理框图模拟信号数字化必须经过三个过程,即抽样、量化和编码,以实现话音数字化的脉冲编码调制(PCM Pulse Coding Modulation )技术。

1.抽样(Samping)抽样是把模拟信号以其信号带宽2倍以上的频率提取样值,变为在时间轴上离散的抽样信号的过程。

例如,话音信号带宽被限制在0.3〜3.4kHz内,用8kHz 的抽样频率(fs ),就可获得能取代原来连续话音信号的抽样信号。

对一个正弦信号进行抽样获得的抽样信号是一个脉冲幅度调制( PAM信号,如下图对模拟正弦信号的抽样所示。

对抽样信号进行检波和平滑滤波,即可还原出原来的模拟信号。

2.量化(quantizing )抽样信号虽然是时间轴上离散的信号,但仍然是模拟信号,其样值在一定的取值范围内,可有无限多个值。

显然,对无限个样值一一给出数字码组来对应是不可能的。

为了实现以数字码表示样值,必须采用“四舍五入”的方法把样值分级“取整”,使一定取值范围内的样值由无限多个值变为有限个值。

这一过程称为量化。

量化后的抽样信号与量化前的抽样信号相比较,当然有所失真,且不再是模拟信号。

这种量化失真在接收端还原模拟信号时表现为噪声,并称为量化噪声。

量化噪声的大小取决于把样值分级“取整”的方式,分的级数越多,即量化级差或间隔越小,量化噪声也越小。

3.编码(Coding)量化后的抽样信号在一定的取值范围内仅有有限个可取的样值,且信号正、负幅度分布的对称性使正、负样值的个数相等,正、负向的量化级对称分布。

若将有限个量化样值的绝对值从小到大依次排列,并对应地依次赋予一个十进制数字代码(例如,赋予样值0 的十进制数字代码为0),在码前以“+”、“-” 号为前缀,来区分样值的正、负,则量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。

简单高效的数据系统是二进制码系统,因此,应将十进制数字代码变换成二进制编码。

根据十进制数字代码的总个数,可以确定所需二进制编码的位数,即字长。

这种把量化的抽样信号变换成给定字长的二进制码流的过程称为编码。

话音PCM的抽样频率为8kHz,每个量化样值对应一个8位二进制码,故话音数字编码信号的速率为8bits x 8kHz= 64kb/s。

量化噪声随量化级数的增多和级差的缩小而减小。

量化级数增多即样值个数增多,就要求更长的二进制编码。

因此,量化噪声随二进制编码的位数增多而减小,即随数字编码信号的速率提高而减小。

自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码。

PCM1过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码。

四、设计步骤4.1、 实施步骤A 、 输出时钟和帧同步时隙信号观测用示波器同时观测抽样时钟信号(TP504)和输出时钟信号(TP503,观测 时以TP504作为同步信号。

B 、 抽样时钟信号与PCM 编码数据测量将跳线开关K501设置在T 位置,用函数信号发生器产生一个频率为 100HZ电平为2V 的正弦波测试信号,送入信号测试端口J005和J006。

用示波器同时观测抽样时钟信号(TP504)和编码输出数据信号(TP502), 观测时以TP504作为同步信号。

4.2、 具体设计程序main .m%show the pcm en code and decode clear all close allt=0:0.01:10;%1001 个数SL5SU SL] SLOLKS\m»\PCM 尊STB STB-SSTMN*PCM-ASPA “ 1 .分频Hl204SKH M CLKSLB沁耳SLA图2 PCM 模块电路万框图SI 32 3334STA-BFVM E STEJHvm1=-70:1:10; % 输入正弦信号幅度不同dBvm=10.A(vm1/20);%dB---10 进制figure(1)for k=1:length(vm)for m=1:2x=vm(k)*sin(2*pi*t+2*pi*rand(1));v=1;xx=x/v; %normalizesxx=floor(xx*4096); y=pcm_encode(sxx); yy=pcm_decode(y,v);燥声功率nq(m)=sum((x-yy).*(x-yy))/length(x);% sq(m)=mea n(yy42);% 信号功率snr(m)=(sq(m)/nq(m));% 信燥比drawnowsubplot(211)plot(t,x);title('sample sequence');subplot(212)plot(t,yy);title('pcm decode sequence'); end snrq(k)=10*log10(mean(snr)); endfigure(2)plot(vm1,snrq);axis([-60 0 0 60]);grid;pcm_encode.mfunction [out]=pcm_encode(x) %x encode to pcm code n=length(x);%-4096<x<4096for i=1:nif x(i)>0out(i,1)=1;% 符号位elseout(i,1)=0;% 符号位endif abs(x(i))>=0&abs(x(i))<32 out(i,2)=0;out(i,3)=0;out(i,4)=0;step=2;st=0;elseif 32<=abs(x(i))&abs(x(i))<64 out(i,2)=0;out(i,3)=0;out(i,4)=1;step=2;st=32;elseif 64<=abs(x(i))&abs(x(i))<128 out(i,2)=0;out(i,3)=1;out(i,4)=0;step=4;st=64;elseif 128<=abs(x(i))&abs(x(i))<256 out(i,2)=0;out(i,3)=1;out(i,4)=1;step=8;st=128;elseif 256<=abs(x(i))&abs(x(i))<512 out(i,2)=1;out(i,3)=0;out(i,4)=0;step=16;st=256;elseif 512<=abs(x(i))&abs(x(i))<1024 out(i,2)=1;out(i,3)=0;out(i,4)=1;step=32;st=512;elseif 1024<=abs(x(i))&abs(x(i))<2048 out(i,2)=1;out(i,3)=1;out(i,4)=0;step=64;st=1024;elseif 2048<=abs(x(i))&abs(x(i))<4096out(i,2)=1;out(i,3)=1;out(i,4)=1;step=128;st=2048;else out(i,2)=1;out(i,3)=1;out(i,4)=1;step=128;st=2048;endif (abs(x(i))>=4096) out(i,2:8)=[1 1 1 1 1 1 1];elsetmp=floor((abs(x(i))-st)/step);t=dec2bin(tmp,4)-48; % 函数dec2bin 输出的是ASCII 字符串,48 对应0out(i,5:8)=t(1:4);endendout=reshape(out',1,8*n);% 行变列pcm_decode.mfunction [out]=pcm_decode(in,v)%decode the input pcm code%in:input the pcm code 8 bits sample%v:quantized level n=length(in);in=reshape(in',8,n/8)';% 列变行slot(1)=0;slot(2)=32;slot(3)=64;slot⑷=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*i n(i,1)-1;%+1 -1tmp=i n(i,2)*4+i n(i,3)*2+i n(i,4)+1;%2st=slot(tmp);dt=(i n(i,5)*8+i n( i,6)*4+i n(i,7)*2+i n(i,8))*step(tmp)+0.5*step(tmp);out(i)=ss*(st+dt)/4096*v;end五、设计结果sample sequence1劭E/ 1 / I 1 1 \T-1 1J i0.5 ■ ■.1 I I \ 7I■1『- 1 1\ \\ J iI j 1 ■J i-J-0.5 \ j \ |L i r . \ t1 If11 f11'11.IJ-10 ■' t ./ .J f t r\ /r V rr I j1 2 3 4 5 6 7 8 9 1进制转换10进制pcm decode sequence图3输入正弦信号图图4实验结果图六、设计体会与建议6.1设计体会在此次设计中,我们将课本理论知识与实际应用联系起来,按照书本上的知识和老师讲授的方法,首先分析研究此次数字电路课程设计任务和要求,然后按照分析的结果进行实际编程操作,检测和校正,再进一步完善M程序。

相关主题