• 大小: 25KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-11-19
  • 语言: Matlab
  • 标签: ADPCM  

资源简介

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\

评论

共有 条评论