高 珊 李 鵬 單 聰
(1.西安電子工程研究所 西安 710100;2.裝甲兵軍事代表局駐西安地區(qū)軍事代表室 西安 710000)
多頻連續(xù)波雷達(dá)是適應(yīng)現(xiàn)代靶場(chǎng)高精度多目標(biāo)參數(shù)測(cè)量需求的一種新體制雷達(dá)。該體制雷達(dá),直波泄漏和近程地雜波的影響是不可忽略的[1~2],在雙頻模式時(shí),不僅分布在零頻,而且也分布在差頻,對(duì)此可利用一定特性的濾波器予以濾除。另外,在現(xiàn)代靶場(chǎng)測(cè)量中,為了防止頻譜混疊且為了滿足實(shí)時(shí)信號(hào)處理的要求,需要對(duì)高采樣的原始數(shù)據(jù)進(jìn)行抗混疊濾波和降采樣[3]??紤]到雷達(dá)的目標(biāo)參數(shù)測(cè)量對(duì)回波的相位要求很嚴(yán)格,所以使用具有線性相位特點(diǎn)的數(shù)字FIR濾波器。
綜合考慮在數(shù)字域?qū)Σ铑l點(diǎn)的直雜波抑制處理以及抗混疊濾波和降采樣,采用“高采樣-低通濾波-抽取”的方法來實(shí)現(xiàn)。另外雷達(dá)的接收天線由四塊微帶平面天線陣組合而成,則實(shí)時(shí)信號(hào)處理系統(tǒng)接收的是多通道零中頻復(fù)信號(hào),所以整個(gè)實(shí)現(xiàn)是多通道抽取FIR濾波器的設(shè)計(jì)。
FPGA(Field Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)技術(shù)的發(fā)展為DSP設(shè)計(jì)提供了一種新的選擇,F(xiàn)PGA有著規(guī)整的內(nèi)部邏輯塊陣列和豐富的連線資源,特別適用于細(xì)顆粒度和高并行度結(jié)構(gòu)特點(diǎn)的數(shù)字信號(hào)處理任務(wù)[4],如FIR濾波器、FFT等,相對(duì)于串行運(yùn)算主導(dǎo)的通用DSP芯片來說并行性和可擴(kuò)展性都更好。因此本文的多通道抽取FIR濾波器采用FPGA進(jìn)行設(shè)計(jì)。當(dāng)系統(tǒng)性能要求較高,則FIR濾波器的階數(shù)很高,同時(shí)又要滿足系統(tǒng)的實(shí)時(shí)性要求,對(duì)于多通道并行處理時(shí),采用傳統(tǒng)方法實(shí)現(xiàn)的FIR濾波器,F(xiàn)PGA資源耗費(fèi)量將非常驚人;而采用串行處理時(shí),系統(tǒng)的實(shí)時(shí)性要求又得不到滿足,性能受到很大影響?;诖?,本文從結(jié)構(gòu)和方法兩方面考慮,對(duì)多通道抽取FIR濾波器進(jìn)行了優(yōu)化設(shè)計(jì),給出了不增加系統(tǒng)速度,又能顯著減少資源的FPGA高效實(shí)現(xiàn)結(jié)構(gòu)。
一個(gè)N階的FIR濾波器差分方程:
式中:x(k)為第k時(shí)刻的輸入樣本值;h(k)為第k級(jí)抽頭系數(shù);y(n)為濾波器的輸出信號(hào)。
對(duì)于線性相位FIR濾波器,它的沖擊響應(yīng)h(n)具有中心對(duì)稱性,即
則式(1)將變?yōu)槿缦碌男问?/p>
由上式可知,利用它的對(duì)稱形式比直接實(shí)現(xiàn)少用了一倍的乘法器,大大減少了邏輯設(shè)計(jì)的復(fù)雜度和資源用量,節(jié)省了費(fèi)用,因?yàn)橛布朔ㄆ魇呛馨嘿F的。
對(duì)連續(xù)信號(hào)x(t)進(jìn)行間隔為T1的采樣,得到時(shí)域離散信號(hào)x(n1T1)。當(dāng)信號(hào)的采樣率遠(yuǎn)大于兩倍信號(hào)帶寬時(shí),可通過抽取過程降低信號(hào)的采樣率。離散信號(hào)x(n1T1)的M倍抽取過程就是每隔M點(diǎn)保留一個(gè)點(diǎn)數(shù)據(jù),抽取后得到的新信號(hào)為y(n2T2),其抽樣周期為T2,于是有
式中:T2=MT1。
若x(t)和y(n2T2)的傅里葉變換分別是X(jΩ)與 Y(ejΩT2),則
由式(5)可知,為了使得M倍抽取后信號(hào)頻譜不發(fā)生混疊,要求信號(hào)帶寬小于π/M。在實(shí)際信號(hào)處理過程中,信號(hào)帶寬不一定滿足這個(gè)要求,為了防止混疊,一般要進(jìn)行抗混疊濾波,即在信號(hào)抽取之前進(jìn)行低通濾波。
令h(n)是一個(gè)FIR濾波器的單位抽樣響應(yīng),長(zhǎng)度為N,對(duì)M倍的抽取器,可按圖1來實(shí)現(xiàn)。但這種實(shí)現(xiàn)方法效率很低,因?yàn)閔(n)工作在高抽樣率狀態(tài),x(n)的每一個(gè)點(diǎn)都要和濾波器的系數(shù)相乘,但每M個(gè)點(diǎn)只要一個(gè),因此有較多的乘法浪費(fèi)??赏ㄟ^等價(jià)信號(hào)流圖得到更加有效的優(yōu)化結(jié)構(gòu),如圖2所示,乘法和加法的次數(shù)減少到圖1的1/M,這樣,y(n)和x(n),h(n)的關(guān)系[5]
圖1 抽取的直接實(shí)現(xiàn)
流水線技術(shù)在數(shù)字電路設(shè)計(jì)中是為了提高系統(tǒng)的工作時(shí)鐘頻率而采用的一種特殊的設(shè)計(jì)方法。由于FPGA具有豐富的寄存器資源,因此在FPGA中可以很容易實(shí)現(xiàn)多級(jí)流水線技術(shù)[6]。
FIR濾波器的整個(gè)運(yùn)算包括移位、乘法和加法。在并行FIR濾波器中這些運(yùn)算在一個(gè)時(shí)鐘內(nèi)完成,但由于運(yùn)算邏輯相當(dāng)復(fù)雜,信號(hào)延遲較長(zhǎng),從而限制了時(shí)鐘頻率的提高。當(dāng)整個(gè)運(yùn)算采用流水線結(jié)構(gòu)時(shí),把在一個(gè)時(shí)鐘內(nèi)欲完成的運(yùn)算化成若干個(gè)子運(yùn)算,各個(gè)子運(yùn)算采用寄存器輸出模式,這樣既縮短延時(shí)路徑,提高時(shí)鐘頻率,又可以使各個(gè)子運(yùn)算同時(shí)進(jìn)行,提高數(shù)據(jù)吞吐率。對(duì)于FPGA器件來說,采用流水線式的設(shè)計(jì),可以在不增加電路成本和規(guī)模的基礎(chǔ)上,有效提高濾波器運(yùn)算處理的實(shí)時(shí)性。
圖2 減少乘加次數(shù)的優(yōu)化抽取結(jié)構(gòu)
FPGA設(shè)計(jì)中的一個(gè)重要的思想就是面積和速度的互換。一個(gè)設(shè)計(jì)如果時(shí)序余量較大,所能跑的頻率遠(yuǎn)遠(yuǎn)高于設(shè)計(jì)要求,那么就能通過功能模塊復(fù)用減少整個(gè)設(shè)計(jì)消耗的芯片面積,這就是用速度的優(yōu)勢(shì)換面積的節(jié)約。而時(shí)分復(fù)用技術(shù)就是“速度換面積”思想的一種體現(xiàn)[7]。
基于上述考慮,多通道FIR濾波器的實(shí)現(xiàn)采用時(shí)分復(fù)用的方式。當(dāng)單通道輸入數(shù)據(jù)的采樣頻率是f(Hz),對(duì)于n通道數(shù)據(jù),則提高FIR濾波器模塊的工作頻率為n×f(Hz)。從而通過高速模塊的復(fù)用,就可以將需要n個(gè)并行FIR濾波器才能實(shí)現(xiàn)的設(shè)計(jì)簡(jiǎn)化為一個(gè)高速FIR濾波器,這樣就能在不影響系統(tǒng)速度的前提下大大節(jié)省FPGA芯片內(nèi)部的資源。時(shí)分復(fù)用技術(shù)的設(shè)計(jì)示意框圖如圖3所示。
圖3 時(shí)分復(fù)用技術(shù)設(shè)計(jì)示意圖
應(yīng)用各項(xiàng)優(yōu)化技術(shù),整個(gè)多通道抽取FIR濾波器的高效實(shí)現(xiàn)結(jié)構(gòu)框圖如圖4所示,主要由2部分組成:多通道抽取FIR濾波模塊;時(shí)鐘模塊。
圖4 多通道抽取FIR濾波器的高效實(shí)現(xiàn)結(jié)構(gòu)
該模塊是整個(gè)系統(tǒng)的核心模塊,包含以下部分:延遲線單元、兩輸入加法單元、抽取單元、并串轉(zhuǎn)換單元、乘法器單元、N/2輸入加法陣列單元(N為濾波器階數(shù))、串并轉(zhuǎn)換單元。
K通道數(shù)據(jù)同時(shí)并行輸入,根據(jù)線性相位FIR濾波器的對(duì)稱結(jié)構(gòu),各通道分別同時(shí)進(jìn)行延時(shí)和加法操作,使每通道數(shù)據(jù)輸出都由N路減少為N/2路。然后根據(jù)抽取的優(yōu)化結(jié)構(gòu),輸出數(shù)據(jù)與系數(shù)相乘之前就進(jìn)行M倍抽取,使數(shù)據(jù)的傳輸速率也就是系統(tǒng)的速率降低為原來的1/M。接著利用時(shí)分復(fù)用技術(shù),K通道數(shù)據(jù)復(fù)用一個(gè)內(nèi)部頻率是輸入數(shù)據(jù)頻率K倍的高速乘加模塊,也就是說,一個(gè)輸入數(shù)據(jù)時(shí)鐘周期包含了K個(gè)內(nèi)部時(shí)鐘周期,于是一個(gè)輸入數(shù)據(jù)時(shí)鐘周期就完成了K通道各一次數(shù)據(jù)的濾波,這樣既大量地節(jié)省了FPGA資源,又充分利用了FPGA內(nèi)部乘法器和加法器的高速性能。由于流水線結(jié)構(gòu)能提高系統(tǒng)的吞吐量率,因此在整個(gè)濾波器內(nèi)插入多級(jí)流水結(jié)構(gòu),主要是在兩輸入加法、抽取、乘法器和加法陣列之間加入寄存器實(shí)現(xiàn),具體多少級(jí)流水可根據(jù)系統(tǒng)對(duì)速度和資源的要求而平衡決定。最后對(duì)乘加單元輸出數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換后輸出K通道濾波數(shù)據(jù)。
FIR濾波器模塊的并行乘法器以及加法器采用FPGA提供的宏單元實(shí)現(xiàn),并指定占用片上內(nèi)嵌的硬乘法器資源。
由于系統(tǒng)中需要多種同步的不同頻率時(shí)鐘,所以需由一個(gè)時(shí)鐘模塊對(duì)整個(gè)系統(tǒng)的時(shí)鐘進(jìn)行控制。由圖4所示,假設(shè)以M倍抽取時(shí)鐘clk為基準(zhǔn)時(shí)鐘,則系統(tǒng)中還需要的時(shí)鐘有:延遲線和兩輸入加法器的M ×clk、并串轉(zhuǎn)換和乘加模塊的K×clk。
時(shí)鐘模塊的結(jié)構(gòu):通過一個(gè)Altera FPGA內(nèi)嵌的PLL(Phase Lock Loop,鎖相環(huán)),將輸入的低頻率時(shí)鐘轉(zhuǎn)換為高頻率時(shí)鐘,然后對(duì)該高頻率時(shí)鐘進(jìn)行計(jì)數(shù)分頻得到系統(tǒng)需要的所有時(shí)鐘,這樣得到的所有分頻時(shí)鐘都是同步的。
圖5 理論結(jié)果(MATLAB輸出)
本設(shè)計(jì)采用VHDL語言進(jìn)行RTL級(jí)的描敘,在Quatus II 6.0的環(huán)境下進(jìn)行語言的編譯、邏輯的綜合以及布局布線,利用MATLAB和ModelSim SE 6.1b進(jìn)行聯(lián)合仿真,采用Altera公司的Cyclone II系列EP2C50U484I8芯片實(shí)現(xiàn)。
FIR濾波器的具體參數(shù)如下:8通道14位數(shù)據(jù)并行輸入,數(shù)據(jù)采樣頻率為10MHz,進(jìn)行10倍抽取,濾波后數(shù)據(jù)1MHz輸出,阻帶最小衰減70dB,濾波器階數(shù)是127階。系數(shù)根據(jù)引起的頻率響應(yīng)的偏移不大于0.001,即-60dB的要求,確定的量化字長(zhǎng)是16位。
時(shí)序仿真驗(yàn)證時(shí),不失一般性的引出通道1(0~7共8通道)進(jìn)行驗(yàn)證,其他通道也就相應(yīng)得到驗(yàn)證,為了檢驗(yàn)設(shè)計(jì)中采用的優(yōu)化技術(shù),MATLAB仿真時(shí)不采用任何優(yōu)化措施。FIR低通濾波器的截止頻率為250kHz,仿真的輸入信號(hào)是頻率分別為100kHz和700kHz的混合正弦波,如圖5(a)所示。輸入信號(hào)經(jīng)理想抽取FIR濾波器后的理論結(jié)果(MATLAB輸出結(jié)果)與FPGA實(shí)現(xiàn)的抽取FIR濾波器的結(jié)果(ModelSim輸出)分別如圖5(b)和圖6所示。對(duì)比可知,本設(shè)計(jì)結(jié)果與理論結(jié)果輸出一致,都是100kHz的單一正弦波,濾波正確,表明設(shè)計(jì)完全符合要求。
對(duì)于本文所述的8通道10倍抽取127階FIR濾波器,表1給出了未使用優(yōu)化技術(shù)設(shè)計(jì)的FPGA資源實(shí)現(xiàn)和本文使用優(yōu)化技術(shù)設(shè)計(jì)的FPGA資源實(shí)現(xiàn)的結(jié)果比較。顯然采用本文的優(yōu)化設(shè)計(jì)方法,通過復(fù)用一個(gè)高速乘累加模塊,大大減少了FPGA的占用資源,特別是大大減少了昂貴的乘法器資源,而且通過抽取實(shí)現(xiàn)的優(yōu)化,在資源大大減少的情況下,系統(tǒng)的工作速度并沒有增加,使多通道抽取高階FIR濾波器在系統(tǒng)速度要求較高的情況下能夠在單片F(xiàn)PGA上實(shí)現(xiàn)。
圖6 本設(shè)計(jì)結(jié)果(ModelSim輸出)
表1 兩種實(shí)現(xiàn)方法所占FPGA的資源比較
對(duì)多頻連續(xù)波雷達(dá)的差頻點(diǎn)直雜波抑制、抗混疊濾波、降采樣和多通道并行輸入等各方面要求綜合考慮后,設(shè)計(jì)了一個(gè)多通道抽取FIR濾波器,采用了一系列優(yōu)化措施如濾波器的對(duì)稱結(jié)構(gòu)、抽取的優(yōu)化、流水線和時(shí)分復(fù)用技術(shù)等對(duì)該濾波器進(jìn)行了優(yōu)化設(shè)計(jì),使其在作速度沒有增加的基礎(chǔ)上,節(jié)省了大量的FPGA資源,對(duì)于工程實(shí)現(xiàn)具有顯著意義。
[1] 郭聯(lián)合,王東進(jìn).毫米波連續(xù)波雷達(dá)載波泄漏對(duì)消[J].現(xiàn)代雷達(dá),2001,23(4):41-44.
[2]顧紅,李璽,等.解決連續(xù)波雷達(dá)泄漏的一種新途徑——周期方波斷續(xù)法[J].電子學(xué)報(bào),1998,26(12):7-11.
[3]江志紅,袁俊泉,等.一種新的多頻連續(xù)波雷達(dá)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代雷達(dá),2006,28(3):51-54.
[4]Uwe Meyer-Baese.數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2003.
[5]胡廣書.數(shù)字信號(hào)處理理論、算法與實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2004.
[6]王沁,李占才,齊悅.基于兩層流水線結(jié)構(gòu)的FIR濾波器設(shè)計(jì)[J].電子學(xué)報(bào),2005,33(2):367-369.
[7]吳繼華,王誠(chéng).Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M].北京:人民郵電出版社,2005.