📄 lat4.m
字号:
function eo = lat4(input,d,lambda,eta,order);
% A posteriori-based error feedback RLS lattice filter
% returns the a-priori output error sequence
N = max(size(input));
M = order;
% Initialization of M-order vectors
gamma = ones(M+1,1);
b = zeros(M,1);
kappaf = zeros(M,1);
kappab = zeros(M,1);
kappa = zeros(M,1);
xif = (1/eta*lambda*lambda)*ones(M,1);
xib = (1/eta*lambda*lambda)*ones(M,1);
for m=0:M-1
xib(m+1) = xib(m+1)/lambda^m;
end
xibo = xib;
for i=1:N
gammao = gamma;
bo = b;
xiboo = xibo;
xibo = xib;
xifo = xif;
gamma = ones(M+1,1);
b(1) = input(i);
f(1) = input(i);
r(1) = d(i);
for m=1:M
xif(m) = lambda*xif(m) + (abs(f(m)))^2/gammao(m);
xib(m) = lambda*xib(m) + (abs(b(m)))^2/gamma(m);
gamma(m+1) = gamma(m) - abs(b(m))^2/xib(m);
kappa(m) = (gamma(m+1)/gamma(m))*(kappa(m) + ((b(m))'*r(m))/(lambda*gamma(m)*xibo(m)));
kappaf(m) = (gammao(m+1)/gammao(m))*(kappaf(m) + ((bo(m))'*f(m))/(lambda*gammao(m)*xiboo(m)));
kappab(m) = (gamma(m+1)/gammao(m))*(kappab(m) + ((f(m))'*bo(m))/(lambda*gammao(m)*xifo(m)));
b(m+1) = bo(m) - kappab(m)*f(m);
f(m+1) = f(m) - kappaf(m)*bo(m);
r(m+1) = r(m) - kappa(m)*b(m);
end
eo(i) = r(M+1)/gamma(M+1);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -