📄 lat5.m
字号:
function eo = lat5(input,d,lambda,eta,order);
% 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);
for i=1:N
bo = b;
pbo = pb;
gamma = ones(M,1); % added only to obtain the a priori error
xib = lambda*xib + abs(input(i))^2;
xi = lambda*xi + abs(d(i))^2;
b(1) = input(i)/sqrt(xib);
f(1) = b(1);
r(1) = d(i)/sqrt(xi);
sigma(1) = sqrt(xi);
for m=1:M
pb(m) = sqrt(1-abs(b(m))^2);
pf(m) = sqrt(1-abs(f(m))^2);
p(m) = sqrt(1-abs(r(m))^2);
kappaa(m) = kappaa(m)*pbo(m)*pf(m) + f(m)*(bo(m))';
kappac(m) = kappac(m)*pb(m)*p(m) + (b(m))'*r(m);
pa(m) = sqrt(1-abs(kappaa(m))^2);
pc(m) = sqrt(1-abs(kappac(m))^2);
r(m+1) = (1/(pb(m)*pc(m)))*(r(m)-kappac(m)*b(m));
b(m+1) = (1/(pf(m)*pa(m)))*(bo(m)-(kappaa(m))'*f(m));
f(m+1) = (1/(pbo(m)*pa(m)))*(f(m)-kappaa(m)*bo(m));
sigma(m+1) = sigma(m)*pc(m)*pb(m);
ro(m+1) = sigma(m+1)*r(m+1); % a posteriori error
gamma(m+1) = gamma(m)*pb(m)*pb(m); % necessary only to recover a priori error
end
eo(i) = ro(M+1)/gamma(M+1); % a priori error
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -