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(code,sb); % 加上符号位保存起来
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
没有合适的资源?快使用搜索试试~ 我知道了~
IMA-ADPCM(16bit)语音压缩的matlab仿真
共5个文件
m:4个
mat:1个
5星 · 超过95%的资源 需积分: 50 73 下载量 141 浏览量
2017-11-08
18:54:44
上传
评论 4
收藏 25KB ZIP 举报
温馨提示
IMA-ADPCM(16bit)语音压缩的matlab仿真:此代码可以方便程序员用matlab看一下波形数据经过IMA-ADPCM压缩又解压缩后,波形有什么变化。
资源推荐
资源详情
资源评论
收起资源包目录
adpcm.zip (5个子文件)
adpcm
main_adpcm.m 367B
fun_adpcm.m 1KB
IncludePara.m 603B
EXDAT.mat 22KB
fun_Re_adpcm.m 1KB
共 5 条
- 1
资源评论
- Mono20182019-06-03自己用的音源,需要把输入值乘以32767,然后输出的压缩比为4:1,挺好用的
彩yx舟
- 粉丝: 3
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功