DSP的FFT實現(xiàn)設(shè)計報告_第1頁
DSP的FFT實現(xiàn)設(shè)計報告_第2頁
DSP的FFT實現(xiàn)設(shè)計報告_第3頁
DSP的FFT實現(xiàn)設(shè)計報告_第4頁
DSP的FFT實現(xiàn)設(shè)計報告_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、DS? B湖南科技大學(xué) 信息與電氣工程學(xué)院課程設(shè)計報告題目:專業(yè):班級:姓名:學(xué)號:指導(dǎo)教師:基于DSP芯片的函數(shù)信號的FFT通信工程01班2015年12月24日信息與電氣工程學(xué)院課程設(shè)計任務(wù)書2020 學(xué)年第學(xué)期專業(yè): 通信工程 學(xué)號: 姓名: 課程設(shè)計名稱:DSP原理及應(yīng)用設(shè)計題目: 基于DSP芯片的函數(shù)信號的FFT完成期限:自 2015 年12月21日至 2015 年12月24日共1周設(shè)計依據(jù)、要求及主要內(nèi)容(可另加附頁):DSP原理及應(yīng)用課程設(shè)計是配合DSP原理及應(yīng)用理論教學(xué),為通信工程和電子信息 工程專業(yè)開設(shè)的專業(yè)技術(shù)技能設(shè)計,課程設(shè)計對通信工程和電子信息工程專業(yè)的學(xué)生是一個 非常重

2、要的實踐教學(xué)環(huán)節(jié)。通過課程設(shè)計,使學(xué)生綜合運(yùn)用DSP技術(shù)課程和其他有關(guān)先修課 程的理論和生產(chǎn)實際知識去分析和解決具體問題的能力得到提高,并使其所學(xué)知識得到進(jìn)一 步鞏固、深化和發(fā)展。通過課程設(shè)計初步培養(yǎng)學(xué)生對工程設(shè)計的獨立工作能力,學(xué)習(xí)設(shè)計的 一般方法。通過課程設(shè)計樹立正確的設(shè)計思想,提高學(xué)生分析問題、解決問題的能力。通過 課程設(shè)計訓(xùn)練學(xué)生的設(shè)計基本技能,如計算、繪圖、查閱設(shè)計資料和手冊,熟悉標(biāo)準(zhǔn)與規(guī)范 等。要求:(1)按時參加課程設(shè)計指導(dǎo),定期匯報課程設(shè)計進(jìn)展情況。(2)廣泛收集相關(guān)技術(shù)資料。(3)獨立思考,刻苦鉆研,嚴(yán)禁抄襲。(4)按時完成課程設(shè)計任務(wù),認(rèn)真、正確地書寫課程設(shè)計報告。(5)培

3、養(yǎng)實事求是、嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度和認(rèn)真的工作作風(fēng)。主要內(nèi)容:(1)熟悉DSP處理器及其結(jié)構(gòu)性能,掌握DSP芯片配套開發(fā)工具的使用方法。(2)按要求設(shè)計出硬件電路。(3)畫出硬件連接原理圖,并對硬件工作原理進(jìn)行說明。(4)給出軟件流程圖及編寫程序,每一條指令的后面附上相應(yīng)的注釋。(5)進(jìn)行軟、硬件調(diào)試,檢查是否達(dá)到相關(guān)的功能。(6)寫出調(diào)試方法。(7)設(shè)計報告結(jié)尾附上心得體會。指導(dǎo)教師(簽字):批準(zhǔn)日期:年 月 日#DS?摘要一、實驗?zāi)康?二、實驗設(shè)備4三、實驗內(nèi)容4四、實驗原理4五、FFT算法的DSP實現(xiàn)過程5六、設(shè)計步驟7七、編譯程序9八、實驗過程10九、實驗結(jié)果13十、問題與思考13d一、心得體

4、會14十二、參考文獻(xiàn)143DS? B摘要隨著計算機(jī)和微電子技術(shù)的飛速發(fā)展,基于數(shù)字信號處理的頻譜分析已經(jīng)應(yīng)用到各個領(lǐng)域并且發(fā)揮 著重要作用。信號處理方法是當(dāng)前機(jī)械設(shè)備故障診斷中重要的技術(shù)基礎(chǔ)之一,分析結(jié)果的精確程度是診斷 成功與否的關(guān)鍵因素。研究頻譜分析是當(dāng)前主要的發(fā)展方向之一。數(shù)字信號處理基本上從兩個方而來解決 信號的處理問題:一個是時域方法,即數(shù)字濾波;另一個是頻域方法,即頻譜分析.本文主要介紹了離散傅里葉變換以及快速傅里葉變換,通過對DFT以及FFT算法進(jìn)行研究,從基礎(chǔ)深 入研究和學(xué)習(xí),掌握FFT算法的關(guān)鍵。通過對DSP芯片工作原理以及開發(fā)環(huán)境的學(xué)習(xí),掌握CCS的簡單調(diào) 試和軟件仿真,在

5、DSP芯片上實現(xiàn)對信號的實時頻譜分析。關(guān)鍵字:DSP FFT算法頻譜分析一、實驗?zāi)康?. 加深對DFT算法原理和基本性質(zhì)的理解;2. 熟悉FFT的算法原理和FFT子程序的算法流程和應(yīng)用:3. 學(xué)習(xí)DSP中FFT的設(shè)計和編程思想;4. 學(xué)習(xí)使用CCS的波形觀察器觀察波形和頻譜情況:5. 熟悉FFT在實際中應(yīng)用的效果:6. 熟悉正弦、三角、方波信號的FFT變換;二、實驗設(shè)備1 . 一臺裝有CCS軟件的計算機(jī);2. DSP實驗箱:3. DSP硬件仿真器;4. 網(wǎng)絡(luò)交叉線。三、實驗內(nèi)容用DSP匯編語言及C語言進(jìn)行編程,實現(xiàn)FFT運(yùn)算、對輸入信號進(jìn)行頻譜分析。四、實驗原理信號發(fā)生器模塊可以產(chǎn)生20 Hz

6、 20 kHz的函數(shù)信號。信號波形有正弦波、三角波、方波;信號輸 岀幅度Vpp在0 “ 3. 3V范圍內(nèi)可調(diào):輸出阻抗約600Q左右。信號發(fā)生器模塊的主要函數(shù)信號發(fā)生電路及緩沖放大電路如下圖所示。侍號發(fā)生滯??焓紫群唵谓榻B函數(shù)信號發(fā)生電路的構(gòu)成,該電路的核心器件是ICL8038,它是單片多波形振蕩集成電 路,可以用很少的外囤元件產(chǎn)生髙精度正弦波、三角波和方波。其電路功能框圖如下:+Vcc其工作波形如下圖,ICL8038匚作液形陽五、FFT算法的DSP實現(xiàn)過程:DSP芯片的出現(xiàn)使FFT的實現(xiàn)方法變得更為方便。由于大多數(shù)DSP芯片都具有在單指令周期內(nèi)完成乘 法一累加操作,并且提供了專門的FFT指令

7、,使得FFT算法在DSP芯片實現(xiàn)的速度更快。FFT算法可以分為按時間抽取FFT和按頻率抽取FFT兩大類,輸入也有實數(shù)和復(fù)數(shù)之分,一般情況下, 都假泄輸入序列為復(fù)數(shù)。(一)FFT運(yùn)算序列的存儲分配FFT運(yùn)算時間是衡量DSP芯片性能的一個重要指標(biāo),因此提髙FFT的運(yùn)算速度是非常重要的。在用DSP 芯片實現(xiàn)FFT算法時,應(yīng)允許利用DSP芯片所提供的各種軟、硬件資源。如何利用DSP芯片的有限資源, 合理地安排好所使用的存儲空間是十分重要的。(二)FFT運(yùn)算的實現(xiàn)用匯編程序?qū)崿F(xiàn)FFT算法主要分為四步:1. 實現(xiàn)輸入數(shù)據(jù)的比特反轉(zhuǎn)輸入數(shù)據(jù)的比特反轉(zhuǎn)實際上就是將輸入數(shù)據(jù)進(jìn)行碼位倒置,以便在整個運(yùn)算后的輸出序

8、列是一個自然 序列。在用匯編指令進(jìn)行碼位倒置時,使用碼位倒程可以大大提高程序執(zhí)行速度和使用存儲器的效率。在 這種尋址方式下,ARO存放的整數(shù)N是FFT點的一半,一個輔助寄存器指向一個數(shù)據(jù)存放的單元。當(dāng)使用 位碼倒置尋址將ARO加到輔助寄存器時,地址將以位碼倒置的方式產(chǎn)生。2. 實現(xiàn)N點復(fù)數(shù)FFTN點復(fù)數(shù)FFT算法的實現(xiàn)可分為三個功能塊,即第一級蝶形運(yùn)算、第二級蝶形運(yùn)算、第三級至10g2N級蝶形運(yùn)算。對于任何一個2的整數(shù)幕,總可以通過M次分解最后成為2點的DFT計算。通過這樣的M次分解,可 構(gòu)成M (即10g2N)級迭代訃算,每級由N/2個蝶形運(yùn)算組成。3. 功率譜的計算用FFT計算想x(n)的

