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

下載本文檔

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

文檔簡介

1、信號處理與分析課程設(shè)計報告 第 19 頁 共 19 頁信號處理與分析課程設(shè)計報告 項目名稱:基于LMS最小均方誤差法的語音降噪姓名:07021102 臺斯瑤 07021106 王金泊指導(dǎo)教師:李如瑋目錄一、課題背景和簡介2二、訓(xùn)練目的3三、訓(xùn)練內(nèi)容3四、最小均方差LMS實現(xiàn)自適應(yīng)濾波器的方法介紹3五、實驗設(shè)計及實施過程41、濾波器結(jié)構(gòu)設(shè)計52、高斯白噪聲的實現(xiàn)方法63、LMS算法的實現(xiàn)8六、實驗結(jié)果分析9七、從實驗中分析LMS算法的缺點11八、實驗完整程序12九、參考文獻15十、特別鳴謝16一、課題背景和簡介本課題是根據(jù)電子信息類本科生信號處理和分析課程的學(xué)習(xí)內(nèi)容和語音信號處理的實際應(yīng)用相結(jié)合

2、而設(shè)計的實踐性訓(xùn)練。課程訓(xùn)練以數(shù)字信號處理為基礎(chǔ),在掌握基本原理的同時,理解語音信號的相關(guān)知識并結(jié)合實際應(yīng)用實現(xiàn)對語音信號的分析和處理。濾波是一種數(shù)字信號處理操作,其目的是為了處理某個信號,以便提取出輸入信號中所包含的期望信息。在數(shù)字信號處理課程中,我們基本掌握了一些線性濾波器的設(shè)計方法,有固定的規(guī)范可遵循。而在我們的實際生活中,充滿了偶然和隨機,時不變?yōu)V波器已不能夠滿足更好效果的濾波。在這種情況下,我們就需要自適應(yīng)濾波器。可以看到,隨著數(shù)字超大規(guī)模集成技術(shù)的發(fā)展,自適應(yīng)濾波技術(shù)在很多領(lǐng)域得到了廣泛應(yīng)用。最小均方算法是一種搜索算法,他通過對目標(biāo)函數(shù)進行適當(dāng)?shù)恼{(diào)整,簡化了對梯度相量的計算。由于其

3、計算簡單性,LMS算法以及其它一些相關(guān)算法已廣泛應(yīng)用于自適應(yīng)濾波的各種應(yīng)用中。而LMS算法是自適應(yīng)濾波理論中應(yīng)用最廣泛的算法。這主要歸因于其地計算復(fù)雜度、在平穩(wěn)環(huán)境中的收斂性、其均值無偏地收斂到維納解以及利用有限精度算法實現(xiàn)時的穩(wěn)定特性等等。對LMS最小均方算法的學(xué)習(xí),將加深我們對數(shù)字信號處理課程的理解,同時對我們今后濾波技術(shù)的應(yīng)用奠定了鞏固的基礎(chǔ)。二、訓(xùn)練目的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)不同的信號處理問題,初步掌握在給定

4、條件和功能的情況下,實現(xiàn)合理設(shè)計算法結(jié)構(gòu)的能力。3.提高文獻整理和資料查詢的能力。通過課下對相關(guān)語音知識的學(xué)習(xí)和理解,培養(yǎng)快速解決實際問題的能力,并在文獻整理的過程中學(xué)會科技文獻的寫作,提高語言表達能力。三、訓(xùn)練內(nèi)容根據(jù)語音信號的特點,利用不同信噪比的高斯白噪聲對語音進行加噪,利用LMS最小均方誤差法設(shè)計實現(xiàn)自適應(yīng)濾波器,并討論語音狀態(tài)變化下的收斂情況。四、最小均方差LMS實現(xiàn)自適應(yīng)濾波器的方法介紹自適應(yīng)濾波器是符合某種準(zhǔn)則的最佳濾波器。它是通過對環(huán)境進行學(xué)習(xí),逐漸達到或逼近最優(yōu)濾波器。由于學(xué)習(xí)過程中有“導(dǎo)師”存在,因此它是一種具有監(jiān)督學(xué)習(xí)功能的過程。當(dāng)濾波器的應(yīng)用環(huán)境發(fā)生緩慢變化時,相當(dāng)于濾

