演算法介紹:

Ø        NLMS演算法:

許多數位系統採用濾波器來消除噪音、提供頻譜修正組成、回音消除或進行信號檢測。在聲學回音消除的應用中,使用適應性濾波器是消除聲學回音的最主要方法。適應演算法的好壞,會對聲學回音的消除產生很大的影響,而在此次專題實驗中,我們採用正規化最小平方誤差演算法(NLMS)做為回音消除處理的主要機制。

NLMS中,我們定義了一個變數J,稱之為價值函數(const function),NLMS演算法的目的就是要把價值函數最小化。

                                                      J(n) = e(n)2

              其中e(n)為估測誤差,定義為e(n) = d(n) - WL(n)XL(n)

 

d(n)desire response就是輸入訊號的響應,而WLXL項則與濾波器的階數有關,階數越高處理的效果越好,但同時演算法的複雜度就會增加,處理速度也跟著變慢。

 

   其他演算法:

當然適應性濾波器演算法不是只有NLMS一種,另一種也很常見的演算法,是遞迴最小平方演算法(RLS),但因為RLS只適合較短係數的適應性濾波器,當需要大量係數時,常常會因運算量太大而難以實現,而且其演算法遠比我們使用的NLMS演算法複雜,因此最後我們還是決定以NLMS演算法為主。

 

FIRIIR系統介紹:

 

濾波器又分為兩種不同的系統:有限脈衝響應系統(Finite Impulse Response Filter)與無限脈衝響應系統(Infinite Impulse Response Filter),簡稱FIR系統與IIR系統。

 

Ø       FIR Filter

FIR 濾波器的響應會在有限的取樣時間內衰減,對於有限的輸入,其輸出響應必為有限,因此可視為是輸入值的加權平均,故又可稱為移動平均(Moving Average)濾波器,簡稱MA 濾波器。

FIR濾波器的脈衝響應係數h(n)是一個有限的項,而其運算量跟濾波器階數有很大的相關性,如果FIR濾波器的階數變大,運算量也會跟著變大,因運算量與硬體相關性過高,因此一般我們不採用此系統。

 

 

Ø       IIR Filter

IIR濾波器的脈衝響應h(n)為無限長度的項,但無限大的階數在實現上是一件不可能的事,因此我們採用遞迴的方式來處理訊號,在處理未知系統時,可因為其無限的特性達成使用較少階數濾波器的效果。又因為加入回授,所以輸出訊號將不僅跟輸入訊號有關,也跟上一筆輸出訊號有關連。

IIR 濾波器的輸出是由過去時間的輸出訊號以遞迴的方式而得,故也稱自動回歸(Autoregressive)濾波器,簡稱AR 濾波器。一般而言,一個IIR 濾波器,由於包含AR MA兩部分,故此類IIR 濾波器又稱為自動回歸移動平均(ARMA)濾波器。

  

近端語音造成的影響:

 

由於IIR濾波器可以用較少的階數達到回音消除,因此我們一般喜歡使用IIR濾波器。但因為IIR濾波器是採用遞迴的方式處理訊號,所以輸出的訊號將會受到上一筆輸出訊號的影響。而在我們於近端加入另一筆訊號作為近端語音時,近端語音訊號將會跟原先的輸出訊號疊加,進而影響下一筆資料。

 

為了克服此影響,我們另外加入一個偵測程式Double Talk Detector,簡稱DTD,來檢測是否有近端語音產生。當DTD偵測到有近端語音產生時,將會立即使濾波器停止係數更新,終止系統的迴授,並利用先前在IIR架構下所估測出的未知系統脈衝響應係數,改為進行FIR架構下的回音消除。利用此方法來進行近端語音發生時的回音消除,將能有效改善近端語音在IIR架構下造成的影響。

 

Filter length 的影響:

 

適應性濾波器如果要對回音作出良好的預測,必須要有足夠的係數。係數量的多寡和迴音消除的效能有直接的關係,若濾波器太短,會導致回音消除的處理效能不彰;但若濾波器太長,則會造成收斂的速度很慢,運算時間過長,導致處理效率不佳。

 

ERLE平均效能指標:

 

ERLEEcho return loss enhancement的簡稱,由於經由波形圖觀察、或是藉由人耳直接聽聲音辨識回音消除效能都過於主觀,因此我們使用了ERLE平均效能指標,以數值定量化迴音消除後的效能,作為我們測試程式的依據。   

      

 

ERLE =                      

 

其中分子的 Soriginal 表示我們一開始輸入的原始訊號,而分母的 Sfinal 則表示在經過一連串回音消除過程之後所得到的訊號。ERLE式子在處理訊號時,是將每筆訊號分成好幾筆同樣大小的資料,再進行比較。消除效能越佳時,經過處理後的訊號就會越小,跟分子原始訊號的歧異度就會越高,因此ERLE值越大,表示消除的效果越好。