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

📄 lat4q.m

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

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

% Quantized 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
   
      
xif = quantize_v(xif,B);
xib = quantize_v(xib,B);
    
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) = quantize(quantize(lambda*xif(m),B) + quantize((abs(f(m)))^2/gammao(m),B),B);
    xib(m) = quantize(quantize(lambda*xib(m),B) + quantize((abs(b(m)))^2/gamma(m),B),B);

    gamma(m+1) = quantize(gamma(m) - quantize(abs(b(m))^2/xib(m),B),B);

    a1 = quantize(kappa(m) + quantize(((b(m))'*r(m))/(lambda*gamma(m)*xibo(m)),B),B);
    kappa(m) = quantize((gamma(m+1)/gamma(m))*a1,B);

    a1 = quantize(kappaf(m) + quantize(((bo(m))'*f(m))/(lambda*gammao(m)*xiboo(m)),B),B);
    kappaf(m) = quantize((gammao(m+1)/gammao(m))*a1,B);
    
    a1 = quantize(kappab(m) + quantize(((f(m))'*bo(m))/(lambda*gammao(m)*xifo(m)),B),B);
    kappab(m) = quantize((gamma(m+1)/gammao(m))*a1,B);
        
    b(m+1) = quantize(bo(m) - quantize(kappab(m)*f(m),B),B);
    f(m+1) = quantize(f(m) - quantize(kappaf(m)*bo(m),B),B);
    r(m+1) = quantize(r(m) - quantize(kappa(m)*b(m),B),B);
  end
  eo(i) = quantize(r(M+1)/gamma(M+1),B);
 end

⌨️ 快捷键说明

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