基于LMS最小均方誤差法的語音降噪北工大_第1頁
基于LMS最小均方誤差法的語音降噪北工大_第2頁
基于LMS最小均方誤差法的語音降噪北工大_第3頁
基于LMS最小均方誤差法的語音降噪北工大_第4頁
基于LMS最小均方誤差法的語音降噪北工大_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、代碼調(diào)試通過 摘 要信號的傳輸過程中會夾雜很多噪音,為了消除這些噪音而引入濾波器。傳統(tǒng)濾波器只能針對具有某種特性的噪音進(jìn)行濾波,有一定的限制性。而自適應(yīng)濾波可以在一定程度上解決這種問題,自適應(yīng)濾波器的特點是依靠遞歸算法使輸出信號收斂于理想信號。本課題采用的是基于LMS算法的最小均方誤差法對帶噪語音信號進(jìn)行濾波,通過用梯度的估計值代替梯度的精確值實現(xiàn)最速下降,自適應(yīng)地尋找最佳權(quán)系數(shù),使得輸出信號貼近于理想信號,完成濾波。關(guān)鍵詞:自適應(yīng)濾波 LMS算法 最速下降 目 錄摘 要1一、課題背景和簡介2二、訓(xùn)練目的及內(nèi)容3三、LMS最小均方誤差法實現(xiàn)自適應(yīng)濾波器的方法3四、實驗設(shè)計及實施過程5(一)濾波

2、器結(jié)構(gòu)設(shè)計5(二)LMS算法的實現(xiàn)6(三)逐幀音頻處理7(四)整體程序流程圖8五、遇到問題及實驗結(jié)果分析8(一)遇到問題及解決方法8(二)實驗結(jié)果分析9六、實驗總結(jié)11七、參考文獻(xiàn)12附 錄13一、 課題背景和簡介語音信號往往攜帶很多噪音,為了獲得理想的語音信號需要對原始信號進(jìn)行濾波。傳統(tǒng)濾波器只能針對某類噪聲進(jìn)行定性濾除,沒有普適性,而自適應(yīng)濾波器是符合某種準(zhǔn)則的最佳濾波器。它是通過對環(huán)境進(jìn)行學(xué)習(xí),逐漸達(dá)到或逼近最優(yōu)濾波器。由于學(xué)習(xí)過程中有“導(dǎo)師”存在,因此它是一種具有監(jiān)督學(xué)習(xí)功能的過程。本課題是基于LMS最小均方誤差法的語音降噪,是自適應(yīng)濾波的一種。LMS算法通過用梯度的估計值代替梯度的精

3、確值,自適應(yīng)地調(diào)整權(quán)矢量,使誤差信號區(qū)域降低趨勢,從而使濾波器逐漸達(dá)到或接近最優(yōu)。二、 訓(xùn)練目的及內(nèi)容1.通過利用c程序?qū)崿F(xiàn)數(shù)字信號處理的相關(guān)功能,鞏固對信號處理原理知識的理解,提高實際編程和處理數(shù)據(jù)的綜合能力,初步培養(yǎng)在解決信號處理實際應(yīng)用問題中所應(yīng)具備的基本素質(zhì)和要求。2.培養(yǎng)研發(fā)能力,通過設(shè)計實現(xiàn)不同的信號處理問題,初步掌握在給定條件和功能的情況下,實現(xiàn)合理設(shè)計算法結(jié)構(gòu)的能力。3.提高文獻(xiàn)整理和資料查詢的能力。通過課下對相關(guān)語音知識的學(xué)習(xí)和理解,培養(yǎng)快速解決實際問題的能力,并在文獻(xiàn)整理的過程中學(xué)會科技文獻(xiàn)的寫作,提高語言表達(dá)能力。4.根據(jù)語音信號的特點,利用不同信噪比的高斯白噪聲對語音進(jìn)

4、行加噪,利用LMS最小均方誤差法設(shè)計實現(xiàn)自適應(yīng)濾波器,并討論語音狀態(tài)變化下的收斂情況。三、 LMS最小均方誤差法實現(xiàn)自適應(yīng)濾波器的方法圖 1描述的是一個通用的自適應(yīng)濾波估計問題圖 1自適應(yīng)濾波原理圖中表示FIR濾波器,為輸入信號,為期望信號,為自適應(yīng)濾波器的輸出信號(其中為濾波器的加權(quán)系數(shù)),首先給FIR濾波器賦予任意的初始權(quán)系數(shù),每得到一個輸出,即可得到誤差信號,將其作為校正量,自適應(yīng)地調(diào)整權(quán)矢量,使誤差信號趨于降低的趨勢,從而使濾波器逐漸達(dá)到或接近最優(yōu)。調(diào)整權(quán)矢量的過程,是用最速下降法尋找最佳權(quán)系數(shù)和最小均方差的過程。均方誤差為:的梯度估計值用一條樣本曲線進(jìn)行計算。通過最速下降法用迭代算法

5、求解最佳權(quán)系數(shù):,為調(diào)整步長的常數(shù),它控制著系統(tǒng)的穩(wěn)定性和自適應(yīng)的收斂速度,負(fù)梯度的方向即為性能函數(shù)減小最快的方向。因為,可得到 故FIR濾波器中第個權(quán)系數(shù)的計算公式為LMS自適應(yīng)濾波器的總框圖如下圖 2 LMS自適應(yīng)濾波器總計算框圖 LMS算法加權(quán)矢量的統(tǒng)計平均值的過渡過程和最陡下降法加權(quán)矢量的過渡過程是一樣的。換句話說,LMS算法加權(quán)矢量是在最陡下降法加權(quán)矢量附近隨機(jī)變化的,其統(tǒng)計平均值等于最陡下降法加權(quán)矢量,那么,其收斂條件同樣為在滿足收斂條件下,才有實際中,通常選得很小,選四、 實驗設(shè)計及實施過程自適應(yīng)濾波器需要由自適應(yīng)算法通過調(diào)整濾波器系數(shù)實現(xiàn)濾波,因而在設(shè)計上需要分為FIR濾波器的

6、設(shè)計和自適應(yīng)調(diào)整濾波器的LMS算法。(一) 濾波器結(jié)構(gòu)設(shè)計1. FIR濾波器原理FIR濾波器是有限長單位沖激響應(yīng)濾波器,它可以在保證任意幅頻特性的同時具有嚴(yán)格的線性相頻特性,同時其單位抽樣響應(yīng)是有限長的,因而濾波器是穩(wěn)定的系統(tǒng)。在自適應(yīng)處理中要求信號在傳輸過程中不能有明顯相位失真,F(xiàn)IR濾波器可以做到線性相位滿足此要求。FIR濾波器的數(shù)學(xué)表達(dá)式為:其中N為FIR濾波器的抽頭數(shù),x(n)為第n時刻的輸入樣本,h(i)為FIR濾波器的第i級抽頭系數(shù),簡言之就是將每節(jié)的輸出加權(quán)累加,其相應(yīng)的z變換為:本課題用如圖所示的直接型FIR濾波器實現(xiàn)即可圖 3 直接型FIR濾波器2. 程序?qū)崿F(xiàn)程序?qū)崿F(xiàn)時和理論

7、的卷積略有區(qū)別,加權(quán)系數(shù)w是由LMS算法計算得到的,具有自適應(yīng)性,和其后序號無關(guān),用wi表示當(dāng)前加權(quán)系數(shù)即可。for(i=n-9;i<n+1;i+)wi=wi+2*mu*en*xi;/更新加權(quán)數(shù)組yn=yn+wi*xi;/計算當(dāng)前y(二) LMS算法的實現(xiàn)1. 自適應(yīng)濾波步長選擇根據(jù)前面LMS的介紹可知,步長的收斂條件為:在編程實現(xiàn)時,的選擇尤為重要。若選擇過大,雖然在一開始尋找最優(yōu)解時會很迅速,但在不斷接近最優(yōu)解時卻變得很慢;若選擇過小,雖然很精確,但尋找的速度也很慢。在程序的開始,先選定N=10,根據(jù)計算的誤差值e判斷當(dāng)前距離最優(yōu)解的距離后再改變值。2. 抽頭系數(shù)的自適應(yīng)改變抽頭系數(shù)

8、即為加權(quán)系數(shù),每計算出一個新誤差e后,需要更新一遍,以便在下次計算輸出時使用,其控制原理如圖所示圖 4 FIR濾波器中第i個權(quán)系數(shù)的控制電路圖3. 程序?qū)崿F(xiàn)for(n=9;n<ONCE+9;n+)for(i=n-9;i<n+1;i+)mu=mu+xi*xi;/mu的取值if(mu!=0)mu=mu/10;mu=1/(temp*mu);/尋找合適步長 elseyn-9=sn-9;en-9=sn-9-yn-9;max=en-9*en-9;while(max>0.0001)for(i=n-9;i<n+1;i+)wi=wi+2*mu*en-9*xi;/更新加權(quán)數(shù)組t=t+wi*

