基于FPGA的FFT算法優(yōu)化及其在磁共振譜儀中的應(yīng)用
2 FFT算法實現(xiàn)
FFT算法在FPGA上實現(xiàn)的過程中,信號的值、系統(tǒng)的系數(shù)和運算中的結(jié)果都存儲在有限字長的存儲單元中,從而導(dǎo)致了設(shè)計時的無限精度轉(zhuǎn)變成實現(xiàn)時的有限精度,必將產(chǎn)生相對于原設(shè)計系統(tǒng)的誤差,嚴(yán)重時會將由于雙通道不平衡產(chǎn)生的鏡像峰湮滅,從而使整個設(shè)計失去意義。
為了實現(xiàn)FFT實時運算,基于FPGA的FFT信號處理模塊是關(guān)鍵,并且要求此模塊能在頻率至少為210 MHz的系統(tǒng)時鐘下穩(wěn)定工作。同時又因為并行的FFT設(shè)計需要占用大量的資源,資源使用率過大會制約布局布線后的時序收斂。為了平衡資源與速度間的矛盾,整個設(shè)計通過64點FFT并行模塊的復(fù)用來實現(xiàn)。
2.1 有限字長效應(yīng)及其優(yōu)化措施
在FFT算法中,采用蝶形計算,如圖3所示。
對于基2時間抽選FFT算法,蝶形公式如下:
式中:N為FFT點數(shù);Nm和P為兩個同迭代次數(shù)m有關(guān)的量;Xm-1為ADC輸出信號經(jīng)過m-2級蝶形運算得到的計算結(jié)果;旋轉(zhuǎn)因子由式(7)給出,每個蝶形包含兩個復(fù)數(shù)乘法。
由于存儲單元有限,必須對計算結(jié)果截取,進(jìn)行定點化,但是同時又會引入舍入誤差en,這種現(xiàn)象即為有限字長效應(yīng)??紤]到每個復(fù)數(shù)乘法相當(dāng)于4個實數(shù)乘法,因此有限字長時復(fù)數(shù)乘法的實際乘積可以表示為:
式中e1,e2,e3,e4分別為其對應(yīng)的實數(shù)乘法的舍入誤差。因此可進(jìn)一步建立如圖4所示的蝶形計算舍入誤差模型。
評論