主動降噪(Active Noise Control) Feedforward ANC 主動降噪原理

智能耳機

人機交互

  1. 智能聲學終端
  2. 智能耳機
    • 智能音箱
    • 智能聽力器
  3. 喇叭單體
    • 動圈喇叭
  4. 新材料
    • DLC
    • 石墨烯
    • 陶瓷單位
    • 吸音材料
  5. 智能芯片
    • 陣列式麥克風
    • 聲紋傳感器
  6. 演算法
    • 降噪算法
    • 智能聽力保護
    • ANC

ANC

  降低噪音通常所採用的三種降噪措施,即在聲源處降噪、在傳播過程中降噪及在人耳處降噪,都是被動的。爲了主動地消除噪聲,人們發明了“有源消聲”這一技術。ANC(Active Noise Control)又稱爲主動噪聲控制,常應用在耳機降噪中,

原理:通過降噪系統產生與外界噪音相等的反向聲波,將噪聲中和,從而實現降噪的效果,

  所有的聲音都由一定的頻譜組成,如果可找到一種聲音,其頻率振幅與所要消除的噪聲完全一樣,只是相位剛好相反(相差$180^o$)就可以將這噪聲完全抵消。

頻率:一秒鐘語音信號震動的次數

振幅:聲音大小

相位:某一時刻聲波處於一個週期內的位置,如果我們規定空氣被壓縮的最厲害的地方是相位的零點,那麼半個週期之後,空氣變得最爲稀疏的地方,相位就變成180°。等到空氣再次被壓縮得最密集時,就經過了一整個週期,相位變化了360°又重新變爲0°。

辦法:先採集噪聲,所以處理器會根據噪聲進行預測,預測出下一時刻噪聲的情況,併產生相位相反的噪聲,來抵消原噪聲。

 

 

  爲了保證降噪質量,還需要一個反饋麥克風用來檢測所合成後的噪聲是否真的變小了。這時處理器會根據這個反饋麥克風測量到的結果,對處理過程進行調整從而進一步降低合成後的噪聲音量,這叫做自適應過程。好比處理器變聰明瞭,能夠根據消噪的效果不斷調整自己,以達到最佳降噪效果。

  衆所周知,聲音是由震動產生的,因此通過解決震動也可以有效的解決噪聲問題,當金屬板、機器外壁等一般均由薄金屬板震動產生聲音,進而輻射噪聲,象這類由金屬板結構振動引起的噪聲稱之爲結構噪聲。

  咳咳咳咳,總結一下,

一:是通過聲音抑制聲音

二:通過減少震動來抑制聲音

降噪耳機

降噪功能對耳機的作用很重要,一是減少噪音,避免過度放大音量,從而減少對耳朵的損害。二是過濾噪音從而提高音質和通話質量。

降噪可分爲被動式降噪和主動式降噪。

被動式降噪也就是物理降噪,被動式降噪是指利用物理特性將外部噪聲與耳朵隔絕開,主要通過耳機的頭樑設計得緊一些、耳罩腔體進行聲學優化、耳罩內部放上吸聲材料……等等來實現耳機的物理隔音。被動降噪對高頻率聲音(如人聲)的隔絕非常有效,一般可使噪聲降低大約爲15-20dB。

 

主動式降噪就是商家在宣傳耳機降噪功能時會主打的ANC、ENC、CVC、DSP等降噪技術

 

降噪耳機,採用ANC降噪,主動噪音控制,主要是針對外部環境中的高、低頻噪聲,不同於一般耳機的被動隔音,其原理爲:

  1. 先由安置於耳機內的訊號麥克風偵測耳朵能聽到的環境中低頻噪音 (100 ~ 1000Hz)(目前已經可以到3000Hz)
  2. 再將噪聲訊號傳至控制電路,控制電路進行實時運算
  3. 通過 Hi-Fi 喇叭發射與噪音相位相反、振幅相同的聲波與外界噪聲相加,來抵消噪音
  4. 因此噪音就消失聽不見了

主動降噪根據拾音麥克風位置的不同,分爲前饋式主動降噪與反饋式主動降噪。

這麼一來,這個耳機需要一段的算法處理時間,先學習噪聲,這個學習需要時間,然後再把學習到的噪聲相位反轉,有一個自適應調整期。

主動降噪耳機價格昂貴,但是一般效果優秀,佩戴舒適。但是需要獨立電池供電,大多數被動降噪耳機可以不耗電使用(也不主動降噪)

ENC降噪

ENC(Environmental Noise Cancellation,環境降噪技術),能有效抑制90%的反向環境噪聲,由此降低環境噪聲最高可達35dB以上,讓遊戲玩家可以更加自由的語音溝通。通過雙麥克風陣列,精準計算通話者說話的方位,在保護主方向目標語音的同時,去除環境中的各種干擾噪聲。

 

DSP降噪

DSP是英文(digital signal processing)的簡寫。主要是針對高、低頻噪聲。工作原理是麥克風收集外部環境噪音,然後系統複製一個與外界環境噪音相等的反向聲波,將噪音抵消,從而達到更好的降噪效果。DSP降噪的原理和ANC降噪相似。但DSP降噪正反向噪音直接在系統內部相互中和抵消。

CVC降噪

  CVC(Clear Voice Capture)是通話軟件降噪技術。主要針對通話過程中產生的回聲。通過全雙工麥克風消噪軟件,提供通話的回聲和環境噪音消除功能,是目前藍牙通話耳機中最先進的降噪技術。

 

 

相關應用

主動降噪主要應用在車載音響中:

  凱迪拉克是率先將主動降噪技術運用於汽車領域的品牌。2013年一季度在國內上市的凱迪拉克XTS豪華轎車,其BOSE 5.1環繞聲高級音響系統具備主動降噪靜音系統(ANC),用車內麥克風採集噪音樣本,經系統分析處理之後,由車載音響的揚聲器播放相反的音頻,以抵消噪音波,營造更安靜的車內氛圍。

主動降噪在室內降噪中的運用:

  隨着人們居住要求的日益提高,室內降噪需求也愈發凸顯,針對窗外、四鄰活動及家用電器運轉等噪聲源,研發三維開放聲場主動降噪技術並將其運用到室內降噪以改善聲環境,是未來室內噪聲控制的一種可行方案。

 

核心算法

  ANC降噪實現核心算法爲:FxLMS(最小均方差算法)。最小均方差算法以均方誤差爲代價函數,並使誤差降到最小的算法。 具體算法推導這裏不做具體介紹,這裏直接列出表達式

其中, x(k)爲輸入信號矩陣,W(k)爲調整權值矩陣,d(k)爲目標(理想)輸出信號矩陣,y(k)爲實際輸出信號矩陣,e(k)爲誤差信號矩陣,第3個公式爲權值調整公式,mu爲收斂因子(值爲隨機的,0<mu<x(k)的相關矩陣最大特徵值的倒數)

Matlab仿真LMS濾波器

根據表達設計濾波器

function [yn,W,en]=LMS(xn,dn,M,mu,itr)
% LMS(Least Mean Squre)算法
% 輸入參數:
%     xn   輸入的信號序列      (列向量)
%     dn   所期望的響應序列    (列向量)
%     M    濾波器的階數        (標量)    濾波器的階數,就是指過濾諧波的次數,其階數越高,濾波效果就越好
%     mu   收斂因子(步長)      (標量)    要求大於0,小於xn的相關矩陣最大特徵值的倒數    
%     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次迭代
    x = xn(k:-1:k-M+1);        % 濾波器M個抽頭的輸入
    y = W(:,k-1).' * x;        % 濾波器的輸出
    en(k) = dn(k) - y ;        % 第k次迭代的誤差 
    % 濾波器權值計算的迭代式
    W(:,k) = W(:,k-1) + 2*mu*en(k)*x;
end

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

調用LMS函數仿真

close  all
% 正弦信號的產生 
t=0:199;
xs=5*sin(0.3*t);
figure;
subplot(2,1,1);
plot(t,xs);grid;
ylabel('幅值');
title('{輸入正弦波信號}');
 
% 隨機噪聲信號的產生
randn('state',sum(100*clock));
xn=randn(1,200);
zn=randn(1,200);
xn=xn+zn;
subplot(2,1,2);
plot(t,xn);grid;
ylabel('幅值');
xlabel('時間');
title('{輸入隨機噪聲信號}');
 
