遞歸最小二乘自適應濾波器matlab代碼

遞歸最小二乘自適應濾波器matlab代碼如下:

% % 函數調用方法 [en,w]=RLS_filter(輸入噪聲,輸入信號) 

%源代碼

function [e,w]=RLS_filter(u,d)
    M=2; %濾波器長度
    w=zeros(M,1);
    delta = 1e-7;
    lambda = 0.99; %遺忘因子
    P=eye(M)/delta; % eye(M)返回M*M單位矩陣
    u=u(:); % 噪聲
    d=d(:); % 信號
    % input signal length
    N=length(u);
    % error vector
    e=d.';
    % Step2: Loop, RLS
    for n=M:N
        uvec=u(n:-1:n-M+1);
        e(n)=d(n)-w'*uvec;  % 輸出信號,第一次計算取值 w=[0;0]
        k=lambda^(-1)*P*uvec/(1+lambda^(-1)*uvec'*P*uvec);
        P=lambda^(-1)*P-lambda^(-1)*k*uvec'*P;
        w=w+k*conj(e(n)); % conj(e(n))返回 e 中每個元素的複共軛
    end
end

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章