⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lat5.m

📁 This is mat lab code for adaptive lattice filters.
💻 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 + -