资源简介
IMA-ADPCM(16bit)语音压缩的matlab仿真:此代码可以方便程序员用matlab看一下波形数据经过IMA-ADPCM压缩又解压缩后,波形有什么变化。
代码片段和文件信息
function [ yout ] = fun_adpcm( xin )
% adpcm压缩仿真-压缩过程
IncludePara;
index = 0;
prev_sample = 0;
Len = length(xin);
yout = zeros(size(xin));
for i = 1:Len
cur_sample=xin(i); % 得到当前的采样数据
delta=cur_sample-prev_sample; % 计算出和上一个的增量
if (delta<0)
delta = -delta;
sb=8;
else
sb=0; % sb 保存的是符号位
end
code =fix( 4*delta / step_table(index+1));%根据 steptable[] 得到一个 0~7 的值
if (code>7)
code=7; % 它描述了声音强度的变化量
end
yout(i) = bitor(codesb); % 加上符号位保存起来
Edelta= fix((step_table(index+1)*code)/4) + fix(step_table(index+1)/8);
if (sb==8)
Edelta = -Edelta;
end
prev_sample = prev_sample + Edelta;
index = index + index_adjust(code+1); % 根据声音强度调整下次取 steptable 的序号
if (index<0)
index=0; % 便于下次得到更精确的变化量的描述
else
if (index>88)
index=88;
end
end
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 22948 2017-11-08 18:31 adpcm\EXDAT.mat
文件 603 2017-11-08 16:41 adpcm\IncludePara.m
文件 1061 2017-11-08 16:38 adpcm\fun_Re_adpcm.m
文件 1147 2017-11-08 18:12 adpcm\fun_adpcm.m
文件 367 2017-11-08 18:46 adpcm\main_adpcm.m
目录 0 2017-11-08 18:47 adpcm\
- 上一篇:施密特正交化
- 下一篇:MATLAB高阶谱分析信号处理工具箱
评论
共有 条评论