回聲消除中的自適應算法發展歷程

做者:凌逆戰
時間:2019年11月1日
博客園地址:http://www.javashuo.com/article/p-vpmnrgqb-dn.htmlhtml


自適應回聲消除原理

  聲學回聲是指揚聲器播出的聲音在接受者聽到的同時,也經過多種路徑被麥克風拾取到。多路徑反射的結果產生了不一樣延時的回聲,包括直接回聲和間接回聲。算法

直接回聲是指由揚聲器播出的聲音未經任何反射直接進入麥克風。這種回聲的延時最短 ,它同遠端說話者的語音能量,揚聲器與麥克風之間的距離、角度 ,揚聲器的播放音量,麥克風的拾取靈敏度等因素直接相關;安全

間接回聲是指由揚聲器播出的聲音通過不一樣的路徑 (如房屋或房屋內的任何物體 )的一次或屢次反射後進入麥克風所產生的回聲的集合。房屋內的任何物體的任何變更都會改變回聲的通道。所以,這種回聲的特色是多路徑的、時變的。網絡

  自適應回聲消除的基本思想是估計迴音路徑的特徵參數,產生一個模擬的迴音路徑,得出模擬迴音信號,從接收信號中減去該信號,實現迴音抵消。其關鍵就是獲得回聲路徑的衝擊響應$\hat{h}(n)$,因爲迴音路徑一般是未知的和時變的,因此通常採用自適應濾波器來模擬迴音路徑。自適應迴音消除的顯著特色是實時跟蹤,實時性強。函數

回聲消除原理框圖工具

  圖中$ y(n)$表明來自遠端的信號 , $r(n)$是通過回聲通道而產生的回聲,$x(n)$是近端的語音信號。D端是近端麥克風,麥克風採集到的房間疊加的回聲和近端說話人的語音。對回聲消除器來講,接收到的遠端信號做爲一個參考信號,回聲消除器根據參考信號由自適應濾波器產生回聲的估計值$\hat{r}(n)$,將$\hat{r}(n)$從近端帶有回聲的語音信號減去,就獲得近端傳送出去的信號 。在理想狀況下,通過回聲消除器處理後,殘留的回聲偏差$e(n)=r(n)-\hat{r}(n)$將爲0,從而實現迴音消除。性能

自適應濾波器算法的性能指標

收斂速度:濾波器的收斂速度越快越好,使正常通話開始後,通話者很快就感受不到明顯的回波存在。優化

穩態殘留回波(穩定性):即當濾波器收斂達到穩態後的回波輸出量,實際中老是但願該參數越小越好。編碼

算法複雜度:良好的算法應該在保持收斂速度的同時儘可能下降計算複雜度,同時也能減小功耗spa

ITU-T G.168對各類迴音抵消器產品在包括以上兩個主要指標在內的各類指標規定了必須達到的標準。

自適應濾波器結構

自適應濾波器結構

  圖中所示濾波器的輸入是$X(n)={x(n),x(n-1),...x(n-N+1)}^T$,$z^{-1}$濾波器z域模型的延遲單元(零狀態),濾波器的權重係數是$h(n)={h_1(n),h_2(n),...,h_N(n)}^T$,$d(n)$爲指望輸出信號,$\hat{d}(n)$爲濾波器的實際輸出,也稱估計值,$\hat{d}(n)=\sum_{i=1}^Nx(n-i+1)h_i(n)$。$e(n)$是偏差,$e(n)=d(n)-\hat{d(n)}$,由偏差通過必定的自適應濾波算法來調整濾波係數,使得濾波器的實際輸出接近指望輸出信號。

  傳統的IIR和FIR濾波器在處理輸入信號的過程當中濾波器的參數固定,當環境發生變化時,濾波器沒法實現原先設定的目標。自適應濾波器可以根據自身的狀態和環境變化調整濾波器的權重。

  自適應濾波器類型。能夠分爲兩大類:非線性自適應濾波器線性自適應濾波器。非線性自適應濾波器包括基於神經網絡的自適應濾波器及Volterra濾波器。非線性自適應濾波器信號處理能力更強,但計算複雜度較高。因此實踐中,線性自適應濾波器使用較多

