練習(xí)設(shè)計(jì)要求和目的_第1頁(yè)
練習(xí)設(shè)計(jì)要求和目的_第2頁(yè)
練習(xí)設(shè)計(jì)要求和目的_第3頁(yè)
練習(xí)設(shè)計(jì)要求和目的_第4頁(yè)
練習(xí)設(shè)計(jì)要求和目的_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一章 練習(xí)設(shè)計(jì)要求和目的1.1 練習(xí)設(shè)計(jì)要求1、編寫 FFT 程序, N 可以自己設(shè)置。輸入數(shù)據(jù)從 WAV 格式的音頻文件中 讀取。2、實(shí)現(xiàn)數(shù)字頻譜,以圖形的形式顯示。設(shè)計(jì)人機(jī)交互界面。3、與 Matlab 中的 fft 算法進(jìn)行比對(duì)研究,并對(duì)設(shè)計(jì)結(jié)果進(jìn)行思考和分析。4、分析編寫的 fft 算法的運(yùn)算時(shí)間,進(jìn)行實(shí)際值與估計(jì)值的比較。1.2 練習(xí)目的溫習(xí) DFT 算法原理和對(duì)基本性質(zhì)的理解, FFT 是 DFT 的一種快速算法,學(xué) 習(xí) FFT 程序結(jié)構(gòu)和編程方法。學(xué)習(xí) FFT 對(duì)語(yǔ)音信號(hào)的譜分析,了解可能出現(xiàn)的 分析誤差及其原因, 一遍在以后的應(yīng)用中正確應(yīng)用 FFT。將理論聯(lián)系應(yīng)用到實(shí)際, 為

2、接下來(lái)進(jìn)一步的學(xué)習(xí)打下基礎(chǔ)。第二章 FFT 算法實(shí)現(xiàn)原理2對(duì)于有限長(zhǎng)序列 x(n),求其 N 點(diǎn)的傅里葉變換( DFT )需要經(jīng)過(guò) N2 次復(fù)數(shù) 乘法運(yùn)算和 N*(N-1) 次復(fù)數(shù)加法運(yùn)算。隨著 N 的增加,運(yùn)算量將急劇增加,而在 實(shí)際問(wèn)題中, N 往往是較大的,如當(dāng) N=1024 時(shí),完成復(fù)數(shù)乘法和復(fù)數(shù)加法的次 數(shù)分別為百萬(wàn)以上,無(wú)論是用通用計(jì)算機(jī)還是用 DSP 芯片,都需要消耗大量的 時(shí)間和機(jī)器內(nèi)存,不能滿足實(shí)時(shí)的要求。因此, DFT 的這種運(yùn)算只能進(jìn)行理論 上的計(jì)算,不適合對(duì)實(shí)時(shí)處理要求高的場(chǎng)合。因此,研究作為 DSP 的快速算法 的 FFT 是相當(dāng)必要的,快速傅里葉變換( FFT )是

3、為提高 DFT 運(yùn)算速度而采用 的一種算法, 快速算法的種類很多, 而且目前仍在改進(jìn)和提高, 它是根據(jù)離散傅 里葉變換的奇、偶、虛、實(shí)等特性,對(duì)離散傅立葉變換的算法進(jìn)行改進(jìn)獲得的。 基于所學(xué)的 DIT-FFT 的運(yùn)算規(guī)律和編程思想以及在本科學(xué)習(xí)中對(duì) MATLAB 的學(xué) 習(xí)和使用,該練習(xí)在 MATLAB 環(huán)境下編寫基 2 DIT-FFT 算法實(shí)現(xiàn)對(duì)語(yǔ)音信號(hào)的 快速傅里葉變換, 再與 MATLAB 軟件自帶的 FFT 函數(shù)實(shí)現(xiàn)對(duì)語(yǔ)音信號(hào)的傅里葉 變換進(jìn)行比較, 如果得到的頻譜相同, 那么編寫的程序就是正確的。 其中輸入數(shù) 據(jù)從wav語(yǔ)音文件中獲取, 用MATLAB 采樣得到離散序列 x1。如果有能

4、力可以 選做系統(tǒng)人機(jī)對(duì)話界面。用 GUI 界面完成人機(jī)交互方便使用的。本課程設(shè)計(jì)主要是對(duì)數(shù)字信號(hào)的分析??焖俑道锶~變換( FFT)是為提高 DFT 運(yùn)算速度而采用的一種算法。對(duì)一個(gè)有限長(zhǎng)度序列 x(n)的 N 點(diǎn)的 DFT 為: X(k)=x(n)WknN (k=0,1,,N-1;n=0,1,,N-1;W=e-j2/N)。求出 N點(diǎn)的 DFT,需要 N2 次復(fù)數(shù)乘法運(yùn)算, N*(N-1) 次復(fù)數(shù)加法運(yùn)算。當(dāng) N 值較大時(shí),要完成的復(fù)數(shù)乘法 運(yùn)算和復(fù)數(shù)加法運(yùn)算得次數(shù)都非常多,無(wú)論是用通用計(jì)算機(jī)還是用 DSP 芯片, 都需要消耗大量的時(shí)間,不適合于對(duì)實(shí)時(shí)處理要求高的場(chǎng)合。為了能實(shí)時(shí)處理 DFT,要

5、想減少 DFT 的運(yùn)算量可以有兩個(gè)途徑:第一是降 N,N 的值減小了,運(yùn)算量就減少了;第二是利用旋轉(zhuǎn)因子的周期 性和對(duì)稱性,可約性。利用這兩個(gè)途徑實(shí)現(xiàn) DFT的快速傅里葉變換 (FFT),F(xiàn)FT 算法基本上可分為時(shí)域抽取法和頻域抽取法。W=e-j2 /N 的性質(zhì):(1)周期性WNkn WN(k N)n WNk(n N)(2)共軛對(duì)稱性WNkn WN( k)n* WNk( n) *(3)可約性WNkn WmmNkn ,WNkn WNkn/ /mm本程序是用基 2 的按時(shí)間抽取的 FFT 算法( DIT-FFT ),設(shè)序列 x(n)的長(zhǎng)度 為 N,且 N 滿足 N=2M,M 為正整數(shù)。若 N 不能

6、滿足上述關(guān)系, 可以將序列 x(n) 補(bǔ)零實(shí)現(xiàn)按時(shí)間抽取基 2-FFT 算法的基本思路是將 N 點(diǎn)序列按時(shí)間下標(biāo)的奇偶 分為兩個(gè) N/2 點(diǎn)序列,計(jì)算這兩個(gè) N/2 點(diǎn)序列的 N/2 點(diǎn) DFT,計(jì)算量可減小約 一半;每一個(gè) N/2 點(diǎn)序列按照同樣的劃分原則, 可以劃分為兩個(gè) N/4 點(diǎn)序列, 最 后,將原序列劃分為多個(gè) 2 點(diǎn)序列,將計(jì)算量大大降低。按時(shí)間下標(biāo)的奇偶將 N點(diǎn) x(n)分別抽取組成兩個(gè) N/2點(diǎn)序列,分別記為 x1(n) 和 x2(n),將 x(n) 的 DFT 轉(zhuǎn)化為 x1(n)和 x2(n)的 DFT 的計(jì)算。x(x2(r2r)1) x1x(r()r) , r 0,1, N

7、2 1x(2r 1) x2(r)2N1X k x n WNnkn0N 2 N 1 x n WNnkx nWNnkn 0,2,4.n 1,3,5.N1 N 1 22x 2r WN2rkx 2r 1 WN2r 1 kr 0,1r 0,1N 1N122x1 r WN2rkx2 r WN2r 1 kr 0,1 r 0,1利用系數(shù) WNnk 的可約性,即22 j N rk2 rk j N 2rk 2 rk W N e N e 2 WNN 1 N 122X kx1 r WNrk WNk x2 r WNrkX(1 k) WNk X(2 k), 0 k N 1用蝶形運(yùn)算可表式為:以此類推,還可以把 x1(n)

8、和 x2(n)按 n 值得奇偶分為兩個(gè)序列,這樣就達(dá)到 了降 N 得目的,從而減少了運(yùn)算量。FFT對(duì)DFT的數(shù)學(xué)運(yùn)算量改進(jìn):直接采用 DFT進(jìn)行計(jì)算,運(yùn)算量為 N2次 復(fù)數(shù)乘法和 N*(N-1) 次復(fù)數(shù)乘法。當(dāng)采用 M 次 FFT 時(shí),由 N=2M 求得 M=log 2N, 運(yùn)算流圖有 M 級(jí)蝶形,每一級(jí)都由 N/2 個(gè)蝶形運(yùn)算構(gòu)成,這樣每一級(jí)蝶形運(yùn)算 都需要 N/2 次復(fù)數(shù)乘法和 N 次復(fù)數(shù)加法。 M 級(jí)運(yùn)算共需要復(fù)數(shù)乘法次數(shù)為 C=N/2*M, 復(fù)數(shù)加法次數(shù)為 C=N*M 。當(dāng) N 值較大時(shí), FFT 減少運(yùn)算量的特點(diǎn)表 現(xiàn)的越明顯。第三章 設(shè)計(jì)具體內(nèi)容3.1 語(yǔ)音信號(hào)的讀取讀取 wav

9、文件的數(shù)據(jù)之后需要對(duì)語(yǔ)音信號(hào)進(jìn)行分析,如語(yǔ)音信號(hào)的時(shí)域分 析、頻譜分析、語(yǔ)譜圖分析。在 MATLAB 中,我們可以通過(guò) y,fs,bits=wavread( 語(yǔ)音信號(hào)路徑 ,N1 N2)語(yǔ)句。用于讀取語(yǔ)音, 采樣值放在向量 y中,fs表示采樣 頻率(Hz),bits表示采樣位數(shù)。 N1 N2表示讀取從 N1點(diǎn)到 N2點(diǎn)的值(若只有 一個(gè) N 的點(diǎn)則表示讀取前 N 點(diǎn)的采樣值)。向量 y 則就代表了一個(gè)信號(hào)(也即 一個(gè)復(fù)雜的 “函數(shù)表達(dá)式 ”)也就是說(shuō)可以像處理一個(gè)信號(hào)表達(dá)式一樣處理這個(gè)聲 音信號(hào)。3.2 語(yǔ)音信號(hào)的時(shí)頻分析利用 MATLAB 中的“wavread命”令來(lái)讀入(采集)語(yǔ)音信號(hào),

10、將它賦值給某 一向量。再對(duì)其進(jìn)行采樣,記住采樣頻率和采樣點(diǎn)數(shù)。讀取 wav 文件并進(jìn)行采 樣:b,fs,bits=wavread( inter.wav ,1024); %讀取 wav 文件 x=reshape(b,1,2048);%從 x 中返回一個(gè) 1*2048 的矩陣 x1畫(huà)出語(yǔ)音信號(hào)的時(shí)域波形,再對(duì)語(yǔ)音信號(hào)進(jìn)行頻譜分析。 MATLAB 提供了 快速傅里葉變換算法 FFT 計(jì)算 DFT 的函數(shù) fft 。3.3 算法運(yùn)算時(shí)間分析 采用 matlab中的 tic 和 toc指令計(jì)算運(yùn)行時(shí)間。 tic,t=fft(x),toc/ 測(cè)試 FFT 子程序運(yùn)算所需時(shí)間 tic,t=myditfft(

11、x)/ 測(cè)試自編 fft 算法 myditfft 運(yùn)算時(shí)間 經(jīng)過(guò)測(cè)試, matlab自帶的 FFT 對(duì)該語(yǔ)音文件的運(yùn)算時(shí)間為3.4 設(shè)計(jì)圖形用戶界面如下圖所示:圖 3-1 設(shè)計(jì)圖形用戶界面在編程開(kāi)始前一定要按照順序?qū)⒏鱾€(gè)按鍵排序好, 不然在編程的時(shí)候會(huì)顯得 沒(méi)有條理。 想要在某個(gè)按鍵實(shí)現(xiàn)什么功能, 可在按鍵界面上鼠標(biāo)右擊按鍵, 點(diǎn)擊 view backs,在點(diǎn)擊 callback,然后會(huì)自動(dòng)跟蹤到那個(gè)按鍵的位置。第四章 調(diào)試與結(jié)果 自編算法與機(jī)帶算法仿真波形比較, 我們知道 MATLAB 軟件自帶 FFT 算法, 我們可以通過(guò)比較自編算法仿真結(jié)果與機(jī)帶算法仿真結(jié)果來(lái)檢驗(yàn)自編算法的正 確性。自編算法與 FFT算法幅值比較圖如圖 4-1 所示:圖 4-1 幅值比較圖自編算法 FFT 算法頻譜分貝計(jì)較圖如圖 7 所示:圖 4-2分貝比較圖由

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論