2048點FFT在定點DSP上的實現(xiàn).doc_第1頁
2048點FFT在定點DSP上的實現(xiàn).doc_第2頁
2048點FFT在定點DSP上的實現(xiàn).doc_第3頁
2048點FFT在定點DSP上的實現(xiàn).doc_第4頁
2048點FFT在定點DSP上的實現(xiàn).doc_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2048點FFT在定點DSP上的實現(xiàn)摘要 : 針 對線 陣 CC D輸 出數(shù)據(jù) 的 處理 需要 , 介 紹 了2 0 4 8點 F r r在 T MS 3 2 0 C2 4 0 x定點 DS P上 的 實現(xiàn) 。F P T 算 法程 序 采 J ”匯編 語言鳊寫 可通過 C語言函數(shù)調(diào) 用, 因此具有實現(xiàn)簡單、 高效的特點, 且擴展性和兼容性強, 可運行于嵌入式線陣 CCD光譜 探 測 系統(tǒng) 中。 關(guān)鍵詞: F F T; D S P; 劈分算法; 位反轉(zhuǎn)算法 中圖分類號: TP 3 9 1 文獻標識碼: A 引言 傅立葉變換是一種將信號從時域轉(zhuǎn)變?yōu)轭l域表示的變換手段 ,它在信號的頻譜分析以及系統(tǒng)的分 析、 設(shè)計中得到了廣泛的應(yīng)用。在計算機系統(tǒng)中, 實際 上是以離散傅立葉變換( Df T r ) 的方式處理數(shù)據(jù)。由于 D F r的運算量比較大 實際應(yīng)用中常使用 D F r的快速 算法一 快速傅立葉變換( F 兀 ) 。 快速傅立葉變換算法有 基 2算法、 基 4算法等, 還有按時間抽取( D I T ) 和按頻 率抽取( D I F ) 的算法。 目前, 由于線陣 C C D在光譜探測、 光學(xué)傳感等方面的廣泛應(yīng)用, 常需要嵌入式芯片( 如 D S P ) 對 C C D輸 出的數(shù)據(jù)進行實時分析處理。用于工業(yè)探測的線陣 C C D與我們通常認識的面陣 C C D有所不同。我們 日 常生活中出現(xiàn)的面陣C C D少說也有幾十萬像素, 高的 可達上千萬像素, 常用在數(shù)碼相機等設(shè)備上。相比較 而言, 用于工業(yè)探測的線陣 C C D像素不高, 但在光譜 響應(yīng)范圍、 幾何精度、 動態(tài)范圍有自己獨特的優(yōu)勢。比如我們所用的T C D1 2 0 8 C C D就是一款面向光譜探測 用的線陣C C D,有 2 1 6 0像元,光譜響應(yīng)范圍4 o o納 米一 1 1 0 0納米, 并且動態(tài)范圍大, 靈敏度高, 穩(wěn)定可靠。 整個嵌入式線陣 C C D光譜探測系的結(jié)構(gòu)框圖如圖1 所示。 在 D S P上要完成 C C D驅(qū)動、 A D轉(zhuǎn)換、 F F T運算、 控制液晶顯示等功能, 其中 FFT 運算是重點。考慮到 C C D是 2 1 6 0像元,為了方便運用基2算法計算 F FT ,又不損失太多的像元,我們往在DSP上計算2048點FFT。由于T I 公司提供的 FFT程序只能計算 5 l 2點 FFT, 因此, 就需要我們編寫能夠寓脫 2 0 4 8 點 FFT的程序。以FFT在嵌入式線陣 C C D光潛探測系統(tǒng)中的應(yīng)用為例,重點介紹 2 0 4 8點實數(shù)基2DIT-FFT在T MS 3 2 0 L F 2 4 0 7定點 D S P中的實現(xiàn)。此程序也可實現(xiàn) 1 0 2 4點復(fù)數(shù) F FT。由于 F MS 3 2 0 C 2 4 0 x系列D S P的硬件內(nèi)核與匯編指令完全相同,此程序可以直接移植到所有 T MS 3 2 0 C 2 4 0 x D S P上。根據(jù)此程序,可以方便地擴展至 4 0 9 6點 FFT, 用于 5 0 0 0像元 CCD的數(shù)據(jù)處理。 1 程序介紹與實現(xiàn) 1 .1 程序流程 FFT的計算量比傅立葉變換的計算量減少了,但是 FFT要做到大點數(shù),實時運算 ,對于普通的單片機來說還是一件比較困難的事。 一方面,F(xiàn)FT需要對原始自然序列進行碼位倒序排列; 另一方面,蝶形運算是復(fù)數(shù)運算, 需要多次查表相乘運算才能實觀 。DSP控制器就是針對這些需求而設(shè)計的專用芯片:具有專為 F F T 算法而設(shè)計的反序間接尋址 ; 可實現(xiàn)增減l或增減一個變址量的間接尋址方式, 為各種查表運算提供方便 :能在一個指令周期完成乘和累加操作,提高了乘法運算的速度。T MS 3 2 0 L F 2 4 0 7定點 D S P是一款專為工業(yè)控制、 電機控制和數(shù)字信號處理等用途而設(shè)計的 D S P , 具備單周期乘加指令, 具有 F F T反序間接尋址功能,最高運行速度為4 0 MI P S 。為了充分利用 D S P 芯片特有的反序間接尋址等功能, F F T算法程序采用 匯編語言編寫,主程序采用 C語言,因此程序具有良好的接口性能和可擴展性能。 一般計算 N點實數(shù) F F T時, 簡單的把 N點實數(shù)數(shù)據(jù)當(dāng)作 N點虛部為0的復(fù)數(shù)數(shù)據(jù)來處理,直接計算 N 點復(fù)數(shù) F F T。 這樣不僅浪費了D S P片內(nèi)資源,還影響了計算的實時性, 尤其是點數(shù)比較大時,這種影響更加明顯。為了提高實數(shù) FFT 的計算效率, 利用 F FT 計算的特點,把 N點實數(shù)數(shù)據(jù)打包成 N2點復(fù)數(shù)數(shù)據(jù), 通過計算 N2 點復(fù)數(shù) F F T來獲得 N點實數(shù) F F T, 這樣可以把F F T的計算速度提高近一倍。實數(shù) FFT的計算流程為: 1把 2 0 4 8點實數(shù)數(shù)據(jù)打包成為 1 0 2 4點復(fù)數(shù)數(shù)據(jù),并完成復(fù)數(shù)數(shù)據(jù)的位反轉(zhuǎn)操作; 2計算 1 0 2 4點基 2復(fù)數(shù) F F T : 3劈分還原計算, 獲得 2 0 48點實數(shù) F F T r 結(jié)果; 4計算幅值的平方, 獲得頻譜的幅度譜。 根據(jù)實際需要, 還可以對數(shù)據(jù)進行加窗函數(shù)處理。 1. 2具體函數(shù)介紹 根據(jù)上面的程序流程, 介紹具體的函數(shù)模塊。考慮到程序的效率和代碼的精簡, F 丌 算法函數(shù)全部采用匯編語言編寫, 但是在各子程序的入 口和出口都考慮了與 C語言的兼容性,使得各子程序能夠直接被 C語言調(diào)用 。 1匯編模塊 f f t _ b r e v .a s m, 此模塊的功能是把 2 0 4 8點實數(shù)數(shù)據(jù)打包成為 1 0 2 4點復(fù)數(shù)數(shù)據(jù) ,并把復(fù)數(shù)數(shù)據(jù)進行倒位序排列。 在 C函數(shù)中, 通過 F F T _ b r e v 0 來調(diào)用。具體聲明形式為: v o i d FFT- b r e v( i n t* s o u r c e ,i n t* d o n e , i n t s i z e ) , 其中指針 s o u r c e 指向的數(shù)組存放未經(jīng)倒位序排列的數(shù)據(jù)。 指針 d o n e 指向的數(shù)組存放倒位序排列后的數(shù)據(jù), s i z e 是數(shù)組的大小,為了節(jié)省空間,指針 s o u r c e和 d o n e 可以指向同一數(shù)組。 2匯編模塊f f t l O 2 4 c a s m。 此模塊的功能是計算 1 0 2 4點基2 復(fù)數(shù) T 。輸入的數(shù)據(jù)必須是 Q 1 5格式的數(shù)據(jù)。 3匯編模塊f f t 2 0 4 8 a s m。 此模塊的功能是劈分 1 0 2 4點復(fù)數(shù) F F T的結(jié)果, 得到2 0 48點實數(shù) F F T 的真正結(jié)果。 4匯編模塊 f f t ma g a s m,此模塊的功能是計算2 0 48點實數(shù) F F T的結(jié)果的幅值平方。得到幅度譜。 輸出的數(shù)據(jù)格式為 Q1 4格式。 主函數(shù)調(diào)用示例: 幾點說明 : 1由于定點 DS P的浮點計算能力有限 為了保證計算的有效性和實時性 , 對輸入輸出數(shù)據(jù)采取了定點處理 ,其中輸入數(shù)據(jù)是 Q1 5格式,輸出的幅度譜是Q1 4格式。 2在 F F T計算的蝶形運算和劈分計算中涉及到正弦和余弦計算。因此需要預(yù)先制好正弦和余弦表。 3簡單改變幾個參數(shù)值和擴展一下正弦和余弦表,就可以用此程序計算 4 0 9 6以及更大點數(shù)的實數(shù) F F T 。 但需要注意擴展存儲空間以及防止結(jié)果精度的降低。 1 .3抗干擾設(shè)計 為防止各種干擾使得程序不能正常運行 。 我們從軟硬件兩個方面采取抗干擾措施。從硬件方面,我們采用 T I 的專用電源芯片T P S 7 3 3 3 ,為DSP提供穩(wěn)定電源;在集成芯片的電源與地之間放置 0.01和 0.1的去耦電容 ,并讓去耦電容盡量靠近集成芯片; 模擬地與數(shù)字地分開, 只在一點共接等。在軟件方面, 為了使程序跑飛的 D S P回到正常狀態(tài),加入看門狗功能。 整個程序是在集成開發(fā)環(huán)境 C C 4 .1 下開發(fā)完成,為了方便程序運行結(jié)果的說明,用此程序去計算一組2 0 4 8點正弦數(shù)據(jù) , 頻率為 1赫茲 , 采樣頻率為 1 2 8赫茲。數(shù)據(jù)采用 Q 1 5格式。 正弦數(shù)據(jù)波形如圖 2所示。一般情況下,我們只關(guān)心信號頻域的幅度譜。 幅度譜t X( k ) I 的計算: ,F(xiàn) F T計算結(jié)果的信號幅度譜如圖3所示。 先把滿量程基準電壓先分為 2 m 個區(qū)間, 用( 2 m 1)個比較器進行第一步AD轉(zhuǎn)換, 得到 m位的二進制編碼作為MS B 。再把每個區(qū)間都分成個子區(qū)間,用個比較器對個區(qū)間中的某一區(qū)間進行第二步AD轉(zhuǎn)換 這一區(qū)問的選擇由前面所得的m位的編碼作為圖中開關(guān)控制信號得以確定。第二步 AD轉(zhuǎn)換得到位二進制編碼作為 L S B , 最終得到n 位編碼。 要使所用的比較器個數(shù)成為最少, 即對函數(shù)求最小值。設(shè), 對 m求 導(dǎo), 得: 令,當(dāng)n為偶數(shù), 由得: 當(dāng)n為奇數(shù), 得 , 都得到 由此可知,對比較器個數(shù)的優(yōu)化后的最小值是, 當(dāng)分辨率 n為偶數(shù)時,個數(shù)為,當(dāng)分辨率 n為奇數(shù)時, 個數(shù)為 根據(jù)快速傅立葉變換理論, N點 FFT的結(jié)果是 N個復(fù)數(shù)數(shù)據(jù)這 N個復(fù)數(shù)數(shù)據(jù)代表著原始數(shù)據(jù)的頻域信息。當(dāng)原始數(shù)據(jù)是實數(shù)時, 那么 F F T的結(jié)果會出現(xiàn)復(fù)共軛對稱, 即。對于信號的幅度譜 來說, N點實數(shù) FFT有用的信息就只有( N2 ) + 1 個。根據(jù)公式是原始信號的頻率, k表示峰值出現(xiàn)的位置,是采樣頻率,N是F F T計算的點數(shù), 從幅度譜中看出峰值出現(xiàn)在 k = 1 6處, 那么, , 與原始信號的實際頻率一致, 說明計算結(jié)果正確。 3小 結(jié)實驗證明, 此程序在T Ms 3 2 0 L F 2 4 0 7 定點 D S P中運行良好, 滿足嵌 式線陣C C D探測系統(tǒng)數(shù)據(jù)處理的需要, 并已經(jīng)成功運行于該系統(tǒng)中。同樣, 此程序也適用于其它以T MS 3 2 0 C 2 4 0 x 定點 D S P為核心的嵌入式系統(tǒng)中。 參考文獻: 【1】劉和平等,TMS 320C240xDSP C語言開發(fā)應(yīng)用M 北京:北京航空航天大學(xué)出版社,2003 .1 【2】 邱立存,聞武,劉海英TMS320C54X系列DSP上 FFT運算的實現(xiàn) J 】 微計算機信息,2005 ,0 7 2:1 3 6 1 3 7 【3】肖宛昂,嵌入式系統(tǒng)中 F FT算法研究 單片機與嵌入式系統(tǒng)應(yīng)用 J 】 ,2 00 34 3 1 T I F FT L i b r a r y.f f t _ md 1 p d f 【4】王潞鋼 等,DSP C 20 0程序員高手進階【 M】 北京: 機械工業(yè)出版社, 2 0 0 5 . 1 作者簡

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論