9、頻譜,即計算X (k)二x(k)-般是由實部Xr(p和虛部Xi(k)組成的復(fù)數(shù),即x (k) =XR(k)+jXi (k)因此,訃算功率譜時只需將FFT變換好的數(shù)拯,按照實部實部Xr(1c)和虛部X(k)求它們的平方和,然 后對平方和進(jìn)行開平方運(yùn)算。但是考慮到編程的難度,對于求FFT變換后數(shù)拯的最大值,不開平方也可以 找到最大值,并對功率譜的結(jié)果沒有影響,所以在實際的DSP編程中省去了開方運(yùn)算。4. 輸岀FFT結(jié)果(三) 汗編語言程序程序主體由rfft-task、bit-rev、fft和power四個子程序組成。rfft-task:主調(diào)用子程序,用來調(diào)用其他子程序,實現(xiàn)統(tǒng)一的接口。bit-re

10、v:位碼倒置子程序,用來實現(xiàn)輸入數(shù)據(jù)的比特反轉(zhuǎn)。fft: FFT算法子程序,用來完成N點FFT運(yùn)算。在運(yùn)算過程中,為避免運(yùn)算結(jié)果的溢岀,對每個蝶形 的運(yùn)算結(jié)果右務(wù)一位。fft子程序分為三個功能塊:第一級蝶形運(yùn)算、第二級蝶形運(yùn)算、第三級至至log2 N 級蝶形運(yùn)算。(四) 正弦系數(shù)表和余弦系數(shù)表:正弦系數(shù)表和余弦系數(shù)表可以由數(shù)據(jù)文件coeff. inc給出,主程序通過.copy匯編命令將正弦和余弦 系數(shù)表與程序代碼匯編在一起。在本例中,數(shù)據(jù)文件coeff. inc給岀1024復(fù)數(shù)點FFT的正弦、余弦系數(shù)各512個。利用此系數(shù)表可 完成曠1024點FFT的運(yùn)算。(五) FFT算法的模擬信號輸入:F

11、FT算法的模擬信號輸入可以采用C語言編程來生成一個文本文件sindata,然后在rfft-task匯編7DS?程序中,通過.copy匯編命令將生成的數(shù)據(jù)文件復(fù)制到數(shù)拯存儲器中,作為FFT算法的輸入數(shù)據(jù)參與FFT運(yùn)算。這種方法的優(yōu)點是程序的可讀性強(qiáng),缺點是當(dāng)輸入數(shù)據(jù)修改后,必須重新編譯、匯編和鏈接。六. 設(shè)計步驟:1. 啟動CCS,在CCS中建立一個C源文件和一個命令文件,并將這兩個文件添加到工程,再編譯并裝 載程序:閱讀Dsp原理及應(yīng)用中fft用dsp實現(xiàn)的有關(guān)程序。啟動CCS的仿真平臺的配著選項。選擇C5502Simulator。9Co* Composer Studio SetupE* Ed

12、rt 必HlpSy&Wrri Co nA gui otion& - 9 C5SO2 Device Simulator (T Inairum 命 TMS32OC55O2AvallAblQ Factory Boards t孕襯砂 lEii wa WC5510 Device Simulator WC55x VPOW2420 Platform Si mCSSxx RovJ.x CPU Cyclo Accura. WC55 Rev2.x CPU functional h. 9C55xx Rv3.0 CPU Cyc! Accura. C55x Rev3.O CPV F0oinjl Si.C55xx 1 L

13、imuUU 11 AllCSSxximulstorC55xxsimulatorC55mxsimulatorC55xxdmulatorC55xx5ru 怙 torCSSxximulstorC53MXdmuldtorPlatform Endi rm. 1|sv A QuitKano7. All |KB Factory BoardsCustom Boardsb dev; drQer to the left to odd o bowd to the 5曲em3.啟動ccs2后建立工程文件FFT. pjtI M;: A* I CZ I:a 如 o in nt COE uh i (?)?仝空t御-tLJt

14、ttpjt (Debug)Otzfiignal_l_f 60 ignol_2.f Eignal_Mnpla_f 512 pi 3.14159Z62J4.建立源文件FFT. c與鏈接文件FFT. emdC ?C幻32 De.ice Smbor(Tea%MtiunbbVTM532C5O2TM532CCMii-CodeCmrne? ZQ5 de gQbu9 GEL Qptn 0心 b Iodt gP/BSOS Wrdow HUpI x心耐tjf址:八,;:二 nm ;| PJtz)b、“px iS w-0 0SSQ0回 ath.h, 出of IMMW i no*dcfinc define .iot

15、input |eanple.l;Float fwavar cnpl*_l .ncavoi cnpla.l ,wcoMplir_l;float !52n_tb(5onpl_l;Floatj;void;void inpt_data( j;口z 紳00啣工謚3SwribftM廬仏 一SDS? B5. 將這兩個文件加到FFT. pjt這個工程中。7. 創(chuàng)建out文件 K5502 山心HtJvnerJM$320:ShM加)卯叱,曲kie de 蜀ewQebjg 企I Qptcn 理叢上(/KOS 世詁do” Hdp占,廠73 II ft M :. dV *a 以銀 ES /?r;3宙口卑三合 a ;.多

16、卻 a C QSH0叵I(Linking. EixtoolfiOZSa.lnzhuAngwonjianCSSOOgtoolaxbinsclSS* Dobug.lkf :LinkingBuild ConpleU,0 Errors, 0 Wttrtnng& 0 Rttiorksg小卜bam “WAITED1LULn 35. Col 128. 加載out文件,為2 D* S“X:s JewsImuwner TIWS320BX ;SrJMo(; - 3c Ccmwje-購3日 deiO卅d H 電尸*|jt 印3題此。SesB回於ffi jaiRenP N PTC0CKSLLILxatia) E;、t

17、81 滬CCS3JJ H Hit君攀 V: ; ;習(xí)&Q程i、 小.Sd Pr 囚 51bf絕M畝竝渥 ai .mJ * Sj CDjwaai 阡冊 D)|谿矣asm | 二|範(fàn)內(nèi)ZBuild CcwpUta,0 Errors/ 0 Wornin刁刁,0 werk53、丿 HU1E0niiL iTLr iS. 3 12#DS?七、編譯程序int INPUTSAMPLENUMBER, DATASAMPLENUMBER;float fWaveRSAMPLENUMBER, fWaveISAMPLENUMBER, wSAMPLENUMBER;float sin_tabSAMPLENUMBER, cos

18、_tabSAMPLENUMBER;void InitForFFT 0int i;for ( i=O;iSAMPLENUMBER;i卄)sin_tabi=sin(PI*2*i/SAMPLENUMBER);cos_tabi=cos(PI*2*i/SAMPLENUMBER);void MakeWave 0int i;for ( i=O;iSAMPLENUMBER;i卄)INPUTi二sin(PI*2*i/SAMPLENUMBER*3)*1024;mainOint i;InitForFFTO;MakeWave0;for ( i=O;iSAMPLENUMBER;i+ )fWaveRi=INPUTi;fW

19、aveli=0. Of;wi=0. Of;FFKfWaveR, fWavel);for ( i二O;iSAMPLENUMBER;i卄)DATAi二wi;while ( 1 );/ break pointvoid FFT(float dataRSAMPLENUMBER, float datalSAMPLENUMBER)int x0, xl, x2, x3f x4, x5, x6, xx;int i, j,k, b, p, L;float TR, TI, temp;/* following code invert sequence */for ( i二O;iSAMPLENUMBER;i卄)x0=x

20、l=x2二x3二x4=x5二x6=0;xO二i&OxOl; xl=(i/2)&0x01; x2=(i/4)&0x01; x3=(i/8)&0x01;x4=(i/16)&0x01; x5=(i/32)&0x01; x6二(i/64)&0x01;xx=x0*64+xl*32+x2*16+x3*8+x4*4+x5*2+x6;datalLxx=dataRi;for ( i=O;iSAMPLENUMBER;i+ )dataRli=datali; datali=O;for ( L=1;L0 )b二b*2; i; /* b= 27L-1) */for ( j二0;jUb-l;j+ ) /* for (2)

21、*/p=l; i=7-L;while ( i0 ) /* p=pow(2,7-L)*j; /p=p*2; i_;p=p*j;for ( k=j;k128;k=k+2*b ) /* for (3) /TR=dataRk; TI=dataILk; temp=dataRlk+b;dataRLk=dataRk -rdataRk+b*cos_tabEp+datalk+b*sin_tab; datalTk=datalk-dataRk+b*sin_tabp+datalk+b*cos_tabb; dataRk+b=TR-dataRk+b*cos_tabp-datalk+b.*sin_tabEp; datalLk+b=TI+temp*sin_tabp-datalk+b*cos_tabp; /* END for (3) */ /* END for (2) */ /* END for (1) */for ( i=0;i:e5設(shè)置斷點:在程序FFT.c中有注釋break point的語句上設(shè)置軟件斷點連5 :for(i=0;iGr aph-Time/Frequency進(jìn)行如下圖所示設(shè)置。6設(shè)置斷點:在程序FFT.c中有注釋break point的語句上設(shè)置軟件斷點。7.運(yùn)行并

溫馨提示

  • 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

提交評論