Bootstrap

基于 MATLAB 的 PCM 编码解码实现

基于 MATLAB 的 PCM 编码解码实现

关于 PCM 的原理在此不过多解释,代码使用的是 A 律 13 折线法。

抽样信号

抽样信号的 MATLAB 代码如下:

clear;
clc;
T=0.0005;
t=-0.01:T:0.01;
fs=2000;
sdt=1/fs;
t1=-0.01:sdt:0.01;
xt=cos(2*pi*30*t)+sin(2*pi*120*t);
st=cos(2*pi*30*t1)+sin(2*pi*120*t1);
max = max(abs(st));

% 原始信号
figure;
subplot(2,1,1);plot(t,xt);title('原始信号');grid on;
subplot(2,1,2);stem(t1,st,'.');title('抽样信号');grid on;

绘制出来的图像如下图:

抽样信号图片

选择这个抽样频率是因为绘制出来的图像好看一点。可以看到上述代码中有一个 max 变量,这个后面要用到。

PCM 编码

分别得到符号位,段位码,段内码即可。代码如下:

function code=PCMcod
;