9、xi;/計算當(dāng)前yyn-9=t;en-9=sn-9-t;/計算當(dāng)前誤差max=en-9*en-9;t=0;if(max<0.0001)break; else/判斷mu取多大合適 追求速度與精度尋找碗底 if(max>=1)temp=temp;elseif(max<1&&max>=0.1)temp=temp*2;else temp=temp*4;for(i=n-9;i<n+1;i+)wi=0.01;mu=0;(三) 逐幀音頻處理1. 實現(xiàn)原理語音信號在處理中普遍為逐幀處理,為了實現(xiàn)這一功能,每次需讀入一幀數(shù)據(jù)。由于LMS算法在實現(xiàn)過程中是用前N個帶噪

10、音頻信號數(shù)據(jù)去估計第N點的輸出數(shù)據(jù)(這里設(shè)N=10),因此第一次讀入的數(shù)據(jù)(第一幀)無法估計前9點的輸出數(shù)據(jù)。根據(jù)語音信號的傳輸特點(重要的信息不會在最開始出現(xiàn))我們可以假設(shè)前9點的數(shù)據(jù)為無效數(shù)據(jù),故可在第一幀帶噪信號前先加9個0值的數(shù)據(jù),以便完成每幀信號的處理。而在以后每幀數(shù)據(jù)處理前,先將上一幀最后9點的數(shù)據(jù)補(bǔ)到這幀的起始處。2. 程序?qū)崿F(xiàn)for(m=0;m<9;m+)x2m=xONCE+m-1;/ONCE=160for(m=0;m<ONCE;m+)x2m+9=xm;for(m=0;m<ONCE+9;m+)xm=x2m;/把前一組數(shù)的后9點移到最開始(四) 整體程序流程圖是

11、否處理所有信號及完當(dāng)前幀結(jié)束更新當(dāng)前加權(quán)數(shù)組計算當(dāng)前輸出誤差足夠小更新誤差與步長開始定義文件指針,并打開待處理文件讀入一幀數(shù)據(jù)補(bǔ)接前一數(shù)組后九點計算u的取值NYN五、 遇到問題及實驗結(jié)果分析(一) 遇到問題及解決方法1. mu的取值程序?qū)崿F(xiàn)過程中雖然是對每幀數(shù)據(jù)進(jìn)行處理,但一次只對10個數(shù)據(jù)進(jìn)行操作,因此mu的取值需要在操作前定義,根據(jù)其公式可知,若分母為0(即此次讀入的10個數(shù)據(jù)均為0),計算機(jī)運(yùn)算時會出現(xiàn)無窮大值。為了解決這一問題,在計算時需加入判斷語句,當(dāng)其為0時直接令輸出yn=xn。2. 數(shù)組的定義在讀入語音信號時,每次讀入一幀(160個數(shù)據(jù)),數(shù)據(jù)類型為short類型。但在后面數(shù)據(jù)處

12、理時計算涉及到double類型,故在讀入數(shù)據(jù)時需將數(shù)據(jù)存入short類型的數(shù)組中,在數(shù)據(jù)處理前轉(zhuǎn)換成double類型,輸出前再轉(zhuǎn)換為short。3. 每幀數(shù)據(jù)的處理雖然讀入時是160個數(shù)據(jù),但實際處理時有169個數(shù)據(jù)(每幀前補(bǔ)上次末尾的9個數(shù)據(jù)),因此循環(huán)應(yīng)為for(n=9;n<160+9;n+),起初編程時循環(huán)到160就結(jié)束了,結(jié)果輸出音頻仍含有雜音,觀察后發(fā)現(xiàn)第一幀的后10個點的值不正確,導(dǎo)致后面的輸出值也有問題,改正后輸出正常。4. 權(quán)值的更新在循環(huán)計算yn時,權(quán)值的更新需要用到與對應(yīng)xi的上次計算得到的wi以及上次循環(huán)得到的en,對于此次的wi用的en是相同的。當(dāng)wi的變化足夠小

