語音信號的FIR濾波器處理課程設計_第1頁
語音信號的FIR濾波器處理課程設計_第2頁
語音信號的FIR濾波器處理課程設計_第3頁
語音信號的FIR濾波器處理課程設計_第4頁
語音信號的FIR濾波器處理課程設計_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、0DSP 課程設計報告 語音信號的語音信號的 FIRFIR 濾波器處理濾波器處理姓 名: 張偉檳 班 級: 12 電信 3 學 號: 201231190425 指導老師: 徐梅宣 日期: 2015.06.022014.06.19 華南農業(yè)大學電子工程學院摘 要隨著信息與數字技術的發(fā)展,數字信號處理已經成為當今極其重要而學科與技術領域之一。它在通信、語音、圖像、自動控制、雷達、軍事、航空航天、醫(yī)療和家用電器等眾多領域得到了廣泛的應用。在數字信號處理的基本方法中,通常會涉及到變換、濾波、頻譜分析、調制解調和編碼解碼等處理。其中濾波是應用非常廣泛的一個環(huán)節(jié),數字濾波器的理論和相關設計也一直都是人們研

2、究的重點之一。FIR 濾波器的是非遞歸的,穩(wěn)定性好,精度高;更重要的是,F(xiàn)IR 濾波器在滿足幅頻響應要求的同時,可以獲得嚴格的線性相位特征。因此,它在高保真的信號處理,如數字音頻、圖像處理、數據傳輸和生物醫(yī)學等領域得到廣泛應用。CSS 集成開發(fā)環(huán)境使用 CCS 內置的軟件仿真 simulator 對程序進行編譯,調試和運行,主要用于檢測目標程序運行的正確性和連貫性,并能通過仿真器與目標板連接,在目標板上實時觀察效果。在本次設計中,我們選擇的課題是基于 DSP 的語言信號的 FIR 濾波處理。首先利用 MATLAB 進行了仿真,得到濾波前后的時域波形和頻譜。然后通過調用MATLAB 的分析工具

3、FDATOOL,根據仿真結果導出了濾波器的相關參數,將原始信號數據和濾波器參數輸入 CCS 進行 DSP 編程。最后在 DSP 中實現(xiàn)了 FIR 低通濾波,并通過 CCS 的頻譜分析功能查看了最終 DSP 的濾波效果。關鍵詞關鍵詞: : 語音信號處理 FIR 濾波 MATLAB CCS目 錄1.前言前言.4 42.設計需求設計需求.4 43.3.濾波器設計原理介紹濾波器設計原理介紹 .4 43.1 數字濾波器設計原理.4 43.2 FIR 濾波器的基本結構 .5 53.3 濾波器的特點 .5 53.4 窗函數的介紹 .6 64.FIR4.FIR 濾波器的設計濾波器的設計 .7 74.1 FIR

4、 濾波器設計 .7 74.2 窗函數設計的基本方法 .7 74.3 濾波器的算法實現(xiàn).7 71z5.5.FIRFIR 濾波器的濾波器的 MATLABMATLAB 設計設計 .8 86.6.FIRFIR 濾波器的濾波器的 DSPDSP 實現(xiàn)實現(xiàn) .10106.1 CCS 設計與仿真 .10106.2 CCS 仿真結果 .13136.6.調試問題及解決辦法調試問題及解決辦法 .16167.7.設計感想設計感想 .1616參考文獻參考文獻 .17178.8.附錄附錄 .171731 前言通過語音傳遞信息是人類最重要、最有效、最常用、最方便的交換信息的方法,因此,如何去除混雜在有用信號中的噪聲并獲得低

5、損甚至無損的有用語音信號成為語音信號處理(即用數字信號處理技術和語言學知識對語音信號進行處理并提取有用信息)至關重要的問題。但是因為語音識別技術對信號噪聲非常敏感,系統(tǒng)本身和器件對系統(tǒng)的處理結果都有著不可忽視的干擾,因此很難實現(xiàn)效果較好的語音信號濾波處理。而 DSP 因為運算速度快,片上資源豐富和能夠實現(xiàn)復雜的線性和非線性算法等特性,在語音信號處理技術方面有明顯的優(yōu)勢。在數字信號處理中,濾波占有極其重要的地位。數字濾波是語音信號處理、圖像處理、模式識別、頻譜分析等應用的基本處理算法。用 DSP 芯片實現(xiàn)數字濾波除了具有穩(wěn)定性好、精確度高、不受環(huán)境影響等優(yōu)點外,還具有靈活性好等特點。本文介紹了數

6、字濾波器的設計基礎及用窗函數法設計 FIR 濾波器的方法,運用 MATHLAB 語言實現(xiàn)了低通濾波器的設計并用 CCS 2.0 進行觀察效果。2 設計需求 1)濾波器的設計的原理介紹 2)FIR 濾波器的設計 3)FIR 濾波器的 DSP 實現(xiàn) 4)濾波器為低通濾波器,并用用語音信號通過濾波器后查看濾波效果是否達到設計要求,進行 FIR 濾波器的檢驗根據老師的的意見,我們自己擬定了濾波器的指標:Fs=8000hz,Wp=1500 Hz,Ws=2000 Hz,通帶波紋為 0.01,阻帶波紋為 0.1,N=37。3 濾波器設計原理介紹3.1 數字濾波器的設計原理數字濾波器的設計問題就是尋找一組系數

7、 ai 和 bi,使得其性能在某種意義上逼近所要求的特性。如果在 s 平面上去逼近,就得到模擬濾波器,如果在z 平面上去逼近,則得到數字濾波器。數字濾波是將輸入的信號序列,按規(guī)定的算法進行處理,從而得到所期望的輸出序列。一個線性位移不變系統(tǒng)的輸出序列y(n)和輸入序列x(n)之間的關系,應滿足常系數線性差分方程: (2.1.1) x(n)為輸入序列,y(n)為輸出序列,ai、bi 為濾波器系數,N為濾波器的階數。3.2 FIRFIR 濾波器的基本結構在式 2.1.1 中,若所有的ai均為 0,則得 FIR 濾波器的差分方程: (2.2.1)對式(2.2.1)進行 z 變換,可得 FIR 濾波器

8、的傳遞函數: (2.2.2)由此可得到 FIR 濾波器的結構如圖 1 所示。FIR 濾波器的單位沖擊響應 h(n)是一個有限長序列。若 h(n)為實數,且滿足偶對稱或奇對稱的條件,即 h(n)=h(N-1-n)或 h(n)=-h(N-1-n),則 FIR 濾波器具有線性相位特性。3.3 濾波器的特點優(yōu)點:0 )()()(110ninyainxbnyMiiNii )()(10Niiinxbny )()()(10NiiizbzXzYzH(1)很容易獲得嚴格的線性相位,避免被處理的信號產生相位失真,這一特點在寬頻帶信號處理、陣列信號處理、數據傳輸等系統(tǒng)中非常重要;(2)可以在幅度特性隨意設計的同時,

9、保證精確、嚴格的線性相位,還可得到多帶幅頻特性;(3)極點全部在原點(永遠穩(wěn)定) ,無穩(wěn)定性問題;(4)任何一個非因果的有限長序列,總可以通過一定的延時,轉變?yōu)橐蚬蛄校砸蚬钥偸菨M足;(5)無反饋運算,運算誤差小。 缺點:(1)因為無極點,要獲得好的過渡帶特性,需以較高的階數為代價;(2)無法利用模擬濾波器的設計結果,一般無解析設計公式,要借助計算機輔助設計程序完成。3.4 窗函數簡介數字信號處理的主要數學工具是傅里葉變換。而傅里葉變換是研究整個時間域和頻率域的關系。不過,當運用計算機實現(xiàn)工程測試信號處理時,不可能對無限長的信號進行測量和運算,而是取其有限的時間片段進行分析。做法是從信號

10、中截取一個時間片段,然后用觀察的信號時間片段進行周期延拓處理,得到虛擬的無限長的信號,然后就可以對信號進行傅里葉變換、相關分析等數學處理。無線長的信號被截斷以后,其頻譜發(fā)生了畸變,原來集中在 f(0)處的能量被分散到兩個較寬的頻帶中去了(這種現(xiàn)象稱之為頻譜能量泄漏) 。為了減少頻譜能量泄漏,可采用不同的截取函數對信號進行截短,截斷函數稱為窗函數,簡稱為窗。信號截短以后產生的能量泄漏現(xiàn)象是必然的,因為窗函數 w(t)是一個頻帶無限的函數,所以即使原信號 x(t)是有限帶寬信號,而在截短以后也必然成為無限帶寬的函數,即信號在頻域的能量與分布被擴展了。又從采樣定理可知,無論采樣頻率多高,只要信號一經

11、截短,就不可避免地引起混疊,因此信號截短必然導致一些誤差。泄漏與窗函數頻譜的兩側旁瓣有關,如果兩側瓣的高度趨于零,而使能量相對集中在主瓣,就可以較為接近于真實的頻譜,為此,在時間域中可采用不同的窗函數來截短信號。4 FIR 濾波器的設計4.1 FIR 濾波器設計FIR 濾波器的設計問題在于尋求一系統(tǒng)函數 ,使其應 逼近濾波器要求的理想頻率響應 。4.2 窗函數設計的基本方法從時域出發(fā),設計 h(n)逼近理想 hd(n),設理想濾波器的單位脈沖響應為 hd(n),則有所求得的 一般是無限長的,且是非因果的。要想得到一個因果的有限長的濾波器 h(n),最直接的方法是截斷 ,或者說用一個窗口函數 對

12、 進行加窗處理,即 。因此,應選擇合適的窗函數。4.3 濾波器的算法實現(xiàn)1zFIR 濾波器的輸出表達式為式中,為濾波器系數;x(n)表示濾波器在 n 時刻的輸入;y(n)為 n 時刻的輸出。它的基本算法是一種乘法-累加運算,即不斷地輸入樣本 x(n),經過延時后,再進行乘法-累加,最后輸出濾波結果 y(n)。1)線性緩沖區(qū)法10)()(NnnznhzH)(jdeHdeeHnhenheHjnjddjnndjd)(21)()()()(nhd)(nhd)(nw)(nhd)()()(nwnhnhdjezjzHeH| )()(線性緩沖區(qū)法又稱延遲線法。其特點:對于 N 級的 FIR 濾波器,在數據存儲器

13、中開辟一個 N 單元的緩沖區(qū)(滑窗) ,用來存放最新的 N 個輸入樣本;從最老樣本開始取數,每取一個樣本后,將此樣本向下移位;讀完最后一個樣本后,輸入最新樣本存入緩沖區(qū)的頂部。2)循環(huán)緩沖區(qū)法本次設計的 FIR 濾波器所采用的就是循環(huán)緩沖區(qū)法。循環(huán)緩沖區(qū)法的特點如下:對于 N 級 FIR 濾波器,在數據存儲器中開辟一個 N 單元的緩沖區(qū)(滑窗) ,用來存放最新的 N 個輸入樣本;從最新樣本開始取數;讀完最后一個樣本(最老樣本)后,輸入最新樣本來代替最老樣本,而其他數據位置不變;用片內 BK(循環(huán)緩沖區(qū)長度)寄存器對緩沖區(qū)進行間接尋址,使循環(huán)緩沖區(qū)地址首尾相鄰。5 FIR 濾波器的 matlab

14、 實現(xiàn)MATLAB 是一種功能強、效率高、便于進行科學和工程計算的交互式軟件包,它集數值分析、矩陣運算、信號處理和圖形顯示于一體,為用戶提供了方便、友好的界面環(huán)境。MATLAB 中的工具箱(Toolbox)包含了許多實用程序。它提供了多種 FIR濾波器設計方法。fir1 函數用來設計標準頻率響應的基于窗函數的 FIR 濾波器,可實現(xiàn)加窗線性相位 FIR 數字濾波器的設計。具體語法如下: b=fir1(n,Wn) b=fir1(n,Wn, ftype) b=fir1(n,Wn,Window) b=fir1(n,Wn, ftype ,Window)其中 n 為濾波器的階數;Wn 為濾波器的截止頻率

15、; ftype 為用來決定濾波器的類型,當 ftype=high 時,可設計高通濾波器;當 ftype=stop 時,可設計帶阻濾波器。Window 為用來指定濾波器采用的窗函數類型,Window 參數可采用的窗口函數有: Boxcar,Hanning,Bartlett,Blackman,Kasier 和 chebwin等,其默認時為 Hamming 窗,從而得到濾波器的系數。 fir2 函數用來設計有任意頻率響應的各種加窗 FIR 濾波器。具體語法如下: b=fir2(n,f,m) b=fir2(n,f,m,Window) b=fir2(n,f,m,npt) b=fir2(n,f,m,npt

16、,Window) b=fir2(n,f,m,npt,lap) b=fir2(n,f,m,nptt,lap,Window) 其中 n 為濾波器的階數;f 為頻率點矢量;m 為幅度點矢量;Window 用來指定所使用的窗函數類型,默認值為漢明(Hamming)窗;npt 用來指定 fir2函數對頻率響應進行內插的點數;lap 用來指定 fir2 函數在重復頻率點附近插入的區(qū)域大小,從而得到濾波器的系數。具體的代碼見附錄,輸入之后可以導出濾波器的參數。CCS 的輸入語音信號的輔助產生(MATLAB)1、理想情況:FIR 濾波器的輸入數據存儲在 indata.dat 文件中,共 300 個點,由頻率為

17、 1000Hz 和 2500Hz 的兩個余弦波疊加而成2、為了驗證設計的可行性,自身錄制一個語音片段,主要信號為低頻成分,其中夾雜著高頻成分的噪聲。在 MATLAB 中產生一個 indata.dat 文件供 CCS 輸入,在 matlab 中輸入的代碼為:x=wavread(D:matlabworkXINZAO.wav); %語音文件的路徑 y=fft(x,1024);plot(abs(y(1:1000); %采樣 100 個點x1=round(1024*x);fid=fopen(indata.dat,w); %生成一個 dat 文件fprintf(fid,1651 1 00E2 1000n)

18、;fprintf(fid,%dn,x1); %輸出 6 FIR 濾波器的 DSP 實現(xiàn)CCS 是一種針對 TMS320 系列 DSP 的集成開發(fā)環(huán)境,在 windows 操作系統(tǒng)下,采用圖形接口界面,提供環(huán)境配置、源文件編輯、程序調試、跟蹤和分析等工具,提供了配置、建立、調試、跟蹤和分析程序的工具,從而完成編輯、編譯、鏈接、調試和數據分析等工作。6.1 CCS 設計與仿真圖 1 CCS 匯編程序流程圖開始DSP 初始化將濾波系數分別存放在存儲單元 bn 中從第 L 個數開始讀入抽樣值抽樣值存入在存儲單元 xn 中將 bn 中和 xn 中對應的值相乘累加bn*xn+ACC=ACCL=L+1輸出結

19、果6.1.1 程序分析 FIR 濾波器的 DSP 實現(xiàn)主要有線性緩沖區(qū)法和循環(huán)緩沖區(qū)法兩種。 線性緩沖區(qū)法又稱延遲線法。其特點: (1)對于 N 級的 FIR 濾波器,在數據存儲器中開辟一個 N 單元的緩沖區(qū)(滑窗) ,用來存放最新的 N 個輸入樣本; (2)從最老樣本開始取數,每取一個樣本后,將此樣本向下移位; (3)讀完最后一個樣本后,輸入最新樣本存入緩沖區(qū)的頂部。 循環(huán)緩沖區(qū)法的特點如下: (1)對于 N 級 FIR 濾波器,在數據存儲器中開辟一個 N 單元的緩沖區(qū)(滑窗),用來存放最新的 N 個輸入樣本; (2)從最新樣本開始取數; (3)讀完最后一個樣本(最老樣本)后,輸入最新樣本來

20、代替最老樣本,而其他數據位置不變; (4)用片內 BK(循環(huán)緩沖區(qū)長度)寄存器對緩沖區(qū)進行間接尋址,使循環(huán)緩沖區(qū)地址首尾相鄰。 本次設計的 FIR 濾波器所采用的就是循環(huán)緩沖區(qū)法。對 DSP 進行初始化,并設置好存儲單元。為數字濾波作準備,將預先設計好的有 N 個抽頭的 FIR 數字濾波器的沖激響應序列 h(n)中的 N 個數值放入存儲單元 bn 中,從 indata 數據存儲段中讀入抽樣值,將抽樣值逐一放入存儲單元xn 中。主要循環(huán)程序如下:STM #-1,AR0RPTZ A,# ;將 ACC 累加器清零,循環(huán)次MAC *AR2+0%,*AR3+0%,ASTH A,*(yn) ;保存輸出 M

21、VKD *(yn),*AR5+將累加器清零,將存儲單元 bn 與 xn 值對應相乘并累加到 ACC 中,循環(huán)次將 ACC 中的值保存輸出。再從 indata 數據存儲段中讀入一個新的數據,代替原來的最老樣本 MVDD *AR4+,*AR2+0% ,重復循環(huán)直到數據全部處理完。最后將處理完的數據輸入到 outdata 數據存儲段中。6.1.2 數據輸入 MATLAB 輔助 DSP 實現(xiàn) FIR 濾波器濾波 ,其總體過程是為 DSP 中編寫處理程序提供濾波器系數。在 MATLAB 中利用濾波器設計、分析工具( FDATOOL) ,根據指定的濾波器性能快速設計一個 FIR ,然后把濾波器系數以頭文件

22、形式導入CCS 中,頭文件中包含 MATLAB 輔助 DSP 實現(xiàn) FIR 數字濾波器的階數和系數數組,在 MATLAB 中調試、運行 DSP 程序并顯示、分析處理后的數據。 打開 CCS IDE 中 file 的 data 加載初始化 data 數據,在 Address 中輸入數據存放的起始地址 indata,并設置數據棧長度。6.1.3 運行程序仿真運行程序,查看輸入輸出波形,修改相應參數進行調試。在 View 的 Graph 中單擊 Time/frequency 出現(xiàn) graph property dialog 框。將顯示類型,圖形名稱,起始地址,抽樣點數,數據類型等分別進行設置,輸出各

23、種波形。輸出濾波前的信號時域波形。首先,設置如下圖所示,輸出濾波前的信號時域波形。圖 2 濾波前語音信號的時域 Graph Property Dialog 設置參數圖將 Display Type 改為 FFT Magnitude 就可以看到濾波前信號的頻譜,將Start Address 改為 outdata 就可以看到濾波后信號的時域波形和頻譜。6.2 CCS 仿真結果圖 3 濾波前語音信號的時域波形圖圖 4 濾波前信號頻譜波形圖6.2.2 FIR 濾波器濾波后的信號 圖 5 濾波后信號時域波形圖圖 6 濾波后信號頻譜圖圖 3 波前的信號,由高頻信號和原信號疊加而成的波形較為雜亂,加噪后的信號

24、幅值較大。圖 5 波后的信號,從圖上可以看到信號幅度較低,波形較為清晰。對比圖 4 圖 6 可以看到加躁后信號幅值較大,信號的能量集中在高頻段,濾波后,高頻成分大部分被濾去,信號的能量主要集中在低頻段。7 調試問題及解決方法 1)實驗時,未做初始化設置直接進入,沒有裝入 gel 文件及相關參數,導致輸入代碼編譯鏈接后不能載入程序。解決方法:初始化設置軟件仿真 cpu 和硬件仿真 cpu,并設置其中所用的 gel文件,保存并退出啟動 dsp 選擇忽略進入編輯編譯初始化界面,由軟件仿真cpu 進入編輯編譯工具。 2)在解決問題 1 后,載入程序,載入數據,并設置載入數據的初始地址和長度,運行程序,

25、發(fā)現(xiàn)程序一直卡死在某個地方,無法顯示正確的時域圖和頻域圖。解決方法:換了一臺電腦運行,發(fā)現(xiàn)問題已被解決,可能原因是自己電腦安裝時裝少了一些文件。8 設計感想 剛開始面對大作業(yè)的時候,我們都還是覺得很生疏,不知從哪里入手,盡管做過實驗。對于自己選的題目,具體需要做什么,能不能做出來,我們并不清楚。但當時間一天天過去后,我們開始認真起來了。從復習課本,再到復習實驗,相互探討編程思路,上網搜索資料,調試實驗等,我們都在努力的自學著。 首先,是學習上的鞏固。一方面,通過復習課本和實驗,對 DSP 的基礎知識又有了很大的鞏固。其次,通過對用 Mathlab 實現(xiàn) FIR 濾波器的設計,熟悉了 matla

26、b 軟件的一些相關的窗口函數以及相關功能的調用,如怎樣實現(xiàn)窗函數的調用,怎樣實現(xiàn)濾波,等等。 第二,對 FIR 的濾波器性能和作用有了更深一層的了解。FIR 濾波器的應用十分廣泛,當今許多信號處理系統(tǒng)和圖像處理系統(tǒng)等都要求信號具有線性相位特性。在這方面,F(xiàn)IR 濾波器有十分獨特的優(yōu)點,運用 mathlab 語言,我們能夠很容易的設計出具有嚴格線性相位的 FIR 濾波系統(tǒng),以及比較容易的實現(xiàn)。此外,我們還知道了 FIR 濾波器是永遠穩(wěn)定的,因為 FIR 濾波器的沖激響應是有限長序列,其系統(tǒng)函數為一個多項式,它所含的的極點多為原點。最后,也感謝徐梅宣老師的指導,跑了她辦公室兩次咨詢情況,都很耐心解

27、答,真給了一些寫報告或者軟件應用的建議。參 考 文 獻1 鄒彥,DSP原理及應用(修訂版) ,北京:電子工業(yè)出版社,20122 王宏. MATLAB6.5及其在信號處理中的應用.M. 北京:清華大學出版社,20043 高西全,丁玉美,闊永紅.數字信號處理-原理、實現(xiàn)及應用.M.北京:電子工業(yè)出版社,20064 胡廣書編著,數字信號處理理論、算法與實現(xiàn).北京:清華大學出版社,2005;附 錄1.主程序 fir.asm: .title FIR.ASM .mmregs .def start .bss yn,1 xn .usect xn,37hn .usect hn,37indata .usect i

28、ndata,300outdata .usect outdata,256 .datafir_coff: .word -10*1024/10000,-36*1024/10000 .word 0*1024/10000,65*1024/10000 .word 32*1024/10000,-88*1024/10000 .word -93*1024/10000,90*1024/10000 .word 184*1024/10000,-47*1024/10000 .word -297*1024/10000,-71*1024/10000 .word 417*1024/10000,316*1024/10000 .word -524*1024/10000,-848*1024/10000 .word 598*1024/10000,3108*1024/10000 .word 4375*1024/10000 .word 3108*1024/10000,598*1024/10000 .word -848*1024/10000,-524*1024/10000 .word 316*1024/10000,

溫馨提示

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

評論

0/150

提交評論