新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > FPGA實現OFDM通信

        FPGA實現OFDM通信

        作者: 時間:2024-01-31 來源:至芯科技 收藏

        中調制使用IFFT,解調使用IFFT,在實現系統中,FFT和IFFT時必備的關鍵模塊。在使用Xilinx的7系列(KC705)實現系統時,有以下幾種選擇:

        本文引用地址:http://www.104case.com/article/202401/455253.htm

        (1)在Vivado中調用官方的FFT的IP核(AXI-Stream總線);

        (2)在Vivado HLS中調用官方的FFT的IP核(內部FFTAXI-Stream總線),可以自己增加外部封裝接口類型;

        (3)Verilog編寫FFT,很復雜,找到了一個1024點的并行流水線的,但是資源耗費太大,8192點時很難滿足,不采用;

        (4)使用HLS用C語言自己編寫FFT,程序比較簡單,開發快,但是我需要100M時鐘下跑8192點FFT的時鐘時序約束不夠,跑不到100M;

        最后還是選擇使用HLS里面調用FFT的庫,并且根據我們的項目需要,對其外部輸入輸出封裝成一個AXI-Master接口,并且在Devcpp里面使用C語言實現(不考慮延時和資源消耗等)對比結果,發現基本一致。

        本節主要講Devcpp里的實現結果。

        1.定義計算點數和復數類型


        2.計算

        (1)初始化蝶形因子;

        (2)比特反轉,變址運算;

        (3)FFT蝶形循環計算;

        (4)計算功率,輸出結果;


        3.結果驗證

        以100Hz的sin函數作為輸入信號,幅值-1~1,輸出功率最大值在p[100],趨近于1。


        4.計算IFFT

        (1)將輸入的復數取共軛;

        (2)調用FFT;

        (3)對輸出的數據取共軛;

        完成。

        最初始的sin信號如下:


        經過FFT之后,對結果取共軛,并且縮小N點(8192)倍,再次調用FFT,對輸出取共軛,得到IFFT結果如下:





        關鍵詞: FPGA OFDM 通信

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东宁县| 宁安市| 阿克苏市| 广西| 防城港市| 华蓥市| 九寨沟县| 瑞昌市| 卓尼县| 阿拉善盟| 思茅市| 达孜县| 麦盖提县| 隆尧县| 平谷区| 镇平县| 临高县| 赣州市| 密山市| 桃园市| 聂拉木县| 天水市| 阿勒泰市| 阳春市| 遂溪县| 石狮市| 屯留县| 武隆县| 金寨县| 独山县| 新丰县| 林芝县| 佳木斯市| 城固县| 黑龙江省| 沙洋县| 通山县| 渝中区| 大姚县| 永宁县| 江川县|