5、波器應(yīng)用于非平穩(wěn)環(huán)境,但環(huán)境變化比學(xué)習(xí)速度更緩慢時,自適應(yīng)濾波器能夠自適應(yīng)地跟蹤這種非平穩(wěn)變化。開始時,給FIR濾波器賦予任意的初始權(quán)系數(shù),在每個時刻,用當(dāng)前權(quán)系數(shù)對輸入信號進行濾波運算,產(chǎn)生輸出信號,輸出信號與期望響應(yīng)的差定義為誤差信號,由誤差信號與輸入信號矢量一起構(gòu)造一個校正量,自適應(yīng)地調(diào)整權(quán)矢量,使誤差信號趨于降低的趨勢,從而使濾波器逐漸達到或接近最優(yōu)。LMS最小均方誤差的方法是由最速下降法推導(dǎo)而出。最速下降法需要求出其梯度的精確值,要求輸入信號和期望信號平穩(wěn),且 (Rak=抽頭輸入向量u(n)與期望響應(yīng)d(n)的互相關(guān)向量;Rxx=抽頭輸入向量u(n)的相關(guān)矩陣;W=抽頭權(quán)向量)要首先

6、估計 和 ,這給具體實現(xiàn)帶來很大困難,因此該算法還不是真正意義的自適應(yīng)濾波算法,但討論最陡下降法是有意義,由最陡下降法可以很直觀地導(dǎo)出一類自適應(yīng)濾波算法 - LMS算法。LMS算法的基本思想:調(diào)整濾波器自身參數(shù),使濾波器能夠自適應(yīng)地跟蹤這種輸入信號的變化,實現(xiàn)最優(yōu)濾波。當(dāng)橫向濾波器運行在實數(shù)據(jù)的情況下,該算法大體上可描述為:抽頭權(quán)向量更新值=老的抽頭權(quán)向量值+學(xué)習(xí)速率參數(shù)*抽頭輸入向量*誤差信號其中誤差信號定義為期望向量與抽頭輸入向量所產(chǎn)生的橫向濾波器的實際向量之差設(shè)輸入信號為u(n),LMS算法理論推導(dǎo)過程如下:濾波器輸出y(n)為: (1)由誤差定義得: (2)使用最小均方誤差法,得代價函

7、數(shù)為均方誤差為: (3)式(3)中J 是濾波器的系數(shù)k w (k = 0,1,2,)的函數(shù)。通過選擇最優(yōu)的系數(shù),使J 達到最小值。定義梯度向量為J , (4)另外,最陡下降迭代方程為:w(n +1) = w(n) J (n) (5)LMS 是直接利用單次采樣數(shù)據(jù)獲得的e2 (n)來代替均方誤差J (n),從而進行梯度估計,每次迭代時計梯度估計為: (6)式(6)代入式(5),得到系數(shù)向量自適應(yīng)迭代法:w(n +1) = w(n) J (n) = w(n) + 2e(n)u(n) (7)式(7)稱最小均方自適應(yīng)算法LMS。五、實驗設(shè)計及實施過程 自適應(yīng)濾波器的基本原理:所謂自適應(yīng)濾波,就是利用前

8、一時刻已經(jīng)獲得的濾波器參數(shù)的結(jié)果,自動的調(diào)節(jié)顯示課的濾波器的參數(shù),以適應(yīng)信號和噪聲未知的或隨時間變化的統(tǒng)計特性,從而實現(xiàn)最優(yōu)濾波。自適應(yīng)濾波器實質(zhì)上就是一種能調(diào)節(jié)器自身傳輸特性已達到最優(yōu)的維納濾波器。自適應(yīng)濾波器不需要關(guān)于輸入信號的先驗知識,計算量小,特別是用于實時處理。 由于無法預(yù)知信號和噪聲的特性,必須設(shè)計自適應(yīng)濾波器,以跟蹤信號和噪聲的變化。自適應(yīng)濾波器的特性變化是由自適應(yīng)算法通過調(diào)整濾波器系數(shù)來實現(xiàn)的。一般而言,自適應(yīng)濾波器有兩部分組成,已是濾波器的結(jié)構(gòu),二是調(diào)整濾波器系數(shù)的自適應(yīng)算法。本實驗的濾波結(jié)構(gòu)采用FIR濾波器設(shè)計,自適應(yīng)算法采用LMS最小均方差算法。總體結(jié)構(gòu)圖如圖1圖 11、

9、濾波器結(jié)構(gòu)設(shè)計FIR濾波器原理FIR濾波器的數(shù)學(xué)表達式為 (8)式中:N為FIR濾波器的抽頭數(shù);x(n)為第n時刻的輸入樣本;h(i)為FIR濾波器第i級抽頭系數(shù)。在本實驗中,即為w(n);其相應(yīng)的z變換為: (9) 式中:z-i為N-1階多項式。普通的直接型FIR濾波器結(jié)構(gòu)如圖2所示。圖2 FIR濾波器直線型結(jié)構(gòu) 在本實驗中,抽頭系數(shù)會根據(jù)每一次的輸出進行自適應(yīng)修改。程序?qū)崿F(xiàn)對輸入信號xi和濾波系數(shù)wi進行時域的卷積和,求出輸出信號y.for(i=0;i<BUFLEN;i+) y=y+xi*wi; /實際輸出信號的合成 2、高斯白噪聲的實現(xiàn)方法高斯白噪聲的原理高斯白噪聲:具有高斯分布的

