趙良羽
(中國電子科技集團(tuán)公司 第二十二研究所,山東 青島 266107)
在軟件無線電的接收機設(shè)計中,數(shù)字下變頻(DDC)技術(shù)是其核心技術(shù)之一[1-2]。數(shù)字中頻軟件無線電接收機由模擬預(yù)處理、ADC、DDC組成。它的主要功能是將ADC數(shù)字化后的高速數(shù)字中頻信號進(jìn)行低通濾波和抽取降速,使之成為低速的基帶信號。對數(shù)字信號完成處理之后,將基帶信號送給DSP器件完成FFT運算、解調(diào)、解碼等功能。
在以往的數(shù)字下變頻結(jié)構(gòu)設(shè)計中,要么是通過增加抽取濾波器的級數(shù)來提高數(shù)字下變頻器的強壯性[3],要么是通過改變FIR濾波器的結(jié)構(gòu)以降低運算復(fù)雜度,進(jìn)而實現(xiàn)高效的數(shù)字下變頻器結(jié)構(gòu)[4],很少在考慮多級濾波器設(shè)計的同時,引入多帶寬設(shè)計的思路來擴(kuò)展數(shù)字下變頻器的適用范圍。本設(shè)計基于Xilinx芯片的開發(fā)平臺,實現(xiàn)了一種可變帶寬的多級濾波器數(shù)字下變頻結(jié)構(gòu),該結(jié)構(gòu)已經(jīng)在許多開發(fā)平臺中使用,并在部分項目中得到實際應(yīng)用。
數(shù)字下變頻器的基本工作原理:將AD信號與數(shù)控振蕩器(NCO)產(chǎn)生的兩路正交本地載波信號相乘,然后通過濾波和抽取降低采樣速率,最后再由低通濾波器濾除其中的高頻分量,最終得到下變頻后的基帶I/Q信號[5]。一般前兩級濾波和抽取采用CIC濾波,最后一級利用FIR濾波器濾除高頻分量。典型的DDC基本結(jié)構(gòu)如圖1所示[6],輸入的模擬中頻信號由ADC采樣得到數(shù)字中頻信號,然后分別與NCO產(chǎn)生的兩路正交本振信號相乘,將數(shù)字中頻搬移至基帶。對于混頻后的信號,采樣速率很高,通過CIC的抽取和濾波達(dá)到降低采樣速率和濾除雜波的功能,最后通過一個低通濾波器(LPF)過濾高頻分量,得到I/Q信號并輸出。下面分別對結(jié)構(gòu)框圖中各模塊的設(shè)計加以說明。
圖1 典型的DDC結(jié)構(gòu)框圖
數(shù)控振蕩器 NCO(Numerically Controlled Oscillator)一般可以通過查找表的方法產(chǎn)生兩路正余弦波,或者通過坐標(biāo)旋轉(zhuǎn)數(shù)字式計算機(CORDIC)產(chǎn)生。NCO產(chǎn)生的正交本振信號輸入到數(shù)字混頻器,完成與AD采樣之后的數(shù)字信號混頻的功能。本文中采用查找表的方式設(shè)計出一款相位精度為 32 bit、輸出精度為 16 bit的NCO。圖2所示為基于查找表結(jié)構(gòu)下的NCO設(shè)計原理圖。
圖2 查找表結(jié)構(gòu)的NCO設(shè)計原理圖
CIC濾波器結(jié)構(gòu)簡單,沒有乘法器,只用加法器、積分器和寄存器就能實現(xiàn)。而且,CIC濾波器便于級聯(lián),適合放在混頻器之后作為第一級濾波使用。一般來說CIC濾波器的級聯(lián)不超過5級,否則通帶內(nèi)的失真將會增強。本文中使用兩級CIC,級聯(lián)方式分別為3級和5級,通過兩次對高速數(shù)據(jù)流的抽取濾波后,將信號降為較低的速率。圖3給出了一個級聯(lián)方式為3級、抽取倍數(shù)為8倍的CIC濾波器頻率響應(yīng)圖。
圖3 CIC幅頻特性曲線圖
有限沖激響應(yīng)FIR(Finite Impulse Response)濾波器的原理是對有限長序列的單位脈沖序列在整個頻率范圍內(nèi)進(jìn)行卷積和運算,也即乘累加運算,最終得到濾波輸出結(jié)果。通常采用的方法有窗函數(shù)法、頻率采樣法等。本文采用窗函數(shù)法從時域進(jìn)行設(shè)計。圖4給出了一個對稱結(jié)構(gòu)的81階FIR濾波器幅頻特性曲線圖。
圖4 FIR幅頻特性曲線圖
如前文所述,設(shè)計出完整的數(shù)字下變頻結(jié)構(gòu),包括對AD信號的混頻、抽取和濾波,最后再通過低通濾波器實現(xiàn)IQ信號的輸出。下面首先通過Matlab仿真軟件中的FDATool工具對具體的FIR濾波器系數(shù)進(jìn)行設(shè)計,然后將整個數(shù)字下變頻結(jié)構(gòu)在Xilinx的FPGA芯片中加以實現(xiàn)。
Matlab的FDATool工具可以根據(jù)用戶需要設(shè)計出滿足不同情況需求的濾波器系數(shù)[7]。在本設(shè)計結(jié)構(gòu)中,需要實現(xiàn)多種帶寬,因此對FIR系數(shù)進(jìn)行設(shè)計時要考慮到將通帶截止頻率設(shè)計到對應(yīng)帶寬的范圍之內(nèi),同時阻帶截止頻率也要設(shè)計合理,這樣才能保證阻帶衰減可以接受。表1給出了3種帶寬下的兩級CIC濾波器與FIR濾波器抽取倍數(shù)的對應(yīng)關(guān)系。
表1 3種帶寬下各級濾波器抽取倍數(shù)關(guān)系
如圖 5所示為121階、帶寬為 1 MHz的 Blackman窗函數(shù)的FIR濾波器幅頻特性圖。通過歸一化將系數(shù)轉(zhuǎn)換為16 bit的整數(shù)形式。
圖5 FIR幅頻特性曲線圖
進(jìn)一步,可以通過FDATool繼續(xù)設(shè)置另外兩種帶寬的FIR濾波器系數(shù)組,然后通過Xilinx的IP core generator產(chǎn)生的FIR IP核把系數(shù)組加載進(jìn)去,最終實現(xiàn)完整的濾波器結(jié)構(gòu)。
本設(shè)計中,通過 Xilinx的 IP核產(chǎn)生出 NCO、CIC、FIR模塊。AD信號的采樣時鐘為102.4 MHz,NCO的輸出本振為32.4 MHz,兩級CIC分別設(shè)置為3級和5級,F(xiàn)IR濾波器需要將Matlab仿真的濾波器系數(shù)組加入其中。然后通過Verilog硬件編程語言將各個模塊組合到一起,實現(xiàn)完整的數(shù)字下變頻設(shè)計。
綜上所述,通過Matlab仿真驗證及Xilinx的FPGA硬件實現(xiàn),成功地設(shè)計出一種適用于多帶寬情況的數(shù)字下變頻結(jié)構(gòu)。表2給出了Xilinx的FPGA(xc5vsx95t-1)部分資源使用說明。
表2 xc5vsx95t資源占用百分比
圖6所示為ModelSim仿真下的DDC各級輸出仿真波形圖。其中,輸入的AD為34 MHz正弦波信號,輸出結(jié)果為4倍抽取后得到的在1 MHz帶寬下的IQ信號波形圖。
圖6 DDC各級輸出仿真波形圖
圖7~圖11為Matlab仿真頻譜圖,圖片涵蓋了AD輸入前端、混頻濾波、第一級CIC濾波后、第二級CIC濾波后以及FIR濾波后的頻譜圖,最終的動態(tài)范圍可在80 dBm以上。
圖7 輸入信號頻譜圖
圖8 混頻輸出信號頻譜圖
圖9 第一級CIC濾波后信號頻譜圖
圖10 第二級CIC濾波后信號頻譜圖
圖11 FIR濾波后信號頻譜圖
本文實現(xiàn)了一種可變帶寬的多級濾波器設(shè)計,帶寬范圍覆蓋了 100 kHz、600 kHz、1 MHz 3檔。這種結(jié)構(gòu)僅限于對帶寬要求不高的信號分析??紤]到實際的信號處理環(huán)境,對于調(diào)制樣式識別中的AM/FM等窄帶信號以及衛(wèi)星信號等帶寬在20 MHz以上的寬帶信號的分析也十分重要。因此,還可以通過更換資源更豐富的芯片,設(shè)計包括寬帶在內(nèi)的多級濾波器數(shù)字下變頻器,以滿足多路帶寬的需求。另外,對于DDC處理后的IQ信號,還可以在FPGA芯片中引入FFT結(jié)構(gòu),將時域信號轉(zhuǎn)換為頻域信號,達(dá)到減少DSP工作量的目的,這些應(yīng)用都可以作為后續(xù)工作的研究內(nèi)容。
[1]許若圣,周依林.基于軟件無線電的數(shù)字下變頻器設(shè)計[J].電子技術(shù)應(yīng)用,2006,32(4):123-126.
[2]楊小牛,樓才義,徐建良.軟件無線電原理與應(yīng)用[M].北京:電子工業(yè)出版社,2001.
[3]申東,羅進(jìn)文.數(shù)字下變頻器中多級抽取濾波器的設(shè)計與實現(xiàn)[J].蘭州交通大學(xué)學(xué)報,2004,23(4):71-73.
[4]高志成,肖先賜.寬帶數(shù)字下變頻的一種高效實現(xiàn)結(jié)構(gòu)[J].電子與信息學(xué)報,2001,23(3):255-260.
[5]宗孔德.多抽樣率信號處理[M].北京:清華大學(xué)出版社,1996.
[6]張玉良,吳偉陵,田寶玉.寬帶數(shù)字下變頻器的一種新的實現(xiàn)結(jié)構(gòu)[J].電路與系統(tǒng)學(xué)報,2003,8(4):95-99.
[7]薛年喜.MATLAB在數(shù)字信號處理中的應(yīng)用[M].北京:清華大學(xué)出版社,2003.