ANC 与 adaptive filter

前言 NC/NS/NR都是降噪

cancellation、suppression和reduction都是降低noise的影响,ANC的概念从adaptive noise cancellation变成active noise cancellation,本质上却也都离不开adaptive filter的理论。引用【3】文的框图,典型的LMS自适应滤波如下:
在这里插入图片描述
图中上半部为典型的anc自适应降噪模型,第二个叫做ALE自适应线性增强器。两者最大的区别在于源是一个还是两个(一个语音Primary,一个噪声Reference)。

经典时域自适应算法LMS vs RLS

LMS自适应

在这里插入图片描述
利用【7】中的原理图,假设有一串时间序列 x 1 ( n ) , x 2 ( n ) , . . . x M ( n ) x_1(n),x_2(n),...x_M(n) x1(n),x2(n),...xM(n),利用这串时间序列去逼近目标数(标量) d ( n ) d(n) d(n),通过权重序列 w i ( n ) w_i(n) wi(n)来调整输入序列的加成结果 y ( n ) y(n) y(n),得出 d ( n ) d(n) d(n) y ( n ) y(n) y(n)误差数 e ( n ) e(n) e(n) e ( n ) = d ( n ) − y ( n ) = d ( n ) − ∑ i = 1 m w i ∗ x i ( n ) e(n)=d(n)-y(n)=d(n)-\sum_{i=1}^mw_i*x_i(n) e(n)=d(n)y(n)=d(n)i=1mwixi(n)
上面的序列假设为列向量的话,而可以改写如下: e ( n ) = d ( n ) − y ( n ) = d ( n ) − W T X ( n ) = d ( n ) − X T ( n ) W e(n)=d(n)-y(n)=d(n)-\bold W^T\bold X(n)=d(n)-\bold X^T(n)\bold W e(n)=d(n)y(n)=d(n)WTX(n)=d(n)XT(n)W
上述误差的均方差: e 2 ( n ) = d 2 ( n ) − 2 d ( n ) X T ( n ) W + W T X ( n ) X T ( n ) W e^2(n)=d^2(n)-2d(n)\bold X^T(n)\bold W+\bold W^T\bold X(n)\bold X^T(n)\bold W e2(n)=d2(n)2d(n)XT(n)W+WTX(n)XT(n)W
定义自相关矩阵为 R x x = E [ X ( n ) X T ( n ) ] \bold R_{xx}=E[\bold X(n)\bold X^T(n)] Rxx=E[X(n)XT(n)]
互相关矩阵为 R x d = E [ d ( n ) X T ( n ) ] \bold R_{xd}=E[d(n)\bold X^T(n)] Rxd=E[d(n)XT(n)]
在此基础上我们定义均方差的数学期望
E [ e 2 ( n ) ] = E [ d 2 ( n ) ] − 2 E [ d ( n ) X T ( n ) ] W + W T E [ X ( n ) X T ( n ) ] W = E [ d 2 ( n ) ] − 2 R x d W + W T R x x W E[e^2(n)]=E[d^2(n)]-2E[d(n)\bold X^T(n)]\bold W+\bold W^TE[\bold X(n)\bold X^T(n)]\bold W\\=E[d^2(n)]-2\bold R_{xd}\bold W+\bold W^T\bold R_{xx}\bold W E[e2(n)]=E[d2(n)]2E[d(n)XT(n)]W+WTE[X(n)XT(n)]W=E[d2(n)]2RxdW+WTRxxW
上面公司已经将权重序列与输入和参考变量分离了,而这个是关于权重参数的二次方程,是一个高位空间曲面,有证明这个局面有最小值,剩下的就是老套路,利用梯度方法,求偏导: ▽ E [ e 2 ( n ) ] = [ ∂ E [ e 2 ( n ) ] ∂ w 1 , ∂ E [ e 2 ( n ) ] ∂ w 2 , . . . , ∂ E [ e 2 ( n ) ] ∂ w m ] T = − 2 R x d + 2 R x x W \bold \triangledown E[e^2(n)]=[ \frac{\partial E[e^2(n)]}{\partial w_1}, \frac{\partial E[e^2(n)]}{\partial w_2},..., \frac{\partial E[e^2(n)]}{\partial w_m}]^T\\=-2\bold R_{xd}+2\bold R_{xx}\bold W E[e2(n)]=[w1E[e2(n)],w2E[e2(n)],...,wmE[e2(n)]]T=2Rxd+2RxxW令梯度为零,可以求得最优权重值: W o p t = R x x − 1 R x d \bold W_{opt}=\bold R^{-1}_{xx}\bold R_{xd} Wopt=Rxx1Rxd
带入到误差函数,可以得出最优解下的最小均方差表达: E [ e 2 ( n ) ] m i n = E [ d 2 ( n ) ] − R x d T W o p t E[e^2(n)]_{min}=E[d^2(n)]-\bold R^T_{xd}\bold W_{opt} E[e2(n)]min=E[d2(n)]RxdTWopt
以上就是经典的时域LMS均方差表达。

基于梯度下降的快速迭代方法

