基于FPGA的線性卷積的實(shí)時(shí)實(shí)現(xiàn)
摘要:從實(shí)際工程應(yīng)用出發(fā),研究了在基于FPGA上快速傅里葉變換實(shí)現(xiàn)線性卷積的方法,并搭建了一個(gè)基于Altera的EP2S60硬件處理平臺(tái),利用Altera提供的FFT IP核,在100 MHz系統(tǒng)時(shí)鐘下,數(shù)據(jù)吞吐率可達(dá)100 Ms/s,
關(guān)鍵詞:快速傅里葉變換;卷積;現(xiàn)場可編程門陣列
在數(shù)字信號(hào)處理領(lǐng)域,離散時(shí)間系統(tǒng)的輸出響應(yīng),可以直接由輸入信號(hào)與系統(tǒng)單位沖激響應(yīng)的離散卷積得到。離散卷積在電子通信領(lǐng)域應(yīng)用廣泛,是工程應(yīng)用的基礎(chǔ)。如何快速有效地計(jì)算出離散序列的卷積,一直是工程人員所關(guān)心的問題。如果直接在時(shí)域進(jìn)行卷積,卷積過程中所必須的大量乘法和加法運(yùn)算,一定程度地限制了數(shù)據(jù)處理的實(shí)時(shí)性,不能滿足時(shí)效性強(qiáng)的工程應(yīng)用。本文從實(shí)際工程應(yīng)用出發(fā),使用快速傅里葉變換(FFT)技術(shù),探討卷積的高速硬件實(shí)現(xiàn)方法。
1 卷積算法的原理
設(shè)線性時(shí)不變系統(tǒng)的沖激響應(yīng)為h(n),則沖激響應(yīng)和輸入δ(n)之間有關(guān)系
假設(shè)該系統(tǒng)的輸入為x(n),輸出為y(n),則根據(jù)線性時(shí)不變系統(tǒng)的定義,有
根據(jù)式(3),線性時(shí)不變系統(tǒng)的輸出信號(hào)可以由輸入信號(hào)與單位沖激響應(yīng)的卷積求得。實(shí)際應(yīng)用中,x(n)與y(n)的序列長度均為有限的,假設(shè)均為N,顯然,求出N點(diǎn)的y(n)需要N2次復(fù)數(shù)乘法,當(dāng)序列長度大時(shí),所需計(jì)算量是龐大,在需要實(shí)時(shí)處理的系統(tǒng)中,難以滿足實(shí)時(shí)性要求。
將M點(diǎn)序列x(n),L點(diǎn)序列h(n)分別作擴(kuò)展,構(gòu)造新的序列x’(n),h’(n),使得長度N滿足如下條件
根據(jù)時(shí)域循環(huán)卷積定理,x(n)與h(n)的線性卷積可以用循環(huán)卷積來代替。即
根據(jù)式(9),給出了一種基于快速傅里葉變換(FFT)的卷積的實(shí)現(xiàn)方法,如圖1所示。分別對(duì)補(bǔ)零后的z(n)和h(n)進(jìn)行FFT運(yùn)算,得到對(duì)應(yīng)的頻域響應(yīng)X(k)和H(k),將X(k)和H(k)相乘的結(jié)果再做IFFT,即可以得到x(n)和h(n)的卷積結(jié)果y(n)。
2 基于FPGA的高速卷積的實(shí)現(xiàn)
隨著電子技術(shù)的發(fā)展,現(xiàn)階段FFT硬件實(shí)現(xiàn)的方法主要有ASIC,DSP和FPGA這3類。專用FFT處理芯片ASIC,例如PDSPl6510,這類芯片的主要特點(diǎn)是技術(shù)簡單。但是由于此類ASIC處理點(diǎn)數(shù)有限,實(shí)現(xiàn)大點(diǎn)數(shù)FFT時(shí),需要多芯片并行工作,會(huì)導(dǎo)致所需的配套控制復(fù)雜、存儲(chǔ)芯片較多,加大了系統(tǒng)實(shí)現(xiàn)難度。使用DSP,如TMS320DSP6416,控制程序設(shè)計(jì)比較簡單,但由于DSP的串行式軟件工作機(jī)理,當(dāng)點(diǎn)數(shù)較大時(shí),處理速度難以滿足實(shí)時(shí)要求。使用FPGA實(shí)現(xiàn)FFT功能,其并行處理機(jī)制允許FFT運(yùn)算過程中使用流水線的形式,大大提高處理速度,而且隨著技術(shù)發(fā)展,F(xiàn)FT IP核技術(shù)日臻完善,使得基于FFT IP核的系統(tǒng)在速度、靈活性等方面均展現(xiàn)出優(yōu)越性。本文使用Altera公司的Stratix II系列芯片EP2S60實(shí)現(xiàn)線性卷積的功能。
Stratix II是Altera公司生產(chǎn)的一款高性能FPGA器件。它采用臺(tái)積電的90 nm工藝技術(shù)生產(chǎn),等效邏輯單元(LE)最高可達(dá)180 kB,嵌入式存儲(chǔ)器容量最高可達(dá)9 MB。該器件不但具有較高的性能和密度,而且還針對(duì)器件總功率進(jìn)行了優(yōu)化,同時(shí)可以支持高達(dá)l Gb/s的高速差分I/O信號(hào),因而是一款高性能的FPGA。該芯片中所含的高性能嵌入式DSP塊的運(yùn)行頻率高達(dá)370 MHz。另外Stratix II還有12個(gè)可編程PLL,并具有完善的時(shí)鐘管理和頻率合成能力,能滿足高性能系統(tǒng)的需求。
EP2S60集成了60 440個(gè)等效邏輯單元(LES),內(nèi)嵌M512 RAM模塊329個(gè),M4K RAM模塊255個(gè),M-RAM模塊2個(gè),總存儲(chǔ)單元2 544 192 bit,并集成了DSP模塊36個(gè)、18 bit×18 bit嵌入式硬件乘法器144個(gè),含有2個(gè)增強(qiáng)性鎖相環(huán)和8個(gè)快速鎖相環(huán),可滿足本系統(tǒng)的要求。
評(píng)論