張 娜,李春祎
(1.中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081;2.河北工業(yè)職業(yè)技術(shù)學(xué)院,河北 石家莊 050091)
多相并行FIR濾波器的FPGA高速實(shí)現(xiàn)方法
張 娜1,李春祎2
(1.中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081;2.河北工業(yè)職業(yè)技術(shù)學(xué)院,河北 石家莊 050091)
L路多相并行FIR濾波器的工作速率是單路串行FIR濾波器的L倍,基于多項(xiàng)式分解的多相并行FIR濾波器實(shí)現(xiàn)結(jié)構(gòu)簡(jiǎn)單、計(jì)算復(fù)雜度小、濾波運(yùn)算延遲少;針對(duì)多相并行FIR濾波器,給出了基于多項(xiàng)式分解的多相并行FIR濾波器優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)的FPGA高速實(shí)現(xiàn)方法。歸納、整理和推導(dǎo)了2路至8路基于多項(xiàng)式分解的多相并行濾波器優(yōu)化實(shí)現(xiàn)結(jié)構(gòu),并針對(duì)FPGA實(shí)現(xiàn)的具體特點(diǎn)給出了多相并行濾波器優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)的FPGA高速實(shí)現(xiàn)方法。通過(guò)測(cè)試分析可知,給出的基于多項(xiàng)式分解的多相并行FIR濾波器優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)的FPGA高速實(shí)現(xiàn)方法能夠在FPGA上高速實(shí)現(xiàn)多相并行FIR濾波器。
FIR濾波器;多相分解;FPGA;高速
數(shù)字信號(hào)處理具有靈活性、高精度和高穩(wěn)定性、便于大規(guī)模集成、對(duì)數(shù)字信號(hào)可以存儲(chǔ)和運(yùn)算且系統(tǒng)可以獲得高性能指標(biāo)等優(yōu)點(diǎn),已被廣泛應(yīng)用于語(yǔ)音、圖像、控制、航空和航天等眾多領(lǐng)域[1]。在數(shù)字信號(hào)處理系統(tǒng)中,有限脈沖響應(yīng)(Finite Impulse Response,FIR)濾波器具有先天穩(wěn)定性和可以有嚴(yán)格的線性相位等突出特性,在數(shù)字信號(hào)處理領(lǐng)域得到了廣泛應(yīng)用[2]。文獻(xiàn)[3]指出,隨著數(shù)字信號(hào)處理需求的提高,對(duì)FIR濾波器運(yùn)算速率的需求已超過(guò)1 GHz?,F(xiàn)場(chǎng)可編程邏輯陣列(FPGA)在靈活性和性能等方面具有優(yōu)勢(shì),已作為通用硬件平臺(tái)廣泛應(yīng)用;盡管Altera和Xilinx推出器件的最高工作頻率超過(guò)500 MHz,但是仍然不能直接實(shí)現(xiàn)運(yùn)算速率超過(guò)1 GHz的FIR濾波器[4]。由于FPGA器件的限制,要在FPGA中實(shí)現(xiàn)運(yùn)算速率較高的FIR濾波器,只能采用并行結(jié)構(gòu),耗費(fèi)更多的資源以降低FPGA的工作頻率[5]。
近年來(lái),運(yùn)算速率較高的FIR濾波器的多路并行實(shí)現(xiàn)結(jié)構(gòu)和相應(yīng)的工程實(shí)現(xiàn)得到了廣泛關(guān)注[6]。文獻(xiàn)[7]給出了一種超高速并行濾波結(jié)構(gòu)FIR的FPGA實(shí)現(xiàn)及應(yīng)用。文獻(xiàn)[8-9]給出了基于多相濾波的高效數(shù)字下變頻設(shè)計(jì),并通過(guò)FPGA實(shí)現(xiàn)了在低頻率下完成高速數(shù)據(jù)流下變頻。通過(guò)直接應(yīng)用多相分解理論可知,一個(gè)N階串行FIR濾波器可由L2個(gè)N/L階子濾波器等效并行實(shí)現(xiàn),其中并行處理路數(shù)為L(zhǎng);可以看出,由多相分解理論得到的并行FIR濾波器實(shí)現(xiàn)結(jié)構(gòu)的工作頻率降為串行FIR濾波器的1/L,其計(jì)算復(fù)雜度或耗費(fèi)的資源升為串行FIR濾波器的L倍[10]。在對(duì)FIR濾波器多相分解時(shí),文獻(xiàn)[10]提出的Fast FIR Algorithms (FFAs)方法對(duì)多相分解的同類項(xiàng)進(jìn)行規(guī)整合并從而減少并行FIR濾波器實(shí)現(xiàn)結(jié)構(gòu)的計(jì)算復(fù)雜度。在FFAs方法的基礎(chǔ)上,文獻(xiàn)[11-12]利用濾波器抽頭系數(shù)的對(duì)稱性關(guān)系進(jìn)一步降低并行FIR濾波器實(shí)現(xiàn)結(jié)構(gòu)的計(jì)算復(fù)雜度;為了進(jìn)一步節(jié)約硬件資源,文獻(xiàn)[13]論述了一種基于迭代短卷積算法的低復(fù)雜度并行FIR濾波器結(jié)構(gòu)。為了降低FIR并行濾波器的計(jì)算復(fù)雜度,文獻(xiàn)[14-15]提出的迭代短卷積方法通過(guò)增加加法和延遲單元為代價(jià)減少FIR并行濾波器的乘法器數(shù)目。相比于FFAs方法,文獻(xiàn)[11-15]提出的并行FIR濾波器實(shí)現(xiàn)結(jié)構(gòu)計(jì)算復(fù)雜度改善不明顯。
FFAs方法給出的FIR濾波器并行實(shí)現(xiàn)結(jié)構(gòu)延遲少,計(jì)算復(fù)雜度小,結(jié)構(gòu)簡(jiǎn)單[4];鮮有文章涉及基于多相分解的FFAs多相并行FIR濾波器優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)的FPGA高速實(shí)現(xiàn);本文聚焦于多相并行濾波器FFAs優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)及其FPGA高速實(shí)現(xiàn)。
1.1 傳統(tǒng)并行實(shí)現(xiàn)結(jié)構(gòu)
FIR濾波器的頻域表達(dá)式可以表示為[4]:
(1)
(2)
式中,x(·)、h(·)和y(·)分別表示濾波器的輸入信號(hào)、有限脈沖響應(yīng)和輸出信號(hào),N表示濾波器階數(shù)。
并行路數(shù)為5的FIR濾波器的頻域表達(dá)式為:
,(3)
式中,為了簡(jiǎn)化表示,Xk表示Xk(z5),Hj表示Hj(z5),Yi表示Yi(z5);濾波器經(jīng)5路多相化處理后每路速率降為單路全速處理的1/5。
式(3)給出了FIR濾波器的5路多相直接分解實(shí)現(xiàn)結(jié)構(gòu),5路多相輸出共需要25個(gè)子濾波器(每路多相輸出均需要5個(gè)子濾波器),其計(jì)算復(fù)雜度是串行濾波器的5倍。
1.2 基于FFA的并行優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)
基于FFAs的FIR濾波器的并行優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)需要針對(duì)具體并行路數(shù),通過(guò)多項(xiàng)式分解得到FIR濾波器多相輸出與多相輸入之間的關(guān)系[10]。下面歸納、整理和推導(dǎo)得到2路至8路基于多項(xiàng)式分解的多相并行濾波器實(shí)現(xiàn)結(jié)構(gòu)。
當(dāng)L=2時(shí),有優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)[10]:
(4)
當(dāng)L=3時(shí),經(jīng)多項(xiàng)式分解可得:
(5)
當(dāng)L=4時(shí),對(duì)文獻(xiàn)[10]結(jié)果進(jìn)行整理可得優(yōu)化實(shí)現(xiàn)結(jié)構(gòu):
(6)
當(dāng)L=5時(shí),經(jīng)多項(xiàng)式分解可得:
(7)
當(dāng)L=6時(shí),經(jīng)多項(xiàng)式分解可得:
(8)
當(dāng)L=7時(shí),經(jīng)多項(xiàng)式分解可得優(yōu)化實(shí)現(xiàn)結(jié)構(gòu):
(9)
當(dāng)L=8時(shí),文獻(xiàn)[4]給出了一種實(shí)用的優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)。在式(4)~(9)中,符號(hào)X和H下的多個(gè)數(shù)字下標(biāo)表示對(duì)應(yīng)輸入相加,如X15表示X1+X5。
從式(4)~(9)中可以看出多相并行FIR濾波器的實(shí)現(xiàn)結(jié)構(gòu);為了盡可能提高FPGA運(yùn)行速度,減少濾波器需要并行的路數(shù),對(duì)于多相并行FIR濾波器FPGA高速實(shí)現(xiàn),需要結(jié)合多相并行FIR濾波器實(shí)現(xiàn)結(jié)構(gòu)和FPGA特點(diǎn)進(jìn)行綜合考慮。
對(duì)于多相并行FIR濾波器的FPGA高速實(shí)現(xiàn),主要設(shè)計(jì)思路如下:
① 為了提高效率,采用模塊化實(shí)現(xiàn)結(jié)構(gòu),多相并行FIR濾波器FPGA高速實(shí)現(xiàn)主要功能模塊包括:子濾波器模塊、多輸入加法模塊、延遲模塊;
② 為了盡可能提高FPGA運(yùn)行速度,對(duì)于多相并行FIR濾波器的FPGA實(shí)現(xiàn),不管在功能模塊內(nèi)部還是外部都應(yīng)采用運(yùn)算加鎖存的實(shí)現(xiàn)方式;建議對(duì)二輸入加法器結(jié)果鎖存(多輸入加法器分解為多個(gè)二輸入加法器實(shí)現(xiàn)),對(duì)二輸入乘法器結(jié)果鎖存;
③ 為了保證多路輸出信號(hào)的一致性,應(yīng)嚴(yán)格控制各路信號(hào)的延遲,保證各路信號(hào)之間的嚴(yán)格同步,包括功能模塊內(nèi)部和功能模塊外部;不管功能模塊內(nèi)還是功能模塊外的同步,都以最長(zhǎng)延遲為基準(zhǔn)利用延遲模塊對(duì)信號(hào)進(jìn)行同步對(duì)齊。
對(duì)于子濾波器功能模塊,為了盡可能提高FPGA運(yùn)行速度,借鑒并采用全并行FIR濾波器結(jié)構(gòu)[16]。不失一般性,設(shè)定子濾波器系數(shù)個(gè)數(shù)為5,子濾波器設(shè)計(jì)圖如圖1所示。
圖1 子濾波器功能模塊設(shè)計(jì)圖
如圖1所示,為了盡可能提高FPGA運(yùn)行速度,在子濾波器功能模塊中,對(duì)所有二輸入加法器結(jié)果鎖存(多輸入加法器分解為多個(gè)二輸入加法器實(shí)現(xiàn)),對(duì)所有二輸入乘法器結(jié)果鎖存;另外,將子濾波器系數(shù)作為輸入進(jìn)行配置,保證了子濾波器功能模塊的通用性。由于所有子濾波器階數(shù)相同,所有子濾波器輸出相對(duì)于數(shù)據(jù)輸入之間的延遲相同。
由于加法器輸入的多樣性,可按照多個(gè)模塊進(jìn)行設(shè)計(jì)。為了盡可能提高FPGA運(yùn)行速度,借鑒并采用全并行樹型加法器結(jié)構(gòu)[5],多輸入加法器分解為多級(jí)二輸入加法器,并對(duì)每一級(jí)加法器結(jié)果進(jìn)行鎖存;另外,為了便于統(tǒng)計(jì)延遲及信號(hào)同步,將輸入數(shù)據(jù)的取負(fù)運(yùn)算包含在多輸入加法器中,并將多輸入加法器采用統(tǒng)一設(shè)計(jì)架構(gòu)。不失一般性,設(shè)定輸入數(shù)目為9,其中4個(gè)輸入需要乘以-1,多輸入加法器設(shè)計(jì)圖如圖2所示。
圖2 多輸入加法器功能模塊設(shè)計(jì)圖
采用圖2所示的統(tǒng)一設(shè)計(jì)架構(gòu),不同輸入數(shù)目對(duì)應(yīng)的加法器延遲時(shí)鐘數(shù)目可以表示為:
(10)
式中,Dclk表示多輸入加法器結(jié)果相對(duì)于輸入延遲的時(shí)鐘數(shù)目,Ninput表示輸入數(shù)目,?·」表示向上取整運(yùn)算。
延遲功能模塊可以采用多級(jí)D觸發(fā)器級(jí)聯(lián)的形式實(shí)現(xiàn),也可以采用雙口RAM實(shí)現(xiàn)。
設(shè)計(jì)好子濾波器功能模塊、多輸入加法器功能模塊和延遲功能模塊后,需要按照式(4)~(9)所示的基于多項(xiàng)式分解的多相并行濾波器優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)完成FPGA高速實(shí)現(xiàn),為了保證多路輸出信號(hào)的一致性,應(yīng)嚴(yán)格控制各路信號(hào)的延遲,保證各路信號(hào)之間的嚴(yán)格同步。
不失一般性,下面以5路多相并行FIR濾波器為例具體說(shuō)明FPGA的高速實(shí)現(xiàn)。
利用式(7)并結(jié)合多相并行FIR濾波器的FPGA高速實(shí)現(xiàn)主要設(shè)計(jì)思路,5路多相并行FIR濾波器的FPGA的高速實(shí)現(xiàn)圖如圖3所示。
從圖3中可以看出,多相并行FIR濾波器的FPGA的高速實(shí)現(xiàn)主要包括3種功能模塊:分別是子濾波器模塊、多輸入加法器模塊和延遲模塊;為了保證多路輸出信號(hào)的一致性,除了各功能模塊內(nèi)部的嚴(yán)格同步外,對(duì)于各功能模塊間采用延遲模塊進(jìn)行延遲以保證各信號(hào)之間的嚴(yán)格同步;不管功能模塊內(nèi)還是功能模塊外的同步,都以最長(zhǎng)延遲為基準(zhǔn)利用延遲模塊進(jìn)行同步對(duì)齊;在圖3中,第4路多相輸出對(duì)應(yīng)的7輸入加法器功能模塊延遲最長(zhǎng),則以它為基準(zhǔn)將第0路~第3路多相輸出與之同步對(duì)齊。另外,圖3所示的多相并行濾波器FPGA高速實(shí)現(xiàn)中,所有運(yùn)算都采用運(yùn)算寄存和全并行的方式進(jìn)行,由此能夠在較高的頻率工作。
圖3 5路多相并行濾波器FPGA高速實(shí)現(xiàn)圖
不失一般性,以5路多相并行FIR濾波器為例進(jìn)行FPGA高速實(shí)現(xiàn)并進(jìn)行測(cè)試驗(yàn)證。
設(shè)計(jì)1個(gè)具有30個(gè)抽頭系數(shù)的低通濾波器,對(duì)濾波器的抽頭系數(shù)按照12位進(jìn)行量化,其歸一化頻率響應(yīng)曲線如圖4所示。
在Altera公司Arria V系列芯片5AGXFB3H4F35I5上按照?qǐng)D3所示實(shí)現(xiàn)框圖對(duì)5路多相并行FIR濾波器進(jìn)行FPGA高速實(shí)現(xiàn),輸入信號(hào)位寬為9位,系統(tǒng)測(cè)試圖如圖5所示。圖6給出了FPGA輸入信號(hào)和輸出信號(hào)的頻譜。
圖4 濾波器歸一化頻率響應(yīng)曲線
圖5 測(cè)試圖
圖6 FPGA輸入信號(hào)和輸出信號(hào)頻譜
如圖5和圖6所示,測(cè)試時(shí)的輸入信號(hào)源由2個(gè)5路多相NCO累加得到(每個(gè)NCO的輸出信號(hào)頻率可單獨(dú)控制),從而產(chǎn)生共有2個(gè)頻點(diǎn)的信號(hào)。從圖4和圖6中可以看出,5路多相FIR濾波器FPGA高速實(shí)現(xiàn)的輸入和輸出信號(hào)的頻譜符合濾波器頻率響應(yīng)特性,且其輸出結(jié)果和matlab軟件的輸出結(jié)果一致,沒(méi)有誤差。經(jīng)過(guò)測(cè)試,F(xiàn)PGA工作速度可達(dá)250 MHz。
由此可以看出,本文給出的多相并行FIR濾波器的FPGA高速實(shí)現(xiàn)思路能夠在FPGA上高速實(shí)現(xiàn)多相并行FIR濾波器。
基于多項(xiàng)式分解的多相并行FIR濾波器實(shí)現(xiàn)結(jié)構(gòu)簡(jiǎn)單、計(jì)算復(fù)雜度小、濾波運(yùn)算延遲少。本文歸納、整理和推導(dǎo)了2路~8路基于多項(xiàng)式分解的多相并行濾波器優(yōu)化實(shí)現(xiàn)結(jié)構(gòu),給出了多相并行濾波器優(yōu)化實(shí)現(xiàn)結(jié)構(gòu)的FPGA高速實(shí)現(xiàn)方法。通過(guò)測(cè)試可知,給出的多相并行FIR濾波器的FPGA高速實(shí)現(xiàn)方法能夠在FPGA上高速實(shí)現(xiàn)多相并行FIR濾波器,對(duì)系統(tǒng)的工程實(shí)現(xiàn)有指導(dǎo)意義。
[1] 張建偉,展雪梅.FIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)[J].無(wú)線電工程,2010,40(6):54-56.
[2] 許瑞生,崔琦.FIR濾波器在擴(kuò)頻發(fā)射機(jī)中的應(yīng)用[J].無(wú)線電通信技術(shù),2011,37(4):62-64.
[3] 張維良,張彧,楊再初,等.高速并行FIR濾波器的FPGA實(shí)現(xiàn)[J].系統(tǒng)工程與電子技術(shù),2009,31(8):1819-1822.
[4] 宋廣怡.FIR濾波器的8路多相27子濾波器實(shí)現(xiàn)結(jié)構(gòu)[J].無(wú)線電工程,2015,45(2):22-25.
[5] 孫大元,王憲平.基于PMF-FFT的高動(dòng)態(tài)長(zhǎng)偽碼捕獲實(shí)現(xiàn)[J].無(wú)線電工程,2016,46(8):65-69.
[6] 王璐,李明.基于并行FIR濾波器結(jié)構(gòu)的數(shù)字下變頻[J].火控雷達(dá)技術(shù),2010,39(3):36-40.
[7] 張峻濤,王平,傅石雨.超高速并行濾波結(jié)構(gòu)FIR的FPGA實(shí)現(xiàn)及應(yīng)用[J].通信對(duì)抗,2013,32(1):36-39.
[8] 劉二平,劉曉杰.基于多相濾波的高效數(shù)字下變頻設(shè)計(jì)[J].無(wú)線電工程,2016,46(8):23-26.
[9] 顧明超,李倩.寬帶數(shù)字下變頻器的FPGA實(shí)現(xiàn)[J].無(wú)線電通信技術(shù),2014,40(5):69-72.
[10]Parker D A,Parhi K K.Area-Efficient Parallel FIR Digital Filter Implementations[C]∥IEEE Proceedings of International Conference on Application Specific Systems,Architectures and Processors,1996:93-111.
[11]Tsao Y,Choi K.Area-Efficient Parallel FIR Digital Filter Structures for Symmetric Convolutions Based on Fast FIR Algorithm[J].IEEE Transactions on Very Large Scale Integration Systems,2012,20(2):366-371.
[12]Tsao Y,Choi K.Area-Efficient VLSI Implementation for Parallel Linear-Phase FIR Digital Filters of Odd Length Based on Fast FIR Algorithm[J].IEEE Transactions on Circuits and Systems-II:Express Briefs,2012,59(6):371-375.
[13]田晶晶,李廣軍,李強(qiáng).一種基于迭代短卷積算法的低復(fù)雜度并行FIR 濾波器結(jié)構(gòu)[J].電子與信息學(xué)報(bào),2014,36(5):1151-1157.
[14]王成,侯衛(wèi)華,劉明峰,等.采用多級(jí)子并行濾波器級(jí)聯(lián)結(jié)構(gòu)的并行FIR濾波器[J].中國(guó)電子科學(xué)研究院學(xué)報(bào),2008,3(1):92-96.
[15]Cheng C,Keshab K P.Hardware Efficient Fast Parallel FIR Filter Structures Based on Iterated Short Convolution [J].IEEE Transactions on Circuits and Systems-I:Regular Papers,2004,51(8):1492-1500.
[16]王英喆,王振宇,嚴(yán)偉,等.全并行FIR濾波器的FPGA 實(shí)現(xiàn)與優(yōu)化[J].電子設(shè)計(jì)工程,2015,23(22):94-97.
FPGA Implementation of Polyphase Parallel FIR Filter
ZHANG Na1,LI Chun-yi2
(1.The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China;2.Hebei College of Industry and Technology,Shijiazhuang Hebei 050091,China)
Compared with the serial FIR filter,the sample frequency ofL-channel polyphase parallel FIR filter is increased by a factor ofL.The implementation structure of polyphase parallel filter based on polynomial decomposition is simple,with low computation complexity and short delay.The paper summarizes and deduces the optimal structure of polyphase parallel filter from 2 channels to 8 channels.Further,the paper proposes the implementation method of the optimal structure of polyphase parallel filter fit for processing in FPGA.The computer simulation shows the proposed implementation method of polyphase parallel filter is fit for processing in FPGA with high-speed.
FIR filter;polyphase decomposition;FPGA;high-speed
10.3969/j.issn.1003-3114.2017.04.21
張娜,李春祎.多相并行FIR濾波器的FPGA高速實(shí)現(xiàn)方法[J].無(wú)線電通信技術(shù),2017,43(4):86-90.[ZHANG Na,LI Chunyi.FPGA Implementation of Polyphase Parallel FIR Filter [J].Radio Communications Technology,2017,43(4):86-90.]
2017-03-11
中國(guó)電子科技集團(tuán)公司航天信息應(yīng)用技術(shù)重點(diǎn)實(shí)驗(yàn)室開放基金(EX166290012)
張 娜(1984—),女,碩士,工程師,主要研究方向:衛(wèi)星通信。李春祎(1980—),女,講師,主要研究方向:信號(hào)與信息處理。
TN919
A
1003-3114(2017)04-86-5