主要分爲兩類FIR濾波器、IIR濾波器。

  1. FIR濾波器時非遞歸系統,即當前輸出樣本僅是過去和如今輸入樣本的函數,其系統衝激響應h(n)是一個有限長序列。具備很好的線性相位,無相位失真,穩定性較好
  2. IIR濾波器時遞歸系統,即當前輸出樣本是過去輸出和過去輸入樣本的函數,其系統衝激h(n)是一個無限長序列。IIR系統的相頻特性是非線性的,穩定性不能保證。好處是實現階數較低,計算量較少

  自適應濾波器算法按照不一樣的優化準則,常見自適應濾波算法有:遞推最小二乘算法(RLS),最小均方偏差算法(LMS),歸一化均方偏差算法(NLMS),快速精確最小均方偏差算法,子帶濾波,頻域的自適應濾波等等。

全帶自適應稀疏算法

譜減法

  本文研究的背景噪聲是以汽車噪聲和風聲爲主要對象,此類噪聲的特色爲加性的、局部平穩的、且與語音信號統計獨立。譜減法根據噪聲的加性特色,經過噪聲能量估計和增益計算獲得噪聲的功率譜,而後從帶噪語音的功率譜中減去估計出的噪聲獲得較爲純淨的語音。

 

  因爲譜減法沒有考慮人耳聽覺對語音頻譜分佈的幅度較爲敏感的特色。所以採用譜減法進行濾波後,會給原信號帶來噪聲,使語音質量變差,而且會影響到其餘處理,如語音編碼等。用實際的語音信號檢測譜減法的濾波效果,如圖下所示,能夠看出,通過譜減法後噪聲獲得了必定的消除,但頻率較低的信號處濾波效果並非很理想。

遞歸最小二乘法 RLS

RLS算法的基本方法爲:

$$\begin{array}{l}\mathop d\limits (n) = X_{}^T(n)H(n - 1)\\e(n) = d(n) - \mathop d\limits(n)\\k(n) = \frac{{P(n - 1)X_{}^3(n)}}{{\lambda  + X_{}^T(n)P(n - 1)X_{}^3(n)}}\\P(n) = \frac{1}{\lambda }[P(n - 1) - K(n)X_{}^T(n)P(n - 1)]\\H(n) = H(n - 1) + K(n)e(n)\end{array}$$

K(n) 稱爲Kalman 增益向量,$\lambda$是一個加權因子,其取值範圍$0<\lambda<1$,該算法的初始化通常令$H(-1) = 0$及$P(-1) = \frac{1}{\delta I}$,其中δ是小的正數。

最小均方算法 LMS

自適應AEC問題中應用最普遍的就是自適應濾波算法,其中最先是由Widrow和Hoff在1959年所提出的最小均方(Least Mean Square,LMS)算法

LMS算法基於維納濾波理論,採用瞬時值估計梯度矢量的算法,經過最小化偏差信號的能量來更新自適應濾波器權值係數。

\[\nabla (n) = \frac{{\partial [\mathop e\nolimits^2 (n)]}}{{\partial {\bf{h}}(n)}} =  - 2e(n){\bf{X}}(n)\]

按照自適應濾波器濾波係數矢量的變化與梯度矢量估計的方向之間的關係,能夠寫出LMS算法調整濾波器係數的公式以下所示:

$${\bf{h}}(n+1)={\bf{h}}(n)+\frac{1}{2}\mu [-\nabla (n)]\\={\bf{h}}(n)+\mu e(n){\bf{X}}(n)$$

  上式中的$\mu$爲步長因子。$\mu$值越大,算法收斂越快,但穩態偏差也越大;$\mu$值越小,算法收斂越慢,但穩態偏差也越小。爲保證算法穩態收斂,應使$\mu$在如下範圍取值:

$$0 < \mu  < \frac{2}{{\sum\limits_{i = 1}^N {x(i)_{}^2} }}$$

  從收斂速度來看,RLS 算法明顯優於LMS 算法,但RLS 算法在運算上卻比LMS 算法複雜得多,爲了減少計算複雜度,並保留RLS 的收斂性能,人們提出了一些改進的RLS 算法。如RLS 格型算法,快速RLS 算法,梯度格型算法,快速橫向濾波器算法等。總的來看,這些以收斂法都是以運算速度換取運算複雜性。

  因而人們研究介於二者之間的一種算法, 如共軛梯度法、自仿射投影算法 等。共軛梯度法不須要RLS 中的矩陣運算,也沒有某些快速RLS 算法存在的不穩定問題,但它的缺點是穩態偏差比較大。

  而LMS 算法的優勢是運算簡便,但它只有一個可調整參數,即步長因子μ ,能夠用來控制收斂速率, 因爲μ 的選擇受系統穩定性的限制, 所以, 算法的收斂速度受到很大限制。爲了加快收斂速度人們提出許多改進的LMS 算法。

  • 優勢:抑制旁瓣效應
  • 缺點:LMS算法計算複雜度不高,可是其收斂速率較慢,而且隨着濾波器階數(步長參數)升高,系統的穩定性降低,要保證採用最小的步長參數,保證最小的失調,可能沒法知足收斂標準

塊處理LMS算法(BLMS)

  爲了對付LMS運算量大的問題,在LMS基礎上提出了塊處理LMS(BLMS)。它與LMS算法不一樣的是:LMS算法是每來一個採樣點就調整一次濾波器權值;而BLMS算法是每K採樣點纔對濾波器的權值更新一次。這樣BLMS算法的運算量就比LMS的運算量要小的多,但它的收斂速度卻與LMS算法相同。

塊自適應濾波器的原理圖

  輸入數據序列通過串一併變換器被分紅若干個長度爲L的數據塊。而後將這些數據塊一次一塊地送入長度爲M的濾波器中,在收集到每一塊數據樣值後,進行濾波器抽頭權值的更新,使得濾波器的自適應過程一塊一塊地進行,而不是像時域傳統自適應濾波算法那樣一個樣值一個樣值地進行。

具體算法以下:

$$公式一:{\bf{h}}(n+1)={\bf{h}}(n)+\frac{1}{2}\mu [-\nabla (n)]={\bf{h}}(n)+\mu e(n){\bf{X}}(n)$$

由上面公式可知,能夠推出:

$${\bf{h}}(n) = {\bf{h}}(n - 1) + \mu e(n - 1){\bf{X}}(n - 1)$$

代入公式一得:

$${\bf{h}}(n + 1) = {\bf{h}}(n - 1) + \mu e(n){\bf{X}}(n) + \mu e(n - 1){\bf{X}}(n - 1)$$

  因爲在塊自適應濾波算法中,偏差信號隨抽樣速率而變,故可得出對於每個數據塊,都有不一樣的用於自適應過程的偏差信號值。所以,對於第k個數據塊,能夠對全部的可能值求乘積$x(kL+i)e(kL+i)$之和,並由此定義運行在實數據上的塊LMS自適應濾波算法的權向量的更新公式,一次類推可得:

$$h(n+k+1)=h(n)+\mu e(n+kL)X(n+kL)+...+\mu e(n+kL+L)x(n+kL+L)=h(n)+\mu\sum_{i=0}^{L-1}e(n+kL+i)x(n+kL+i)$$

其中,$\\mu$爲步長因子。

塊自適應濾波算法具備與時域傳統自適應濾波算法類似的特性。塊LMS自適應濾波算法使用了更精確的梯度向量估計。

歸一化最小均方算法 NLMS

  歸一化最小均方(Normalized Least Mean Squares,NLMS)算法是改進的LMS算法,根據原LMS算法中偏差信號與遠端輸入信號的乘積,對遠端輸入信號的平方(功率)進行歸一化處理,將固定步長因子的LMS算法變爲根據輸入信號時變的變步長NLMS算法,具體算法以下:

$$\begin{array}{l}estimated\_echo(i) = \sum\limits_{k = 0}^{N - 1} {{a_k}y(i - k)} \\{a_k}(i + 1) = {a_k}(i) + \frac{{{\beta _1}}}{{{P_y}(i)}}e(i)y(i - k)\\{P_y}(i) = (average(\left| {y(i)} \right|))_{}^2\end{array}$$

其中$a(k)$爲濾波器的係數,$e(n)$爲偏差信號,$\beta_1$爲固定環路增益,N爲濾波器係數,$P_y(i)$爲參考信號的能量估計。

  • 優勢:改善了LMS算法收斂速度慢的缺點。計算簡單、收斂速度較快的特色
  • 缺點:收斂速度慢

後續研發除了歸一化塊處理LMS(BNLMS):結合以上NLMS和BLMS二者的特色則有歸一化塊處理LMS(BNLMS)

變步長LMS

  針對μ 值, 人們研究了許多變步長LMS 算法,通常是在濾波器工做的開始階段採用較大的μ值,以加快收斂速度,而在後階段採用較小的μ值,能夠減少穩態偏差。這類算法的關鍵是肯定在整個過程當中μ值如何變化或μ值在何種條件知足下才改變。

  • 優勢:收斂速度快,
  • 缺點:算法的穩定性和跟蹤能力上較易受輸入噪聲的影響

