adaptivefilter.m

来自「学习了自适应滤波器」· M 代码 · 共 39 行

M
39
字号
% RLS Adaptive Noise cancellation
function [result] = AdaptiveFilter(d, u, N);

M=length(d);

%-----Filter Parameters-----;
delta = 1; 
lamda = 0.99; 

%-----Initialize-----
y=zeros(M,1);
w = zeros(N,1);
u1 = zeros(N,1);
P = eye(N)/delta;


i = 1;

while i<M
    if i<N
        u1(N:-1:N-i+1)=u(i:-1:1);
    else 
        u1(N:-1:1) = u(i:-1:i-N+1);
    end
    y(i) = w'*u1;
    %-----RLS algorithm-----
    %k = (P*u1)/(lamda + u1'*P*u1);       
    %k = P*u1;
    %-----LMS algorithm-----
    k = 0.05*u1;
    E = d(i) - w'*u1;
    w = w + k*E;
    
    %P = (P/lamda) - (k*u1'*P/lamda);
    %P = (P/lamda) - (k*u1'*P/(lamda*(lamda + u1'*P*u1)));
    i = i + 1;
end

result=y;

⌨️ 快捷键说明

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