概述
ANC指Active Noise Control,主動降噪;驹硎墙翟胂到y(tǒng)產(chǎn)生與外界噪音相等的反向聲波,將噪音中和。圖1是feedforward式主動降噪耳機的示意圖。ANC芯片放置在耳機內(nèi)。Ref mic(reference microphone)在耳機耳罩上,采集環(huán)境噪音。Error mic(Error Microphone)在耳機內(nèi),采集降噪處理后的殘差噪聲。Speaker播放ANC處理后的anti-noise。
圖1
原理
圖2
圖2是ANC系統(tǒng)的原理圖,一共三層,用虛線分隔。最上一層primary path是從ref mic到error mic的聲學(xué)通道,響應(yīng)函數(shù)用P(z) 表示;中間一層是模擬通道,其中secondary path是adaptive filter輸出到返回殘差的通路,包括DAC、reconstruction filter、power amplifier、speaker播放、再采集、pre-amplifier、anti-aliasing filter、ADC;最下一層是數(shù)字通路,其中adaptive filter不斷調(diào)整濾波器權(quán)系數(shù)來削減殘差,直到收斂。最常用的方案是用FIR濾波器結(jié)合LMS算法來實現(xiàn)adaptive filter。簡化圖2,得到圖3。
圖3
先簡要說幾句adaptive filter和LMS(Least mean square)算法的原理,再說圖3。如圖4,給定輸入x 和desired output d ,adaptive filter每次迭代會更新系數(shù),使其輸出y 與d 之差越來越小,直到殘差足夠接近0且收斂。LMS是adaptive filter的一種更新算法。LMS的目標(biāo)函數(shù)是瞬時誤差的平方e 2 (n)=(d(n)−y(n)) 2 ,為了minimize目標(biāo)函數(shù),對其應(yīng)用梯度下降就得到算法的更新公式。(這種利用gradient descent來最小化某個objective,從而得到待求參數(shù)的更新公式的算法思想非常常見,比如linear regression。)采用FIR濾波器的LMS算法的更新公式為:w(n+1)=w(n)+μe(n)x(n) ,其中μ 為step size。如果隨著迭代進行調(diào)整μ 的大小,就是變步長的LMS算法。
圖4
再來說圖3。這里adaptive filter輸出后還要經(jīng)過S(z) 才去和desire output比較,S(z) 會引起instability,用文獻的話說,“the error signal is not correctly ‘a(chǎn)ligned’ in time with the reference signal”,破壞了LMS的收斂性。(這里還沒弄懂什么意思T__T)一種有效的方法是FXLMS(Filtered-X LMS),也就讓x(n)經(jīng)過S ˆ (z) 再輸入給LMS 模塊, S ˆ (z) 是S(z) 的估計。FXLMS的objective:
e 2 (n)=(d(n)−s(n)∗[w T (n)x(n)]) 2 ,
所以gradient=−2e(n)s(n)∗x(n) ,其中s(n) 未知,用其estimate近似,所以FXLMS的更新公式是
w(n+1)=(w(n)+μe(n)x ′ (n)) 2 ,
其中x ′ (n)=s ˆ (n)∗x(n) 。
當(dāng)adaptive filter收斂時,E(z)=X(z)P(z)−X(z)W(z)S(z)≈0 ,因此W(z)≈P(z)/S(z) 。也就是說,自適應(yīng)濾波器的權(quán)系數(shù)是由耳機的primary path和secondary path決定的。耳機的primary path和secondary path相對穩(wěn)定,所以adaptive filter的權(quán)系數(shù)也相對穩(wěn)定。因此為實現(xiàn)簡單,某些廠家的ANC耳機的權(quán)系數(shù)在出廠時就確定了。當(dāng)然這種ANC耳機的聽感體驗明顯不及具有真正自適應(yīng)意義的ANC耳機,因為在實際情況下,外部噪聲相對耳機的方向、不同溫度等因素會對耳機的通道響應(yīng)有影響。
Matlab驗證
寫Matlab代碼,用變步長LMS的adaptive filter,得仿真結(jié)果如圖5。在0到2KHz范圍內(nèi),利用feedforward ANC消高斯白噪,噪聲衰減平均30dB+。Matlab庫里的FXLMS是定步長的,效果要差一些。
圖5
Q&A
遇到的困惑寫出來分享一下。
1. ANC為什么只針對2kHz以下的低頻噪音?
一方面,耳機的物理隔音方式(被動降噪)可以有效阻擋高頻噪音,沒必要用ANC降高頻噪聲。另一方面,低頻噪聲波長較長,可以承受一定的相位延遲,而高頻噪聲波長短,對相位偏差敏感,因此ANC消高頻噪聲并不理想。
2. 當(dāng)electronic delay比primary delay大時,算法性能大大下降如何理解?
P(z)延時小,S(z)延時大,比如P(z)=z-1, S(z)=z-2,只有當(dāng)W(z)=z才能滿足要求,非因果,unreachable。
3. Feedforward ANC、narrow-band feedforward ANC、feedback ANC有什么區(qū)別?
Feedforwad結(jié)構(gòu)有一個ref mic和一個error mic,分別采集外部噪音和內(nèi)部殘差信號。feedback結(jié)構(gòu)只有一個error mic,由error mic和adaptive filter output生成reference signal。
Broad-band feedforward就是上面所述結(jié)構(gòu),而narrow-band結(jié)構(gòu)中,noise source會產(chǎn)生某個signal觸發(fā)signal generator,signal generator再生成reference signal送給adaptive filter。只適用于消除periodic noise。
Feedback ANC由于只有error mic,用error mic來恢復(fù)feedforward結(jié)構(gòu)中ref mic采集的信號,通路不滿足因果約束,因此只消除predictable noise components,即窄帶周期性噪聲。需要注意的是,feedforward如果不滿足因果約束,即electronic delay比主通道acoustic delay長的話,也只能消除窄帶周期性噪聲。
另外還有一種Hybrid ANC的結(jié)構(gòu),同時包含feedforward和feedback結(jié)構(gòu),主要的優(yōu)點是可以節(jié)省自適應(yīng)濾波器的階數(shù)。
Reference
主要參照[1],非常詳細的一篇tutorial review,書[2]詳細推導(dǎo)和說明了[1]中的細節(jié)。圖1截自jabra官網(wǎng),圖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. |