仿射投影算法

  仿射投影濾波器是歸一化 LMS 濾波器的推廣。具體來講,歸一化濾波器抽頭 系 數 的 調 整 項$\frac{\tilde{\mu }x(n)e^*(n)}{||x(n)||^2+\delta }$被 更 復 雜 的$\tilde{\mu }A^H(n)(A(n)A^H(n)+\delta I)^{-1}e(n)$所代替,其中 I 是單位矩陣,$\delta$是一個小正常數。

  咱們將仿射投影濾波器的設計用約束最優化問題來描述:

其約束條件爲:

式中 N 小於輸入數據的維數 M。

  當 N=1時,歸一化 LMS 濾波器是這個約束最優準則的一個特例,其中仿射投影濾波器的階數可看做 N 。

  結合式上面兩個公式基於多約束拉格朗日乘子法,創建以下代價函數:

引入以下定義:
一、 N*M 的數據矩陣 A(n) ,其共軛轉置定義爲:

二、 N *1的指望響應向量 d(n) ,其共軛轉置定義爲:

三、 N *1的拉格朗日向量 $\lambda ^H$,其共軛轉置定義爲:

利用式(3-12)從新定義代價函數爲:

對代價函數 J(n) 取權向量的微分可得:

設該導數爲零,可得

爲了從上式中消去拉格朗日乘子向量$\lambda$ ,首先利用式(3-13)和(3-14)的定義,重寫
式(3-11)爲:

而後,在式(3-18)兩邊同時左乘以 A(n) 並利用式(3-10)和式(3-19)消去權向量$\hat{w}$(n+1),則得

由此,能夠推出以下結果:

一、設 n 次迭代獲得的數據$d(n)$與$A(n)\hat{w}(n)$之間的差爲:

二、矩陣乘積$A(n)A^H(n)$是一個 N *N 矩陣,它的逆爲$(A(n)A^H(n))^{-1}$。

所以對式(3-20)求解向量$\lambda$,得:

將式(3-22)代入式(3-18),獲得的最優變化的權向量爲:

最後,咱們對需屢次迭代的權向量進行控制。爲此,把步長參數$\tilde{\mu}$代入式(3-23),獲得:

等價地,可寫出:

式(3-25)爲仿射投影濾波器的更新方程。所以仿射投影算法的運算過程描述以下:

其中 M 爲抽頭數,$\tilde{\mu}$爲自適應常數,N 爲濾波器階數。

  仿射投影算法較 NLMS 更適合處理輸入信號具備相關性的狀況,由於仿射投影算法濾波器係數的更新依賴於多個輸入信號,而非只與上一時刻的輸入信號相關。和 NLMS 算法相似,仿射投影算法的收斂速度也隨着步長因子的變化而改變,所以仿射投影算法也可針對步長因子進行改進。一般狀況下,仿射投影濾波器較歸一化 LMS 濾波器收斂速度要快。然而,仿射投影算法性能的改善是以算法複雜度的增長爲代價的,在實際應用中,對於要求實時性的場合會受到限制。

  • 優勢:收斂快
  • 缺點:運算量很大

稀疏類自適應算法

經過對回聲路徑模型的分析,發現回聲能量中較活躍係數均在時域彙集,且比重很小,其數值只有不多不爲零的有效值,大多數都是零值或者接近零值,這就是回聲路徑具備的稀疏特性

PNLMS

根據回聲路徑的稀疏性,Duttweiler引入了比例自適應的思想,提出了比例歸一化最小均方算法 PNLMS,按比例分配濾波器的權值向量大小,該算法對回聲消除的發展具備很是重要的意義。 

  該算法採用與濾波器抽頭稀疏成正比的可變步長參數來調整算法收斂速度,利用其抽頭稀疏的比例值來判斷當前權重稀疏所屬的活躍狀態,根據狀態的不一樣,所分配的步長大小也有所差別,活躍抽頭係數分配較大的步長參數,這樣能夠加速其收斂,而不活躍的抽頭係數則相反,經過分配其較小的步長參數來提升算法的穩態偏差。每一個濾波器抽頭被分別賦予了不一樣估計值,算法的穩態收斂性獲得了明顯改善。然而,PNLMS 有一個明顯的缺點,即比例步長參數的選擇引入了定值,這會致使估計偏差累積,最後使算法在後期的收斂速度減慢下來。

