?? adpcm_exe.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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -