《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 羅蘭C前端數(shù)字帶通濾波器設(shè)計(jì)與實(shí)現(xiàn)
羅蘭C前端數(shù)字帶通濾波器設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2012年第8期
李靖宇1,2,許江寧1,李 豹1,賀航海3
1.海軍工程大學(xué) 導(dǎo)航工程系,湖北 武漢430033; 2.海軍91821部隊(duì);廣東 潮州515700; 3.海軍92678部隊(duì);天津300220
摘要: 分析了羅蘭C信號(hào)的特征,并根據(jù)信號(hào)特征決定選用FIR濾波器,利用MATLAB工具設(shè)計(jì)了滿(mǎn)足濾波要求的高階數(shù)字帶通濾波器。詳細(xì)研究了分布式算法的原理和分布式算法在FPGA上實(shí)現(xiàn)FIR數(shù)字濾波器的方法。最終采用改進(jìn)的分布式算法在FPGA上實(shí)現(xiàn)了127階FIR數(shù)字帶通濾波器。利用實(shí)際采集的信號(hào)進(jìn)行仿真和現(xiàn)場(chǎng)測(cè)試,結(jié)果均顯示由該方法設(shè)計(jì)的濾波器性能良好,方法簡(jiǎn)單易行,相對(duì)于傳統(tǒng)的乘累加結(jié)構(gòu)不僅能節(jié)省硬件資源,而且可以改善數(shù)據(jù)處理速度,具有一定的推廣價(jià)值。
中圖分類(lèi)號(hào): TN962
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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)程低頻無(wú)線(xiàn)電導(dǎo)航系統(tǒng),是我國(guó)獨(dú)立控制的唯一大型陸基無(wú)線(xiàn)電導(dǎo)航系統(tǒng),也是全球羅蘭C系統(tǒng)網(wǎng)的重要組成部分。目前已作為我國(guó)衛(wèi)星定位導(dǎo)航授時(shí)(PNT)的最重要備份手段。又由于其工作在低頻段,因此具有較強(qiáng)的抗干擾能力和水下接收的可能[1]。研究羅蘭C的數(shù)字化接收技術(shù)對(duì)提高羅蘭C的利用率和提高軍事應(yīng)用能力具有很大價(jià)值。其射頻前端的數(shù)字帶通濾波器是實(shí)現(xiàn)數(shù)字化接收機(jī)的重要組成部分。為此,本文針對(duì)羅蘭C數(shù)字接收機(jī)前端濾波的要求,就如何在FPGA上實(shí)現(xiàn)羅蘭C數(shù)字帶通濾波器進(jìn)行了研究。

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

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

    要實(shí)現(xiàn)前端數(shù)字濾波,首先要對(duì)天線(xiàn)接收來(lái)的信號(hào)進(jìn)行數(shù)字化處理。由于天線(xiàn)端接收的信號(hào)非常微弱,進(jìn)行數(shù)字化處理之前必須放大處理。系統(tǒng)硬件設(shè)計(jì)是以Altera公司的EP2C8Q208C芯片為核心,由磁天線(xiàn)接收的羅蘭C信號(hào)經(jīng)過(guò)以運(yùn)算放大器MAX4418為核心的低噪聲放大(LNA)后,經(jīng)過(guò)12 bit的ADC芯片AD9235轉(zhuǎn)換成數(shù)字信號(hào)輸入到FPGA芯片內(nèi),經(jīng)FPGA內(nèi)部運(yùn)算實(shí)現(xiàn)信號(hào)的數(shù)字濾波,輸出經(jīng)由12 bit的DAC芯片AD9752轉(zhuǎn)換成模擬信號(hào),經(jīng)過(guò)平滑處理送往羅蘭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è)“抽頭延遲線(xiàn)”、加法器、乘法器的集合構(gòu)成,是一個(gè)典型的乘累加結(jié)構(gòu),很方便進(jìn)行FPGA實(shí)現(xiàn)。乘累加運(yùn)算的次數(shù)由濾波器的階數(shù)來(lái)決定,但乘法運(yùn)算十分耗費(fèi)資源。利用傳統(tǒng)的MAC方式只能實(shí)現(xiàn)較低階的數(shù)字濾波器,而要滿(mǎn)足羅蘭C前端的濾波要求則需要高達(dá)127階的高階濾波器,如此作為主芯片的EP2C8Q208C就很難滿(mǎn)足其資源要求??梢钥紤]采用分布式算法(Distributed Arithmetic)來(lái)實(shí)現(xiàn),以達(dá)到節(jié)約資源和提高運(yùn)算速度的目的。
2.3 分布式算法原理
    分布式算法是在30年前被首次提出的,但直到Xilinx公司發(fā)明FPGA的查找表結(jié)構(gòu)以后,DA算法才廣泛應(yīng)用在計(jì)算乘積和之中。對(duì)于FIR濾波器,其基本結(jié)構(gòu)是一個(gè)分節(jié)的延時(shí)線(xiàn),每一節(jié)的輸出加權(quán)累加,得到濾波器的輸出。其輸出y就是輸出x與系數(shù)h的內(nèi)積[4]:
 
2.4 改進(jìn)的分布式算法
    查找表(LUT)的大小是由濾波器的階數(shù)決定的,N階濾波器則共需要2N個(gè)查找表單元。若已知濾波器的系數(shù)位寬為B bit,則表中每個(gè)存儲(chǔ)單元的數(shù)據(jù)位寬可表示為(B+
log2127)bit,所以要完成127階濾波器需要(B+log2127)×
2127 bit的RAM。為了減小查找表的規(guī)模可以利用FIR濾波器的線(xiàn)性特性采用部分表計(jì)算,如此一個(gè)高階濾波器的輸出即是低階濾波器輸出的相加值。在設(shè)計(jì)中將每4個(gè)濾波器系數(shù)作為一個(gè)小的查找表,每個(gè)查找表的規(guī)模為(B+log24)×24 bit。利用FIR濾波器系數(shù)的對(duì)稱(chēng)性,將對(duì)應(yīng)對(duì)稱(chēng)系數(shù)的輸入數(shù)據(jù)預(yù)相加后再查找表,這樣128個(gè)系數(shù)可以縮減為64個(gè),如此實(shí)現(xiàn)整體的查找表則共需要(B+log24)×24×64 bit。如此規(guī)模的RAM硬件是可以接受的,而且不會(huì)降低濾波器的處理速度。將每個(gè)查找表的輸出分別相加后再經(jīng)過(guò)二次冪加權(quán)相加即可。實(shí)現(xiàn)原理如圖5所示,每個(gè)查找表的內(nèi)容如表2所示[5-6]。

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

 

 

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

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

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

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