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

📄 lat6.m

📁 This is mat lab code for adaptive lattice filters.
💻 M
字号:

function eo = lat6(input,d,lambda,eta,order);

% QR-array based 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);
qf = zeros(M,1);
qb = zeros(M,1);
q = 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
      
xif = sqrt(xif);
xib = sqrt(xib);
xibo = xib;
   
for i=1:N
  bo = b;
  gamma = ones(M+1,1); % square-root of gamma denoted by gamma still
  b(1) = input(i);
  f(1) = input(i);
  r(1) = d(i);
     
  for m=1:M
     A1 = [lambda^(1/2)*xibo(m) bo(m); lambda^(1/2)*(qf(m))' (f(m))'];
     [c s] = givens(A1(1,1),A1(1,2));
     B1 = A1*[c -s; conj(s) c];
     qf(m) = (B1(2,1))';
     f(m+1) = (B1(2,2))';
     xib(m) = B1(1,1);
     xibo(m) = xib(m);
         
     A2 = [lambda^(1/2)*xib(m) b(m); lambda^(1/2)*(q(m))' (r(m))'; 0 gamma(m)];
     [c s] = givens(A2(1,1),A2(1,2));
     B2 = A2*[c -s; conj(s) c];
     xib(m) = B2(1,1);
     q(m) = (B2(2,1))';
     r(m+1) = (B2(2,2))';
     gamma(m+1) = B2(3,2); % square-root of conversion factor
          
         
     A3 = [lambda^(1/2)*xif(m) f(m); lambda^(1/2)*(qb(m))' (bo(m))'];
     [c s] = givens(A3(1,1),A3(1,2));
     B3 = A3*[c -s; conj(s) c];
     xif(m) = B3(1,1);
     qb(m) = (B3(2,1))';
     b(m+1) = (B3(2,2))';
         
     ro(m+1) = r(m+1)*gamma(m+1);
  end
  eo(i) = r(M+1)/gamma(M+1);
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -