Digital Signal Processing Reference
In-Depth Information
%
if tr ¼¼ 1
a ¼ zeros(1,2); b ¼ zeros(1,6);
tr ¼ 0;
td ¼ 0; % Set for the time being
else
% Update predictor poles
% Update a2 first
a2p
(127.0/128.0)*a(2);
if abs(a(1)) <
¼
¼
0.5
fa1
¼
4.0*a(1);
else
fa1
¼
2.0*sgn(a(1));
end
a2p ¼ a2p þ (sign(pk1)*sgn(pk(1))-fa1*sign(pk1)*sgn(pk(2)))/128.0;
if abs(a2p) > 0.75
a2p ¼ 0.75*sgn(a2p);
end
a(2) ¼ a2p;
%
% Update a1
a1p ¼ (255.0/256.0)*a(1);
a1p ¼ a1p þ 3.0*sign(pk1)*sgn(pk(2))/256.0;
if abs(a1p) > 15.0/16.0-a2p
a1p ¼ 15.0/16.0 -a2p;
end
a(1) ¼ a1p;
%
% Update b coefficients
%
for i ¼ 1:6
b(i)
¼
(255.0/256.0)*b(i)
þ
sign(dqq)*sgn(dq(i))/128.0; % see Program 11.17 for sgn().
end
if a2p < -0.7185
td
¼
1;
else
td
¼
0;
end
if a2p < -0.7185 & abs(dq(6)) > 24.0*2^(yl)
tr ¼ 1;
else
tr ¼ 0;
end
for i ¼ 6:-1:2
dq(i) ¼ dq(i-1);
end
dq(1) ¼ dqq; pk(2) ¼ pk(1); pk(1) ¼ pk1; sr(2) ¼ sr(1); sr(1) ¼ srr;
%
Search WWH ::




Custom Search