% 信號濾波
xn = xs+xn;
xn = xn.' ;   % 輸入信號序列
dn = xs.' ;   % 預期理想結果序列
M  = 23   ;   % 濾波器的階數
rho_max = max(eig(xn*xn.'));   % 輸入信號相關矩陣的最大特徵值
mu = rand()*(1/rho_max)   ;    % 收斂因子 0 < mu < 1/rho_max
[yn,W,en] = LMS(xn,dn,M,mu);
 
% 繪製濾波器輸入信號
figure;
subplot(2,1,1);
plot(t,xn);grid;
ylabel('幅值');
xlabel('時間');
title('{濾波器輸入信號}');
% 繪製自適應濾波器輸出信號
subplot(2,1,2);
plot(t,yn);grid;
ylabel('幅值');
xlabel('時間');
title('{自適應濾波器輸出信號}');
% 繪製自適應濾波器輸出信號,預期輸出信號和兩者的誤差
figure 
plot(t,yn,'b',t,dn,'g',t,dn-yn,'r',t,xn,'m');grid;
legend('自適應濾波器輸出','預期輸出','誤差','自適應濾波器輸入');
ylabel('幅值');
xlabel('時間');
title('{自適應濾波器}');
%繪製最優權值點
figure
mm=0:M-1;
plot(mm,W(:,end)','m*');grid;
title('{最優權值點}');

實驗效果圖:

結果分析

  輸入信號爲正弦信號加噪聲的混合信號,可見正弦信號受噪聲影響失真較大;實驗輸出信號失真較小,噪聲信號已經很小,這裏可以調節M濾波器階數來調節ANC降噪效果。可見,LMS算法可實現ANC降噪功能。

  實際應用中,ANC降噪對2KHZ以下的信號噪聲降噪效果比較好,對高頻噪聲降噪效果很差。原因爲高頻信號波長短,對相位偏差也比較敏感,導致ANC對高頻噪聲降噪效果差。一般高頻噪聲可以被耳機物理的遮蔽屏蔽掉,這種降噪被稱爲被動降噪。

  總結,一般2kHz噪聲信號使用ANC,高頻信號沒有必要使用ANC。實際測試中的應用,測試步驟:

  1. 關閉ANC時,聲學測試軟件測試聲學參數FR;
  2. 打開ANC時,聲學測試軟件測試聲學參數FR,這裏通過調節gain值,來調節降噪效果,使降噪效果適中。因爲降噪效果差,達不到降噪的目的;降噪效果如果太好,噪聲信號趨近於0,會使耳機產生自激。

 

Feedforward ANC 主動降噪原理

  feedforward式主動降噪耳機的示意圖,圖中,Ref mic在耳機耳罩上,採集環境噪聲。Error mic在耳機內,採集降噪處理後的殘差噪聲,Speaker播放ANC處理後的anti-noise。

  上圖是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

  先簡要說幾句adaptive filter和LMS(Least mean square)算法的原理,再說圖3。如圖4,給定輸入x和desired output d,adaptive filter每次迭代會更新系數,使其輸出$y$與$d$之差越來越小,直到殘差足夠接近0且收斂。LMS是adaptive filter的一種更新算法。LMS的目標函數是瞬時誤差的平方$e^2(n)=(d(n)-y(n))^2,爲了minimize目標函數,對其應用梯度下降就得到算法的更新公式。採用FIR濾波器的LMS算法的更新公式爲:

$w(n+1)=w(n)+\mu e(n)x(n)$,其中$\mu$爲step size。如果隨着迭代進行調整$\mu$的大小,就是變步長的LMS算法。

 圖4

再來說圖3。這裏adaptive filter輸出後還要經過$S(z)$纔去和desire output比較,$S(z)$會引起instability,用文獻的話說,“the error signal is not correctly ‘aligned’ in time with the reference signal”,破壞了LMS的收斂性。一種有效的方法是FXLMS(Filtered-X LMS),也就讓x(n)經過$Sˆ(z)$再輸入給LMS 模塊, $\hat{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的更新公式是

$\textbf{w}(n+1)=\textbf{w}(n)+{\mu}e(n)\textbf{x}'(n)$

其中$\textbf{x}'(n)=\widehat{s}(n)*\textbf{x}(n)$

  當adaptive filter收斂時,$E(z)=X(z)P(z)-X(z)W(z)S(z)≈0$,因此$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是定步長的,效果要差一些。

 

 

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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

實現困難度

主動降噪+被動降噪

 

 

參考文獻

wjzblog的CSDN博客 ANC降噪學習

 

 

語音喚醒

 

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