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