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