OFDM中調(diào)制使用IFFT,解調(diào)使用IFFT,在OFDM實(shí)現(xiàn)系統(tǒng)中,F(xiàn)FT和IFFT時(shí)必備的關(guān)鍵模塊。在使用Xilinx的7系列FPGA(KC705)實(shí)現(xiàn)OFDM系統(tǒng)時(shí),有以下幾種選擇:
(1)在Vivado中調(diào)用官方的FFT的IP核(AXI-Stream總線(xiàn));
(2)在Vivado HLS中調(diào)用官方的FFT的IP核(內(nèi)部FFT通信AXI-Stream總線(xiàn)),可以自己增加外部封裝接口類(lèi)型;
(3)Verilog編寫(xiě)FFT,很復(fù)雜,找到了一個(gè)1024點(diǎn)的并行流水線(xiàn)的,但是資源耗費(fèi)太大,8192點(diǎn)時(shí)很難滿(mǎn)足,不采用;
(4)使用HLS用C語(yǔ)言自己編寫(xiě)FFT,程序比較簡(jiǎn)單,開(kāi)發(fā)快,但是我需要100M時(shí)鐘下跑8192點(diǎn)FFT的時(shí)鐘時(shí)序約束不夠,跑不到100M;
最后還是選擇使用HLS里面調(diào)用FFT的庫(kù),并且根據(jù)我們的項(xiàng)目需要,對(duì)其外部輸入輸出封裝成一個(gè)AXI-Master接口,并且在Devcpp里面使用C語(yǔ)言實(shí)現(xiàn)(不考慮延時(shí)和資源消耗等)對(duì)比結(jié)果,發(fā)現(xiàn)基本一致。
本節(jié)主要講Devcpp里的實(shí)現(xiàn)結(jié)果。
1.定義計(jì)算點(diǎn)數(shù)和復(fù)數(shù)類(lèi)型
2.計(jì)算
(1)初始化蝶形因子;
(2)比特反轉(zhuǎn),變址運(yùn)算;
(3)FFT蝶形循環(huán)計(jì)算;
(4)計(jì)算功率,輸出結(jié)果;
3.結(jié)果驗(yàn)證
以100Hz的sin函數(shù)作為輸入信號(hào),幅值-1~1,輸出功率最大值在p[100],趨近于1。
4.計(jì)算IFFT
(1)將輸入的復(fù)數(shù)取共軛;
(2)調(diào)用FFT;
(3)對(duì)輸出的數(shù)據(jù)取共軛;
完成。
最初始的sin信號(hào)如下:
經(jīng)過(guò)FFT之后,對(duì)結(jié)果取共軛,并且縮小N點(diǎn)(8192)倍,再次調(diào)用FFT,對(duì)輸出取共軛,得到IFFT結(jié)果如下:
??審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1630文章
21796瀏覽量
605984 -
Xilinx
+關(guān)注
關(guān)注
71文章
2171瀏覽量
122126 -
FFT
+關(guān)注
關(guān)注
15文章
437瀏覽量
59559 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137702 -
HLS
+關(guān)注
關(guān)注
1文章
130瀏覽量
24208
原文標(biāo)題:FPGA實(shí)現(xiàn)OFDM通信——FFT與IFFT(1)——C語(yǔ)言實(shí)現(xiàn)N點(diǎn)FFT
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論