文章目录
基于MATLAB的PCM的编码译码仿真一、实验目的二、实验内容三、实验原理四、实验代码五、实验结果
更新:PCM编码过程PCM译码过程PCM编码和译码的完整实现
总结
基于MATLAB的PCM的编码译码仿真
一、实验目的
1.熟悉PCM原理 2.掌握编写PCM程序的要点 3.掌握使用MATLAB调制仿真的要点
二、实验内容
(1)根据PCM (脉冲编码调制)原理,设计源程序代码。 (2)通过MATLAB软件仿真给定模拟信号编码后的波形。 (3)对比原始信号波形和译码后的波形。
三、实验原理
1.脉冲编码调制 脉冲编码调制在通信系统中是一种对模拟信 号数字化的取样技术,将模拟信号变换为数字信号的编码方式。PCM的实现主要包括三个步骤完成:抽样、量化、编码。分别为时间上离散、幅度上离散及量化信号的二进制表示。根据CCITT的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A律和μ律方式,本设计采用了A律方式。由于A律压缩实现复杂,常使用13折线法编码,采用非均匀量化PCM编码 2.抽样 在一系列离散点上,对信号捕取样值称为抽样。
四、实验代码
T=0.002;
t=-0.1:T:0.1;
xt=cos(2*pi*30*t)+sin(2*pi*65*t);
fs=500;
sdt=1/fs;
t1=-0.1:sdt:0.1;
st=cos(2*pi*30*t)+sin(2*pi*65*t);
figure(1);
subplot(3,1,1);
plot(t,xt);title('原始信号');
grid on
subplot(3,1,2);
stem(t1,st,'.');
title('量化信号');
title('抽样信号');
grid on
n=length(st);
M=max(st);
C=(st/M)*2048;
code=zeros(1,8);
for i=1:n
if C(i)>=0
code(i,1)=1;
else
code(i,1)=0;
end
if abs(C(i))>=0&&abs(C(i)) |