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