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

下載本文檔

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

文檔簡介

1、-PAGE . z. . . . 資料 . .科技大學信息與電氣工程學院?課程設計報告?題 目:基于DSP芯片的函數(shù)信號的FFT專 業(yè): 通信工程班 級: 01班姓 名:學 號:指導教師:2015年 12 月 24 日信息與電氣工程學院課程設計任務書20 20 學年第學期專業(yè):通信工程 *: :課程設計名稱: DSP原理及應用 設計題目:基于DSP芯片的函數(shù)信號的FFT 完成期限:自2021 年12月21日至2021 年12月24日共1周設計依據(jù)、要求及主要容可另加附頁:?DSP原理及應用課程設計?是配合DSP原理及應用理論教學,為通信工程和電子信息工程專業(yè)開設的專業(yè)技術技能設計,課程設計對通

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

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

4、要隨著計算機和微電子技術的飛速開展,基于數(shù)字信號處理的頻譜分析已經應用到各個領域并且發(fā)揮著重要作用。信號處理方法是當前機械設備故障診斷中重要的技術根底之一,分析結果的準確程度是診斷成功與否的關鍵因素。研究頻譜分析是當前主要的開展方向之一。數(shù)字信號處理根本上從兩個方面來解決信號的處理問題:一個是時域方法,即數(shù)字濾波;另一個是頻域方法,即頻譜分析.本文主要介紹了離散傅里葉變換以及快速傅里葉變換,通過對DFT以及FFT算法進展研究,從根底深入研究和學習,掌握FFT算法的關鍵。通過對DSP芯片工作原理以及開發(fā)環(huán)境的學習,掌握CCS的簡單調試和軟件仿真,在DSP芯片上實現(xiàn)對信號的實時頻譜分析。關鍵字:D

5、SP FFT算法 頻譜分析一、實驗目的加深對DFT算法原理和根本性質的理解;熟悉FFT的算法原理和FFT子程序的算法流程和應用;學習DSP中FFT的設計和編程思想;學習使用CCS的波形觀察器觀察波形和頻譜情況;熟悉FFT在實際中應用的效果;熟悉正弦、三角、方波信號的FFT變換;二、實驗設備.一臺裝有CCS軟件的計算機;.DSP實驗箱;.DSP硬件仿真器;.網(wǎng)絡穿插線。三、實驗容用DSP匯編語言及C語言進展編程,實現(xiàn)FFT運算、對輸入信號進展頻譜分析。四、實驗原理信號發(fā)生器模塊可以產生20 Hz 20 kHz 的 函數(shù)信號。信號波形有正弦波、三角波、方波;信號輸出幅度 Vpp 在 0 3.3V

6、圍可調;輸出阻抗約600左右。信號發(fā)生器模塊的主要函數(shù)信號發(fā)生電路及緩沖放大電路如下列圖所示。首先簡單介紹函數(shù)信號發(fā)生電路的構成,該電路的核心器件是ICL8038,它是單片多波形振蕩集成電路,可以用很少的外圍元件產生高精度正弦波、三角波和方波。其電路功能框圖如下:其工作波形如下列圖,五、FFT算法的DSP實現(xiàn)過程:DSP芯片的出現(xiàn)使FFT的實現(xiàn)方法變得更為方便。由于大多數(shù)DSP芯片都具有在單指令周期完成乘法累加操作,并且提供了專門的FFT指令,使得FFT算法在DSP芯片實現(xiàn)的速度更快。FFT算法可以分為按時間抽取FFT和按頻率抽取FFT兩大類,輸入也有實數(shù)和復數(shù)之分,一般情況下,都假定輸入序列

7、為復數(shù)。一FFT運算序列的存儲分配FFT運算時間是衡量DSP芯片性能的一個重要指標,因此提高FFT的運算速度是非常重要的。在用DSP芯片實現(xiàn)FFT算法時,應允許利用DSP芯片所提供的各種軟、硬件資源。如何利用DSP芯片的有限資源,合理地安排好所使用的存儲空間是十分重要的。(二)FFT運算的實現(xiàn)用匯編程序實現(xiàn)FFT算法主要分為四步:1.實現(xiàn)輸入數(shù)據(jù)的比特反轉輸入數(shù)據(jù)的比特反轉實際上就是將輸入數(shù)據(jù)進展碼位倒置,以便在整個運算后的輸出序列是一個自然序列。在用匯編指令進展碼位倒置時,使用碼位倒置可以大大提高程序執(zhí)行速度和使用存儲器的效率。在這種尋址方式下,AR0存放的整數(shù)N是FFT點的一半,一個輔助存

8、放器指向一個數(shù)據(jù)存放的單元。當使用位碼倒置尋址將AR0加到輔助存放器時,地址將以位碼倒置的方式產生。2.實現(xiàn)N點復數(shù)FFTN點復數(shù)FFT算法的實現(xiàn)可分為三個功能塊,即第一級蝶形運算、第二級蝶形運算、第三級至級蝶形運算。對于任何一個2的整數(shù)冪,總可以通過M次分解最后成為2點的DFT計算。通過這樣的M次分解,可構成M即級迭代計算,每級由N/2個蝶形運算組成。3.功率譜的計算用FFT計算想*(n)的頻譜,即計算*k=*(k)一般是由實部(k)和虛部(k)組成的復數(shù),即*k=(k)+j(k)因此,計算功率譜時只需將FFT變換好的數(shù)據(jù),按照實部實部(k)和虛部(k)求它們的平方和,然后對平方和進展開平方

