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