高純,張玲華
(1.南京郵電大學通信與信息工程學院,南京210003;2.南京郵電大學江蘇省通信與網絡技術工程研究中心,南京210003)
數字助聽器是一個微型設備,其揚聲器距離麥克風較近,其性能直接影響到聽力受損者的聽覺體驗[1]。回聲消除算法的難點在于聲學反饋路徑會隨著環(huán)境變化,這要求助聽器設備實時更新模型參數。回聲消除通常有兩種方法:非連續(xù)回聲消除和連續(xù)回聲消除。前者由于需要插入白噪聲段,導致輸入語音不連貫,因此難以實時跟蹤聲學路徑。而后者則可以保持語音信號的連續(xù)性,模型參數可以實時更新,保證語音聽感的可懂度[2]。
自適應濾波器法[3-4]是主流的連續(xù)回聲消除方案之一。一方面,該方法通過估計揚聲器和麥克風之間的聲學回聲路徑,再從麥克風信號中減去回聲信號以提高患者可懂度。此外,在回聲路徑隨環(huán)境變化時,自適應濾波器也能夠實時跟蹤這種變化;另一方面,傳統非自適應濾波器需要預先知道待處理信號的先驗信息,但回聲信號通常是未知的,自適應濾波法的優(yōu)勢就在于即使不知道先驗信息依然可以獲得均方意義上的最佳效果。自適應濾波的經典算法有最小均方誤差(Least mean squares,LMS)算法[5-6]、歸一化LMS(Normalized least mean squares,NLMS)算法[7]等。它們的顯著優(yōu)點在于計算復雜度低、在平穩(wěn)環(huán)境內收斂到最優(yōu)維納解等。
然而語音信號是非平穩(wěn)、強相關的信號,因此經典的NLMS算法的收斂速度和穩(wěn)態(tài)失調等性能都會受到影響[8]。此外,聲學回聲路徑的稀疏性[9]也是導致NLMS算法性能下降的原因之一,傳統NLMS無法隨著信道的稀疏變化自適應地調整步長。已有研究[10-11]表明,步長是回聲消除中一個非常重要的參數,因其直接影響收斂速度、穩(wěn)態(tài)失調和計算復雜度等指標,固定的步長無法在不同的場景中獲得令人滿意的性能[12]。因此,研究人員不斷提出各種變步長[13-14]方案來提高NLMS的算法性能。改進的比例歸一化LMS(Improved proportional normalized least mean squares,IPNLMS)算法[15-16]通過引入一個系數矩陣的方式使步長與估計的脈沖響應的大小成比例,在一定程度上有效改善了算法的收斂特性。隨后,又有學者在IPNLMS算法的基礎上,通過引入L0范數[17]改進系數矩陣從而提出了L0-IPNLMS算法[18],該算法在收斂速度和穩(wěn)態(tài)失調方面的性能有了更進一步的改善,但系數矩陣卻提高了算法的計算復雜度,增加了數字助聽器的功耗。
為降低L0-IPNLMS算法的計算復雜度,本文將集員濾波[19-20]理論引入該算法中以降低算法的計算量。集員濾波理論主要通過摒棄冗余數據來降低計算成本,十分適合數字助聽器的應用場景,并且該理論進一步建立步長因子與誤差信號之間的聯系實現了變步長。在本文提出的基于集員濾波理論的L0-IPNLMS中,設置了誤差向量的門限閾值,當且僅當濾波誤差幅度超出門限范圍時才對濾波器系數進行更新,這樣不僅最大程度地保留了原L0-IPNLMS算法對稀疏信道的適應性能,而且減少了對無用數據的計算,滿足了數字助聽器對低功耗和低計算復雜度的需求。此外,該算法在L0-IPNLMS算法變步長的基礎上,再根據誤差門限值與誤差向量的比例系數進一步調整步長大小。誤差與門限值相差越多,步長就越大,系統收斂將越快;當誤差向量大小未超出門限閾值時,不對濾波器進行更新,即摒棄冗余數據,系統進入穩(wěn)定狀態(tài)。實驗證明,在隨機信號和語音信號輸入條件下,相比于原L0-IPNLMS算法,本文所提算法的收斂速度分別提高了28%和32.8%,失調量分別降低了1 dB和3 dB,均方誤差分別降低了0.66 dB和1.68 dB,ERLE值則分別提升了0.7 dB和1.79 dB,計算復雜度降低了15.3%,性能取得了明顯改善。
本文首先介紹助聽器回聲消除的數學模型,并簡述了一些現有的自適應濾波算法;其次,討論了新提出的SM-L0-IPNLMS算法的推導;最后,將所提算法與3種現有算法進行仿真實驗,驗證所提算法的有效性。
如圖1所示,s(k)為原始語音,v(k)為環(huán)境噪聲,s(k)經過助聽器的放大增益后產生輸出信號x(k)。x(k)經過真實回聲路徑后產生回聲信號y*(k),y*(k)與v(k)共同組成了期望信號d(k),即麥克風的輸入。而x(k)經過自適應濾波器后得到回聲估計信號y(k),d(k)與估計信道y(k)之差即為自適應濾波器的誤差向量e(k)。假設回聲消除系統模型的濾波器階數為M,k表示時刻,則
圖1 助聽器回聲消除系統模型Fig.1 Echo cancellation system model of hearing aid
自適應濾波器的系數向量為
式中:上標T代表轉置運算,而輸入信號為
期望信號為
式中:w*(k)是系數向量w(k)的復共軛。因此,誤差向量為
當濾波器的輸入參數x(k)發(fā)生變化時,自適應濾波器的系數w(k)會根據誤差信號e(k)的大小自動調整。
NLMS算法是自適應濾波中的最為經典的一個算法,其抽頭的更新公式為
然而NLMS算法的缺陷在于不能適應回聲路徑的稀疏性。此稀疏性是指系統的沖擊響應是稀疏的,其路徑的系數大多為0或者很小值。如果能夠利用這些系數,在系數活躍的情況下給予其更大的更新速度則可以加快系統的收斂速度。但NLMS算法未根據這一特性調整步長,導致其性能不夠理想。
為了克服NLMS算法對回聲路徑的局限性,IPNLMS[15-16]算法通過引入一個對角矩陣Q(k)來改進性能,此處稱為系數矩陣,即
式中diag{?}表示對角矩陣。IPNLMS的濾波器抽頭更新方程表示為
Q(k)中的元素計算如下
式中η為值很小的正常數。參數λ的范圍是[-1,1],當λ=-1時,式(7)對應NLMS算法;當λ=1時,式(7)對應PNLMS[22]算法。從式(7)和(8)中可以明顯看出,與每個濾波器系數相關的步長隨著系數λ的絕對值而增加。對應給定的場景,λ的最佳取值取決于回聲信道的實際稀疏程度,一般情況下,λ取0或-0.5。而
式中L1范數的表達式為
在實際應用中,L0范數比L1范數具有更好的稀疏性,效果與系統更接近,所以有學者提出了L0-IPNLMS[18]算法。該算法保持式(7)的濾波器迭代公式不變,將式(10)中的L1范數替代為L0范數,以更好地實現回聲消除性能。
L0范數表示一個向量中所有非0元素的個數,為了降低計算復雜度,可用一個近似公式表示為
式中β為根據信號的稀疏性選擇的常數。將式(11)代入式(8,9)中得
再將式(12)代入式(7)的求解過程中,獲得L0-IPNLMS算法。
L0-IPNLMS算法和IPNLMS算法均通過引入一個對角矩陣來改進NLMS算法中的梯度計算,雖然性能獲得了一定改善,但計算復雜度也增加了很多。考慮到數字助聽器的低功耗特性,本文將集員濾波理論以步長因子的形式引入L0-IPNLMS算法中,利用該理論的數據選擇更新特性降低數字助聽器的計算成本,當誤差低于某一范圍,暫停更新濾波器系數。
集員濾波算法定義了一個包含輸入和輸出向量的模型空間S,對這個空間S中的所有數據,保持其濾波器系數無需更新,即集員濾波策略??臻gS的解可稱為一個約束集,其約束條件[23]可以表示為
式中誤差門限γ可以隨著特定的應用來預設值。在針對數字助聽器的回聲消除中,γ通常取
該問題是一個帶約束的最優(yōu)化問題,對該問題的求解需要用到拉格朗日函數,定義該方程的風險函數J(k)
期望式(16)風險函數最小,將該函數對w(k+1)求導,并令其為0,即
得到方程的最優(yōu)解為
而
已知已結束項目的每個任務的位置信息,即每個任務所在地的經度與緯度。首先,找出已結束項目任務數據中給出的總區(qū)域的經緯度的范圍 [5],緯度范圍為(22.48427813,23.86921562);經度范圍為(112.6563586,114.4856086)。 該矩形區(qū)域的三個頂點分別為:
式(18)兩邊同時乘以xT(k),并代入式(19)中,得
將式(20)代入式(18)中,得
令
此時,μ(k)是一個時變的與當前輸出誤差相關的步長。將該步長應用到L0-IPNLMS算法中,即將式(22)代入式(7)中,得
式(23)即為本文提出的一種新的基于SM的L0-IPNLMS算法。從L0-IPNLMS算法模型的視角來看,可以理解為進一步變步長的L0-IPNLMS算法。在信號初始階段,誤差幅度遠大于門限誤差,從而收斂速度較快;在信號中期即將到達穩(wěn)態(tài)前,誤差幅度稍微大于門限閾值,收斂開始變得緩慢;當信號到達穩(wěn)態(tài)后,誤差值小于門限值,此時瞬時步長可視為0,濾波器系數不再更新。此外,當且僅當先驗誤差幅度超過設定閾值時,才對自適應濾波器系數進行更新。這種選擇性更新策略可以丟棄具有無用信息的數據,并避免冗余數據的更新計算。在實際應用中相比于L0-IPNLMS算法而言,雖然每次有效迭代時增加了一次乘法,但從整個自適應收斂過程來看,由于部分點的誤差幅度達不到預設的閾值,濾波器系數的更新會被暫停,因此整個算法的平均計算復雜度降低。
為評估所提出的SM-L0-IPNLMS算法的性能,將其與本文所列的比較算法進行了比較實驗。實驗采用的回聲路徑為空間尺寸為5 m×4 m×3 m的真實房間的實測回聲,混響時間T60=100 ms,麥克風固定在(2,2,1.5)m的位置,麥克風與揚聲器之間的間距為5 cm。所采用的回聲消除模型如圖1所示,其中前向增益G(z)=10。實驗迭代次數N=20 000,濾 波 器 階 數M=800,NLMS、IPNLMS、L0-IPNLMS算法中的步長因子統一取μ=0.3,其他參數設置如表1所示?;芈曄惴ǖ男阅苤饕捎?種度量指標,一是歸一化偏差(Misalignment,MIS),其定義為
表1 各算法參數設置Table 1 Algorithm parameter setting
估計回聲信道越逼近真實回聲信道時,MIS值會越小,說明回聲消除效果越好。另一指標為均方誤差(Mean square error,MSE),定義為
它顯示了對回聲信號的抑制效果,其值越小表明參與誤差越少。第3種指標是回聲返回損失(Echo loss enhancement,ERLE),定義為
為了更直觀地展示SM-L0-IPNLMS算法步長動態(tài)調整的優(yōu)越性,本實驗選擇了該算法在收斂中期的其中200點的步長隨誤差幅度的變化曲線,如圖2所示。圖2中γ表示門限誤差,當且僅當誤差幅度|e(k)|大于γ時,步長才會更新。在圖2中A、B、C處,誤差幅度|e(k)|未超過誤差門限值γ,因此A1、B1、C1處步長為0。根據式(22)可知,μ(k)隨|e(k)|的增大而增大,因此在D點左側,步長隨著誤差幅度的減小而減小;在D點右側,步長隨著誤差幅度的增大而增大。而D點的誤差幅度相對E點較小,因此D點對應的步長D1也小于E1。此外,圖2展示了收斂中期當誤差幅度低于門限閾值時,不進行濾波器系數的計算,可見整個迭代過程中舍棄了許多點的計算,對計算復雜度的降低起到了不錯的效果。
圖2 改進算法的步長變化曲線Fig.2 Step change curves of the improved algorithm
本組仿真實驗中,輸入信號為高斯隨機信號和真實語音片段,其中隨機信號的方差為1,語音片段來自TIMIT數據庫,采樣率為8 kHz。實驗結果分別如圖3、4所示。
圖3 輸入為隨機信號Fig.3 Random signal input
3.2.1 隨機信號輸入
從圖3(a)可以看出,相比于其他比較算法,SM-L0-IPNLMS算法在初始階段向穩(wěn)態(tài)過渡時的收斂速度大大提升,在達到穩(wěn)態(tài)后的失調量也有所降低,比L0-IPNLMS算法減少了1 dB。由圖3(b)可得均方 誤 差 的 具 體 平 均 值:SM-L0-IPNLMS為-12.63 dB,L0-IPNLMS為-11.97 dB,IPNLMS為-11.93 dB以及NLMS為-11.28 dB,改進算法相比于原L0-IPNLMS算法降低了0.66 dB。由圖3(c)可知,明顯ERLE指標的排序為:SM-L0-IPNLMS>L0-IPNLMS>IPNLMS>NLMS,具體的均值ERLE數 據 為:SM-L0-IPNLMS平 均8.85 dB、L0-IPNLMS平 均8.15 dB、IPNLMS平 均8.10 dB和NLMS平均7.41 dB,改進算法相比于原L0-IPNLMS算法的ERLE值提高了0.7 dB??梢奡M-L0-IPNLMS算法在隨機信號輸入時回聲消除能力明顯提高。
3.2.2 語音信號輸入
圖4 (a)說明SM-L0-IPNLMS算法相比于3種比較算法,收斂速度有了大幅提升,穩(wěn)態(tài)失調量也遠小于其他算法,相比于L0-IPNLMS算法,改進算法的穩(wěn)態(tài)性能提升了約3 dB。由圖4(b)可見,語音信號輸入時MSE的波形會有起伏,這是由語音間隙所致。4種算法的MSE指標分別為:SM-L0-IPNLMS平均-25.18 dB,L0-IPNLMS平均-23.50 dB,IPNLMS平均-23.38 dB以及NLMS平均-23.11 dB,改進算法相比于原算法降低了1.68 dB。由圖4(c)可知,明顯ERLE指標的排序依然為:SM-L0-IPNLMS>L0-IPNLMS>IPNLMS>NLMS,具 體 的 均 值ERLE數 據 為:SM-L0-IPNLMS平 均8.67 dB、L0-IPNLMS平均6.88 dB、IPNLMS平均6.75 dB和NLMS平均6.47 dB,改進算法相比于原L0-IPNLMS算法ERLE值提高了1.79 dB??梢姡疚牡母倪M算法在語音輸入條件下性能依然明顯改善。
圖4 輸入為語音信號Fig.4 Speech signal input
3.2.3 收斂速度分析
為了驗證改進算法相比于其他算法在收斂速度上的提升,從TIMIT數據庫中截取3組測試語音,并構造3組隨機信號,分別執(zhí)行所提算法和3種對比算法,計算出各個算法的MIS值到達-6 dB的時間,3組實驗取平均值。實驗結果如表2、3所示,收斂時間越長則說明收斂速度越慢,反之越快。每種信號輸入情況下,NLMS算法收斂速度最慢,IPNLMS算法和L0-IPNLMS算法的收斂速度相比于NLMS算法均有所提升,其中L0-IPNLMS算法性能更佳。而本文提出的SM-L0-IPNLMS算法的收斂速度則明顯提升,計算表明本文所提算法相比于NLMS算法、IPNLMS算法、L0-IPNLMS算法,在3種隨機信號輸入條件下,平均收斂速度分別提升了42.7%、28.9%和28%;在3種語音信號輸入條件下,平均收斂速度分別提升了44.6%、34.6%和32.8%。
表2 隨機信號輸入時各算法的收斂時間Table 2 Convergence time of algorithms under random signals s
表3 語音信號輸入時各算法的收斂時間Table 3 Convergence time of algorithms under speech signals s
對于數字助聽器而言,其主要輸入信號是語音信號,但在真實場景下,語音信號通常伴隨噪聲干擾,并非是純凈信號。為了驗證不同信噪比干擾下算法的性能,本組實驗通過將3種不同信噪比的高斯白噪聲分別添加到回聲路徑中,模擬了多種真實場景下的帶噪語音。實驗采用的高斯白噪聲的信噪比分別取30、20、10 dB,其余參數設置保持不變,對3種情況下的算法的收斂速度和失調性能進行了比較,實驗結果分別如圖5~7所示。
圖5 信噪比30 dB下的MIS曲線Fig.5 Curves of MIS when SNR=30 dB
圖6 信噪比20 dB下的MIS曲線Fig.6 Curves of MIS when SNR=20 dB
綜合圖5~7可知,在產生高斯白噪聲干擾的情況下,改進的SM-L0-IPNLMS算法仍然比其他算法擁有更快的收斂速度和更低的穩(wěn)態(tài)失調。在大信噪比30 dB時,SM-L0-IPNLMS算法的效果較接近于圖4中純語音時的性能;當信噪比為20 dB時,改進算法的收斂速度提升依然明顯,MIS值比L0-IPNLMS算法降低了2 dB;在小信噪比10 dB條件下,雖然各算法的收斂性能均有一定程度下降,但改進算法的收斂速度依然最快,且最早進入穩(wěn)定狀態(tài)??梢姳疚乃崴惴ㄔ诖笮旁氡雀蓴_時回聲消除能力很明顯,在低信噪比條件下也具有較強的魯棒性。
圖7 信噪比10 dB下的MIS曲線Fig.7 Curves of MIS when SNR=10 dB
數字助聽器的功耗與算法的計算復雜度密切相關,而時延是衡量計算復雜度的指標之一,指算法從輸入到輸出的運行時間。為了分析算法的計算復雜度,圖8列出了在3種濾波器階數(M=600,800,1 000)下,各個算法濾波全過程的時間,實驗結果取各自運行30次后的平均值。由圖8可知,NLMS算法時延均最短,IPNLMS算法和L0-IPNLMS算法的時延相當。這是因為前者未考慮回聲路徑的稀疏性故算法復雜度,而后二者引入了系數矩陣導致計算量較高。本文提出的SM-L0-IPNLMS算法的在3種濾波器階數下的時延明顯低于IPNLMS算法和L0-IPNLMS算法,這是因為該算法利用集員濾波的數據選擇更新特性,摒棄了大量冗余數據,降低了算法的時延。計算復雜度降低值用ΔC表示,相比于L0-IPNLMS算法,SM-L0-IPNLMS算法的ΔC可根據式(27)計算。
圖8 算法在不同濾波器階數下的時延Fig.8 Running time of algorithms under different filter orders
當M=600時,SM-L0-IPNLMS算法的計算復雜度下降了12.4%;M=800時,降低了15.2%;M=1 000時,下降了18.2%。3種情況下,計算復雜度平均降低了15.3%??梢?,本文的改進算法比L0-IPNLMS算法更能滿足數字助聽器低功耗的特性。
本文提出了一種基于集員濾波的L0-IPNLMS的新算法以降低數字助聽器中回聲消除算法的計算復雜度。該算法利用集員理論對L0-IPNLMS算法進行改進,不僅利用誤差信號實時調整步長大小,同時依據誤差幅度的門限閾值對數據進行選擇性更新,降低了數字助聽器的功耗。通過實驗分析證明,與原L0-IPNLMS算法相比,SM-L0-IPNLMS算法不僅計算復雜度降低了15.3%,而且在隨機信號和語音信號輸入條件下收斂速度分別提升了28%、32.8%,穩(wěn)態(tài)性能分別提升了1 dB、3 dB,均方誤差分別降低了0.66 dB和1.68 dB,ERLE值則分別提升了0.7 dB和1.79 dB,在低信噪比條件下也表現出了良好的魯棒性。