文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.12.011
中文引用格式: 周云,馮全源. 數字下變頻中抽取濾波器的設計及FPGA實現[J].電子技術應用,2015,41(12):45-47,50.
英文引用格式: Zhou Yun,Feng Quanyuan. Design and FPGA implementation of decimation filter in DDC[J].Application of Electronic Technique,2015,41(12):45-47,50.
0 引言
數字下變頻是軟件無線電接收機的關鍵模塊,高速數字信號進行變頻、降采樣、濾波,將高速中頻信號變為低速基帶信號[1-2],便于后級處理。其中,降采樣和濾波是下變頻的關鍵模塊,由抽取濾波器來完成[3]。由于多級結構可以大大降低濾波器的階數[4],允許每一級歸一化過渡帶寬比較寬[5],抽取濾波器一般采用多級結構實現,常用結構如圖1所示,級聯積分梳狀(Cascaded integrator-com,CIC)濾波器通常作為第一級抽取濾波器[1-6]。
為縮短關鍵路徑,從而提高采樣速度,濾波器常采用并行處理及流水線技術[6]。CIC濾波器中有反饋回路,加入流水線寄存器則會導致反饋回路不同步,從而無法采用流水線技術;FIR濾波器則可以采用并行處理及流水線技術。對于半帶濾波器(Half-band Filter, HBF)而言,采用分布式算法則可以很好地兼容并行處理與流水線技術,且無需速率受限的乘法器資源。本設計對流水線式全并行分布式算法進行改進用以實現HBF,而并行處理提高采樣率是采用復制硬件的方法[7],全并行結構的HBF則是復制使用LUT,在滿足處理速度的要求下,本文將HBF置于數據位寬最小的輸入級(如圖2)。
1 抽取濾波器整體設計及Simulink建模仿真
本文將64倍抽取的總抽取率分為3級實現:2倍抽取的前置HBF、16倍抽取的CIC抽取濾波器以及2倍抽取的FIR補償濾波器,如圖2所示。各級指標如表1所示。
Simulink是MATLAB中的一種可視化仿真工具,可以對動態系統進行建模仿真及分析,支持多速率系統,廣泛應用于數字信號處理領域的建模仿真。本文的系統模型如圖3所示。
頂層系統使用3路信號選擇器作為輸入接口,輸入信號經由矩形框內所示子系統即抽取濾波器進行降采樣及濾波。其中FIR補償濾波器的系數由本文2.3節得到。設置輸入控制信號為“1”,選擇采樣率為200 MHz的頻率分別為1 MHz、4 MHz、10 MHz的混合正弦信號作為抽取濾波器的輸入信號,各級輸出信號的頻譜如圖4所示。
2 抽取濾波器的FPGA實現
2.1 前置半帶濾波器
HBF是近一半的系數為0的FIR濾波器,在多速率系統中采用HBF可以大大縮小硬件規模。本文結合表分割技術與并行處理的優勢進行改進,以達到第一級高速處理的目的。考慮內積公式:
考慮N=LP,L、P均為正整數,則n=l·P+p,l=0,1,…,L-1,p=0,1,…,P-1,式(2)改寫為:
本文35階高速HBF系數對稱,且有近一半系數為零,選擇P=4,將整個LUT表分解為2個4輸入和1個2輸入的子表。改進后的算法結構如圖5所示,相比于文獻[8],查表后的流水線式加法樹比移位累加器的實時性更高;并行及流水線處理處理可以有效提高濾波器的處理速度,且表分割技術使得該并行結構不必以過多的資源消耗為代價。
2.2 CIC抽取濾波器
CIC濾波器結構簡單,是高速抽取或插值系統中非常有效的單元[9]。單級CIC濾波器第一旁瓣抑制為13.46 dB,阻帶衰減極不理想[10]。為達阻帶衰減的指標,本文采用多級CIC濾波器級聯的結構實現。N級CIC濾波器歸一化傳遞函數如下[11]:
其中R是抽取因子,M是梳狀部分中延遲量,該設計取M為1。由式(4)知N級R倍抽取的CIC的幅頻響應:
可計算出,R=5時即可滿足阻帶衰減的需求。本文首先實現所有的積分器,然后是16倍抽取,最后實現梳狀部分。對于多級CIC濾波器而言,可以剪除一些較低有效位而不影響系統的完整性[7]。本文采用逐級剪除的方法,以減少位寬截斷引起的量化噪聲,并節省資源占用。該設計中CIC濾波器輸入位寬19 bit,輸出為20 bit,內部最大位寬為40 bit。逐級剪除后,CIC濾波器各級位寬如表2所示。CIC濾波器頻率響應如圖6。可見,通帶衰減是CIC濾波器的主要弊端之一,故而需要補償濾波器進行通帶補償。
2.3 CIC補償濾波器
補償濾波器通常處于較低速率的位置,以減小硬件復雜度。為避免頻譜混疊,本文的補償濾波器的通帶邊界頻率fc應滿足:fc≤fs_cic/4R,fs_cic是CIC濾波器的輸入采樣頻率。
本文補償濾波器選取fc=1.56 MHz。因其頻率響應是CIC濾波器頻響的倒數[12],即:
基于式(6),利用MATLAB中firceqrip函數計算出其浮點型系數,再進行量化。經反復試驗,補償濾波器長度為33即可。此時,補償后的濾波器通帶波紋小于0.01 dB,補償濾波器及補償后的濾波器頻響如圖6??梢?,補償濾波器設計較為合理。由于CIC濾波器輸出位寬20 bit,位寬較大,該濾波器不再使用圖3所示結構,選用IP核導入濾波器系數,選擇脈動陣列乘累加結構實現。
3 系統驗證及分析
利用MATLAB生成采樣率為200 MHz,頻率分別為1 MHz、18 MHz的混合正弦信號數據寫入TXT文檔,之后將數據讀入到FPGA寄存器,在時鐘激勵下,模擬ADC的輸出,作為系統的輸入。Modelsim仿真結果如圖7所示。
由圖7(a)可知,每隔63個輸入數據有一個輸出,達到了64倍抽取的目的;且圖7(b)顯示波形較為平滑,位寬截斷引起的誤差基本可以忽略,表明本文中的逐級剪除的位寬階段方式是有效的。
4 結論
本文針對數字下變頻中降采樣率的要求,設計了一種的HBF前置的抽取濾波器結構。利用Simulink對系統進行了建模仿真,并詳細說明了FPGA實現各級濾波器的設計方法,對整個系統進行了Modelsim仿真驗證。結果表明,本文設計的抽取濾波器工作性能良好,完全達到了實際需求指標。且本文的設計方案具有較強的工程應用價值,目前已用到中頻200 MHz的數字下變頻系統中。
參考文獻
[1] XU P,XIA W,HE Z S.A design of VB-DDC using DA-based systolic FIR filter[J].Applied Mechanics and Materials,2012,130:3950-3953.
[2] 趙良羽.可變帶寬的多級濾波器數字下變頻設計[J].電子技術應用,2014(3):32-34.
[3] 王亞磊,張浩,楊亞光,等.一種基于FPGA的抽取濾波器的實現與優化[J].微電子學與計算機,2013(9):30.
[4] 吳笑峰,劉紅俠,李迪,等.高精度Σ-?駐 ADC中的數字抽取濾波器設計[J].中南大學學報(自然科學版),2010,41(3):1038.
[5] 徐以濤,王金龍.軟件無線電數字中頻處理的優化設計[J].信號處理,2002(4):299-302.
[6] 張立立,楊華,黃錦元.基于FPGA技術的數字中頻系統的設計[J].電子器件,2015(1):126-129.
[7] PARHI K K.VLSI digital signal processing systems: design and implementation[M].John Wiley & Sons,2007:47-61.
[8] 朱效效,蔡俊,陸偉.基于優化DA算法濾波器的設計及其FPGA實現[J].電子技術應用,2015(2):59-60,64.
[9] Meyer-Baese U.Multirate Signal Processing[M].Digital Signal Processing with Field Programmable Gate Arrays. Springer Berlin Heidelberg,2014:305-416.
[10] 劉彬彬,林偉.基于Matlab和FPGA的CIC濾波器的設計[J].電子器件,2010(2):231-234.
[11] DOLECEK G J,LADDOMADA M.An improved class of multiplierless decimation filters: Analysis and design[J].Digital Signal Processing,2013,23(5):1773-1782.
[12] Altera Corporation,Understanding CIC compensation filters,Application Note 455,Ver.1.0,April 2007.