📄 lat5q.m
字号:
function eo = lat5q(input,d,lambda,eta,order,B);
% Quantized normalized RLS lattice filter
% returns the a-priori output error sequence
N = max(size(input));
M = order;
% Initialization of M-order vectors
b = zeros(M,1);
kappaa = zeros(M,1);
kappac = zeros(M,1);
xi = (1/eta*lambda*lambda); % scalar xi_0(-1)
xib = (1/eta*lambda*lambda); % scalar xi_0^b(-1)
pb = ones(M,1);
xi = quantize(xi,B);
xib = quantize(xib,B);
for i=1:N
bo = b;
pbo = pb;
gamma = ones(M,1); % added only to obtain the a priori error
xib = quantize(quantize(lambda*xib,B) + quantize(abs(input(i))^2,B),B);
xi = quantize(quantize(lambda*xi,B) + quantize(abs(d(i))^2,B),B);
b(1) = quantize(input(i)/sqrt(xib),B);
f(1) = b(1);
r(1) = quantize(d(i)/sqrt(xi),B);
sigma(1) = quantize(sqrt(xi),B);
for m=1:M
pb(m) = quantize(sqrt(1-abs(b(m))^2),B);
pf(m) = quantize(sqrt(1-abs(f(m))^2),B);
p(m) = quantize(sqrt(1-abs(r(m))^2),B);
kappaa(m) = quantize(quantize(kappaa(m)*pbo(m)*pf(m),B) + quantize(f(m)*(bo(m))',B),B);
kappac(m) = quantize(quantize(kappac(m)*pb(m)*p(m),B) + quantize((b(m))'*r(m),B),B);
pa(m) = quantize(sqrt(1-abs(kappaa(m))^2),B);
pc(m) = quantize(sqrt(1-abs(kappac(m))^2),B);
r(m+1) = quantize((1/(pb(m)*pc(m))*quantize(r(m)-quantize(kappac(m)*b(m),B),B)),B);
b(m+1) = quantize((1/(pf(m)*pa(m))*quantize(bo(m)-quantize((kappaa(m))'*f(m),B),B)),B);
f(m+1) = quantize((1/(pbo(m)*pa(m))*quantize(f(m)-quantize(kappaa(m)*bo(m),B),B)),B);
sigma(m+1) = quantize(sigma(m)*pc(m)*pb(m),B);
ro(m+1) = quantize(sigma(m+1)*r(m+1),B); % a posteriori error
gamma(m+1) = quantize(gamma(m)*pb(m)*pb(m),B); % necessary only to recover a priori error
end
eo(i) = quantize(ro(M+1)/gamma(M+1),B); % a priori error
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -