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