PCM实验报告
非均匀量化与编码
一、 实验目的
(1). 了解模拟信号数字化的三个基本步骤:抽样、量化、编码。 (2). 抽样频率、量化级数对信号数字化的影响. (3). 加深对非均匀量化的理解。
(4). 理解信息速率与抽样量化编码的关系。 (5). 掌握MATLAB语言的函数调用,提高编程编程能力,,为之后的学习做准备。
二、实验内容:
对模拟信号进行抽样、量化并进行13折线PCM编码,运用Matlab软件实现PCM编码全过程。
三、实验步骤与结果
1、抽样:
产生一个周期的正弦波x(t)=1024cos(2πt)mv ,分别以4HZ和32Hz的频率进行采样用plot函数在绘出原信号和抽样后的信号序列(可用stem函数)。(4Hz保存为图1,32Hz保存为图2) function sample(f) t=0:1/f:1;
y=1024*cos(2*pi*t); stem(t,y,'b','filled'); hold on; T=1:0.01:1;
Y=1024*cos(2*pi*T); plot(T,Y,'r');
2、均匀量化:
对以32Hz的抽样频率进行抽样后的信号的绝对值分别进行8级和2048级均匀量化。在同一张图上绘出正弦波波形(用plot函数)、量化图(用stairs函数)。(保存为图3)
function y=Even(n,m) t=0:1/m:1;
x=1024*cos(2*pi*t); a=-1024:2048/n:1024; for i=1:m+1 for j=1:n
if (x(i)>=a(j)&x(i)<=a(j+1)) y(i)=(a(j)+a(j+1))/2; end end end
y=y/max(y); if(n==8)
stairs(t,y,'b'); end
if(n==2048)
stairs(t,y,'k') end
axis([0 1 -1.5 1.5]); hold on;
T=0:0.01:1;
Y=1024*cos(2*pi*T); Y=Y/max(Y); plot(T,Y,'r');
3、PCM编码
对所有的抽样值对应的2048级均匀量化值进行13折线编码,输出相应的PCM编码,并对总的编码比特数进行计数。具体编码程序流程如下: