《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > FFT實時譜分析系統的FPGA設計和實現

FFT實時譜分析系統的FPGA設計和實現

2008-09-12
作者:劉桂華, 傅佑麟, 嚴 平

  摘 要: 采用按時間抽選的基4原位算法和坐標旋轉數字式計算機(CORDIC)算法實現了一個FFT實時譜分析" title="譜分析">譜分析系統。整個設計采用流水線工作方式,保證了系統的速度,避免了瓶頸的出現;整個系統采用FPGA實現,實驗表明,該系統既有DSP器件實現的靈活性又有專用 FFT芯片實現的高速數據吞吐能力,可以廣泛地應用于數字信號處理" title="數字信號處理">數字信號處理的各個領域。
  關鍵詞: 快速傅里葉變換 CORDIC算法 現場可編程" title="可編程">可編程門陣列(FPGA)


  快速傅里葉變換(Fast Fourier Transformation, FFT) 實時譜分析是DSP應用的核心技術之一,而在高速實時信號處理中,常采用專門集成電路(ASIC)來實現。FPGA是一種具有大量的可編程邏輯單元的器件,它的應用使得電子產品不僅具有高速度、高集成度和高可靠性,而且具有用戶可編程特性,能降低設計風險。實驗表明,用FPGA實現的實時譜分析系統既有專用ASIC電路實現的快速性,又有DSP器件實現的靈活性,非常適用于高速實時的數字信號處理。
1 FFT實時信號處理系統的總體設計
  FFT頻譜分析系統主要由1024點基-4 FFT模塊和接口控制電路組成。其中,基-4 FFT模塊用于實現一組1024點復數數據的FFT變換;接口控制電路負責控制1024點基-4 FFT模塊,并對A/D采樣輸出的數據進行緩存、速率匹配等,協調整個FFT頻譜分析系統的工作時序。
  在本設計中,FFT實時譜分析系統的1024點基-4 FFT算法采用FPGA實現。FPGA的總體框圖如圖1所示。其中,衰減限幅模塊負責對數據進行衰減及限幅壓縮處理;雙口RAM負責存儲外部輸入的原始數據及經過蝶形運算后的中間數據;四點FFT模塊完成4點DFT運算;地址控制模塊負責產生讀地址、寫地址、寫使能信號以及相關模塊的啟動、控制信號,是FFT系統的控制核心;復乘運算模塊是系統運算的核心部分,采用CORDIC算法實現;旋轉因子產生器產生復乘運算中的旋轉因子的角度數據;倒序模塊實現頻譜正常順序輸出。


2 功能模塊的設計
2.1 衰減限幅模塊

  FFT實時譜分析系統采用的算術運算方案是定點運算" title="定點運算">定點運算,衰減限幅模塊實現了定比例衰減、尾數處理和壓縮信號電平的作用,用以防止數據溢出。模塊框圖如圖2所示,其壓縮特性如圖3所示。


2.2 四點FFT模塊
  四點FFT模塊完成四點DFT變換,變換公式如下:
  
  四點FFT模塊中完全不需要復數乘法,乘-j只需將實部虛部交換,再加上必要的正負號即可。四點FFT模塊采用流水線工作方式,每四個時鐘周期完成一組四點FFT運算。在輸入一組四點原始數據x(i)時,要完成兩項工作:①進行上一組四點FFT的第二級運算,即計算并輸出上一組四點FFT的結果X(k);②進行本組四點FFT的第一級運算,即計算本組四點FFT的中間結果X′(k)。這樣充分利用了硬件資源。
2.3 復乘運算模塊
  復乘運算是FFT處理器中兩種最頻繁的運算之一,因而復乘運算模塊也是FFT處理器中的一個重要模塊。輸入復數數據xr+jxi與旋轉因子cosα+jsinα相乘的公式為:
  
  利用CORDIC的圓周旋轉的向量工作模式可以實現復乘運算,所采用的迭代方程組如下:
  
  所以,只需將需要運算的角度值作為z0輸入,經過旋轉迭代后,迭代結果的xn和yn就是所需要的旋轉因子復乘的運算值。即:
  
  復乘運算模塊的工作流程如圖4所示。


  從復乘運算的算法流程中可以看到,實現復乘運算的主要元件有加法器、移位器和多選一數據選擇器等。組成流水線后,各流水單元結構相似,很適合用FPGA實現。
