基于FPGA的高速卷積硬件設計及實(shí)現
本文引用地址:http://dyxdggzs.com/article/148300.htm
在圖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)。

觀(guān)察圖8可知,經(jīng)過(guò)FFT變換和IFFT變換以后的累積相對誤差保持在±3%以?xún)?,主要原因?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/FPGA">FPGA計算FFT和IFFT過(guò)程中由于精度的要求,進(jìn)行數據舍去,造成誤差的產(chǎn)生。這種誤差是由硬件客觀(guān)條件限制的,不可避免,但是±3%的誤差精度完全可以滿(mǎn)足實(shí)際應用。

本系統由于涉及到高速A/D、高速D/A,所以在PCB設計過(guò)程中必須考慮電磁兼容EMC(Electro MagneTIc Compatibility)和抗電磁干擾EMI(Electro Magnetic InteRFerence)性和信號的完整性??傮w來(lái)說(shuō),在進(jìn)行高速PCB設計過(guò)程中,不僅要考慮PCB的元器件布局和布線(xiàn),同時(shí)設計中的接地、去耦和旁路同樣重要。例如在A(yíng)/D部分這種混合信號PCB設計中,由于混合了模擬信號與數字信號,只有盡可能減小電流環(huán)路的面積才能降低數字信號與模擬信號之間的相互干擾。一個(gè)可行的方法是將地平面分割,然后在A(yíng)/D轉換器下面將模擬地和數字地連接在一起。
在處理FFT和IFFT核的指數問(wèn)題時(shí),正常做法是在FFT結束后直接做一次指數調整,在IFFT結束后再做一次指數調整。設經(jīng)過(guò)FFT核后的直接輸出結果為X’(k)、對應指數輸出為(-expl),x(n)的真實(shí)結果為X(k),則有

由式(12)可知,FFT和IFFT的兩次指數調整實(shí)際可以在IFFT合為一次,可以減少控制的復雜程度。兩次調整指數的示意圖如圖9所示。一次調整指數的示意圖如圖10所示。


6 結束語(yǔ)
本文基于Altera的FPGA EP2S60F1 020C8,搭建了結合A/D,D/A等功能的配套處理平臺,完成了對高速離散卷積的硬件實(shí)現,使該系統在100 MHz時(shí)工作正常,滿(mǎn)足了設計要求。
評論