文獻標識碼: A
文章編號: 0258-7998(2012)08-0042-03
羅蘭C導航系統是一種采用脈沖相位調制的陸基中遠程低頻無線電導航系統,是我國獨立控制的唯一大型陸基無線電導航系統,也是全球羅蘭C系統網的重要組成部分。目前已作為我國衛星定位導航授時(PNT)的最重要備份手段。又由于其工作在低頻段,因此具有較強的抗干擾能力和水下接收的可能[1]。研究羅蘭C的數字化接收技術對提高羅蘭C的利用率和提高軍事應用能力具有很大價值。其射頻前端的數字帶通濾波器是實現數字化接收機的重要組成部分。為此,本文針對羅蘭C數字接收機前端濾波的要求,就如何在FPGA上實現羅蘭C數字帶通濾波器進行了研究。
1.2 FIR濾波器的計算機輔助設計
利用MATLAB信號處理工具箱(fdatool),選取least-squares模式,采樣率為1 MHz,按照本設計要求,輸入通帶(90 kHz~110 kHz)和阻帶頻率(80 kHz~120 kHz)參數值。為滿足其阻帶要達到25 dB以上衰減的要求,設計濾波器階數為127階,可以得出滿足要求的128個濾波器系數,利用FIR濾波器系數的對稱性,選取前64個系數并乘212取整后的濾波器參數如表1所示。
2 硬件設計與實現
2.1 硬件電路結構設計
要實現前端數字濾波,首先要對天線接收來的信號進行數字化處理。由于天線端接收的信號非常微弱,進行數字化處理之前必須放大處理。系統硬件設計是以Altera公司的EP2C8Q208C芯片為核心,由磁天線接收的羅蘭C信號經過以運算放大器MAX4418為核心的低噪聲放大(LNA)后,經過12 bit的ADC芯片AD9235轉換成數字信號輸入到FPGA芯片內,經FPGA內部運算實現信號的數字濾波,輸出經由12 bit的DAC芯片AD9752轉換成模擬信號,經過平滑處理送往羅蘭C接收機,也可以直接數字輸出到數字接收機或者數據采集計算機,從而實現接收機定位和數據采集分析的目的。電路結構圖如圖2所示。
FIR濾波器只在原點處存在極點,所以具有全局穩定性,由一個“抽頭延遲線”、加法器、乘法器的集合構成,是一個典型的乘累加結構,很方便進行FPGA實現。乘累加運算的次數由濾波器的階數來決定,但乘法運算十分耗費資源。利用傳統的MAC方式只能實現較低階的數字濾波器,而要滿足羅蘭C前端的濾波要求則需要高達127階的高階濾波器,如此作為主芯片的EP2C8Q208C就很難滿足其資源要求。可以考慮采用分布式算法(Distributed Arithmetic)來實現,以達到節約資源和提高運算速度的目的。
2.3 分布式算法原理
分布式算法是在30年前被首次提出的,但直到Xilinx公司發明FPGA的查找表結構以后,DA算法才廣泛應用在計算乘積和之中。對于FIR濾波器,其基本結構是一個分節的延時線,每一節的輸出加權累加,得到濾波器的輸出。其輸出y就是輸出x與系數h的內積[4]:
2.4 改進的分布式算法
查找表(LUT)的大小是由濾波器的階數決定的,N階濾波器則共需要2N個查找表單元。若已知濾波器的系數位寬為B bit,則表中每個存儲單元的數據位寬可表示為(B+
log2127)bit,所以要完成127階濾波器需要(B+log2127)×
2127 bit的RAM。為了減小查找表的規模可以利用FIR濾波器的線性特性采用部分表計算,如此一個高階濾波器的輸出即是低階濾波器輸出的相加值。在設計中將每4個濾波器系數作為一個小的查找表,每個查找表的規模為(B+log24)×24 bit。利用FIR濾波器系數的對稱性,將對應對稱系數的輸入數據預相加后再查找表,這樣128個系數可以縮減為64個,如此實現整體的查找表則共需要(B+log24)×24×64 bit。如此規模的RAM硬件是可以接受的,而且不會降低濾波器的處理速度。將每個查找表的輸出分別相加后再經過二次冪加權相加即可。實現原理如圖5所示,每個查找表的內容如表2所示[5-6]。
fs為信號采樣率,B為處理數據的位寬,fsc為單比特流控制時鐘頻率。即:fs可以由fsc分頻得到(或fsc可以由fs倍頻得到)。設計中AD9235采樣數據的位寬為12 bit,根據FIR濾波器的系數對稱性,簡化硬件實現考慮將對應對稱的兩個輸入數據相加,相加后數據處理位寬為13 bit。考慮到主控制時鐘,可以選定FPGA的最高時鐘工作頻率為fsc=fs×13=13 MHz,而13為質數,很難經過分頻或者有10 MHz的晶振倍頻得到。為方便工程化實現,考慮將處理數據位寬擴展,同時為節約資源又不宜采用太大的位寬。如此將濾波器主體時鐘設置為15 MHz。其中原始輸入時鐘為10 MHz,經過PLL進行3倍頻到30 MHz時鐘,再2分頻即可得到15 MHz主控制時鐘。設置15 MHz時鐘為設計中串行移位控制時鐘,計數狀態從0~14即計15個數,因此可以將數據位拓寬到14 bit。具體設計流程如圖6所示。
利用$fdisplay函數將 modelsim中濾波器的輸出數據保存為txt文件,對比matlab中設計濾波器的輸出數據顯示兩組數據完全相同,證明了濾波器功能設計成功。用matlab對testbench中的輸入輸出數據進行分析,結果如圖8所示。因為濾波器系數乘212取整,所以輸出結果數據放大了212倍,為方便觀察沒有進行放縮。經過對比可以發現,濾波器的濾波效果明顯,經過濾波器后信號的信噪比有了很大的提高,濾波器可以成功地抑制一些帶外噪聲和干擾。圖中顯示的波形重疊現象是因為晚上電離層高度變化天波干擾了地波,采集的數據中存在天波干擾,天波干擾屬于帶內同頻干擾,用一般的頻域濾波器不能將其消除,可以考慮在接收機內部進行自適應濾波以消除帶內噪聲。
圖9所示是在白天避開天波干擾的情況下,將設計的硬件電路進行現場測試接收的羅蘭C信號示波器顯示波形,實測顯示濾波器功能良好。
本文研究了羅蘭C前端數字帶通濾波器的設計與FPGA實現。主要討論高階FIR濾波器在FPGA上的實現方法以及具體實現過程要注意的一些問題。根據設計指標在FPGA上實現了滿足要求的127階數字帶通濾波器。分布式算法避開了繁雜的乘法運算,尤其對采樣率不高、數據位寬也比較小的情況下,有比較明顯的優勢,其處理速度明顯的要高于MAC結構,并且可以減少資源的消耗。最終仿真和實測結果均顯示,依據此方法設計的濾波器完全滿足設計要求。由此方法設計的濾波器下步將用在羅蘭C軟件接收機上,結合實際的裝備進行定位效果的測試。
參考文獻
[1] 崔國恒,曹可勁,許江寧,等.磁天線水下接收羅蘭C信號可行性研究[J].彈箭與制導學報,2010,30(6):180-182.
[2] 吳苗,朱濤,李方能,等.無線電導航原理及應用[M].北京:國防工業出版社,2008.
[3] 胡廣書.數字信號處理(第2版)[M].北京:清華大學出版社,2003.
[4] UWE M B.Digital signal processing with field programmable gate arrays[M].劉凌,譯.北京:清華大學出版社,2003.
[5] 田耘,徐文波,張延偉.無線通信FPGA設計[M].北京:電子工業出版社,2008.
[6] 朱好學.基于FPGA的高階FIR濾波器設計[D].南京:南京理工大學,2008.
[7] 黃仰博.基于FPGA的數字濾波器實現技術研究[D].長沙:國防科技大學,2004.