優勢:使算法對於稀疏的回聲路徑,在初始階段擁有快速的收斂速率,與此同時下降了穩態偏差,
缺點

  1. 因爲 PNLMS 算法過度強調大系數的收斂,而當係數變小後,P 步長也隨之變小,但隨着算法的運行,則可能出現算法後期收斂速度慢、不能及時收斂的狀況
  2. 相比於NLMS算法增長了算法的複雜度
  3. 另外在回聲路徑非稀疏狀況下,收斂速度會變得比NLMS算法更慢

PNLMS++

PNLMS ++算法,在每一個採樣週期內,經過將NLMS算法和PNLMS算法之間進行交替來實現收斂速度方面的提高。可是PNLMS ++算法只在回聲路徑稀疏或高度非稀疏的狀況下表現良好。

CPNLMS

CPNLMS 算法(Composite PNLMS)經過比較偏差信號功率和已設閾值大小,來判斷算法採用 PNLMS 仍是 NLMS 算法

  • 缺點:閾值的選取每每和實際環境有關,所以該算法在實際應用中不能通用

$\mu$準則MPNLMS

$\mu$準則MPNLMS算法:爲了解決PNLMS算法後程收斂速度慢的問題,將最速降低法應用到PNLMS算法中,使用$\mu$準則來計算比例因子(使用對數函數代替PNLMS算法中的絕對值函數)

  • 優勢:使得濾波器權值向量的更新更加平衡,提高了PNLMS算法接近穩態時期的收斂速率
  • 缺點:複雜性加大

改進比例歸一化最小均方 IPNLMS

  IPNLMS算法,基於L1範數將估計的回聲路徑權值向量均值與比例步長參數之和做爲比例矩陣的對角元素(經過調整濾波器的比例參數步長),使得IPNLMS有着和PNLMS相近的初始收斂速率,而且在非稀疏的回聲路徑條件下,IPNLMS的收斂速率相比PNLMS有所改善,但性能改善的同時也增長了計算複雜度。

改進的IPNLMS

  在PNLMS類算法進行自適應迭代更新過程當中,大抽頭權值向量擁有大步長因子,這樣提高了收斂速率,但濾波器自適應收斂至接近穩態時,大抽頭權值向量將會產生較大的穩態偏差。爲了解決這一問題,P.A.Naylor提出了改進的IPNLMS(Improved IPNLMS,IIPNLMS)算法。IIPNLMS算法在IPNLMS算法的基礎之上,對於數值較大的權值向量,使用較小的參數使得其步長成比例減少,從而下降係數噪聲。

MPNLMS

MPNLMS算法引入最優步長控制矩陣,均衡了濾波器大小系數之間的更新,MPNLMS 中 P 步長的計算方式克服了 PNLMS 過度注重大系數收斂忽略小系數收斂的缺點,修正了 PNLMS 算法收斂後期速度慢的缺點,但

  • 缺點:MPNLMS算法的運算過程當中包含對數的計算,所以算法的運算複雜度相對較高。

SPNLMS

SPNLMS算法,將MPNLMS濾波器更新過程當中的對數函數關係簡爲兩段折線形式的形式。

SPNLMS的P步長計算函數$F(|w_l(k)|)$能夠描述爲:

