当前位置:文档之家› 基础实验cm调制与解调实验

基础实验cm调制与解调实验

基础实验c m调制与解调实验集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]基础实验6 PCM调制与解调实验一、实验目的1.掌握PCM编译码原理与系统性能测试;2.熟悉PCM编译码专用集成芯片的功能和使用方法;3.学习PCM编译码器的硬件实现电路,掌握它的调整测试方法。

二、实验仪器1.PCM/ADPCM编译码模块,位号:H2.时钟与基带数据产生器模块,位号:G3.20M双踪示波器1台4.低频信号源1台(选用)5.频率计1台(选用)6.信号连接线3根7.小平口螺丝刀1只三、实验原理脉冲编码调制(PCM)是把一个时间连续、取值连续的模拟信号变换成时间离散、取值离散的数字信号在信道中传输。

脉冲编码调制是对模拟信号进行抽样,量化和编码三个过程完成的。

PCM通信系统的实验方框图如图6-1所示。

在PCM脉冲编码调制中,话音信号经防混叠低通滤波器后进行脉冲抽样,变成时间上离散的PAM脉冲序列,然后将幅度连续的PAM脉冲序列用类似于“四舍五入”办法划归为有限种幅度,每一种幅度对应一组代码,因此PAM脉冲序列将转换成二进制编码序列。

对于电话,CCITT规定抽样率为8KHz,每一抽样值编8位码(即为28=256个量化级),因而每话路PCM编码后的标准数码率是64kB。

本实验应用的单路PCM编、译码电路是TP3057芯片(见图6-1中的虚线框)。

此芯片采用a律十三折线编码,它设计应用于PCM 30/32系统中。

它每一帧分32个时隙,采用时分复用方式,最多允许接入30个用户,每个用户各占据一个时隙,另外两个时隙分别用于同步和标志信号传送,系统码元速率为。

各用户PCM编码数据的发送和接收,受发送时序与接收时序控制,它仅在某一个特定的时隙中被发送和接收,而不同用户占据不同的时隙。

若仅有一个用户,在一个PCM 帧里只能在某一个特定的时隙发送和接收该用户的PCM编码数据,在其它时隙没有数据输入或输出。

本实验模块中,为了降低对测试示波器的要求,将PCM 帧的传输速率设置为64Kbit/s或128Kbit/s两种,这样增加了编码数据码元的宽度,便于用低端示波器观测。

此时一个PCM 帧里,可容纳的PCM编码分别为1路或2路。

另外,发送时序FSX与接收时序FSR使用相同的时序,测试点为34TP01。

实验结构框图已在模块上画出了,实验时需用信号连接线连接34P02和34P03两铆孔,即将编码数据直接送到译码端,传输信道可视为理想信道。

另外, TP3057芯片内部模拟信号的输入端有一个语音带通滤波器,其通带为200HZ~4000HZ,所以输入的模拟信号频率只能在这个范围内有效。

四、各测量点的作用34TP01:发送时序FSX和接收时序FSR输入测试点,频率为8KHz的矩形窄脉冲;34TP02:PCM线路编译时钟信号的输入测试点;34P01:模拟信号的输入铆孔;34P02:PCM编码的输出铆孔;34P03:PCM译码的输入铆孔;34P04:译码输出的模拟信号铆孔,波形应与34P01相同。

注:一路数字编码输出波形为8比特编码(一般为7个半码元波形,最后半个码元波形被芯片内部移位寄存器在装载下一路数据前复位时丢失掉),数据的速率由编译时钟决定,其中第一位为语音信号编码后的符号位,后七位为语音信号编码后的电平值。

五、实验内容及步骤1.插入有关实验模块:在关闭系统电源的条件下,将“时钟与基带数据发生模块”、“PCM/ADPCM 编译码模块”,插到底板“G、H”号的位置插座上(具体位置可见底板右下角的“实验模块位置分布表”)。

注意模块插头与底板插座的防呆口一致,模块位号与底板位号的一致。

2.加电:打开系统电源开关,底板的电源指示灯正常显示。

若电源指示灯显示不正常,请立即关闭电源,查找异常原因。

3.PCM的编码时钟设定:“时钟与基带数据产生器模块”上的拨码器4SW02设置“01000”,则PCM 的编码时钟为64KHZ(后面将简写为:拨码器4SW02)。

拨码器4SW02设置“01001”,则PCM的编码时钟为128KHZ。

4.时钟为64KHZ,模拟信号为正弦波的 PCM编码数据观察:(1)用专用铆孔导线将P03、34P01,34P02、34P03相连。

(2)拨码器4SW02设置“01000”,则PCM的编码时钟为64KHZ。

(3)双踪示波器探头分别接在测量点34TP01和34P02,观察抽样脉冲及PCM编码数据。

