自适应滤波器 | 时域ALE算法

自适应滤波器

一、时域自适应线谱增强器
二、时域ALE算法



前言

Widrow 等人提出了自适应线谱增强器(Adaptive Line Enhancer,简记为 ALE)。自适应线谱增强器的功能一般是 分离信号和线谱增强。它包含有一个权系数调整模块,用以实现调节权系数矢量,该模块功能由调整算法来实现,不同的自适应算法具有不同的性能参数,可以根据所应用的条件选择适合的自适应算法。


自适应滤波+ALE算法

function [yn,W,en] = adaptiveFilter_ALE(xn,M,mu,tao,itr)
%自适应滤波器+LMS(Least Mean Squre)算法
%   xn   -->  带噪信号(行向量)
%   M    -->  滤波器阶数(标量)
%   mu   -->  收敛因子(标量)   要求大于0,小于xn的相关矩阵最大特征值的倒数
%   itr  -->  迭代次数(标量)
%   yn   <--  滤波信号(行向量)
%   W    <--  权值矢量(列向量)
%   en   <--  误差(列向量)
% 参数个数必须为4个或5if nargin == 4                 % 4个时递归迭代的次数为xn的长度/nargin函数输入参数数目 
    itr = length(xn);          %最大数组维度的长度
elseif nargin == 5             % 5个时满足M<itr<length(xn)
    if itr>length(xn) || itr<M %||error('迭代次数过大或过小!');
    end
else
    error('请检查输入参数的个数!');
end

% 初始化参数
en = zeros(itr,1);             % 误差序列,en(k)表示第k次迭代时预期输出与实际输入的误差/zero创建全零数组
W  = zeros(itr,M);             % 每一行代表一个加权参量,每一列代表-次迭代,初始为0
yn = xn';

% 迭代计算
for k = (M+tao):length(xn)                  % 第k次迭代
    x = xn(k-tao:-1:k-M-tao+1)';            % 滤波器M个抽头的输入
    yn(k) = W(k-1,:) * x;                % 滤波器的输出
    en(k) = xn(k)-yn(k);                  % 第k次迭代的误差
    if(abs(mean(en(k-10:k)))<1e-6)
        W(k,:) = W(k-1,:);                  % 滤波器权值计算的迭代式
    else
        W(k,:) = W(k-1,:) + 2*mu*en(k)*x';   % 滤波器权值计算的迭代式
    end
end
yn = yn';
end

总结

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ruoyo176

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值