轉載_Feedforward ANC 主動降噪原理

概述

  ANC指Active Noise Control,主動降噪。基本原理是降噪系統產生與外界噪音相等的反向聲波,將噪音中和。圖1是feedforward式主動降噪耳機的示意圖。ANC芯片放置在耳機內。Ref mic(reference microphone)在耳機耳罩上,採集環境噪音。Error mic(Error Microphone)在耳機內,採集降噪處理後的殘差噪聲。Speaker播放ANC處理後的anti-noise。 


picture 
圖1 

 

原理

 


picture 
圖2 


  圖2是ANC系統的原理圖,一共三層,用虛線分隔。最上一層primary path是從ref mic到error mic的聲學通道,響應函數用P(z)P(z)表示;中間一層是模擬通道,其中secondary path是adaptive filter輸出到返回殘差的通路,包括DAC、reconstruction filter、power amplifier、speaker播放、再採集、pre-amplifier、anti-aliasing filter、ADC;最下一層是數字通路,其中adaptive filter不斷調整濾波器權係數來削減殘差,直到收斂。最常用的方案是用FIR濾波器結合LMS算法來實現adaptive filter。簡化圖2,得到圖3。

 

 


picture 
圖3 

 

  先簡要說幾句adaptive filter和LMS(Least mean square)算法的原理,再說圖3。如圖4,給定輸入xx和desired output dd,adaptive filter每次迭代會更新系數,使其輸出yy與dd之差越來越小,直到殘差足夠接近0且收斂。LMS是adaptive filter的一種更新算法。LMS的目標函數是瞬時誤差的平方e2(n)=(d(n)−y(n))2e2(n)=(d(n)−y(n))2,爲了minimize目標函數,對其應用梯度下降就得到算法的更新公式。(這種利用gradient descent來最小化某個objective,從而得到待求參數的更新公式的算法思想非常常見,比如linear regression。)採用FIR濾波器的LMS算法的更新公式爲:w(n+1)=w(n)+μe(n)x(n)w(n+1)=w(n)+μe(n)x(n) ,其中μμ爲step size。如果隨着迭代進行調整μμ的大小,就是變步長的LMS算法。

 


picture 
圖4 

 

  再來說圖3。這裏adaptive filter輸出後還要經過S(z)S(z)纔去和desire output比較,S(z)S(z)會引起instability,用文獻的話說,“the error signal is not correctly ‘aligned’ in time with the reference signal”,破壞了LMS的收斂性。(這裏還沒弄懂什麼意思T__T)一種有效的方法是FXLMS(Filtered-X LMS),也就讓x(n)經過Sˆ(z)S^(z)再輸入給LMS 模塊, Sˆ(z)S^(z)是S(z)S(z)的估計。FXLMS的objective:

e2(n)=(d(n)−s(n)∗[wT(n)x(n)])2,e2(n)=(d(n)−s(n)∗[wT(n)x(n)])2,


所以gradient=−2e(n)s(n)∗x(n)−2e(n)s(n)∗x(n),其中s(n)s(n)未知,用其estimate近似,所以FXLMS的更新公式是

w(n+1)=w(n)+μe(n)x′(n),w(n+1)=w(n)+μe(n)x′(n),

其中x′(n)=sˆ(n)∗x(n)x′(n)=s^(n)∗x(n) 。

 

  當adaptive filter收斂時,E(z)=X(z)P(z)−X(z)W(z)S(z)≈0E(z)=X(z)P(z)−X(z)W(z)S(z)≈0,因此W(z)≈P(z)/S(z)W(z)≈P(z)/S(z)。也就是說,自適應濾波器的權係數是由耳機的primary path和secondary path決定的。耳機的primary path和secondary path相對穩定,所以adaptive filter的權係數也相對穩定。因此爲實現簡單,某些廠家的ANC耳機的權係數在出廠時就確定了。當然這種ANC耳機的聽感體驗明顯不及具有真正自適應意義的ANC耳機,因爲在實際情況下,外部噪聲相對耳機的方向、不同溫度等因素會對耳機的通道響應有影響。

Matlab驗證

  寫Matlab代碼,用變步長LMS的adaptive filter,得仿真結果如圖5。在0到2KHz範圍內,利用feedforward ANC消高斯白噪,噪聲衰減平均30dB+。Matlab庫裏的FXLMS是定步長的,效果要差一些。

 


picture 
圖5 

 

Q&A

  遇到的困惑寫出來分享一下。 
1. ANC爲什麼只針對2kHz以下的低頻噪音? 
  一方面,耳機的物理隔音方式(被動降噪)可以有效阻擋高頻噪音,沒必要用ANC降高頻噪聲。另一方面,低頻噪聲波長較長,可以承受一定的相位延遲,而高頻噪聲波長短,對相位偏差敏感,因此ANC消高頻噪聲並不理想。 
2. 當electronic delay比primary delay大時,算法性能大大下降如何理解? 
  P(z)延時小,S(z)延時大,比如P(z)=z-1, S(z)=z-2,只有當W(z)=z才能滿足要求,非因果,unreachable。 
3. Feedforward ANC、narrow-band feedforward ANC、feedback ANC有什麼區別? 
  Feedforwad結構有一個ref mic和一個error mic,分別採集外部噪音和內部殘差信號。feedback結構只有一個error mic,由error mic和adaptive filter output生成reference signal。 
  Broad-band feedforward就是上面所述結構,而narrow-band結構中,noise source會產生某個signal觸發signal generator,signal generator再生成reference signal送給adaptive filter。只適用於消除periodic noise。 
  Feedback ANC由於只有error mic,用error mic來恢復feedforward結構中ref mic採集的信號,通路不滿足因果約束,因此只消除predictable noise components,即窄帶週期性噪聲。需要注意的是,feedforward如果不滿足因果約束,即electronic delay比主通道acoustic delay長的話,也只能消除窄帶週期性噪聲。 
  另外還有一種Hybrid ANC的結構,同時包含feedforward和feedback結構,主要的優點是可以節省自適應濾波器的階數。

Reference

  主要參照[1],非常詳細的一篇tutorial review,書[2]詳細推導和說明了[1]中的細節。圖1截自jabra官網,圖2和圖3來自[3],圖4來自Wikipedia。

[1]: Kuo S M, Morgan D R. Active noise control: a tutorial review[J]. Proceedings of the IEEE, 1999, 87(6):943-973. 
[2]: Kuo S M, Morgan D. Active Noise Control Systems: Algorithms and DSP Implementations[M]. John Wiley & Sons, Inc. 1996. 
[3]: Kajikawa Y, Gan W S, Kuo S M. Recent advances on active noise control: open issues and innovative applications[J]. Apsipa Transactions on Signal & Information Processing, 2012, 1(2):e3.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章