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