资源描述:
《基于MATLAB的PCM编译码器系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告书------逐次比较编码原理PCM编译码器系统班级:姓名:学号一、实验原理描述模拟信号数字化必须经过三个过程,即抽样、量化和编码,以实现话音数字化的脉冲编码调制(PCM,PulseCodingModulation)技术。1.抽样(Sampling) 抽样是把模拟信号以其信号带宽2倍以上的频率提取样值,变为在时间轴上离散的抽样信号的过程。例如,话音信号带宽被限制在0.3~3.4kHz内,用8kHz的抽样频率(fs),就可获得能取代原来连续话音信号的抽样信号。对一个正弦信号进行抽样获得的抽样信号是一个脉冲幅度调制(PAM)信号,如下图对模拟正弦信号的抽样所示
2、。对抽样信号进行检波和平滑滤波,即可还原出原来的模拟信号。2.量化(quantizing) 抽样信号虽然是时间轴上离散的信号,但仍然是模拟信号,其样值在一定的取值范围内,可有无限多个值。显然,对无限个样值一一给出数字码组来对应是不可能的。为了实现以数字码表示样值,必须采用“四舍五入”的方法把样值分级“取整”,使一定取值范围内的样值由无限多个值变为有限个值。这一过程称为量化。 量化后的抽样信号与量化前的抽样信号相比较,当然有所失真,且不再是模拟信号。这种量化失真在接收端还原模拟信号时表现为噪声,并称为量化噪声。量化噪声的大小取决于把样值分级“取整”的方式,分的级数
3、越多,即量化级差或间隔越小,量化噪声也越小。3.编码(Coding) 量化后的抽样信号在一定的取值范围内仅有有限个可取的样值,且信号正、负幅度分布的对称性使正、负样值的个数相等,正、负向的量化级对称分布。若将有限个量化样值的绝对值从小到大依次排列,并对应地依次赋予一个十进制数字代码(例如,赋予样值0的十进制数字代码为0),在码前以“+”、“-”号为前缀,来区分样值的正、负,则量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。简单高效的数据系统是二进制码系统,因此,应将十进制数字代码变换成二进制编码。根据十进制数字代码的总个数,可以确定所
4、需二进制编码的位数,即字长。这种把量化的抽样信号变换成给定字长的二进制码流的过程称为编码。二、实验仪器1、通信原理综合实验系统一台2、电脑-MATlab一台三、实验目的1、验证抽样定理2、观察了解PAM信号形成的过程1、了解逐次比较编码原理四、实验内容1、PCM编码规则码位数码位数决定了量化分层的数量。在信号变化范围一定时,用的码位数越多,量化分层越细,量化误差就越小,通信质量当然就更好。但码位数越多,设备越复杂,同时还会使总的传码率增加,传输带宽加大。在A律13折线PCM编码中,采用8位二进制码,对应有M=28=256个量化级。这需要将13折线中的每个折线段再均匀
5、划分16个量化级,由于每个段落长度不均匀,因此正或负输入的8个段落被划分成8×16=128个不均匀的量化级。8位码的安排如下极性码段落码段内码C1C2C3C4C5C6C7C8逐次比较编码原理除第一位极性码外,其他7位二进制代码是通过类似天平称重物的过程来逐次比较确定的。五、实验报告1、整理实验数据,画出测试波形十三折线。x1=-1:0.001:-0.5;y1=0.25*x1-0.75;axis([-1.1,1.1,-1.1,1.1]);plot(x1,y1);holdonx2=-0.5:0.0001:-0.25;y2=0.5*x2-0.625;plot(x2,y2)
6、;x3=-0.25:0.00001:-0.125;y3=x3-0.5;plot(x3,y3);x4=-0.125:0.:-0.0625;y4=2*x4-0.375;plot(x4,y4);x5=-0.0625:0.:-0.03125;y5=4*x5-0.25;plot(x5,y5);x6=-0.03125:0.:-0.;y6=8*x6-0.125;plot(x6,y6);x7=-0.:0.:0.;y7=16*x7;plot(x7,y7);x8=0.:0.:0.03125;y8=8*x8+0.125;plot(x8,y8);x9=0.03125:0.:0.0625;y
7、9=4*x9+0.25;plot(x9,y9);x10=0.0625:0.:0.125;y10=2*x10+0.375;plot(x10,y10);x11=0.125:0.00001:0.25;y11=x11+0.5;plot(x11,y11);x12=0.25:0.0001:0.5;y12=0.5*x12+0.625;plot(x12,y12);x13=0.5:0.001:1;y13=0.25*x13+0.75;plot(x13,y13);gridontitle('A律13折线');text(0,0,'原点');set(gca,'xtick',[-1:0.1: