信源编码-PCM非均匀量化与编码实验报告(完成版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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编码,并对总的编码比特数进行计数。具体编码程序流程如下:
function code=pcm(S)
z=sign(S);
MaxS=max(abs(S));
S=abs(S/MaxS);
Q=2048*S;
code=zeros(length(S),8);
a=[0,16,32,64,128,256,512,1024,2048];
b=[1,1,2,4,8,16,32,64];
for i=1:length(S)
for j=1:8
if (Q(i)>=a(j))&&(Q(i)<=a(j+1))
g=dec2bin(j-1,3);
code(i,(2:4))=[str2num(g(1)) str2num(g(2)) str2num(g(3))]; q=ceil((Q(i)-a(j))/b(j));
if q==0
code(i,(5:8))=[0,0,0,0];
else k=num2str(dec2bin(q-1,4));
code(i,(5:8))=[str2num(k(1)) str2num(k(2)) str2num(k(3))
str2num(k(4))]
end
end
end
if z(i)>0
code(i,1)=1;
elseif z(i)<0
code(i,1)=0;
end
end
四.结果分析
1.图1,图2的区别和特征
图1和图2分别以4HZ和32Hz的频率对函数进行采样,由于图2的采样频率更高,采集的点更多,更能反映原函数的特征。
2. 图3中不同量化等级的区别
图3是对以32Hz的抽样频率进行抽样后的信号的绝对值分别进行8级和2048级均匀量化而产生的函数以及原函数的正弦波波形,可以明显看出2048级的量化更精准,更能反映原函数的特征。
五.实验遇到的问题及解决方法
在该实验中我们主要学习了老师的编码,体会用matlab编程的思想与方法,初步掌握了matlab的应用,之后我与闫黄一起对原来的pcm编码进行了自己的编程,通过自己的变成对matlab有了更深的了解,感受比较深的是遇到matlab 编程的问题时,不仅需要自己的思考,而且也需要去与别人讨论,有时也需要向老师与同学咨询,这样才能更快掌握matlab
六.相关源程序
Even.m sample.m pcm.m