赞
踩
一、时域自适应线谱增强器
二、时域ALE算法
Widrow 等人提出了自适应线谱增强器(Adaptive Line Enhancer,简记为 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个或5个
if 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。