基于FPGA的高速卷積硬件設(shè)計及實現(xiàn)
本文引用地址:http://m.butianyuan.cn/article/148300.htm
在圖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所示的相對誤差曲線。
觀察圖8可知,經(jīng)過FFT變換和IFFT變換以后的累積相對誤差保持在±3%以內(nèi),主要原因是FPGA計算FFT和IFFT過程中由于精度的要求,進行數(shù)據(jù)舍去,造成誤差的產(chǎn)生。這種誤差是由硬件客觀條件限制的,不可避免,但是±3%的誤差精度完全可以滿足實際應(yīng)用。
本系統(tǒng)由于涉及到高速A/D、高速D/A,所以在PCB設(shè)計過程中必須考慮電磁兼容EMC(Electro MagneTIc Compatibility)和抗電磁干擾EMI(Electro Magnetic InteRFerence)性和信號的完整性??傮w來說,在進行高速PCB設(shè)計過程中,不僅要考慮PCB的元器件布局和布線,同時設(shè)計中的接地、去耦和旁路同樣重要。例如在A/D部分這種混合信號PCB設(shè)計中,由于混合了模擬信號與數(shù)字信號,只有盡可能減小電流環(huán)路的面積才能降低數(shù)字信號與模擬信號之間的相互干擾。一個可行的方法是將地平面分割,然后在A/D轉(zhuǎn)換器下面將模擬地和數(shù)字地連接在一起。
在處理FFT和IFFT核的指數(shù)問題時,正常做法是在FFT結(jié)束后直接做一次指數(shù)調(diào)整,在IFFT結(jié)束后再做一次指數(shù)調(diào)整。設(shè)經(jīng)過FFT核后的直接輸出結(jié)果為X’(k)、對應(yīng)指數(shù)輸出為(-expl),x(n)的真實結(jié)果為X(k),則有
由式(12)可知,F(xiàn)FT和IFFT的兩次指數(shù)調(diào)整實際可以在IFFT合為一次,可以減少控制的復雜程度。兩次調(diào)整指數(shù)的示意圖如圖9所示。一次調(diào)整指數(shù)的示意圖如圖10所示。
6 結(jié)束語
本文基于Altera的FPGA EP2S60F1 020C8,搭建了結(jié)合A/D,D/A等功能的配套處理平臺,完成了對高速離散卷積的硬件實現(xiàn),使該系統(tǒng)在100 MHz時工作正常,滿足了設(shè)計要求。
評論