




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、DSP原理及應(yīng)用大作業(yè) 快速傅立葉變換 專業(yè):XXXX姓名:XXX 學(xué)號:08201081XX指導(dǎo)老師:XX時間:2XXXX快速傅立葉變換(FFT)實驗一、設(shè)計目的 1.在理論學(xué)習(xí)的基礎(chǔ)上,通過本實驗,加深對FFT的理解,熟悉FFT子程序。 2.熟悉應(yīng)用FFT對典型信號進行頻譜分析的方法 3.了解應(yīng)用FFT進行信號頻譜分析過程中可能出現(xiàn)的問題以便在實際中正確應(yīng)用FFT。4.掌握用窗函數(shù)法設(shè)計 FFT 快速傅里葉的原理和方法; 5熟悉 FFT 快速傅里葉特性;二、所需設(shè)備 PC兼容機一臺,操作系統(tǒng)為 Windows2000( 或 Windows98 , WindowsXP ,以下默認(rèn)為 Wind
2、ows2000),安裝 Code Composer Studio 2.0 軟件。三、設(shè)計內(nèi)容 本試驗要求使用 FFT 變換求一個時域信號的頻域特性,并從這個頻域特性求出該信號的頻率值。使用c語言實現(xiàn)對 FFT 算法的仿真,然后使用 DSP 匯編語言實現(xiàn)對 FFT 的 DSP編程。本實驗采用軟件仿真,不需設(shè)置硬件。四、設(shè)計原理 在各種信號序列中,有限長序列信號處理占有很重要地位,對有限長序列,我們可以使用離散Fouier變換(DFT)。這一變換不但可以很好的反映序列的頻譜特性,而且易于用快速算法在計算機上實現(xiàn),當(dāng)序列x(n)的長度為N時,它的DFT定義為:,反換為:有限長序列的DFT是其Z變換在
3、單位圓上的等距采樣,或者是序列Fourier變換的等距采樣,因此可以用于序列的譜分析。 FFT并不是與DFT不同的另一種變換,而是為了減少DFT運算次數(shù)的一種快速算法。它是對變換式進行一次次分解,使其成為若干小點數(shù)的組合,從而減少運算量。常用的FFT是以2為基數(shù)的,其長度 N=2L,它的效率高,程序簡單使用非常方便,當(dāng)要變換的序列長度不等于2的整數(shù)次方時,為了使用以2為基數(shù)的FFT,可以用末位補零的方法,使其長度延長至2的整數(shù)次方。在運用DFT進行頻譜分析的過程中可能產(chǎn)生幾種問題:(1) 混疊 序列的頻譜時被采樣信號的周期延拓,當(dāng)采樣速率不滿足Ny
4、quist定理時,就會發(fā)生頻譜混疊,使得采樣后的信號序列頻譜不能真實的反映原信號的頻譜。 避免混疊現(xiàn)象的唯一方法是保證采樣速率足夠高,使頻譜混疊現(xiàn)象不致出現(xiàn),即在確定采樣頻率之前,必須對頻譜的性質(zhì)有所了解,在一般情況下,為了保證高于折疊頻率的分量不會出現(xiàn),在采樣前,先用低通模擬濾波器對信號進行濾波。(2) 泄漏 實際中我們往往用截短的序列來近似很長的甚至是無限長的序列,這樣可以使用較短的DFT來對信號進行頻譜分析,這種截短等價于給原信號序列乘以一個矩形窗函數(shù),也相當(dāng)于在頻域?qū)⑿盘柕念l譜和矩形窗函數(shù)的頻譜卷積,所得的頻譜是原序列頻譜的擴展。 泄漏不能與混疊完全分開,因為泄漏導(dǎo)致頻譜的擴
5、展,從而造成混疊。為了減少泄漏的影響,可以選擇適當(dāng)?shù)拇昂瘮?shù)使頻譜的擴散減至最小。 DFT是對單位圓上Z變換的均勻采樣,所以它不可能將頻譜視為一個連續(xù)函數(shù),就一定意義上看,用DFT來觀察頻譜就好像通過一個柵欄來觀看一個圖景一樣,只能在離散點上看到真實的頻譜,這樣就有可能發(fā)生一些頻譜的峰點或谷點被“尖樁的柵欄”所攔住,不能別我們觀察到。 減小柵欄效應(yīng)的一個方法就是借助于在原序列的末端填補一些零值,從而變動DFT的點數(shù),這一方法實際上是人為地改變了對真實頻譜采樣的點數(shù)和位置,相當(dāng)于搬動了每一根“尖樁柵欄”的位置,從而使得頻譜的峰點或谷點暴露出來。 用FF
6、T可以實現(xiàn)兩個序列的圓周卷積。在一定的條件下,可以使圓周卷積等于線性卷積。一般情況,設(shè)兩個序列的長度分別為N1和N2,要使圓周卷積等于線性卷積的充要條件是FFT的長度 NN1N2 對于長度不足N的兩個序列,分別將他們補零延長到N。 當(dāng)兩個序列中有一個序列比較長的時候,我們可以采用分段卷積的方法。有兩種方法: 重疊相加法。將長序列分成與短序列相仿的片段,分別用FFT對它們作線性卷積,再將分段卷積各段重疊的部分相加構(gòu)成總的卷積輸出。 重疊保留法。這種方法在長序列分段時,段與段之間保留有互相重疊的部分,在構(gòu)成總的卷積輸出時只需將各段線性卷積部分直接連接起來,省掉了輸出段的直接相加。 (3) 柵欄效應(yīng)
7、 DFT是對單位圓上z變換的均勻采樣,所以它不可能將頻譜視為一個連續(xù) 函數(shù),從某種意義上講,用DFT來觀察頻譜就如同通過一個柵欄來觀看景象一 樣,只能在離散點上看到真實的頻譜,這樣一些頻譜的峰點或谷點就可能被"尖 樁的柵欄"擋住,也就是正好落在兩個離散采樣點之間,不能被觀察到。減小柵欄效應(yīng)的一個方法是在原序列的末端填補一些零值,從而變動DFT 的點數(shù),這一方法實際上是人為地改變了對真實頻譜采樣的點數(shù)和位置,相當(dāng)于 搬動了"尖樁柵欄"的位置,從而使得頻譜的峰點或谷點暴露出來。(4) DFT的分辨率填補零值可以改變對DTFT的采樣密度,人們常常有一種誤解,認(rèn)
8、為補零可以提高DFT的頻率分辨率,事實上,DFT的頻率分辨率通常規(guī)定為,這里的N是指信號的有效長度,而不是補零的長度。不同長度的,其DTFT的結(jié)果是不同的;而相同長度的盡管補零的長度不同其DTFT的結(jié)果應(yīng)是相同的,它們的DFT只是反映了對相同的DTFT采用了不同的采樣密度??偨Y(jié)一下: 要提高DFT分辨率只有增加信號的截取長度N。五、實驗內(nèi)容1、原來的程序下做出的圖將程序改為四個節(jié)點時的程序如下:#include "myapp.h"#include "csedu.h"#include "scancode.h"#include <m
9、ath.h>#define PI 3.1415926#define SAMPLENUMBER 128void InitForFFT();void MakeWave();int INPUTSAMPLENUMBER,DATASAMPLENUMBER;float fWaveRSAMPLENUMBER,fWaveISAMPLENUMBER,wSAMPLENUMBER;float sin_tabSAMPLENUMBER,cos_tabSAMPLENUMBER;main()int i;InitForFFT();MakeWave();for ( i=0;i<SAMPLENUMBER;i+ )fW
10、aveRi=INPUTi;fWaveIi=0.0f;wi=0.0f;FFT(fWaveR,fWaveI);for ( i=0;i<SAMPLENUMBER;i+ )DATAi=wi;while ( 1 );/ break pointvoid FFT(float dataRSAMPLENUMBER,float dataISAMPLENUMBER)int x0,x1,x2,x3,xx;int i,j,k,b,p,L;float TR,TI,temp;/* following code invert sequence */for ( i=0;i<SAMPLENUMBER;i+ )x0=x
11、1=x2=x3=0;x0=i&0x01; x1=(i/2)&0x01; x2=(i/4)&0x01; x3=(i/8)&0x01;xx=x0*8+x1*4+x2*2+x3;dataIxx=dataRi;for ( i=0;i<SAMPLENUMBER;i+ )dataRi=dataIi; dataIi=0; /* following code FFT */for ( L=1;L<=4;L+ ) /* for(1) */b=1; i=L-1;while ( i>0 ) b=b*2; i-; /* b= 2(L-1) */for ( j=0;j&l
12、t;=b-1;j+ ) /* for (2) */p=1; i=4-L;while ( i>0 ) /* p=pow(2,8-L)*j; */p=p*2; i-;p=p*j;for ( k=j;k<128;k=k+2*b ) /* for (3) */TR=dataRk; TI=dataIk; temp=dataRk+b;dataRk=dataRk+dataRk+b*cos_tabp+dataIk+b*sin_tabp;dataIk=dataIk-dataRk+b*sin_tabp+dataIk+b*cos_tabp;dataRk+b=TR-dataRk+b*cos_tabp-da
13、taIk+b*sin_tabp;dataIk+b=TI+temp*sin_tabp-dataIk+b*cos_tabp; /* END for (3) */ /* END for (2) */ /* END for (1) */for ( i=0;i<SAMPLENUMBER/2;i+ ) wi=sqrt(dataRi*dataRi+dataIi*dataIi); /* END FFT */void InitForFFT()int i;for ( i=0;i<SAMPLENUMBER;i+ )sin_tabi=sin(PI*2*i/SAMPLENUMBER);cos_tabi=co
14、s(PI*2*i/SAMPLENUMBER);void MakeWave()int i;for ( i=0;i<SAMPLENUMBER;i+ )INPUTi=sin(PI*2*i/SAMPLENUMBER*3)*1024;得出的圖為: 程序改為八個節(jié)點時:#include "myapp.h"#include "csedu.h"#include "scancode.h"#include <math.h>#define PI 3.1415926#define SAMPLENUMBER 128void InitForFF
15、T();void MakeWave();int INPUTSAMPLENUMBER,DATASAMPLENUMBER;float fWaveRSAMPLENUMBER,fWaveISAMPLENUMBER,wSAMPLENUMBER;float sin_tabSAMPLENUMBER,cos_tabSAMPLENUMBER;main()int i;InitForFFT();MakeWave();for ( i=0;i<SAMPLENUMBER;i+ )fWaveRi=INPUTi;fWaveIi=0.0f;wi=0.0f;FFT(fWaveR,fWaveI);for ( i=0;i<
16、;SAMPLENUMBER;i+ )DATAi=wi;while ( 1 );/ break pointvoid FFT(float dataRSAMPLENUMBER,float dataISAMPLENUMBER)int x0,x1,x2,x3,x4,x5,x6,x7,xx;int i,j,k,b,p,L;float TR,TI,temp;/* following code invert sequence */for ( i=0;i<SAMPLENUMBER;i+ )x0=x1=x2=x3=x4=x5=x6=0;x0=i&0x01; x1=(i/2)&0x01; x2
17、=(i/4)&0x01; x3=(i/8)&0x01;x4=(i/16)&0x01; x5=(i/32)&0x01; x6=(i/64)&0x01;x7=(i/128)&x01;xx=x0*128+x1*64+x2*32+x3*16+x4*8+x5*4+x6*2+x7;dataIxx=dataRi;for ( i=0;i<SAMPLENUMBER;i+ )dataRi=dataIi; dataIi=0; /* following code FFT */for ( L=1;L<=8;L+ ) /* for(1) */b=1; i=L-1
18、;while ( i>0 ) b=b*2; i-; /* b= 2(L-1) */for ( j=0;j<=b-1;j+ ) /* for (2) */p=1; i=8-L;while ( i>0 ) /* p=pow(2,8-L)*j; */p=p*2; i-;p=p*j;for ( k=j;k<128;k=k+2*b ) /* for (3) */TR=dataRk; TI=dataIk; temp=dataRk+b;dataRk=dataRk+dataRk+b*cos_tabp+dataIk+b*sin_tabp;dataIk=dataIk-dataRk+b*sin_tabp+dataIk+b*cos_tabp;data
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆山東省聊城市莘縣一中高三(最后沖刺)英語試卷含答案
- 2025-2030堅果項目商業(yè)計劃書
- 2025-2030創(chuàng)意玩具市場發(fā)展分析及行業(yè)投資戰(zhàn)略研究報告
- 2025年山東省莒縣第一中學(xué)高三下學(xué)期聯(lián)考英語試題含答案
- 四川省廣安市武勝烈面中學(xué)2025屆高三壓軸卷英語試卷含答案
- 安徽省黃山市2025年高三第一次調(diào)研測試英語試卷含答案
- 2025-2030中國雪紡繡花面料行業(yè)發(fā)展分析及競爭策略與趨勢預(yù)測研究報告
- 2025-2030中國隱蔽式水箱行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 海南省天一大聯(lián)考2025年高三3月份模擬考試英語試題含答案
- 2025屆重慶市萬州二中高考英語一模試卷含答案
- 李定信先生著作《訂正中國羅盤52層詳解(中國羅盤大更正)》 x
- DB43∕T 1817-2020 公路貨運車輛不停車超限超載檢測系統(tǒng)建設(shè)與使用技術(shù)規(guī)范
- 蠕變、應(yīng)力松弛、滯后和內(nèi)耗講解
- 道德經(jīng)試題及答案
- (精心整理)歷年南京中考英語常考詞匯及例句解析
- 冷卻水預(yù)處理(預(yù)膜)方案
- 鋼筆書法比賽用紙精美五言格
- 完全競爭市場習(xí)題及答案
- 高中氧化還原反應(yīng)方程式大全
- 27.3實際問題與一元二次方程(傳播問題)
- 河套大學(xué)晉升本科高等學(xué)校工作實施方案
評論
0/150
提交評論