0 引言
近年來(lái),軟件無(wú)線電已經(jīng)成為通信領(lǐng)域一個(gè)新的發(fā)展方向,數(shù)字下變頻技術(shù)(DIGItal Down CONverter-DDC)是軟件無(wú)線電的核心技術(shù)之一,也是計(jì)算量最大的部分,一般通過(guò)FPGA或?qū)S眯酒扔布?shí)現(xiàn)。
現(xiàn)場(chǎng)可編程門陣列(FPGA)是一種由用戶自行配置的高密度專用數(shù)字集成芯片,具有小型化、低功耗、可編程、數(shù)字化和快速方便實(shí)用的特點(diǎn)。FPGA的靈活性與高速處理的能力,使其由一種靈活的邏輯設(shè)計(jì)平臺(tái)發(fā)展為重要的信號(hào)處理元件,在各種軟件無(wú)線電產(chǎn)品中得到了廣泛的應(yīng)用。
本文設(shè)計(jì)和實(shí)現(xiàn)了基于FPGA的可編程DDC(DDC),用于寬帶數(shù)字中頻軟件無(wú)線電接收機(jī)中,完成數(shù)字下變頻、數(shù)據(jù)抽取等功能。采用自頂向下的模塊化設(shè)計(jì)方法,將整個(gè)DDC劃分為基本單元,實(shí)現(xiàn)這些功能模塊并組成模塊庫(kù)。在具體應(yīng)用時(shí),優(yōu)化配置各個(gè)模塊來(lái)滿足具體無(wú)線通信系統(tǒng)性能的要求。
DDC由數(shù)控振蕩器(NCO)、數(shù)字混頻器和積分清洗濾波器三部分組成,如圖1所示。從原理上比較,DDC和模擬下變頻器是一致的,都是輸入信號(hào)與本地振蕩信號(hào)混頻,然后經(jīng)低通濾波器濾除高頻分量,得到基帶信號(hào)。
1 DDC的設(shè)計(jì)
1.1 數(shù)控振蕩器的設(shè)計(jì)
NCO是DDC中的重要組成部分,NCO的目標(biāo)是產(chǎn)生頻率可變的正交正、余弦樣本信號(hào)。NCO產(chǎn)生正弦波樣本通??刹捎貌楸矸?。即通過(guò)輸入的相位數(shù)據(jù)來(lái)尋址查表以輸出相應(yīng)的正弦波幅值。如圖2所示,碼發(fā)生器由相位累加器和查找表構(gòu)成。累加器按已定的步長(zhǎng)進(jìn)行累加,在每個(gè)參考時(shí)鐘周期累加,并將結(jié)果存入寄存器。當(dāng)結(jié)果溢出時(shí)重復(fù)執(zhí)行,累加的過(guò)程可以看作NCO輸出頻率的周期。使用查找表選擇相應(yīng)的SIN和COS值輸出。若使用字長(zhǎng)為N位寬的累加器,對(duì)于某一頻率控制字A,輸出頻率fout與輸入頻率控制字A的關(guān)系為:
其中,fclk為系統(tǒng)時(shí)鐘。只要改變控制字A的大小,就可以控制輸出頻率fout。fout變化的最小步長(zhǎng)△f由累加器的數(shù)據(jù)寬度決定。即:
1.2 數(shù)字混頻器和積分清洗濾波器的設(shè)計(jì)及實(shí)現(xiàn)
在本設(shè)計(jì)中,全部過(guò)程均采用數(shù)字化處理,DDC由一對(duì)載波混頻器和一對(duì)積分清洗濾波器組成。載波混頻器主要用來(lái)實(shí)現(xiàn)下變頻,積分清洗濾波器用來(lái)去掉高頻分量,數(shù)據(jù)信息通過(guò)監(jiān)測(cè)相鄰兩個(gè)符號(hào)時(shí)間內(nèi)的相位變化來(lái)解調(diào)數(shù)據(jù)。兩路信號(hào)在經(jīng)過(guò)積分清洗濾波器后,輸出信號(hào)的函數(shù)形式仍然不變,只是信號(hào)的幅值發(fā)生了變化。
由于利用FPGA設(shè)計(jì)時(shí),采用的是數(shù)字化的解調(diào)過(guò)程,因此在用VHDL實(shí)現(xiàn)時(shí),需要將送過(guò)來(lái)的基于比特?cái)?shù)據(jù)類型的位矢量先轉(zhuǎn)化為有符號(hào)數(shù),然后再進(jìn)行數(shù)字運(yùn)算,運(yùn)算過(guò)程結(jié)束后,再將其轉(zhuǎn)化為位矢量以便于進(jìn)行信號(hào)的傳輸。兩個(gè)載波混頻器的輸入信號(hào)為前端送來(lái)的2比特的采樣數(shù)據(jù),取值分別為±1和±3,其中,“00”代表‘1’,“01”代表‘3’,“10”代表‘-1’,“11”代表‘-3’,同樣,本地載波取值±1,±3,這樣經(jīng)過(guò)載波混頻后得到了±1、±3、±9等6個(gè)值。將這6個(gè)值用三位二進(jìn)制數(shù)表示,高位為符號(hào)位,0表示正,1表示負(fù),低位為數(shù)據(jù)位00、01、10分別代表1、3、9。所以載波混頻器比較簡(jiǎn)單,用簡(jiǎn)單的門電路就可以實(shí)現(xiàn),圖3為混頻器的綜合圖。對(duì)于本系統(tǒng)來(lái)說(shuō),雖然載波NCO的輸出不是一個(gè)方波,但對(duì)整體設(shè)計(jì)沒(méi)什么影響。
在實(shí)現(xiàn)積分清洗濾波時(shí),采取了前后兩個(gè)樣點(diǎn)相加(基于主時(shí)鐘mainclk),然后由chip時(shí)鐘(chipclk)進(jìn)行抽樣輸出。這樣做可以回避低通濾波器的同步問(wèn)題。因?yàn)槿绻扇±奂?0次(Tchip=10Tmain)然后輸出累加量方式的話,需要準(zhǔn)確確定Iout和Qout的chip同步點(diǎn),這樣才能恢復(fù)出正確的基帶信號(hào)。因此接收進(jìn)來(lái)的QPSK信號(hào)經(jīng)過(guò)下變頻和低通濾波后的波形如圖5中的i out和q out所示。
2 DDC的系統(tǒng)仿真
通過(guò)VHDL語(yǔ)言編寫NCO模塊,其在Modelsim中的仿真如圖4所示。
其中:clk為基準(zhǔn)時(shí)鐘信號(hào);i和q分別為sin、cos兩路載波輸出;carr clock為載波周期時(shí)鐘,用來(lái)記錄載波周期個(gè)數(shù);load p為裝載初始相位有效信號(hào);p_init為初始相位值;fctrl為頻率控制字。本設(shè)計(jì)用的是全局時(shí)鐘作為工作時(shí)鐘,所以雖然載波NCO的輸出不是一個(gè)方波,但對(duì)整體設(shè)計(jì)沒(méi)什么影響,本地載波在一個(gè)周期內(nèi)有4個(gè)相位,輸出為系統(tǒng)時(shí)鐘的分頻信號(hào)。
圖5是數(shù)字混頻器仿真圖,其中,sAMPle in為接收到的信號(hào),本文中用偽隨機(jī)碼;sin in、cos in為輸入的兩路載波信號(hào);i out、q out為輸出結(jié)果。
3 結(jié)論
本文所設(shè)計(jì)的簡(jiǎn)單DDC系統(tǒng)可以完成基本的下變頻功能,適用于各種需要進(jìn)行下變頻的場(chǎng)合。并可免去使用專業(yè)DDC芯片的麻煩,有效實(shí)現(xiàn)所期望的功能。程序設(shè)計(jì)和實(shí)驗(yàn)表明,將接收進(jìn)來(lái)的經(jīng)過(guò)采樣量化的數(shù)字中頻信號(hào)進(jìn)行數(shù)字式下變頻在單片F(xiàn)PGA中完成是完全可行的。