主动降噪学习——之一(不考虑次级路线)

主动降噪的核心思想就是信号经过滤波器之后能产生信号对消,原理说起来简单,实现起来及其困难,下面对主动降噪ANC的原理进行阐述。
在这里插入图片描述
此处最为关键的是数字滤波器的设计,数字滤波器与输入信号时域上的卷积就是频域上相乘,而滤波器一般采用有限冲激响应滤波器,其对应的的系数(抽头):
在这里插入图片描述
滤波器的输入信号为:
在这里插入图片描述
在第n时刻FIR滤波器的输出y(n)可表示为:

在这里插入图片描述L为滤波器的阶数或长度,对上式进行Z变换:
在这里插入图片描述
那么,此时系统中的误差信号为:
在这里插入图片描述
自适应滤波器的作用就是不断调整自适应滤波器系数向量w(n)使误差信号 达到某种要求(如均方值达到最小),在这个过程中,滤波器系数w(n)是一个时变量,由自适应算法来实时更新。
其对应MATLAB的实现为:

function [yn,W,en]=FXLMS(xn,dn,M,mu,itr)
% LMS(Least Mean Squre)算法,自适应滤波器;
% 输入参数:
%     xn   输入的信号序列      (列向量)
%     dn   所期望的响应序列    (列向量)   该值一般为0;
%     M    滤波器的阶数        (标量)    滤波器的阶数,就是指过滤谐波的次数,其阶数越高,滤波效果就越好
%     mu   收敛因子(步长)      (标量)    要求大于0,小于xn的相关矩阵最大特征值的倒数 ;
%          控制着收敛步长,决定迭代的稳定性和收敛性;0 < mu < 1/rho_max(laimde)
%     itr  迭代次数            (标量)    默认为xn的长度,M<itr<length(xn)
% 输出参数:
%     W    滤波器的权值矩阵     (矩阵)
%          大小为M : itr,
%     en   误差序列(itr : 1)    (列向量)  
%     yn   实际输出序列         (列向量)

% 参数个数必须为4个或5个
if nargin == 4                 % 4个时,递归迭代的次数为xn的长度 
    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次迭代时预期输出与实际输入的误差
W  = zeros(M,itr);             % 每一行代表一个加权参量,每一列代表-次迭代,初始为0

% 迭代计算
for k = M:itr                  % 第k次迭代,保证输入延迟后的信号有效,只有iter-M次迭代;
    x = xn(k:-1:k-M+1);        % 将输入信号延迟,使得滤波器的每个抽头都有输入
    y = W(:,k-1).' * x;        % 滤波器的输出
    en(k) = dn(k) - y ;        % 第k次迭代的误差 
    % 滤波器权值计算的迭代式
    W(:,k) =0.9* W(:,k-1) - 2*mu*en(k)*x ; % 滤波器系数更新向量,0.9的系数可以防止泄露;
end

% 求最优时滤波器的输出序列
yn = inf * ones(size(xn));
for k = M:length(xn)
    x = xn(k:-1:k-M+1);
    yn(k) = W(:,end).'* x;
end

当然,由于该算法收敛条件、收敛速度和均方误差的影响,以及未考虑次级通道,所以该算法并不能直接用于主动噪声控制系统中。下一步将FXLMS算法的原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

heavy_truck

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

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

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

打赏作者

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

抵扣说明:

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

余额充值