劉慶強, 鄭長敏, 何紅凱, 吳 力
(1. 東北石油大學 電氣信息工程學院, 黑龍江 大慶 163318;2. 大慶油田有限責任公司 天然氣分公司培訓中心, 黑龍江 大慶 163453)
隨著信息技術(shù)和現(xiàn)代數(shù)字技術(shù)的發(fā)展, 許多領(lǐng)域?qū)φZ音質(zhì)量和識別精度的要求越來越高[1-2], 例如, 在工業(yè)廣播報警系統(tǒng)中, 語音信號常被各種噪聲干擾, 特別是與語音信號在時域和頻域上完全重疊的寬帶噪聲, 極大降低了語音信號的質(zhì)量[3], 故語音降噪是解決這類問題的有效方法.
在語音降噪領(lǐng)域中目前最常用的降噪方法有譜減法、 自適應濾波法和小波分析法等. 譜減法[4]計算復雜度較小, 可以實現(xiàn)快速處理. 但使用譜減法去噪后會產(chǎn)生“音樂噪音”, 具有一定的節(jié)奏起伏, 聽起來像音樂, 尤其是在低信噪比下語音可懂度更低, 從而接收語音信號的效果更差[5]. 最小均方誤差(LMS)算法是一種自適應濾波算法, LMS算法因其結(jié)構(gòu)簡單、 參數(shù)少、 易于實現(xiàn), 在通信噪聲控制、 系統(tǒng)辨識以及信號處理等方面[6]應用廣泛. 但傳統(tǒng)的LMS算法步長為固定值, 存在對于收斂速度快和穩(wěn)態(tài)失調(diào)誤差低之間的要求是互相矛盾的缺點. 為克服該缺點, 研究者們相繼提出了變步長LMS的改進算法[7-13], 如基于S函數(shù)的變步長LMS算法、 基于簧舌線的LMS算法和基于反正切函數(shù)的變步長LMS算法等. 小波分析[14]可以同時考慮信號的頻域與時域, 得到信號的時頻關(guān)系, 適用于語音信號等非平穩(wěn)信號的處理, 但在處理高頻信號時存在失真現(xiàn)象.
基于此, 本文通過建立步長因子與誤差信號之間的非線性函數(shù)關(guān)系, 提出一種基于采樣函數(shù)的變步長LMS算法, 該算法在收斂速度和穩(wěn)態(tài)誤差方面都有較大改善. 小波分析能有效地從信號中提取數(shù)據(jù), 并通過伸縮和平移等運算對函數(shù)或信號進行多尺度細化分析[15]. 本文將這兩種算法相結(jié)合, 提出一種基于小波閾值的變步長LMS語音降噪算法, 對語音信號進行二次處理. MATLAB仿真實驗結(jié)果表明, 該算法計算簡單、 易實現(xiàn), 并提高了系統(tǒng)的信噪比和均方誤差.
小波分析是一種時頻分析方法, 具有“數(shù)學顯微鏡”的優(yōu)良特性[16]. 進行小波變換后, 使得幅值較大的小波系數(shù)多數(shù)是有用信號, 而幅值較小的小波系數(shù)一般都是噪聲[17]. 因此, 可設(shè)置閾值以保留大于閾值的小波系數(shù), 并且可以相應地處理小于閾值的小波系數(shù), 然后根據(jù)處理后的小波系數(shù)對有用信號進行重構(gòu)[18], 如圖1所示.
圖1 小波閾值降噪過程Fig.1 Wavelet threshold denoising process
連續(xù)小波變換(continuous wavelet transform, CWT)定義如下: 設(shè)x(t)是平方可積函數(shù), 記為x(t)∈L2(t),ψ(t)也是平方可積函數(shù), 則
(1)
稱為x(t)的小波變換, 其中: 〈a,b〉表示內(nèi)積; 上標*表示取共軛;ψ(t)為一個母小波,ψ(t)必須是一個實帶通函數(shù)或復帶通函數(shù), 在時間域中以T=0為中心, 即一個隨時間振蕩的波, 所以稱為小波.
小波閾值語音去噪的思想就是先設(shè)置一個臨界閾值, 將小于閾值的小波系數(shù)視為噪聲聲波置為0, 將大于閾值的小波系數(shù)視為有效聲波予以保留[19].小波閾值主要分為硬閾值和軟閾值.硬閾值表示為
(2)
軟閾值表示為
(3)
LMS自適應算法是在Wiener濾波的基礎(chǔ)上, 借助于最速下降算法發(fā)展起來的. 該算法不需要已知輸入信號和期望信號的統(tǒng)計特性, 將前一時刻的權(quán)重系數(shù)與負均方誤差梯度的比例項相加, 得到當前時刻的權(quán)重系數(shù)[20]. 由于LMS算法具有計算復雜度低、 在平穩(wěn)信號環(huán)境下收斂性好、 期望值無偏收斂到Wiener解等特點, 因此已成為自適應算法中應用較廣泛的算法[21]. 一般的自適應濾波器結(jié)構(gòu)如圖2所示.
圖2 自適應濾波器的結(jié)構(gòu)Fig.2 Structure of adaptive filter
傳統(tǒng)的固定步長最小均方自適應算法通常采取以下步驟.
1) 濾波:y(n)=WT(n)X(n);
2) 計算誤差:e(n)=d(n)-y(n);
3) 權(quán)值更新:W(n+1)=W(n)+2μX(n)e(n).
其中:X(n)為輸入矢量,X(n)=(x(n),x(n-1),…,x(n-N+1))T;n為時間序列;W(n)為權(quán)系數(shù)矢量,W(n)=(w0(n),w1(n),…,wN-1(n))T;N為濾波器系數(shù);μ為步長因子, 滿足算法收斂條件0<μ<1/λmax,λmax是輸入信號自相關(guān)矩陣的最大特征值.
采樣函數(shù)是由正弦函數(shù)和自變量比值構(gòu)成的函數(shù)[22], 其函數(shù)表達式為μ=(sine)/e,μ和e的關(guān)系曲線如圖3所示.
圖3 采樣函數(shù)圖像Fig.3 Sampling function image
本文采用變步長LMS算法的步長更新公式為
(4)