10、噪聲就成為高斯噪聲,而它的功率譜密度又是均勻分布的,則稱它為高斯白噪聲。在本實驗中,我組針對高斯白噪聲的特點進行了程序的設(shè)計。首先確定的我們需要的白噪聲的期望值、方差、和噪聲數(shù)組的長度,通過一個專門產(chǎn)生白噪聲的種子文件進行設(shè)計,利用如下公式,最終得到了所需要的白噪聲信號。根據(jù)定理:設(shè)為n 個相互獨立的均勻分布的隨機數(shù),其期望為,方差為,有中心極限定理可知(如果n個獨立隨機變量的分布式相同的,并且具有有限的數(shù)學(xué)期望和方差,當(dāng)n無窮大時,它們之和的分布趨近于高斯分布;即使n個獨立隨機變量不是相同分布的,當(dāng)n無窮大時,如果滿足任意一個隨機變量都不占優(yōu)或?qū)偷挠绊懽銐蛐?,那么它們之和的分布仍然趨于高?/p>

11、分布),當(dāng)n充分大時,有 (10)程序?qū)崿F(xiàn)方法for(k=0;k<=n-1;k+) t=0.0; for(i=1;i<=12;i+) /取=1/12次 *r=(*r)*w+v; /求r,s=65536.0; w=2053.0;v=13849.0; *r=*r-m*s; /求整數(shù)后余下的數(shù) t=t+(*r)/s; /累加到t中 ak=u+g*(t-6.0); /放到ak中,產(chǎn)生高斯白噪聲過程 信噪比的改變 為了測試噪聲信號的改變對LMS算法最終效果的影響,我組對噪聲信號進行了信號能量強度處理。處理方法即使通過給已產(chǎn)生的信號乘上一個系數(shù),通過系數(shù)值的改變來調(diào)節(jié)信號的能量。系數(shù)值得計算方

