數(shù)字下變頻(DDC)就是通過混頻、抽取和濾波等步驟,降低射頻帶通采樣信號(hào)或中頻采樣信號(hào)的采樣頻率,以保證后續(xù)DSP正常地進(jìn)行基帶信號(hào)處理。DDC是軟件無線電系統(tǒng)的主要部分,它改變了通常的無線電設(shè)計(jì),實(shí)現(xiàn)數(shù)字域的下變頻。同時(shí),數(shù)字下變頻又是數(shù)字處理運(yùn)算量最大、速度要求最高的部分,也是最難實(shí)現(xiàn)的部分。文獻(xiàn)[1]對(duì)DDC的各功能模塊的高效算法并對(duì)各類濾波器的合理分組級(jí)聯(lián)進(jìn)行了研究、提煉與總結(jié),并將各算法融為一體,從軟件實(shí)現(xiàn)的角度通過濾波器的分組級(jí)聯(lián)完成了對(duì)系統(tǒng)的搭建。但沒有針對(duì)特定的硬件給出系統(tǒng)的具體實(shí)現(xiàn),在實(shí)際實(shí)現(xiàn)時(shí),往往面對(duì)算法實(shí)現(xiàn)實(shí)時(shí)性不夠,硬件所需乘法器太多的弊端,難以達(dá)到系統(tǒng)要求的指標(biāo)。
另一種思路就是避開完全用軟件實(shí)現(xiàn)DDC,轉(zhuǎn)而采用軟硬件相結(jié)合的方式進(jìn)行,把計(jì)算量最大的數(shù)字下變頻和抽取系統(tǒng)用專門的硬件芯片實(shí)現(xiàn),其原理仍然通過多類濾波器的分組級(jí)聯(lián)實(shí)現(xiàn)。盡管目前的硬件DDC芯片已經(jīng)可以達(dá)到很高的性能要求,但終究與軟件無線電的思想相悖,不能實(shí)現(xiàn)或者不能完全實(shí)現(xiàn)平臺(tái)通用,更新升級(jí)方便等功能。
目前針對(duì)數(shù)字下變頻,除了采用多片DSP組成并行處理模塊外,一般都探索采用下變頻處理的高效算法。本文針對(duì)這些高效算法做了總結(jié),進(jìn)行合理的分組級(jí)聯(lián)并引入流水線技術(shù)以便于在FPGA上實(shí)現(xiàn)。
2 濾波器的分組級(jí)聯(lián)技術(shù)
抽取濾波器組通常由乘法器和加法器陣列實(shí)現(xiàn)。FPGA進(jìn)行實(shí)現(xiàn)時(shí),依靠?jī)?nèi)嵌的DSP模塊完成乘法器和加法器/累加器運(yùn)算,為了節(jié)約FPGA的有限的DSP模塊資源,設(shè)計(jì)面臨的最大挑戰(zhàn)是克服需要大量乘法器的弊端。
如果將FIR抽取濾波器分解成多個(gè)獨(dú)立濾波器,在滿足系統(tǒng)性能要求下,又可以有效減少實(shí)現(xiàn)整個(gè)濾波器所需的抽頭總數(shù)。同時(shí),多組濾波器進(jìn)行分組級(jí)聯(lián)后,便于進(jìn)行流水線處理,同時(shí)由于越靠后級(jí),信號(hào)速率越低,便于進(jìn)行分時(shí)復(fù)用,這些可以有效減少乘法器需求。
由文獻(xiàn)[4]的分析,CIC濾波器的系數(shù)全為1,可以變?yōu)V波運(yùn)算的加乘法為全加,F(xiàn)PGA實(shí)現(xiàn)時(shí),只需進(jìn)行累加運(yùn)算;只要FPGA的工作頻率能達(dá)到信號(hào)速率即可,所以CIC濾波器特別適合于DDC的第一級(jí)。
HB濾波器一半左右的系數(shù)為0,經(jīng)過第一級(jí)CIC濾波器的抽取后,信號(hào)速率已經(jīng)降低很多,此時(shí)采用HB濾波器,可以再減少一半左右的乘法器需求。因此適合作為CIC抽取濾波后的一級(jí)。
信號(hào)經(jīng)過CIC,HB濾波抽取,信號(hào)速率相對(duì)來說已經(jīng)很低,此時(shí)能夠進(jìn)行更高階的FIR濾波,使得濾波器的通帶波動(dòng)、過渡帶帶寬、阻帶最小衰減等指標(biāo)符合系統(tǒng)要求。同時(shí)有效降低了對(duì)乘法器的要求,便于進(jìn)行分時(shí)復(fù)用。
3 濾波器的分組級(jí)聯(lián)技術(shù)優(yōu)化
由FIR理論知:要滿足基本的濾波器衰減和噪聲特性要求,抽取系數(shù)為N的單個(gè)濾波器需要大量的抽頭(乘法器)才能實(shí)現(xiàn)。最新的Virtex-5系列FPGA內(nèi)嵌的DSP48E模塊(主要包含硬件乘法和加法單元,能在一個(gè)時(shí)鐘內(nèi)完成乘法和加法操作)的最高工作頻率是550 MHz,而Virtex-5 LX330T提供了多達(dá)192個(gè)DSP Slice,但考慮到FPGA還需完成后級(jí)的信號(hào)處理和解調(diào),仍然有必要盡量減少系統(tǒng)對(duì)乘法器的需求。
3.1 對(duì)稱的濾波器系數(shù)
系數(shù)對(duì)稱的DDC抽取濾波器可以用來獲得最多50%的乘法器節(jié)省效果。在對(duì)稱條件下,n個(gè)抽頭的FIR濾波器系數(shù)h(0),h(1),…,h(n)滿足:
由于h(k),h(n-k)與兩個(gè)相關(guān)數(shù)據(jù)之和的乘積可以一次完成,因此所需乘法器的數(shù)量可以最多減少2倍(對(duì)于偶數(shù)個(gè)系數(shù))。在FPGA中,可以利用低資源消耗的進(jìn)位鏈邏輯實(shí)現(xiàn)使用相同系數(shù)的兩個(gè)數(shù)據(jù)的加法。
3.2 利用EBR存儲(chǔ)器塊實(shí)現(xiàn)FIR濾波器
FPGA的嵌入式RAM塊存儲(chǔ)器(EBR)可以用來存儲(chǔ)濾波器系數(shù),對(duì)于DDC這種乘法器密集型應(yīng)用來說,將存儲(chǔ)器和LUT結(jié)構(gòu)資源用作乘法器可以顯著提升實(shí)現(xiàn)效率。樣本被串行移位進(jìn)EBR地址總線。在EBR內(nèi)部有一個(gè)預(yù)計(jì)算的結(jié)果乘法表以及帶合適系數(shù)的各個(gè)輸入樣本比特(地址比特)總和。累加器將累加n(n是樣本比特分辨率)個(gè)中間結(jié)果,并在n個(gè)時(shí)鐘周期后提供完整的FIR濾波結(jié)果。
3.3 流水線技術(shù)
在CIC濾波器中,由于濾波器的實(shí)質(zhì)為積分器和微分器的級(jí)聯(lián),在進(jìn)行濾波時(shí),引入流水線技術(shù)后,后級(jí)微分器在處理數(shù)據(jù)的同時(shí),下一組數(shù)據(jù)已經(jīng)送入前級(jí)積分器處理。在正確時(shí)序的組織下,使信號(hào)的處理速度提高了一倍。在后級(jí)的FIR濾波中,由于信號(hào)速率顯著降低,同樣可以進(jìn)行分時(shí)復(fù)用實(shí)現(xiàn)流水線技術(shù)。
其實(shí)現(xiàn)方法為:對(duì)輸入時(shí)鐘進(jìn)行計(jì)數(shù),得到一個(gè)時(shí)鐘2分頻的信號(hào)rdy,當(dāng)rdy為1時(shí),輸入的中頻信號(hào)和DDS產(chǎn)生的正弦波相乘;當(dāng)rdy為0時(shí),輸入的中頻信號(hào)和DDS產(chǎn)生的余弦波相乘,相乘后經(jīng)過濾波器輸出。由于濾波器采用了二級(jí)流水線技術(shù),使得只用一套硬件實(shí)現(xiàn)了兩路信號(hào)的處理,達(dá)到節(jié)省乘法器資源的目的。
4 數(shù)字下變頻(DDC)的FPGA實(shí)現(xiàn)
給定設(shè)計(jì)任務(wù):實(shí)現(xiàn)對(duì)輸入信號(hào)為6.144 MHz,信號(hào)輸出的速率為192 kb/s的AM,F(xiàn)M及數(shù)字信號(hào)的解調(diào),一個(gè)抽取系數(shù)為N的大型FIR抽取濾波器可以分解成N個(gè)抽取系數(shù)分別為N1,N2,…,Ns的較小、較簡(jiǎn)單的級(jí)聯(lián)濾波器。抽取系數(shù)滿足以下等式:
在考慮各種濾波器的特性基礎(chǔ)上,抽取系統(tǒng)采取多級(jí)抽取組分組級(jí)聯(lián)的方式。為了有效利用FPGA資源,采用16倍CIC濾波器和一級(jí)半帶(HB)濾波器,最后接FIR濾波器進(jìn)行整形補(bǔ)償。其實(shí)現(xiàn)方框圖如圖1所示。
4.1 CIC濾波器的設(shè)計(jì)
因?yàn)镃IC濾波器的系數(shù)全為1,F(xiàn)PGA實(shí)現(xiàn)時(shí)只需進(jìn)行累加運(yùn)算,而加法器是在FPGA的內(nèi)核邏輯中實(shí)現(xiàn)的,通過使用豐富的逐位進(jìn)位模式(ripple mode)的通用可編程邏輯單元(PLC)片,可以達(dá)到很高的頻率。
根據(jù)本次的設(shè)計(jì)要求,為了獲得更高的帶寬,設(shè)通帶截止頻率fc1=B=60,抽取倍數(shù)為16,輸入采樣頻率為6.144 MHz,則帶寬比例因子b=B/(fs1/D)=0.156 25,系統(tǒng)采用5級(jí)級(jí)聯(lián)的方式,此時(shí)阻帶的衰減為:
但是帶寬比例因子和通帶內(nèi)容差是一對(duì)無法調(diào)和的矛盾,為了更大的帶寬,付出的代價(jià)就是使得通帶內(nèi)容差為:
說明多級(jí)級(jí)聯(lián)增大了阻帶衰減,減小混疊影響的同時(shí)也增大了帶內(nèi)容差。
因此,上述參數(shù)設(shè)計(jì)的CIC濾波器帶內(nèi)紋波太大,必須設(shè)法進(jìn)行補(bǔ)償。采用內(nèi)插多項(xiàng)式ISOP濾波器,其轉(zhuǎn)移函數(shù)為:
綜上所述,選用5級(jí)級(jí)聯(lián)的CIC濾波器后接一級(jí)ISOP濾波器,CIC采用5個(gè)6.144 MHz的積分器和5個(gè)工作在384 kHz的微分器通過流水線組成,積分器采用累加器實(shí)現(xiàn),微分器采用全減器實(shí)現(xiàn),中間連接一個(gè)16倍的抽取機(jī)構(gòu)。通過判斷數(shù)據(jù)是否已經(jīng)在積分器內(nèi)處理完畢送微分器后,下一組數(shù)據(jù)即進(jìn)入積分器,實(shí)現(xiàn)二級(jí)流水線技術(shù)。圖2為用Matlab仿真濾波器的頻率響應(yīng)。
4.2 半帶濾波器的設(shè)計(jì)
HB濾波器的通帶截止頻率設(shè)為fc1=B=120 kHz,輸入采樣頻率為fs1=768 kHz,使用Matlab的濾波器設(shè)計(jì)工具,根據(jù)文獻(xiàn)[2]推導(dǎo),采用凱撒窗設(shè)計(jì)半帶濾波器所需的階數(shù)N:
式中,α為由半帶濾波器通帶帶寬確定的比例系數(shù),δ為阻帶衰減,取δ=0.001(6 dB),實(shí)際設(shè)計(jì)中,經(jīng)計(jì)算歸一化通帶截止頻率為fc=120/768=0.156 25,阻帶起始頻率為fA=0.5-0.156 25=0.343 75,得到過渡帶寬為△f=fA-fc=0.187 5,代入上式,求得N=20。用Matlab求出濾波器系數(shù),在FPGA中作為查詢表實(shí)現(xiàn),其頻率響應(yīng)如圖3所示。
5 軟件仿真及分析
本文通過ISE9.1i進(jìn)行Verilog程序的編寫后,進(jìn)行軟件仿真。
輸入如圖4所示的6.144 MHz的正弦波信號(hào)作為載波信號(hào),輸入的待調(diào)制信號(hào)如圖5所示,輸入384 kHz的兩個(gè)周期的正弦信號(hào),經(jīng)一定延時(shí)后,再輸入192 kHz的兩個(gè)周期的正弦和余弦兩路正交載波,由于ISE9.1i自帶仿真器不利于觀察數(shù)據(jù)的具體波形,圖4和圖5為Matlab從仿真器中讀出數(shù)據(jù)后繪制的波形圖。
可見載波波形和輸出的信號(hào)波形都發(fā)生了嚴(yán)重變形,但根據(jù)乃奎斯特原理知:這并不影響后續(xù)數(shù)字信號(hào)的處理。從仿真波形可以得出下變頻模塊的功能完全正確。
6 結(jié)語
通過對(duì)數(shù)字下變頻原理的深入介紹,針對(duì)系統(tǒng)的設(shè)計(jì)要求,對(duì)數(shù)字下變頻的濾波器進(jìn)行優(yōu)化設(shè)計(jì)后,通過對(duì)濾波器的級(jí)聯(lián)和分解,在不同的信號(hào)速率下彩不同的濾波器,并引入流水線技術(shù),從而有效減少FPGA乘法器開銷,最后在Virtex-5 FPGA上高效實(shí)現(xiàn)了系統(tǒng)的全部功能,達(dá)到了系統(tǒng)的設(shè)計(jì)要求。
在日記本:gt
評(píng)論