新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 利用FFT IP Core實現FFT算法

        利用FFT IP Core實現FFT算法

        作者: 時間:2012-03-23 來源:網絡 收藏

        Stratix II、Stratix GX、Stratix系列FPGA器件。該 功能是執行高性能的正向復數或反向的(IFFT),采用基2/4頻域抽取(DIF)的FFT,其轉換長度為2m,這里6≤m≤14。在其內部,FFT采用塊浮點結構,以在最大信噪比(SNR)和最小資源需求之間獲得最大的收益。FFT 接收一個長度為N的、二進制補碼格式、順序輸入的復數序列作為輸入,輸出轉換域的、順序的復數數據序列。同時,一個累加塊指數被輸出,表示塊浮點的量化因子。FFT 的轉換方向事先由一個輸入端口為每個數據轉換塊指定。

        FFT Core可以設置兩種不同的引擎結構:四輸出(Quad-output FFT engine)和單輸出(Single-output FFT engine)。對于要求轉換時間盡量小的應用,四輸出引擎結構是最佳的選擇;對于要求資源盡量少的應用,單輸出引擎結構比較合適。為了增加整個FFT Core的吞吐量,可以采用多并行引擎結構。

        FFT Core支持3種I/O數據流結構:連續(streaming)、緩沖突發(Buffered Burst)、突發(Burst)。連續I/O數據流結構允許處理連續輸入數據,輸出連續復數數據流,而不中斷輸入和輸出數據;緩沖突發I/O數據流結構與連續結構相比,需要更少的存儲資源,但是,這是以減少平均吞吐量為代價的;突發數據流結構的操作與緩沖突發方式基本上一致,但突發方式則需要更少的存儲資源,這也是以降低吞吐量為代價的。

        3 硬件設計

        63.jpg
        圖1整體原理圖

        設計的整體原理圖如圖1所示。輸入和輸出緩沖器分別存儲預處理數據和FFT轉換結果;FFT運算器負責FFT運算;控制器為輸入和輸出緩沖器提供讀寫地址,并控制FFT運算的時序和緩沖器的讀寫操作;后處理單元從單路復數輸入頻譜數據中分離出兩路實數輸入頻譜數據;求模運算器實現CORDIC,求取轉換結果的平方根。設計的輸入為兩路實數序列,一路作為實部,另一路作為虛部,由連續的256點的數據段組成;輸出是間斷的256點數據段,各數據段的前128點為第一路的頻譜數據,后128點是第二路的頻譜數據。根據FFT頻譜關于中心點對稱的結果,只截取前半段頻譜數據并不會丟失任何信息。

        整個系統的工作時序為:
        ①數據以5MHz的速率輸入到輸入緩沖器;
        ②FFT運算器以40MHz的速率從輸入緩沖器中取數進行運算;
        ③FFT運算結束時,將轉換結果存入到輸出緩沖器中;
        ④輸出緩沖器數據以20MHz的速率被送到后處理單元進行轉變;
        ⑤數據被送到求模運算器,進行CORDIC運算,輸出;
        ⑥當③結束時,FFT運算器又回到起始狀態,等待處理下一組數據,從而使運算周而復始地進行。整個設計由控制器嚴格控制。

        輸入和輸出緩沖器由FPGA內部的RAM實現,這些都相對簡單。下面重點介紹。FFT運算器、控制器、后處理單元和求模運算器。



        關鍵詞: FFT Core IP 算法

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 勐海县| 云安县| 大名县| 隆回县| 鱼台县| 呼玛县| 安岳县| 图木舒克市| 右玉县| 安陆市| 措勤县| 石家庄市| 土默特右旗| 深泽县| 东乌珠穆沁旗| 黄梅县| 萍乡市| 东台市| 休宁县| 高唐县| 建昌县| 交口县| 扶风县| 光山县| 白城市| 石嘴山市| 谢通门县| 龙海市| 星座| 阳西县| 祁门县| 吉木萨尔县| 贵港市| 宁晋县| 旌德县| 拉孜县| 莎车县| 杨浦区| 永新县| 林州市| 巴南区|