13、后可計算下一個y,這里的判斷語句可以求wi的均方差,但其計算量較大,這里可以用yn與理想信號dn間的誤差en代替,其作用是等同的。當(dāng)en足夠小時,可進(jìn)入下一次yn的計算,注意誤差有可能出現(xiàn)負(fù)值,故在判斷時將其平方后再判斷。為了方便后續(xù)計算以及防止出現(xiàn)不理想的wi,在進(jìn)入下次計算前需將wi重置為0.01。(二) 實驗結(jié)果分析本課題分別對信噪比為6、10和20的白噪聲加噪噪音進(jìn)行濾波。其濾波原理相同,在結(jié)果分析中僅以信噪比為6的噪音信號進(jìn)行分析,其他信噪比情況不再贅述。圖5 原始信號波形圖與頻譜分析圖.圖6 信噪比為6的白噪音加噪后信號及其頻譜分析圖從上圖可看出加入白噪聲后的信號能量在頻譜圖上均勻

14、分布,這是因為白噪聲的功率譜密度為一常數(shù)。從聽覺上可以聽到來自各個頻段的一種非常嘈雜的噪聲。通過濾波器后可以得到如下濾出信號:圖7 信噪比為6的濾出信號及其頻譜分析圖無論是從波形還是頻譜圖上均可看出濾波器已將噪音濾除,且降噪效果顯著,這是因為在對誤差做約束時取值為0.0001,若改成其他值濾波效果也會有所改變。圖8 信噪比為10的白噪音加噪后信號圖9 信噪比為10的濾出信號圖10 信噪比為20的白噪音加噪后信號圖11 信噪比為20的濾出信號從對各個信噪比的濾波可以看出,基于LMS最小均方誤差的語音降噪對于各個信噪比均適用,而且濾波效果顯著。六、 實驗總結(jié)本次課題與語音信號處理課程的知識有密切聯(lián)

15、系,我由于未選修過這門課,在入門階段對其了解比較吃力,但在賈老師的幫助下,我不但理解了這個復(fù)雜的數(shù)學(xué)模型,也通過編程實現(xiàn)了LMS算法,在此非常感謝賈老師的幫助!在編程過程中我沒有借鑒過其他程序,然而一直按照自己的思路走很容易遇到問題,既有對模型的理解錯誤也有語法錯誤,對我的編程能力也是極大的考驗。查錯是一項艱巨的任務(wù),通過分步執(zhí)行以及添加變量窗口實時觀測輸出數(shù)據(jù)可以幫助排查絕大多數(shù)問題,我的實踐能力也得以提高。通過此次實驗可以發(fā)現(xiàn)LMS算法也存在一些問題,即收斂速度與穩(wěn)態(tài)誤差間的矛盾。具體來說就是最優(yōu)步長、收斂速度與準(zhǔn)確度間的問題。當(dāng)步長較大時,在誤差ei較大時收斂速度很快,但若ei較小時(即

16、準(zhǔn)確度較高時)尋找最優(yōu)解會很慢;步長選擇很小時,雖然保證了精準(zhǔn)度,但收斂速度太慢。為了解決這一問題,我在編程時對不同區(qū)間的誤差分別處理,即在每次比較完是否符合當(dāng)前精準(zhǔn)度后根據(jù)當(dāng)前誤差情況決定步長,當(dāng)誤差較大時,將步長設(shè)大些,當(dāng)誤差較小時,再將步長設(shè)小些,這樣能以較快的收斂速度達(dá)到很高的準(zhǔn)確度。七、 參考文獻(xiàn)1 自適應(yīng)濾波器原理 赫金 著,鄭寶玉等譯,電子工業(yè)出版社,2010年5月印附 錄#include "math.h"#include "stdio.h"#define BUFLEN 10#define ONCE 160void main() FILE

17、*fp,*fpwhite,*fpout;short x1ONCE;short s1ONCE;short y1ONCE;double wONCE+9;double eONCE;double xONCE+9;double x2ONCE+9;double sONCE;double yONCE;double N=12;int nump=0;int i=0,m=0,p=0;int n; /定義yndouble max=1.0,temp=0.0;double mu=0.0,t=0.0;temp=N;fp=fopen("f1.dat","rb");fpwhite=fo

18、pen("f1-white-10.dat","rb");fpout=fopen("f1-white-10-out.dat","wb");for(p=0;p<400;p+)fread(s1,sizeof(short),ONCE,fp);fread(x1,sizeof(short),ONCE,fpwhite);/讀取一幀數(shù)據(jù)for(i=0;i<ONCE+9;i+) x2i=0.0;xi=0.0;wi=0.01;for(i=0;i<ONCE;i+)xi=x1i;si=s1i;/short轉(zhuǎn)換成doublefor(m=0;m<9;m+)x2m=xONCE+m-1;for(m=0;m<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論