1. 程式人生 > >語音降噪(LMS,譜減法和維納lvbo)

語音降噪(LMS,譜減法和維納lvbo)

文章為轉載,原來地址:

http://blog.csdn.net/kaixinshier/article/details/72477679?locationNum=5&fps=1

概述:現實生活中,語音訊號一般都帶有噪聲,在進一步處理訊號前(如語音識別,語音編碼),往往要對訊號進行降噪,本文介紹幾種簡單的降噪演算法:自適應濾波器/譜減法/維納濾波法。隨著信噪比的減小,降噪方法處理的效果也隨之變差,也經常使得語音丟字或者波形失真。如何在低信噪比情況下,達到不錯的降噪效果,是一個值得探究的問題。

一. LMS自適應濾波器降噪

1.1. 基本原理

LMS自適應濾波器,利用前一刻已獲得的濾波器引數,自動調節當前濾波器引數,以適應訊號和噪聲未知的或隨機變化的統計特性,從而實現最優濾波。

1.2. 原理概述

輸入訊號序列xi(n),期望輸出訊號d(n),定義誤差訊號為:

這裡寫圖片描述

其中wi為權係數。 
LMS演算法的本質就是尋找最優的權係數wi,使得誤差訊號e(n)最小。 
經過一系列推導,得到權係數的迭代公式:

這裡寫圖片描述

使用最陡下降法,那麼LMS演算法的關鍵問題就變為收斂因子μμ和梯度因子的求解。

(1). 收斂因子μμ控制收斂的速率,其取值範圍:

這裡寫圖片描述

其中λλ為相關矩陣的最大特徵值。當它趨於無窮大,加權適向量收斂於最優維納解。

(2).梯度因子

近似計算得到梯度因子表示式:

這裡寫圖片描述

因此權係數最終表達為:

這裡寫圖片描述

1.3. 演算法實施步驟

  1. 設定濾波器W(k)初值: 
    這裡寫圖片描述

  2. 計算濾波器實際輸出的估計值: 
    這裡寫圖片描述

  3. 計算估算誤差: 
    這裡寫圖片描述
  4. 更新k+1時刻濾波器係數 
    這裡寫圖片描述
  5. k變為k+1,重複步驟2-4

1.4. MATLAB模擬結果

這裡寫圖片描述

說明: 加入白噪聲訊號,信噪比設定為snr = 5,降噪前後的信噪比為: 
這裡寫圖片描述

二. LMS的自適應陷波器

2.1. 基本原理

自適應陷波器法適用於單色干擾噪聲,如單頻正弦波噪聲,希望陷波器的特性理想,缺口的肩部任意窄,可馬上進入平坦區域。

2.2.原理概述

拿有兩個權係數的濾波器為例,輸入訊號為純語音和單頻干擾的疊加:

這裡寫圖片描述

取樣後,

這裡寫圖片描述

其中, 
這裡寫圖片描述

參考輸入為標準正弦波和餘弦波的疊加, 
這裡寫圖片描述;

x1, x2可以構成任意幅度和相位的正弦波y(n)。 
通過LMS自適應係數調整,使y(n)在幅度和相位與原始輸入的單頻干擾相同,從而清除單頻干擾訊號,達到陷波效果。

2.3. MATLAB模擬結果

這裡寫圖片描述

說明:加入信噪比為snr = 5的單頻噪聲,濾波前後信噪比數值大小:

這裡寫圖片描述

三. 基本譜減法

Tip: 由於基本譜減法帶來明顯噪聲殘留,需要進行演算法改進。

3.1. 基本原理

語音訊號處理最常用的方法,在頻域進行降噪。

3.2. 演算法步驟

這裡寫圖片描述

語音訊號對相位不靈敏,將譜減前的相位資訊用到譜減後的訊號中,在求出譜減後的幅值之後,結合相角,就能用IFFT求出譜減後的語音訊號。

3.3. MATLAB模擬結果

這裡寫圖片描述

說明:加入信噪比為snr = 5的白噪聲,降噪後聽到明顯的噪聲殘留。

這裡寫圖片描述

所以需要在譜減法的基礎上做一些改進,傳統的方法包括S.F.Boll提出的方法,E.Zavarehei根據其理論寫了MATLAB函式 SSBoll79。具體細節這裡就先不讓談。

四. 維納濾波降噪

4.1. 基本原理

維納濾波器降噪即設計一個數字濾波器h(n),使得輸入的帶噪語音訊號與純淨語音訊號的誤差滿足LMS準則

4.2. 當輸入為y(n)時,濾波器輸出為:

這裡寫圖片描述

根據最小均方誤差準則,要使得: 
這裡寫圖片描述

取極小值。 
經過一系列推導,得到維納濾波器譜估計器: 
這裡寫圖片描述

引入先驗信噪比和後驗信噪比,定義:

這裡寫圖片描述 
這裡寫圖片描述

譜估計器可以進一步寫成:

這裡寫圖片描述 
(基於先驗信噪比的維納濾波器譜估計器) 
這裡寫圖片描述 
(基於後驗信噪比的維納濾波器譜估計器)

引入平滑引數得到先驗信噪比和後驗信噪比的關係: 
這裡寫圖片描述

表明由滴i-1幀的先驗信噪比和第i幀的後驗信噪比,就可求出第i幀的先驗信噪比,一旦已知本幀的先驗信噪比,就能匯出本幀的維納濾波器傳遞函式Hi(k)。 
這裡寫圖片描述 
進一步可匯出維納濾波器的輸出: 
這裡寫圖片描述

4.3. MATLAB模擬結果

這裡寫圖片描述 
說明: 輸入信噪比為10dB的白噪聲,降噪前後的信噪比: 
這裡寫圖片描述

參考文獻

[1]. 宋知用. Matlab在語音訊號分析與合成中的應用[M]. 北京:北京航空航天大學出版社:2013.