⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adpcm_exe.m

📁 Adaptive Difference PCM code in matlab
💻 M
字号:
function ADPCM_exe
s= wavread('D:\切苞2\钢萍固叼绢漂碍\project_files\sample2_10k.wav');
lplen = 20;
bitsize = input('input the bitzise 4 or 8 or 16 =    ');

slen = length(s);
d(1) = s(1) ; 

[b0, b, bb] = deci_to_bin(d(1), bitsize);
[Q(1)] = bin_to_deci(b0,b);
B = [b0,b];

st(1) = Q(1);

for i=2:slen
    if i<=lplen
        d(i) = s(i) - st(i-1);
        
        [b0, b, bb] = deci_to_bin(d(i), bitsize);
        [Q(i)] = bin_to_deci(b0,b);
         B = [b0,b];
        
        st(i) = st(i-1) + Q(i);
    else
        m=0;
        [a,G] = lpc(s(i-lplen:i-1),lplen);
        a = a*G;
        m = 1:lplen;
        j = 2:lplen + 1;
        sth = sum(a(j).*st(i-m));
        ai(i,:) = a;
        d(i) = s(i) - sth;
        
        [b0, b, bb] = deci_to_bin(d(i), bitsize);
        [Q(i)] = bin_to_deci(b0,b);
        B = [b0,b];
        
        st(i) = sth + Q(i);
    end
end
b=b';
b=b(:)';

[jj, size_ai] = size(ai);
slen2 = length(b);
k = 0 ;
for l = 1: bitsize:slen
      k = k+1;
      mask = j : j+bitsize-1;
      bb = b(mask);
      b0 = bb(1);
      b = bb(2:bitsize);
      Q(l) = bin_to_deci(b0,b);
end
st = cumsum(Q(1:size_ai-1));
slen3 = length(Q);

h = 1:size_ai-1;
t = 2:size_ai;
for r = size_ai:slen
    sth = sum(ai(r,t).*st(r-h));
    st(r) = Q(r) + sth;
end






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -