文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)08-0042-03
羅蘭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.