递归最小二乘自适应滤波器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

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值