《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 羅蘭C前端數(shù)字帶通濾波器設(shè)計(jì)與實(shí)現(xiàn)
羅蘭C前端數(shù)字帶通濾波器設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第8期
李靖宇1,2,許江寧1,李 豹1,賀航海3
1.海軍工程大學(xué) 導(dǎo)航工程系,湖北 武漢430033; 2.海軍91821部隊(duì);廣東 潮州515700; 3.海軍92678部隊(duì);天津300220
摘要: 分析了羅蘭C信號的特征,并根據(jù)信號特征決定選用FIR濾波器,利用MATLAB工具設(shè)計(jì)了滿足濾波要求的高階數(shù)字帶通濾波器。詳細(xì)研究了分布式算法的原理和分布式算法在FPGA上實(shí)現(xiàn)FIR數(shù)字濾波器的方法。最終采用改進(jìn)的分布式算法在FPGA上實(shí)現(xiàn)了127階FIR數(shù)字帶通濾波器。利用實(shí)際采集的信號進(jìn)行仿真和現(xiàn)場測試,結(jié)果均顯示由該方法設(shè)計(jì)的濾波器性能良好,方法簡單易行,相對于傳統(tǒng)的乘累加結(jié)構(gòu)不僅能節(jié)省硬件資源,而且可以改善數(shù)據(jù)處理速度,具有一定的推廣價(jià)值。
中圖分類號: TN962
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)08-0042-03
Design and implementation of Loran-C front digital band pass filter
Li Jingyu1,2,Xu Jiangning1,Li Bao1,He Hanghai3
1.Department of Navigation Engineering,Naval University of Engineering,Wuhan 430033,China; 2.Naval 91821 Department,Chaozhou 515700,China; 3.Naval 92678 Department,Tianjin 300220,China
Abstract: The signature of the Loran-C was analyzed in this paper. The FIR filter was selected and a higher-order digital band pass filter was designed to meet requirement according to the Loran-C signature in MATLAB. The theory of distributed arithmetic and its FPGA implementation method were studied, At last, a 127 orders FIR digital band pass filter was realized using modified distributed arithmetic on FPGA. The simulation result using practical signal and the field tests showed the design is wonderful. The method is very simple, which not only used fewer hardware resources but also the speed is improved that can be widely popularized.
Key words : Loran-C;distributed arithmetic;FIR higher-order band pass filter;FPGA;Modelsim simulator

    羅蘭C導(dǎo)航系統(tǒng)是一種采用脈沖相位調(diào)制的陸基中遠(yuǎn)程低頻無線電導(dǎo)航系統(tǒng),是我國獨(dú)立控制的唯一大型陸基無線電導(dǎo)航系統(tǒng),也是全球羅蘭C系統(tǒng)網(wǎng)的重要組成部分。目前已作為我國衛(wèi)星定位導(dǎo)航授時(PNT)的最重要備份手段。又由于其工作在低頻段,因此具有較強(qiáng)的抗干擾能力和水下接收的可能[1]。研究羅蘭C的數(shù)字化接收技術(shù)對提高羅蘭C的利用率和提高軍事應(yīng)用能力具有很大價(jià)值。其射頻前端的數(shù)字帶通濾波器是實(shí)現(xiàn)數(shù)字化接收機(jī)的重要組成部分。為此,本文針對羅蘭C數(shù)字接收機(jī)前端濾波的要求,就如何在FPGA上實(shí)現(xiàn)羅蘭C數(shù)字帶通濾波器進(jìn)行了研究。

1.2 FIR濾波器的計(jì)算機(jī)輔助設(shè)計(jì)
    利用MATLAB信號處理工具箱(fdatool),選取least-squares模式,采樣率為1 MHz,按照本設(shè)計(jì)要求,輸入通帶(90 kHz~110 kHz)和阻帶頻率(80 kHz~120 kHz)參數(shù)值。為滿足其阻帶要達(dá)到25 dB以上衰減的要求,設(shè)計(jì)濾波器階數(shù)為127階,可以得出滿足要求的128個濾波器系數(shù),利用FIR濾波器系數(shù)的對稱性,選取前64個系數(shù)并乘212取整后的濾波器參數(shù)如表1所示。

2 硬件設(shè)計(jì)與實(shí)現(xiàn)
2.1 硬件電路結(jié)構(gòu)設(shè)計(jì)

    要實(shí)現(xiàn)前端數(shù)字濾波,首先要對天線接收來的信號進(jìn)行數(shù)字化處理。由于天線端接收的信號非常微弱,進(jìn)行數(shù)字化處理之前必須放大處理。系統(tǒng)硬件設(shè)計(jì)是以Altera公司的EP2C8Q208C芯片為核心,由磁天線接收的羅蘭C信號經(jīng)過以運(yùn)算放大器MAX4418為核心的低噪聲放大(LNA)后,經(jīng)過12 bit的ADC芯片AD9235轉(zhuǎn)換成數(shù)字信號輸入到FPGA芯片內(nèi),經(jīng)FPGA內(nèi)部運(yùn)算實(shí)現(xiàn)信號的數(shù)字濾波,輸出經(jīng)由12 bit的DAC芯片AD9752轉(zhuǎn)換成模擬信號,經(jīng)過平滑處理送往羅蘭C接收機(jī),也可以直接數(shù)字輸出到數(shù)字接收機(jī)或者數(shù)據(jù)采集計(jì)算機(jī),從而實(shí)現(xiàn)接收機(jī)定位和數(shù)據(jù)采集分析的目的。電路結(jié)構(gòu)圖如圖2所示。

    FIR濾波器只在原點(diǎn)處存在極點(diǎn),所以具有全局穩(wěn)定性,由一個“抽頭延遲線”、加法器、乘法器的集合構(gòu)成,是一個典型的乘累加結(jié)構(gòu),很方便進(jìn)行FPGA實(shí)現(xiàn)。乘累加運(yùn)算的次數(shù)由濾波器的階數(shù)來決定,但乘法運(yùn)算十分耗費(fèi)資源。利用傳統(tǒng)的MAC方式只能實(shí)現(xiàn)較低階的數(shù)字濾波器,而要滿足羅蘭C前端的濾波要求則需要高達(dá)127階的高階濾波器,如此作為主芯片的EP2C8Q208C就很難滿足其資源要求。可以考慮采用分布式算法(Distributed Arithmetic)來實(shí)現(xiàn),以達(dá)到節(jié)約資源和提高運(yùn)算速度的目的。
2.3 分布式算法原理
    分布式算法是在30年前被首次提出的,但直到Xilinx公司發(fā)明FPGA的查找表結(jié)構(gòu)以后,DA算法才廣泛應(yīng)用在計(jì)算乘積和之中。對于FIR濾波器,其基本結(jié)構(gòu)是一個分節(jié)的延時線,每一節(jié)的輸出加權(quán)累加,得到濾波器的輸出。其輸出y就是輸出x與系數(shù)h的內(nèi)積[4]:
 