9、運算。但是考慮到編程的難度,對于求FFT變換后數(shù)據(jù)的最大值,不開平方也可以找到最大值,并對功率譜的結果沒有影響,所以在實際的DSP編程中省去了開方運算。4.輸出FFT結果(三)匯編語言程序程序主體由rfft-task、bit-rev、fft和power四個子程序組成。rfft-task:主調用子程序,用來調用其他子程序,實現(xiàn)統(tǒng)一的接口。bit-rev:位碼倒置子程序,用來實現(xiàn)輸入數(shù)據(jù)的比特反轉。fft:FFT算法子程序,用來完成N點FFT運算。在運算過程中,為防止運算結果的溢出,對每個蝶形的運算結果右移一位。fft子程序分為三個功能塊:第一級蝶形運算、第二級蝶形運算、第三級至至級蝶形運算。(四

10、正弦系數(shù)表和余弦系數(shù)表:正弦系數(shù)表和余弦系數(shù)表可以由數(shù)據(jù)文件coeff.inc給出,主程序通過.copy匯編命令將正弦和余弦系數(shù)表與程序代碼匯編在一起。在本例中,數(shù)據(jù)文件coeff.inc給出1024復數(shù)點FFT的正弦、余弦系數(shù)各512個。利用此系數(shù)表可完成81024點FFT的運算。五FFT算法的模擬信號輸入:FFT算法的模擬信號輸入可以采用C語言編程來生成一個文本文件sindata,然后在rfft-task匯編程序中,通過.copy匯編命令將生成的數(shù)據(jù)文件復制到數(shù)據(jù)存儲器中,作為FFT算法的輸入數(shù)據(jù)參與FFT運算。這種方法的優(yōu)點是程序的可讀性強,缺點是當輸入數(shù)據(jù)修改后,必須重新編譯、匯編和。

11、六、設計步驟:1.啟動CCS,在CCS中建立一個C源文件和一個命令文件,并將這兩個文件添加到工程,再編譯并裝載程序:閱讀Dsp原理及應用中fft 用dsp實現(xiàn)的有關程序。2.雙擊,啟動CCS的仿真平臺的配著選項。選擇C5502 Simulator。3.啟動ccs2后建立工程文件FFT.pjt4.建立源文件FFT.c與文件FFT d5.將這兩個文件加到FFT.pjt這個工程中。創(chuàng)立out文件加載out文件七、編譯程序int INPUTSAMPLENUMBER,DATASAMPLENUMBER;float fWaveRSAMPLENUMBER,fWaveISAMPLENUMBER,wSAMPLEN

12、UMBER;float sin_tabSAMPLENUMBER,cos_tabSAMPLENUMBER;void InitForFFT()int i;for ( i=0;iSAMPLENUMBER;i+ )sin_tabi=sin(PI*2*i/SAMPLENUMBER);cos_tabi=cos(PI*2*i/SAMPLENUMBER);void MakeWave()int i;for ( i=0;iSAMPLENUMBER;i+ )INPUTi=sin(PI*2*i/SAMPLENUMBER*3)*1024;main()int i;InitForFFT();MakeWave();for (

13、 i=0;iSAMPLENUMBER;i+ )fWaveRi=INPUTi;fWaveIi=0.0f;wi=0.0f;FFT(fWaveR,fWaveI);for ( i=0;iSAMPLENUMBER;i+ )DATAi=wi;while ( 1 );/ break pointvoid FFT(float dataRSAMPLENUMBER,float dataISAMPLENUMBER)int *0,*1,*2,*3,*4,*5,*6,*;int i,j,k,b,p,L;float TR,TI,temp;/* following code invert sequence */for ( i

14、=0;iSAMPLENUMBER;i+ )*0=*1=*2=*3=*4=*5=*6=0;*0=i&0*01; *1=(i/2)&0*01; *2=(i/4)&0*01; *3=(i/8)&0*01;*4=(i/16)&0*01; *5=(i/32)&0*01; *6=(i/64)&0*01;*=*0*64+*1*32+*2*16+*3*8+*4*4+*5*2+*6;dataI*=dataRi;for ( i=0;iSAMPLENUMBER;i+ )dataRi=dataIi; dataIi=0; for ( L=1;L0 ) b=b*2; i-; /* b= 2(L-1) */for ( j=

15、0;j0 ) /* 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=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-dataIk+b*sin_tabp;dataIk+b=TI+temp*sin_tabp-dataIk+b

16、*cos_tabp; /* END for (3) */ /* END for (2) */ /* END for (1) */for ( i=0;iGraph-Time/Frequency進展如下列圖所示設置。6設置斷點:在程序FFT.c 中有注釋“break point的語句上設置軟件斷點。7運行并觀察結果。選擇“Debug菜單的“Animate項,或按Alt+F5 鍵運行程序。觀察“Test Wave窗口中時域圖形;在“Test Wave窗口中點擊右鍵,選擇屬性,更改圖形顯示為FFT。觀察頻域圖形。觀察“FFT窗口中的由CCS 計算出的正弦波的FFT。(5) 改變輸入信號三角或者方波,觀察上下端波形的變化和相互關系以及改變tms320.h中N*的數(shù)值64、128、256、512、1024即FFT的點數(shù),重復以上實驗,觀察變化。INPUTi=(sin(PI*2*i/SAMPLENUMBER*3)+sin(PI*2*i/SAMPLENUMBER*4+sin(PI*2*i/SAMPLENUMBER*8)*1024;(5)改變輸入函數(shù)INPUTi=(sin(PI*2*i/SAMPLENUMBER*3)+sin(PI*2*i/SAMPLENUMBER*10)+sin(PI*2*i/SAMPLENUMBER*20)*1024;九、實驗結果通過觀察頻域和時域圖,程序計算出了測

溫馨提示

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

評論

0/150

提交評論