基于DSP的FFT設(shè)計(jì).doc_第1頁
基于DSP的FFT設(shè)計(jì).doc_第2頁
基于DSP的FFT設(shè)計(jì).doc_第3頁
基于DSP的FFT設(shè)計(jì).doc_第4頁
基于DSP的FFT設(shè)計(jì).doc_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

自本1004班 鄧靜 28號(hào) 基于DSP的FFT濾波器設(shè)計(jì) 1 引言隨著數(shù)字技術(shù)與計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)字信號(hào)處理(DSP)技術(shù)已深入到各個(gè)學(xué)科領(lǐng)域。近些年來,數(shù)字信號(hào)處理技術(shù)同數(shù)字計(jì)算器、大規(guī)模集成電路等,有了突飛猛進(jìn)的發(fā)展。在數(shù)字信號(hào)處理中,離散傅里葉變換(DiscreteTime Fourier Transform,DFT)是常用的變換方法,它在數(shù)字信號(hào)處理系統(tǒng)中扮演著重要角色。由離散傅里葉變換發(fā)現(xiàn)頻率離散化,可以直接用來分析信號(hào)的頻譜、計(jì)數(shù)濾波器的頻率響應(yīng),以及實(shí)現(xiàn)信號(hào)通過線系統(tǒng)的卷積運(yùn)算等,因而在信號(hào)的頻譜分析方面有很大的作用。由于DFT的運(yùn)算量太大,即使是采用計(jì)算機(jī)也很難對(duì)問題進(jìn)行實(shí)時(shí)處理,所以經(jīng)過很多學(xué)者的不懈努力,便出現(xiàn)了通用的快速傅里葉變換(FFT)??焖俑道锶~變換(Fast Fourier Transform,F(xiàn)FT)并不是與離散傅里葉變換不同的另一種變換,而是為了減少DFT計(jì)算次數(shù)的一種快速有效的算法。對(duì)FFT算法及其實(shí)現(xiàn)方式的研究是很有意義的。目前,F(xiàn)FT己廣泛應(yīng)用在頻譜分析、匹配濾波、數(shù)字通信、圖像處理、語音識(shí)別、雷達(dá)處理、遙感遙測、地質(zhì)勘探和無線保密通訊等眾多領(lǐng)域。在不同應(yīng)用場合,需要不同性能要求的FFT處理器。在很多應(yīng)用領(lǐng)域都要求FFT處理器具有高速度、高精度、大容量和實(shí)時(shí)處理的性能。因此,如何更快速、更靈活地實(shí)現(xiàn)FFT變得越來越重要。數(shù)字信號(hào)處理器(DSP)是一種可編程的高性能處理器。它不僅是一種適用于數(shù)字信號(hào)處理,而且在圖像處理、語音處理、通信等領(lǐng)域得到廣泛的應(yīng)用。DSP處理器中集成有高速的乘法硬件,能快速的進(jìn)行大量的乘法加法運(yùn)算1。本文主要介紹基于DSP用FFT變換實(shí)現(xiàn)對(duì)信號(hào)的頻譜分析。研究離散傅里葉變換以及快速傅里葉變換的原理及算法??焖俑道锶~變換和離散傅里葉變換的基本理論是一樣的,它根據(jù)離散傅里葉變換的奇、偶、虛、實(shí)等特性,對(duì)離散傅里葉變換進(jìn)行了改進(jìn)。在計(jì)算機(jī)系統(tǒng)或者數(shù)字系統(tǒng)中廣泛應(yīng)用者快速傅里葉變換,這是一個(gè)巨大的進(jìn)步。本文主要解決的問題就是如何對(duì)信號(hào)的頻譜進(jìn)行研究,使FFT更廣泛的應(yīng)用于科學(xué)研究。2 快速傅里葉變換(FFT)2.1 FFT算法基本原理 快速傅里葉變換(FFT)是離散傅里葉變換的快速算法,它是根據(jù)離散傅里葉變換的奇、偶、虛、實(shí)等特性,對(duì)離散傅里葉變換的算法進(jìn)行改進(jìn)獲得的,它對(duì)離散傅里葉變換并沒有新的發(fā)現(xiàn)。有限長序列x(n)及其頻域表示X(k)可由以下離散傅立葉變換得出 (1) (2)其中。式(1)稱為離散傅立葉正變換,式(2)稱為離散傅立葉逆變換,x(n)與X(k)構(gòu)成了離散傅立葉變換對(duì)。根據(jù)上述公式,計(jì)算一個(gè)X(k),需要N次復(fù)數(shù)乘法和N-1次復(fù)數(shù)加法,而計(jì)算全部X(k)( ),共需要次復(fù)數(shù)乘法和N(N-1)次復(fù)數(shù)加法。實(shí)現(xiàn)一次復(fù)數(shù)乘法需要四次實(shí)數(shù)乘法和兩次實(shí)數(shù)加法,一次復(fù)數(shù)加法需要兩次實(shí)數(shù)加法,因此直接計(jì)算全部X(k)共需要4次實(shí)數(shù)乘法和2N(2N-1)次實(shí)數(shù)加法。當(dāng)N較大時(shí),對(duì)實(shí)時(shí)信號(hào)處理來說,對(duì)處理器計(jì)算速度有十分苛刻的要求,于是如何減少計(jì)算離散傅里葉變換運(yùn)算量的問題變得至關(guān)重要。為減少運(yùn)算量,提高運(yùn)算速度,就必須改進(jìn)算法。計(jì)算DFT過程中需要完成的運(yùn)算的系數(shù)里,存在相當(dāng)多的對(duì)稱性。通過研究這種對(duì)稱性,可以簡化計(jì)算過程中的運(yùn)算,從而減少計(jì)算DFT所需的時(shí)間。如前所述,N點(diǎn)的DFT的復(fù)乘次數(shù)等于。顯然,把N點(diǎn)的DFT分解為幾個(gè)較短的DFT,可是乘法的次數(shù)大大減少。另外,旋轉(zhuǎn)因子具有明顯的周期性和對(duì)稱性,其周期為:其對(duì)稱性表現(xiàn)為: 或FFT算法就是不斷地把長序列的DFT分解成幾個(gè)短序列的DFT,并利用的周期性和對(duì)稱性來減少DFT的運(yùn)算次數(shù)。具有以下固有特性:(1)的周期性:(2)的對(duì)稱性: (3)的可約性:另外,。利用的上述特性,將x(n)或X(k)序列按一定規(guī)律分解成短序列進(jìn)行運(yùn)算,這樣可以避免大量的重復(fù)運(yùn)算,提高計(jì)算DFT的運(yùn)算速度。算法形式有很多種,但基本上可以分為兩大類,即按時(shí)間抽取(Decimation In Time,DIT)FFT算法和按頻率抽取(Decimation In Frequency,DIF)FFT算法。2.2 基-2FFT算法 如果序列x(n)的長度,其中M是整數(shù)(如果不滿足此條件,可以人為地增補(bǔ)零值點(diǎn)來達(dá)到),在時(shí)域上按奇偶抽取分解成短序列的DFT,使最小DFT運(yùn)算單元為2點(diǎn)。通常將FFT運(yùn)算中最小DFT運(yùn)算單元稱為基(radix),因而把這種算法稱為基-2時(shí)間抽取FFT(DIT-FFT)算法4。將x(n)按n為奇偶分解成兩個(gè)子序列,當(dāng)n為偶數(shù)時(shí),令n=2r;當(dāng)n為奇數(shù)時(shí),令n=2r+l;可得到 (3)則其DFT可寫成 (4)和均分別是N/2點(diǎn)序列和的DFT,而且r與k的取值滿足0,1,N/2-1。而X(k)是一個(gè)N點(diǎn)的DFT,因此式(4)只計(jì)算了X(k)的前N/2的值。由DFT和的性質(zhì)可得到X(k)的后N/2的值為: (5)式(4)和式(5)表明,只要計(jì)算出兩個(gè)N/2點(diǎn)的DFT 和,經(jīng)過線性組合,即可求出全部N點(diǎn)的X(k)。由于,仍為偶數(shù),因而這樣的分解可以繼續(xù)進(jìn)行下去,直到最后的單元只需要做2點(diǎn)DFT為止。若Xm(p)和Xm(q)為輸入數(shù)據(jù),和為輸出數(shù)據(jù),為旋轉(zhuǎn)因子,則對(duì)于基-2DIT-FFT算法,蝶形運(yùn)算的基本公式為 其圖形表示如圖1所示,稱Xm(P)為上結(jié)點(diǎn),Xm(q)為下結(jié)點(diǎn)。圖1 時(shí)間抽取蝶形運(yùn)算單元對(duì)于一個(gè)8點(diǎn)的FFT,根據(jù)上述算法可以得到一個(gè)完整的N=8的基-2DIT-FFT的運(yùn)算流圖,如圖2所示。圖2 N=8 DIT-FFT運(yùn)算流圖根據(jù)上述算法原理及運(yùn)算流圖,可以得出基-2DIT-FFT的基本特點(diǎn),特點(diǎn)如下。(1)級(jí)數(shù)分解:對(duì)于。共分了M級(jí),每級(jí)包含N/2個(gè)蝶形運(yùn)算單元,總共所需蝶形運(yùn)算個(gè)數(shù)為。(2)運(yùn)算量估計(jì):每個(gè)蝶形運(yùn)算需要一次復(fù)數(shù)乘法和兩次復(fù)數(shù)加(減)法,N點(diǎn)FFT共需要次復(fù)數(shù)乘法,次復(fù)數(shù)加(減)法。實(shí)際上有些蝶形運(yùn)算不需要做復(fù)乘。(3)原位運(yùn)算:當(dāng)數(shù)據(jù)輸入到存儲(chǔ)器以后,每一組蝶形運(yùn)算后,結(jié)果仍然存放在這同一組存儲(chǔ)器中的同一位置,不需要另辟存儲(chǔ)單元,直到最后輸出。(4)位碼倒序:由圖2可以看到,F(xiàn)FT輸出的X(k)的次序正好是順序排列的,即X(0),X(1),,X(7),而輸入X(n)是按x(0),X(4),,X(7)的倒序存入存儲(chǔ)單元,即為倒序輸入,正序輸出。這種順序看起來相當(dāng)雜亂,然而它是有規(guī)律的,即位碼倒序規(guī)則。(5)旋轉(zhuǎn)因子的確定:由8點(diǎn)FFT的三次迭代運(yùn)算可以看出的變化。在第一級(jí)迭代中,只有一種類型的蝶形運(yùn)算系數(shù),即,參加蝶形運(yùn)算的兩個(gè)數(shù)據(jù)點(diǎn)間隔為l;在第二級(jí)迭代中,有兩種類型的蝶形運(yùn)算系數(shù),分別是和,參加蝶形運(yùn)算的兩個(gè)數(shù)據(jù)點(diǎn)間隔為2;在第三級(jí)迭代中,有四種類型的蝶形運(yùn)算系數(shù),分別是,參加蝶形運(yùn)算的兩個(gè)數(shù)據(jù)點(diǎn)間隔4??梢姡看蔚牡晤愋捅惹耙坏黾右槐?,間隔也增大一倍。最后一次迭代的蝶形類型最多,參加蝶形運(yùn)算的兩個(gè)數(shù)據(jù)點(diǎn)的間隔也最大,為N/2。3 FFT算法的DSP的實(shí)現(xiàn)3.1 基于DSP實(shí)現(xiàn)FFT變換頻譜分析3.1.1DSP芯片和編程工具CCS 2.0的簡介(1)TMS320C5402簡介TMS320C5402是TI公司為了實(shí)現(xiàn)低功耗、高性能而專門設(shè)計(jì)的定點(diǎn)DSP芯片。它有如下的特點(diǎn):具有運(yùn)算速度快,指令周期可以達(dá)10ns以內(nèi);優(yōu)化的CPU結(jié)構(gòu),內(nèi)部有1個(gè)40位的算術(shù)邏輯單元,2個(gè)40位的累加器,2個(gè)40位加法器,1個(gè)1717的乘法器和40位的桶形移位器。有4條內(nèi)部總線和2個(gè)地址產(chǎn)生器。先進(jìn)的DSP結(jié)構(gòu)可以高效快速實(shí)現(xiàn)數(shù)字信號(hào)處理中的各種算法的運(yùn)算。它不僅具有標(biāo)準(zhǔn)的串行口和時(shí)分復(fù)用(TDM)串行口,還提供了自動(dòng)緩沖串行DBSP和與外部處理器通信的HPI的主機(jī)接口。HPI可以與外部標(biāo)準(zhǔn)的微處理器直接接口。(2)CCS2.0簡介DSP編程工具CCS是繼“一體化的DSP解決方案后,TI公司為了鞏固其在DSP業(yè)界的地位而在開發(fā)工具方面的一次重拳出擊。CCS集成了開發(fā)環(huán)境,使得DSP代碼開發(fā)過程從編程、編譯到調(diào)試代碼的性能測試都集成在一個(gè)環(huán)境下進(jìn)行,而且各項(xiàng)功能都有了一定程度的提升,簡化了開發(fā)過程,該工具主要集成了以下幾個(gè)軟件工具:(1)DSP代碼產(chǎn)生工具(包括C編譯器、匯編優(yōu)化器、匯編器和連接器)。CCS不僅支持高級(jí)語言C編程、匯編語言編程,還支持高級(jí)語言C匯編語言混合模式編程,降低了代碼開發(fā)難度;(2)軟件模擬器(SIMULATOR)。模擬整個(gè)硬件的開發(fā)過程,使得系統(tǒng)的實(shí)現(xiàn)更加可靠;(3)實(shí)時(shí)基礎(chǔ)軟件。DSP/BIOS和主機(jī)目標(biāo)機(jī)之間的實(shí)時(shí)數(shù)據(jù)交換軟件RTDX,它們所提供的實(shí)時(shí)分析功能為目標(biāo)系統(tǒng)提供了一個(gè)實(shí)時(shí)窗口,不僅可以直接實(shí)時(shí)顯示原始數(shù)據(jù),還可以對(duì)原始數(shù)據(jù)進(jìn)行處理。在傳統(tǒng)的主機(jī)調(diào)試器必須通過在應(yīng)用程序中插入斷點(diǎn),中斷應(yīng)用程序運(yùn)行才能與目標(biāo)系統(tǒng)交換數(shù)據(jù),這種方法不僅麻煩,而且所得到的數(shù)據(jù)只是應(yīng)用程序在高速運(yùn)行中的一個(gè)側(cè)面,為故障診斷和系統(tǒng)性能評(píng)測等帶來了許多不便。利用RTDX技術(shù),就可以在不中斷應(yīng)用程序的前提下完成主機(jī)與目標(biāo)機(jī)之間的實(shí)時(shí)數(shù)據(jù)交換,另外RTDX完成主機(jī)與目標(biāo)機(jī)數(shù)據(jù)交換所使用的是DSP內(nèi)部的仿真邏輯和JTAG接口,它不占用DSP系統(tǒng)的總線、串口等I/O資源,所以可以在應(yīng)用程序背景下運(yùn)行對(duì)DSP系統(tǒng)的影響很小7-8。3.2.2利用DSP中的FFT函數(shù)進(jìn)行頻譜分析(1)啟動(dòng)CCS,在CCS中建立一個(gè)C源文件和一個(gè)命令文件,并將這兩個(gè)文件添加到工程,再編譯并裝載程序:閱讀Dsp原理及應(yīng)用中fft 用dsp實(shí)現(xiàn)的有關(guān)程序。雙擊,啟動(dòng)CCS的仿真平臺(tái)的配著選項(xiàng)。選擇C5502 Simulator。(3)啟動(dòng)ccs2后建立工程文件FFT.pjt(4)建立源文件FFT.c與鏈接文件FFT.cmd(5)將這兩個(gè)文件加到FFT.pjt這個(gè)工程中。(6)創(chuàng)建out文件(7)加載out文件(8)加載數(shù)據(jù)(9)改變參數(shù)用View/Graph/Time/Frequency打開一個(gè)圖形觀察窗口;設(shè)置該圖形窗口變量及參數(shù),采用雙蹤觀察在啟動(dòng)地址分別為0x3000H和0x3080H,長度為128的單元中數(shù)值的變化,數(shù)值類型為16位有符號(hào)整型變量,這兩段存儲(chǔ)單元中分別存放的是經(jīng)A/D轉(zhuǎn)換后的語音信號(hào)和對(duì)該信號(hào)進(jìn)行FFT變換的結(jié)果。單擊“Animate”(或按F10)運(yùn)行程序;調(diào)整觀察窗口并觀察輸入信號(hào)波形及其FFT變換結(jié)果;單擊“Halt”暫停程序運(yùn)行,可以得到語音信號(hào)的時(shí)域波形和對(duì)該信號(hào)進(jìn)行FFT變換譜分析的靜態(tài)圖像頻譜分析結(jié)果(1)頻譜分析結(jié)果(2)兩圖分別為輸入語音信號(hào)頻率大小不同情況下的結(jié)果;其中中上面的波形為語音信號(hào)的時(shí)域波形,下面的波形為對(duì)該信號(hào)進(jìn)行FFT變換后的譜分析結(jié)果。由此我們可以得出:數(shù)字信號(hào)處理(DSP)能夠?qū)π盘?hào)進(jìn)行實(shí)時(shí)分析,以便我們對(duì)各種信息能夠更及時(shí)的了解,這也是它的優(yōu)越性所在,使得他在我們的生活生產(chǎn)中有著更廣泛的應(yīng)用。結(jié)論本論文學(xué)習(xí)和研究了離散傅里葉變換(DFT)和快速傅里葉變換(FFT)的算法,把重點(diǎn)放在了時(shí)間抽取法基-2FFT算法上。以及在DSP基礎(chǔ)上用FFT變換對(duì)信號(hào)進(jìn)行頻譜分析。明確了FFT在DSP芯片上的實(shí)現(xiàn)的關(guān)鍵。基于DSP的快速傅里葉變換頻譜分析的研究使FFT能夠有效的在DSP芯片上實(shí)現(xiàn),有助于我們能夠更及時(shí)的了解信息,對(duì)我們的生活生產(chǎn)以及科技研究有很大的幫助。自從快速傅里葉變換(FFT)出現(xiàn)以后,頻譜分析技術(shù)便很快的發(fā)展起來,而且越來越貼近我們的生活生產(chǎn),如醫(yī)療器械,無線電通信等等。但是我們對(duì)頻譜分析技術(shù)的研究并未達(dá)到最高的層次,未來發(fā)展具有很廣闊的空間。參考文獻(xiàn)1 趙紅怡.DSP 技術(shù)與應(yīng)用實(shí)例M .電子工業(yè)出版社,2008.2 汪安民.TMS320C54xx DSP 實(shí)用技術(shù)M .清華大學(xué)出版社,2007.3 戴明帖,周健江.TMS320C54x DSP 結(jié)構(gòu)原理及應(yīng)用M.北京航空航天大學(xué)出版社,2007.4 清源科技.TMS320C54x DSP 應(yīng)用程序設(shè)計(jì)教程M .機(jī)械工業(yè)出版社,2004.5 潘松,黃繼業(yè).EDA 技術(shù)實(shí)用教程M.科學(xué)出版社,2002.6 萬山明,TMS320F281xDSP原理與應(yīng)用實(shí)例,北京航空航天大學(xué)出版社,2007.7.7 戴明楨等編著.TMS320C54X DSP 結(jié)構(gòu)原理及應(yīng)用. 北京:航空航天大學(xué)出版社,第2版,2007. 8 彭啟琮編著.DSP技術(shù)的發(fā)展與應(yīng)用.北京:高等教育出版社,2002.9 喬瑞平,崔濤,張芳娟.TMS320C54X DSP原理及應(yīng)用M. 西安:西安電子科技大學(xué)出版社,2010 .10 劉益成.DSP應(yīng)用程序設(shè)計(jì)與開發(fā)M.北京:北京航空航天大學(xué)出版社,2002. 附錄Cmd源文件代碼:-f 0-w-stack 500-sysstack 500-l rts55.libMEMORY DARAM: o=0x100, l=0x7f00 VECT:o=0x8000, l=0x100 DARAM2:o=0x8100,l=0x7f00 SARAM: o=0x10000,l=0x30000 SDRAM:o=0x40000,l=0x3e0000 SECTIONS .text: DARAM .vectors: VECT .trcinit:DARAM .gblinit:DARAM .frt:DARAM .cinit:DARAM .pinit:DARAM .sysinit:DARAM2 .far:DARAM2 .const:DARAM2 .switch:DARAM2 .sysmem:DARAM2 .cio:DARAM2 .MEM$obj:DARAM2 .sysheap:DARAM2 .sysstack:DARAM2 .stack:DARAM2 .input:DARAM2 .fftcode:DARAM2 C文件源碼:#include math.h#define sample_1 256#define signal_1_f 60#define signal_2_f 200#define signal_sample_f 512#define pi 3.1415926int inputsample_1;float fwaversample_1,fwaveisample_1,wsample_1;float sin_tabsample_1;float cos_tabsample_1;void init_fft_tab();void input_data();void fft(float datarsample_1,float dataisample_1);void main() int i; init_fft_tab(); input_data(); for (i=0;isample_1;i+) fwaveri=inputi; fwaveii=0.0f; wi=0.0f;fft(fwaver,fwavei);while(1); void init_fft_tab() float wt1; float wt2; int i; for (i=0;isample_1;i+) wt1=2*pi*i*signal_1_f; wt1=wt1/signal_sample_f; wt2=2*pi*i*signal_2_f; wt2=wt2/signal_sample_f; inputi=(cos(wt1)+cos(wt2)/2*32768; void input_data() int i;for(i=0;isample_1;i+) sin_tabi=sin(2*pi*i/sample_1); cos_tabi=cos(2*pi*i/sample_1); void fft(float datarsample_1,f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論