2.4 旋轉因子產生模塊
  在一個基-4蝶形運算單元中,包含WP、W2P和W3P三個旋轉因子,每組基-4蝶形運算的第一個輸出數據所乘的旋轉因子總為1。在同一個蝶形組內,p值是不變的,因而只需確定一個p值,三個旋轉因子便可確定下來。每當一個基-4蝶形組計算完畢而轉入下一個蝶形組時,p值改變一次,其變化的順序恰好是(L-1)位四進制數順序加1的倒序輸出。由此可以根據蝶形運算的級數和四點FFT的節點位置計算出對應的旋轉因子的角度。
  由于=cos()-jsin(),在程序中將小數cos()和-sin()轉換成定點數,變換為二進制數進行計算。
  本設計的復乘運算采用CORDIC算法實現,需要輸入角度值作為進行復乘運算的相應旋轉因子的角度,因此旋轉因子產生模塊輸出的數據即對應旋轉因子的角度值,模塊中包括10位計數器和一個計算輸出進程。程序的運算流程如圖5所示。


  本設計采用直接計算旋轉因子的方法,不需要產生旋轉因子的讀取地址和額外的ROM資源,簡化了設計,但需要一直進行角度值的計算,增加了系統的運算時間。
3 FFT實時頻譜分析系統的實現
  本設計采用Synplicity公司的邏輯綜合軟件Synplify7.1 pro進行設計綜合,用Xilinx的ISE6.1布局布線。實現后的系統的時序分析結果表示,系統有9.139ns的延遲,系統時鐘周期可達10.817ns,系統頻率達到92.4MHz。當系統頻率為90MHz時,1024點FFT運算需要的時間大約為68.3μs,完全可以滿足實時處理的要求。本文采用Xilinx公司的Virtex-Ⅱxc2v500 fg456-5 FPGA器件實現系統,設計使用資源狀況如表1所示。


  本FFT實時譜分析系統采用定點運算方案,輸入為12位復數數據,輸出為14位復數數據。采用方波信號進行測試,其參數為:脈沖幅度H=100,脈沖寬度M=10。本FFT實時譜分析系統輸出的幅值如圖6所示,輸出的幅值的相對誤差" title="相對誤差">相對誤差如圖7所示。相對誤差較大的一些點均出現在標準FFT輸出的幅值很小的點上,這是由于有限字長效應引起相對誤差造成的。同時由于采用的算術運算方案是定點運算,加劇了小信號的信噪比的惡化。但在實際應用中這些輸出幅值很小的點會被判別為頻譜上的噪聲點,對實際的頻譜分析影響不大,故對系統的誤差影響并不大。而在標準FFT輸出的幅值較大的點上,相對誤差則很小。


  本設計全部由VHDL語言實現,采用自頂向下的設計方法,完成了一個1024點FFT實時譜分析系統。該FFT采用了基-4原位算法,既保證了運算速度,又節省了硬件資源。該FFT通過CORDIC算法實現復乘,較傳統的復乘運算節省了大量的ROM資源,同時采用了流水線結構,加快了運算速度。
參考文獻
1 劉淩,胡永生. 數字信號處理的FPGA實現. 北京:清華大學出版社,2002
2 李廣軍,孟憲元. 可編程ASIC 設計及應用[M].成都:電子科技大學出版社,2000
3 劉朝暉, 韓月秋.用FPGA 實現FFT 的研究[J].北京:北京理工大學學報,1999;19(2):234~238
4 Volder J E.The CORDIC Trigonometric Computing Technique IRE.Trans.on Electronic Computer,1959(9)

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产不卡视频在线观看| 在线观看国产精品日韩AV| 亚洲乱码在线视频| 精品国产亚洲第一区二区三区| 国产成人精品久久免费动漫| AV无码小缝喷白浆在线观看| 日产中文字乱码卡一卡二视频| 亚洲同性男gay网站在线观看| 福利一区二区在线| 国产人妖ts在线观看网站| 269tv四季直播苹果下载| 岛国免费在线观看| 久久亚洲精品无码aⅴ大香| 欧美精品九九99久久在免费线| 午夜三级限制福利电影在线看| 麻豆国产精品va在线观看不卡 | 亚洲乱码一二三四区国产| 男女边吃奶边做边爱视频 | 中国jizzxxxx| 日韩电影中文字幕在线网站| 亚洲欧美一区二区三区图片| 精品人妻久久久久久888| 国产亚洲成AV人片在线观看| 中文字幕第四页| 在线中文字幕日韩| 一级一级18女人毛片| 日本一区中文字幕日本一二三区视频| 亚洲av无码成人精品区日韩 | 在线你懂的网站| 在线观看欧洲成人免费视频| 中文字幕一区二区三区精彩视频 | 边吃奶边摸下我好爽免费视频| 国产精品亚洲精品日韩动图| 99在线小视频| 婷婷综合激情五月中文字幕| 中文精品久久久久人妻| 日韩人妻无码免费视频一区二区三区| 亚洲六月丁香六月婷婷蜜芽| 毛片试看120秒| 伊人久久大香线蕉影院95| 综合图区亚洲欧美另类小说|