12、法為 (11)式中,SNR為信噪比,es為原始聲音的均值,ns為噪聲的均值。程序?qū)崿F(xiàn):snrate=sqrt(es/ns/pow(10,SNR/10); /開根號 pow 計算10的SNR/10次方的值,求能量,為了達到信噪比20DB而乘上的系數(shù),SNR為信噪比3、LMS算法的實現(xiàn) LMS最小均方差算法的原理已在前文給出。本實驗就以該原理為基礎(chǔ)進行設(shè)計。在此不多贅述。需要注意幾點: LMS的收斂性LMS算法的收斂因子必須在如下范圍內(nèi)選?。?(12)0<<2/(MSmax) 其中Smax是抽頭輸入u(n)的功率譜密度的最大值,而濾波器長度M為中到大在滿足收斂條件下,才有 (13)即,

13、值得合理選取確保了系數(shù)向量的平均值接近于最優(yōu)系數(shù)向量W。實際中,通常選得很小,選 (14)在實驗中,選定N=10實驗程序為:mu=mu+sn*sn;mu=1/(10*(mu); /sn為加噪信號,即為式(14)中x 抽頭系數(shù)的自適應(yīng)改變抽頭系數(shù)的自適應(yīng)改變是LMS算法中的一個重要部分,沒有他的改變,自適應(yīng)也就無從談起。我們設(shè)計的濾波器權(quán)系數(shù)控制電路如圖3 圖3 FIR 濾波器中第個權(quán)系數(shù)的控制電路圖根據(jù)權(quán)系數(shù)的計算方法 (15)我們得到程序設(shè)計:for(i=0;i<BUFLEN;i+) wi=wi+e*xi*mu; /做下一信號的權(quán)值 初始化抽頭權(quán)向量為0六、實驗結(jié)果分析 圖 4 原始聲

14、音信號頻譜圖圖5 高斯白噪聲頻譜圖圖6 加噪聲之后的頻譜圖 圖7 濾波后的語譜圖Map1Map2Map3圖8 matlab 仿真圖Map1 原始聲音 Map2 加了噪聲后的語音Map3 降噪后的語音七、從實驗中分析LMS算法的缺點LMS保證算法收斂并減少失調(diào)系數(shù),通常把收斂因子取得比較小,這樣使它存在收斂慢的缺點;如果值取的過大,可以快速達到收斂,但是很大程度上影響系統(tǒng)穩(wěn)定度。另外,在具體實現(xiàn)權(quán)系數(shù)調(diào)整時,運算精度非常重要,因為該算法對抽頭輸入相關(guān)矩陣條件數(shù)(矩陣的條件數(shù)定義為最大特征值與最小特征值之比)的變化比較敏感。要求所用的乘法器和加法器有很高的精度,這樣增加了成本,降低了運算速度,針對

15、這些問題,國內(nèi)外提出了一些改進算法。如LMS2算法、LMSQ算法、MLMS(修正的LMS)算法、TDO和LMF算法等。 并且,LMS算法是對誤差的一種跟蹤,所以對于處理比較嘈雜的語音信號的時候,誤差誤差隨時在變,所以并不是能做到很好的跟蹤。而對于誤差變化不大的信號,如正弦波等,就能做到很好的無差跟蹤,幾乎可以全部復(fù)原原信號。因為作為自適應(yīng)濾波器,對輸出有一個學(xué)習(xí)以及追蹤的功能,但是條件是外部環(huán)境變化要比學(xué)習(xí)速度緩慢。當(dāng)處理連續(xù)變化的語音信號時,LMS算法并不能很好的應(yīng)用,在于誤差e2(n)在不斷的變化。從MATLAB時域圖中我們可以看到降噪效果很好,但是用COOLEDITOR進行頻譜分析的時候

16、就可以看出,對于連續(xù)變化的語音部分,LMS并不是能很好的降噪。 八、實驗完整程序LMS(主函數(shù))部分:#include "math.h"#include "stdio.h"#define SNR 20 /信噪比#define BUFLEN 50#define RNSLEN 50000void grns(double,double,double *,int,double *);main() FILE *fp, *fps,*fpx, *fpy, *fpe1,*fpe2,*fpes,*fpxs,*fpys; short s1=0; double s=0.0;

17、double sn=0.0; double u=0; double g=1.0; double r=1.0; double ran=0; double es=0.0; double snrate=0.0; double ns=0.0; double xBUFLEN=0.0; double dBUFLEN=0.0; short xs=0; short ys=0; double wBUFLEN=0.0; double y=0.0; double mu=1e-8; /初始化 double e=0.0; /初始化 double rnsbuffRNSLEN=0.0; int i=0,j=0; int n

18、ump=0; fp=fopen("tone.dat","rb"); /打開文件 fpes=fopen("tone.dat","rb"); fps=fopen("s.dat","wb"); fpx=fopen("x.dat","wb"); fpy=fopen("y.dat","wb"); fpe1=fopen("e1.dat","wb"); fpe2=fope

19、n("e2.dat","wb"); fpxs=fopen("xs.dat","wb"); fpys=fopen("ys.dat","wb"); nump=fread(&s1,sizeof(short),1,fpes); /sizeof(short)長度運算符 &s1取地址 fread從fpes所指向的文件的位置讀取長度為sizeof(short)的1個數(shù)據(jù)項,存到s1所指向的內(nèi)存單元,返回所讀的數(shù)據(jù)項個數(shù),文件結(jié)束或出錯返回0 es=0.0;i=0; whil

20、e(nump=1) es=es+s1*s1; /平方后相加 i=i+1; nump=fread(&s1,sizeof(short),1,fpes); /指針自動加1 es=es/i; /平方和的平均值 grns(u,g,&r,RNSLEN,rnsbuff); /調(diào)的外部的函數(shù) 高斯白噪聲 ns=0.0; for(i=0;i<RNSLEN;i+) ns=ns+rnsbuffi*rnsbuffi; / 高斯白噪聲的平方和 ns=ns/RNSLEN; /平方求和的平均數(shù) snrate=sqrt(es/ns/pow(10,SNR/10); /開根號 pow 計算10的SNR/10

21、次方的值,求能量,為了達到信噪比20DB而乘上的系數(shù),SNR為信噪比/*/ nump=fread(&s1,sizeof(short),1,fp); /把fp所指的數(shù)據(jù)讀入s1中 while(nump=1) s=(double)s1; /s1轉(zhuǎn)為雙精放到s中,就是純凈語音信號 fwrite(&s,sizeof(double),1,fps); /把s中的文件寫到fps中 grns(u,g,&r,1,&ran); /ran就是剛才的那個ak,即高斯噪聲信號 ran=ran*snrate;/重新計算后的噪聲 sn=s+ran;mu=0; /步長先設(shè)定為0,為了能讓信號對

22、齊,sn為合成信號 fwrite(&sn,sizeof(double),1,fpx); fwrite(&ran,sizeof(double),1,fpe1); for(i=BUFLEN-1;i>0;i-) xi=xi-1;di=di-1;mu=mu+xi*xi; /算一個數(shù)就往后擠一個數(shù)再算 x0=sn; d0=s; mu=mu+sn*sn; mu=1/(10*(mu); /xi是合成信號,di是純凈語音信號。/求步長,通過Ex2來求, y=0.0; for(i=0;i<BUFLEN;i+) y=y+xi*wi; /實際輸出信號的合成 e=d0-y; /真實信號和實際輸出信號的差值 for(i=0;i<BUFLEN;i+) wi=wi+e*xi*mu; /做下一信號的權(quán)值 xs=(short)x0; ys=(short)y; fwrit

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論