DDS信号源设置为正弦波状态(通常频率为2KHZ),调节W01电位器,改变正弦波幅度,并仔细观察PCM编码数据的变化。

特别注意观察,当无信号输入时,或信号幅度为0时,PCM编码器编码为或为01010101,并不是一般教材所讲授的编全0码。

因为无信号输入时,或信号幅度为0经常出现,编全0码容易使系统失步。

此时时钟为64KHZ,一帧中只能容纳1路信号。

注意:(4)双踪示波器探头分别接在34P01和34P04,观察译码后的信号与输入正弦波是否一致。

5.时钟为128KHZ,模拟信号为正弦波的PCM编码数据观察:上述信号连接不变,将拨码器4SW02设置“01001”,则PCM的编码时钟为128KHZ。

双踪示波器探头分别接在测量点34TP01和34P02,观察抽样脉冲及 PCM编码数据。

DDS信号源设置为正弦波状态(通常频率为2KHZ),调节W01电位器,改变正弦波幅度,并仔细观察PCM编码数据的变化。

注意,此时时钟为128KHZ,一帧中能容纳2路信号。

本PCM编码仅一路信号,故仅占用一帧中的一半时隙。

用示波器观察34P01和34P04两点波形,比较译码后的信号与输入正弦波是否一致。

6.关机拆线:实验结束,关闭电源,拆除信号连线,并按要求放置好实验模块。

六、实验报告要求1.观察正弦波的编码波形,读出正弦波的峰峰值、编码数据;记录有关数据并做分析,得出你的结论。

PCM的Matlab仿真结果实验室演示的图形抽样脉冲和PCM编码原始信号和恢复信号2.写出本次实验的心得体会,以及对本次实验有何改进意见。

根据仿真的波形图和输出的量化。

、编码值可以得到以下结论:均匀量化输出波形图清晰的显示出均匀量化的特征,每个量阶都是均匀分布的,每个间隔都是相等的。

由于量化级数是64,所以从图中可看到结果不是那么明显,和输入波形相比几乎没啥变化。

将A率非均匀量化的结果和A率13折线近似量化进行比较,两者压缩特性很接近。

13折线输出的码组序列也符合要去。

通过实验,我深入地理解了PCM编码。

也认识到PCM的瓶颈,量化噪声是平均分布在全部频段,就算极大地提高精度和采样率,也难以减小噪声对信号的损失。

我认为PCM是损失较小的有损压缩。

建议:希望更换实验设备,实验设备过于老旧,增加一些现在新技术的实验设备。

附录PCM的Matlab程序n=input('请输入量化级数,k=[8]');if isempty(n),n=8; endendtime = 2; dt = ;t = 0:dt:endtime;a = zeros(size(t));for tt=1:1/dta(tt+[0:endtime/2-1]*(2/dt))=t(tt);endfor tt=1/dt+1:2/dta(tt+[0:endtime/2-1]*(2/dt))=2-t(tt);end;%A率非线性A = ;amax=max(abs(a));c = zeros(size(a));for i = 1:length(a);if((a(i)/amax)<=1/A)c(i) =A*a(i)/(1+log(A));endif((a(i)/amax)>1/A)c(i) =(1+log(A*a(i)))/(1+log(A));endend%均匀量化c_quan=c;b_quan=c_quan;d=1/n;%量化间隔q=d.*[1:n];q=q-d/2;%量化电平for i=1:n%定位第i个量化间隔码子c_quan(find((q(i)-d/2<=c_quan) &(c_quan<=q(i)+d/2)))=...q(i).*ones(1,length(find((q(i)-d/2<=c_quan)&(c_quan<=q(i)+d/2)) ));%赋值为相应的量化电平b_quan(find(c_quan==q(i))) =(i-1) .*ones(1,length(find(c_quan==q(i)) ));endnu=ceil(log2(n));%编码code=zeros(length(a),nu);for i=1:length(a)for j=nu:-1:0if(fix(b_quan(i)/(2^j))==1)code(i,(nu-j))=1; b_quan(i)=b_quan(i)-2^j;endendend%A率非线性的逆运算for i = 1:length(c_quan);if( (c_quan(i)) <=1/(1+log(A)) )a_quan(i) =(1+log(A))*c_quan(i)/A;endif((c_quan(i))>1/A)a_quan(i) = exp((1+log(A))*c_quan(i)-1)/A; endendsqnr=20*log10(norm(a)/norm(a-a_quan));%求量化信噪比disp('量化信噪比')disp(sqnr)disp('量化误差')disp(a - a_quan)disp('编码结果')disp(code)plot(t,a,'r-')hold on;plot(t,a_quan,'.b') %plot(t,a_quan,'b-') %axis([0 1 0 1])。

相关主题