2.4 改進(jìn)的分布式算法
    查找表(LUT)的大小是由濾波器的階數(shù)決定的,N階濾波器則共需要2N個查找表單元。若已知濾波器的系數(shù)位寬為B bit,則表中每個存儲單元的數(shù)據(jù)位寬可表示為(B+
log2127)bit,所以要完成127階濾波器需要(B+log2127)×
2127 bit的RAM。為了減小查找表的規(guī)模可以利用FIR濾波器的線性特性采用部分表計(jì)算,如此一個高階濾波器的輸出即是低階濾波器輸出的相加值。在設(shè)計(jì)中將每4個濾波器系數(shù)作為一個小的查找表,每個查找表的規(guī)模為(B+log24)×24 bit。利用FIR濾波器系數(shù)的對稱性,將對應(yīng)對稱系數(shù)的輸入數(shù)據(jù)預(yù)相加后再查找表,這樣128個系數(shù)可以縮減為64個,如此實(shí)現(xiàn)整體的查找表則共需要(B+log24)×24×64 bit。如此規(guī)模的RAM硬件是可以接受的,而且不會降低濾波器的處理速度。將每個查找表的輸出分別相加后再經(jīng)過二次冪加權(quán)相加即可。實(shí)現(xiàn)原理如圖5所示,每個查找表的內(nèi)容如表2所示[5-6]。

    fs為信號采樣率,B為處理數(shù)據(jù)的位寬,fsc為單比特流控制時鐘頻率。即:fs可以由fsc分頻得到(或fsc可以由fs倍頻得到)。設(shè)計(jì)中AD9235采樣數(shù)據(jù)的位寬為12 bit,根據(jù)FIR濾波器的系數(shù)對稱性,簡化硬件實(shí)現(xiàn)考慮將對應(yīng)對稱的兩個輸入數(shù)據(jù)相加,相加后數(shù)據(jù)處理位寬為13 bit??紤]到主控制時鐘,可以選定FPGA的最高時鐘工作頻率為fsc=fs×13=13 MHz,而13為質(zhì)數(shù),很難經(jīng)過分頻或者有10 MHz的晶振倍頻得到。為方便工程化實(shí)現(xiàn),考慮將處理數(shù)據(jù)位寬擴(kuò)展,同時為節(jié)約資源又不宜采用太大的位寬。如此將濾波器主體時鐘設(shè)置為15 MHz。其中原始輸入時鐘為10 MHz,經(jīng)過PLL進(jìn)行3倍頻到30 MHz時鐘,再2分頻即可得到15 MHz主控制時鐘。設(shè)置15 MHz時鐘為設(shè)計(jì)中串行移位控制時鐘,計(jì)數(shù)狀態(tài)從0~14即計(jì)15個數(shù),因此可以將數(shù)據(jù)位拓寬到14 bit。具體設(shè)計(jì)流程如圖6所示。

 

 

    利用$fdisplay函數(shù)將 modelsim中濾波器的輸出數(shù)據(jù)保存為txt文件,對比matlab中設(shè)計(jì)濾波器的輸出數(shù)據(jù)顯示兩組數(shù)據(jù)完全相同,證明了濾波器功能設(shè)計(jì)成功。用matlab對testbench中的輸入輸出數(shù)據(jù)進(jìn)行分析,結(jié)果如圖8所示。因?yàn)闉V波器系數(shù)乘212取整,所以輸出結(jié)果數(shù)據(jù)放大了212倍,為方便觀察沒有進(jìn)行放縮。經(jīng)過對比可以發(fā)現(xiàn),濾波器的濾波效果明顯,經(jīng)過濾波器后信號的信噪比有了很大的提高,濾波器可以成功地抑制一些帶外噪聲和干擾。圖中顯示的波形重疊現(xiàn)象是因?yàn)橥砩想婋x層高度變化天波干擾了地波,采集的數(shù)據(jù)中存在天波干擾,天波干擾屬于帶內(nèi)同頻干擾,用一般的頻域?yàn)V波器不能將其消除,可以考慮在接收機(jī)內(nèi)部進(jìn)行自適應(yīng)濾波以消除帶內(nèi)噪聲。

    圖9所示是在白天避開天波干擾的情況下,將設(shè)計(jì)的硬件電路進(jìn)行現(xiàn)場測試接收的羅蘭C信號示波器顯示波形,實(shí)測顯示濾波器功能良好。

    本文研究了羅蘭C前端數(shù)字帶通濾波器的設(shè)計(jì)與FPGA實(shí)現(xiàn)。主要討論高階FIR濾波器在FPGA上的實(shí)現(xiàn)方法以及具體實(shí)現(xiàn)過程要注意的一些問題。根據(jù)設(shè)計(jì)指標(biāo)在FPGA上實(shí)現(xiàn)了滿足要求的127階數(shù)字帶通濾波器。分布式算法避開了繁雜的乘法運(yùn)算,尤其對采樣率不高、數(shù)據(jù)位寬也比較小的情況下,有比較明顯的優(yōu)勢,其處理速度明顯的要高于MAC結(jié)構(gòu),并且可以減少資源的消耗。最終仿真和實(shí)測結(jié)果均顯示,依據(jù)此方法設(shè)計(jì)的濾波器完全滿足設(shè)計(jì)要求。由此方法設(shè)計(jì)的濾波器下步將用在羅蘭C軟件接收機(jī)上,結(jié)合實(shí)際的裝備進(jìn)行定位效果的測試。
參考文獻(xiàn)
[1] 崔國恒,曹可勁,許江寧,等.磁天線水下接收羅蘭C信號可行性研究[J].彈箭與制導(dǎo)學(xué)報(bào),2010,30(6):180-182.
[2] 吳苗,朱濤,李方能,等.無線電導(dǎo)航原理及應(yīng)用[M].北京:國防工業(yè)出版社,2008.
[3] 胡廣書.?dāng)?shù)字信號處理(第2版)[M].北京:清華大學(xué)出版社,2003.
[4] UWE M B.Digital signal processing with field programmable  gate arrays[M].劉凌,譯.北京:清華大學(xué)出版社,2003.
[5] 田耘,徐文波,張延偉.無線通信FPGA設(shè)計(jì)[M].北京:電子工業(yè)出版社,2008.
[6] 朱好學(xué).基于FPGA的高階FIR濾波器設(shè)計(jì)[D].南京:南京理工大學(xué),2008.
[7] 黃仰博.基于FPGA的數(shù)字濾波器實(shí)現(xiàn)技術(shù)研究[D].長沙:國防科技大學(xué),2004.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。