神经网络已经让梯度下降不那么陌生,根据上述推理,只要将权重参数进行梯度下降(向负梯度飘逸),就能得到最优结果。假设当前迭代了 k k k次,那么下一次的变化趋势为 W k + 1 = W k − μ ▽ ( k ) \bold W_{k+1}=\bold W_k - \mu \bold \triangledown(k) Wk+1=Wkμ(k)但此梯度非彼梯度,我们只是用误差函数的权重梯度作为一个估计,那么就有了 ▽ ^ ( k ) = ▽ [ e 2 ( k ) ] = 2 e ( k ) ▽ [ e ( k ) ] \hat{ \bold \triangledown}(k)= \bold \triangledown[e^2(k)]=2e(k) \bold \triangledown[e(k)] ^(k)=[e2(k)]=2e(k)[e(k)]而关于权重的梯度误差计算相对比较简单 ▽ [ e ( k ) ] = ▽ [ e ( n ) − W T X ( n ) ] = − X ( n ) \bold \triangledown[e(k)]=\bold \triangledown[e(n)-\bold W^T\bold X(n)]\\=-\bold X(n) [e(k)]=[e(n)WTX(n)]=X(n)这就得出了梯度的估算公式 ▽ ^ ( k ) = − 2 e ( k ) X ( k ) \hat{ \bold \triangledown}(k)=-2e(k)X(k) ^(k)=2e(k)X(k)迭代公式为: W k + 1 = W k + 2 μ e ( k ) X ( k ) \bold W_{k+1}=\bold W_k +2 \mu e(k)X(k) Wk+1=Wk+2μe(k)X(k)注意 e ( k ) e(k) e(k)是标量,大写的序列都为变量。 μ \mu μ值的选择也比较复杂,不细究了。另外还有一种NLMS算法也是对 μ \mu μ的细调,大致的归一化公式【8】: η ( k ) = μ ϵ + ∣ ∣ x ( k ) ∣ ∣ 2 \eta(k)=\frac{\mu}{\epsilon+||x(k)||^2} η(k)=ϵ+x(k)2μ
下图是对单频正弦波信号的消除效果,误差信号其实是我们真正想要的结果,而预测信号是我们跟踪的单品干扰。
在这里插入图片描述

Recursive Least Squares

RLS即是递归最小二乘估计,其方法的迭代范式: W k + 1 = W k + R x x − 1 ( k ) e ( k ) X ( k ) \bold W_{k+1}=\bold W_k +\mathbb{R}^{-1}_{xx}(k) e(k)X(k) Wk+1=Wk+Rxx1(k)e(k)X(k)
这里的递归所指的就是最自相关逆矩阵的递归方法,推导过程省略,看结果【9】: R x x − 1 ( k ) = 1 μ ( R x x − 1 ( k − 1 ) − R x x − 1 ( k − 1 ) X ( k ) X t ( k ) R x x − 1 ( k − 1 ) μ + X t ( k ) R x x − 1 ( k − 1 ) X ( k ) ) \mathbb{R}^{-1}_{xx}(k)=\frac{1}{\mu}(\mathbb{R}^{-1}_{xx}(k-1)-\frac{\mathbb{R}^{-1}_{xx}(k-1)X(k)X^{t}(k)\mathbb{R}^{-1}_{xx}(k-1)}{\mu+X^{t}(k)\mathbb{R}^{-1}_{xx}(k-1)X(k)}) Rxx1(k)=μ1(Rxx1(k1)μ+Xt(k)Rxx1(k1)X(k)Rxx1(k1)X(k)Xt(k)Rxx1(k1))

ALE的例子

ALE的例子是但输入自适应滤波的一个例子,因为不相关的噪声进过延时后的相关性就消失了,所以自适应滤波器的参考输入变成了主输入的延时信号,利用lms方法增强了相关的信号【6】。在语音应用中,主输入减去这个信号,就得到噪声抑制的结果。下图是采用nlms作为ale的实例,中间的图是受到强烈tone音污染的语音信号,上图是经过自适应滤波后的声音信号,降噪结果还是明显的。不过包括滤波器抽头长度,收敛参数等调节还是需要摸索和总结的。
在这里插入图片描述

小结

我在学习aptfilter的时候最大的困惑一直是不知道权重加到哪一路,最后找到一张框图【10】来加深一下印象吧:
在这里插入图片描述
上图是时域处理,变化到频域来看,原始信号与噪声依旧保持着线性关系,那么残余噪声仍然可以利用统计噪声处理的方法来进一步的处理,可见aptfilter作为第一级噪声消除的节点是合适的。

参考文献

1. ANC主动降噪理论及Matlab代码实现
2. 主动降噪(Active Noise Control)
3.Noise Reduction Techniques and Algorithms For Speech Signal Processing
4.Acoustic Noise Reduction For Mobile Telephony
5.System for adaptively reducing noise in speech signals.
6.改进的自适应线谱增强方法(DALE方法)用于线谱检测研究
7.MATLAB在语音信号分析与合成中的应用, 宋知用
8.Normalized Least-mean-squares (NLMS)
9.Recursive Least Squares (RLS)
10.Adapttiive noiise Cancellllattiion, Aarti Singh

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值