$$F(|w_l(k)|)=\left\{\begin{matrix}
600*|w_l(k)|&&|w_l(k)\leq 0.005|\\
3&&其餘
\end{matrix}\right.$$

  • 優勢:相對於MPNLMS爲減少運法複雜度
  • 缺點:但收斂速度有所降低

改進的 MPNLMS算法,採用多個分段函數來近似 MPNLMS 的對數函數,從而下降算法的複雜度。

改進的 SPNLMS算法,經過控制步長控制矩陣迭代的頻率下降算法複雜度。收斂速度也所降低

以上對 MPNLMS 的改進算法在減少算法運算複雜度的狀況下損害了收斂性能和穩定性能。

稀疏控制(Sparse Control, SC)

有時候回聲路徑的稀疏程度會根據溫度、壓力以及房間牆面的吸聲係數等等因素而產生變化,這就須要一種可以適應不一樣稀疏度變化的AEC算法。

稀疏控制比例回聲消除算法(SC-PNLMSSC-MPLNMSSC-IPNLMS),使用新的稀疏控制方法動態地適應回聲路徑的稀疏程度,使得算法在稀疏和非稀疏的回聲路徑條件下都有良好的性能表現,體現了稀疏控制類的自適應濾波算法可以提升算法對回聲路徑稀疏程度的魯棒性。

小總結:經過上述對 PNLMS 算法的分析,可知致使 PNLMS 算法總體收斂速度慢的緣由主要是大系數和小系數之間收斂的不均衡。儘管不少學者針對此缺陷提出了修正算法,如 PNLMS++、CPNLMS 等,可是 PNLMS 忽略小系數收斂的缺陷並未從根本上獲得改善,所以這些改進算法的效果不是十分理想。Deng經過對濾波器係數收斂過程的定量分析,在權係數更新過程當中推導出最優步長的計算方式,提出一種改進的算法——MPNLMS 算法。MPNLMS 中 P 步長的計算方式克服了 PNLMS 過度注重大系數收斂忽略小系數收斂的缺點,修正了 PNLMS 收斂後期速度慢的缺陷。

  一種新的改進型 PNLMS 算法,因 PNLMS 算法只注重大系數更新,忽視小系數收斂,導致算法在收斂後期速度降低,所以在 P 步長引入的同時必須注意小系數的更新。MPNLMS 算法經過創建 P 步長與當前濾波器權係數的函數關係,在必定程度上解決了 PNLMS 算法後期收斂速度慢的問題,但濾波過程包含了對數運算,不利於系統的實時實現。

​   本文經過定量分析濾波過程,並考慮到大、小系數的收斂,創建了一種新的 P步長與當前濾波器係數之間的映射關係,下降了算法的運算複雜度。 該改進算法以 PNLMS 算法爲基礎,經過改變收斂過程來克服 PNLMS 算法的缺陷

子帶自適應濾波器

  在聲學回聲消除應用中,遠端輸入語音信號的相關性較高,然而,傳統的方法是基於「信號的無關性」假設的,傳統的全帶LMS 和NLMS 等計算複雜度低的隨機梯度算法收斂速度明顯降低。

遠端語音信號相關性有兩層含義:

  • 時域上:它表徵語音信號相關矩陣特徵值的擴散度
  • 頻域上:它表徵遠端語音信號的頻譜動態範圍

  通常來講,語音信號相比白色信號,前者明顯有更大的頻譜動態範圍,即更大的信號相關性。所以,能夠經過下降輸入信號的相關性來加快算法收斂速度,可是行之有效的一種方法是將自適應濾波器和濾波器組理論相結合,提出了子帶自適應濾波(subband adaptive filter,SAF)算法,

子帶自適應濾波器:SAF算法將相關信號經過濾波器組分割成近似無關的各個子帶獨立信號(子帶分割)。而後對子帶信號進行多速率抽取來得到採樣信號,再進行信號的自適應處理。爲研究子帶自適應濾波器,首先須要瞭解多速率信號抽取系統和濾波器組。

多速率系統[1]

  用於子帶自適應濾波器的多速率抽取系統有下采樣上採樣兩種,主要經過抽取和插值方法來使系統得到不一樣採樣率。輸入信號通過 N 個濾波器分頻後的總採樣點數是原信號的 N 倍,大幅度提升的採樣數增長了計算量。

濾波器組[1]

  信號子帶分割經過濾波器組實現。濾波器組由分析濾波器綜合濾波器共同組成。而濾波器組的實質是一系列帶通濾波器。

  分析濾波器組將數字信號分割後抽取成多個子帶信號,通過信號處理後,綜合濾波器組再對子帶信號進行插值和濾波相加而恢復成原來的信號。

子帶自適應算法結構[1]

   在傳統的 SAF中,子帶自適應算法都是以最小化子帶偏差信號爲目標的,這樣基於局部目標函數偏差的最小化不必定是全局偏差能量最小化。而分析濾波器組在子帶切割和綜合濾波器組重建全帶信號時皆會引入時延,在AEC 應用中,這樣的時延會使包含近端語音的全帶偏差信號傳到遠端,爲了消除時延的影響,無延時子帶閉環結構系統以全局偏差能量最小化爲約束條件來調整濾波器係數。最後,確保自適應濾波算法可以收斂到最佳的濾波器係數。

  • 優勢:改善了全帶自適應濾波算法在相關信號條件下的收斂速率
  • 缺點:
    • 但其穩態偏差因爲輸出時存在的混疊份量而顯著升高
    • 當採用正交鏡像濾波器組時,雖然能夠經過子帶系統將混疊部分相互抵消掉,但在現實中卻沒法實現

子帶自適應算法的後續發展

問題:針對SAF算法穩態偏差較高的問題

解決:提出了 基於最小擾動原理提出了歸一化的SAF(normalized SAF,NSAF)算法。

優勢:因爲SAF類算法固有的解相關特性,NSAF在處理相關輸入信號時比全帶的NLMS收斂速度快,並且計算成本與NLMS不相上下

近幾年研究人員爲了可以提高AEC算法的收斂性能和穩態性能,在NSAF的基礎上結合全帶自適應濾波算法的成比例理論,提出了幾種改進的NSAF算法,例如不一樣形式的變步長因子NSAF以及變正則化參數NSAF。爲了在識別稀疏回聲路徑時快速收斂,文獻[22,23]將NLMS算法中的成比例思想以類比的方式融合到NSAF算法中,提出了比例NASF(proportionate NASF,PNSAF)算法和μ準則PNSAF(μ-law PNASF,MPNSAF)算法。

由於子帶結構中存在混疊份量問題

  1. Keermann於1988年利用採樣濾波器組技術消除了混疊現象,可是此舉增長了算法複雜度。
  2. 相鄰子帶間留安全頻帶,缺點:引入了空白頻帶,下降了信號質量。
  3. 重疊子濾波器補償法,缺點:由於交叉項而增長了運算量,還下降了收斂速度。

2004年K. A. Lee 和 W. S. Gan提出了基於最小擾動原理的多帶結構式自適應濾波器(Multiband Structured SAF,MSAF)算法,並給出了自適應濾波器抽頭係數的更新方程。該結構徹底不存在濾波器輸出端的混疊份量問題。

多帶自適應濾波器

  子帶自適應濾波器中每一個子帶單獨使用一個子濾波器。該結構會致使輸出端產生混疊份量,解決此問題的傳統方法多以下降信號的質量或增大穩態偏差爲代價,Lee 和 Gan在 2004 年提出了一種全新多帶結構。不一樣於子帶濾波器在每一個子帶都使用不一樣的濾波器,多帶結構的每一個子帶使用相同的全帶濾波器,這很好地克服了輸出端存在混疊份量的問題。

頻域塊LMS自適應濾波算法

  塊LMS自適應濾波算法中的線性卷積和線性相關都可以採用快速傅里葉變換(FFT)來實現。所以,塊LMS自適應濾波算法的有效實現方法其實是利用FFT算法在頻域上完成濾波器係數的自適應。這樣實現的塊LMS自適應濾波算法稱爲頻域塊LMS自適應濾波算法(FDAF,Frequency-Domain Block Least MeanSquare Adaptive Filter)

  另外一方面,數字信號處理中經常使用的重疊存儲法重疊相加法爲快速卷積運算提供了強有力的工具,即利用離散傅里葉變換計算線性卷積。重疊存儲方法是非自適應濾波兩種方法中更爲經常使用的一種方法。此外,值得注意的是,儘管濾波器可以以任意數量的重疊來實現,但當以50%重疊時運算效率達到最高。

基於重疊存儲法的頻域塊LMS自適應濾波算法的信號流程圖

問題:針對回聲路徑很長且複雜,而且回聲延遲較高時,時域自適應濾波算法計算複雜度高的問題,

解決:提出了頻域分塊濾波(FDAF)算法,FDAF算法將長度爲L的自適應濾波器分紅FFT長度的整數倍個子塊,對輸入信號的每一個子塊進行頻域內的LMS算法。

  • 優勢:當回聲路徑很長且複雜時計算量小,而且在收斂速度方面有略微提高。

  相對於時域,FDAF具備許多優點。除了可以經過在頻域中相乘來執行濾波器卷積以外,該變換還有效地減少了自適應濾波器的長度。所以,下降了自適應算法的計算複雜度。此外,爲了下降計算複雜度,FDAF還能夠提升收斂速度。這是因爲濾波器更新中信號的自相關矩陣的特徵值散佈減少所致使的。

  FDAF的這些優點最終須要權衡。FDAF的主要成本是增長的延遲和增長的內存需求。延遲成原本自須要經過頻域濾波器延遲指望信號(或回聲消除中的麥克風信號)。這致使在時域方法上增長了存儲器存儲,由於須要同時存儲激勵信號和指望信號。FDAF的早期方法使FFT的階數與脈衝響應的大小大體相同。可是如前所述,回聲消除等應用回波路徑較長,會致使較大的延遲和存儲需求。該缺點能夠經過諸如多延遲自適應濾波器之類的方法來克服。在這種方法中,塊大小能夠小於所需的時域自適應濾波器,而且能夠應用每一個頻點中的自適應濾波器來代替單個係數。所以,能夠減輕FDAF的缺點,同時保持下降的計算複雜性和提升的收斂速度。

綜上所述

《聲學回聲消除中子帶和塊稀疏自適應算法研究_魏丹丹》

遠端輸入語音信號的相關性較高,且聲學回聲信道的衝擊響應通常只有少許的非零係數,所以是一個稀疏信道。

針對用於聲學回聲消除的子帶和塊稀疏算法進行了研究和改進,以達到提升算法跟蹤性能和抗衝激魯棒性的目的。本文的主要貢獻以下:

首先,區別於傳統文獻中子帶歸一化自適應算法消除回聲的方法,

我提出一種用於聲學回聲消除的新型子帶歸一化自適應濾波切換算法(LMS-NSAF)。

該算法核心思想是根據語音信號的狀態不一樣,採用 VAD 快慢包絡技術切換算法,當輸入遠端信號的瞬時能量值較大時,使用收斂速度快的子帶 NLMS 算法,當輸入信號的瞬時能量值較小時,則使用計算複雜度低的權重矢量更新公式,從而使得改進的子帶 NLMS 算法在提升收斂性的同時又能下降算法的計算複雜度

基於多帶結構的改進型自適應濾波切換算法NLMS-NSAF

首先遠端語音信號利用包絡法判別有無語音段,

而後將信號狀態輸出到自適應多帶結構算法模塊當中。

若語音區輸入信號的短時能量較大,則使用收斂速度快的自適應濾波算法(NLMS);

若語音區輸入信號的短時能量較小,需考慮計算量低的算法(NSAF),

固然,語音在無語音區時算法迭代中止。

對輸入語音信號能量高低的斷定是經過和閾值比較獲得的。在充分考慮語音特性的狀況下,切換算法實現了算法在收斂速度的優點,同時完成了同算法複雜度的優化選擇。最後達到了提升濾波算法性能、下降運算量的目的。

回聲路徑是經典的稀疏路徑,且語音信號做爲遠端輸入時相關性較強,

總結

  回聲消除挑戰在於可否快速跟蹤回聲路徑中的變化,同時又對大聲干擾(例如雙向通話)保持魯棒性這兩個目標是矛盾的,由於爲了快速適應回聲路徑的變化,系統須要具備快速收斂速度的自適應算法,這又意味着在出現雙向通話時很容易發散。

  在大多數系統中,實現了雙向通話檢測器以凍結自適應並防止發散。雙向通話檢測器的決策閾值一般須要對信號處理環境進行一些調整。這是一個不良的特性,所以,大多數系統都被調整爲過於保守。換句話說,因爲雙向通話決策遺漏比雙向通話虛假警報更重要,所以要進行調整以確保不會發生任何丟失的決策。這可能會致使系統產生高頻率的錯誤警報,從而致使系統沒法及時調整。

  健壯的自適應算法在回聲消除系統中的應用使雙向通話檢測器的保守性下降。因爲大多數雙向通話遺漏都發生在語音段的開始和偏移處,所以魯棒的自適應算法試圖使濾波器係數的自適應不受干擾,直到能夠作出雙向通話決定爲止。由過去偏差信號的電平調節的比例因子控制自適應算法的速率。所以,例如還沒有收斂的系統將致使高比例因子。在雙向通話的狀況下,因爲使用了過去的偏差信號值,所以其開始會被延遲。

  消除回聲的兩路徑方法(AEC)論文進一步討論了該主題。雙向通話檢測器的複雜性以及使用兩組濾波器係數做爲緩解快速收斂和雙向通話問題的方法的目的變得更加清晰。雙路徑方法的問題是須要兩個FIR操做,這給系統增長了內存和計算複雜度。魯棒的自適應算法的應用能夠幫助緩解過於保守的雙向通話檢測器的問題,而不會增長兩徑方法的負擔。

  除了居於核心地位的自適應濾波技術外,實際迴音抵消技術應用系統中還包括遠端信號檢測、近端信號檢測、溫馨噪聲產生、殘留回波的非線性處理技術等,這些技術也有待改進。這樣整個迴音抵消器才能實現一個較好的迴音抵消效果。

 

參考

聲學回聲消除中子帶和塊稀疏自適應算法研究_魏丹丹

《車載免提系統降噪算法的研究以及硬件實現》__張雪

頻域塊LMS自適應濾波算法的研究__田超

相關文章
相關標籤/搜索