基于FPGA的線(xiàn)性卷積的實(shí)時(shí)實(shí)現
5 性能分析與改進(jìn)
FPGA的流水線(xiàn)結構決定了速度的瓶頸取決于整個(gè)流程中處理速度最慢的部分。在FFT核速度可以保證的前提下(EP2S60的理論速度可以達到293.06 MHz),而處理過(guò)程中全部使用FPGA內部RAM來(lái)存儲中間數據,所以在本系統中,FPGA內部的理論處理速度達到200 MHz以上。本系統的處理速度主要局限于A(yíng)/D和D/A的數據轉換率,根據實(shí)際測試,在100 MHz系統時(shí)鐘下,數據吞吐率可達100 Ms/s,滿(mǎn)足了設計技術(shù)指標。圖4給出了FPGA的資源占用。為了較好地檢測整個(gè)使用FFT_IFFT實(shí)現卷積的系統性能,設計了一個(gè)初略性能分析測試結構,如圖5所示。
在圖5中,由上位機產(chǎn)生的一組8 192點(diǎn)隨機復數a(t)寫(xiě)入ROM中,作為FFT模塊的信號輸入,經(jīng)過(guò)FFT后將結果B(ω)存入RAM中,以方便上位機讀取并與a(t)使用Matlab計算出來(lái)的FFT結果A(ω)進(jìn)行比較;接著(zhù)將該FFT結果B(ω)再進(jìn)行IFFT計算,由數字信號處理理論可知,一個(gè)信號進(jìn)行FFT后再進(jìn)行IFFT的結果應該是信號本身,所以將B(ω)再進(jìn)行IFFT計算后得到的結果b(t)存入RAM,由上位機讀取并與原始信號a(t)進(jìn)行比較,可以分析整個(gè)卷積系統的處理誤差。圖6給出了計算FFT結果相對誤差的Matlab相關(guān)程序。
求出A(ω)的最大值max[A(ω)],分別對B(ω)的實(shí)部和虛部計算相對誤差,得到如圖7所示的相對誤差曲線(xiàn)。由圖6可知,在FFT過(guò)程中,相對誤差可以保證在0.5%以?xún)?。對FFT所得的結果B(ω)做IFFT得到b(t),分析b(t)與原數據a(t)的誤差,得到如圖8所示的相對誤差曲線(xiàn)。
評論