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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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