基于FPGA的高速數(shù)字下變頻系統(tǒng)設(shè)計(jì)
摘要:基于FPGA設(shè)計(jì)了一高速數(shù)字下變頻系統(tǒng),在設(shè)計(jì)中利用并行NCO和多相濾波相結(jié)合的方法有效的降低了數(shù)據(jù)的速率,以適合數(shù)字信號(hào)處理器件的工作頻率。為了進(jìn)一步提高系統(tǒng)的整體運(yùn)行速度,在設(shè)計(jì)中大量的使用了FPGA中的硬核資源DSP48。Xilinx ISE14.4分析報(bào)告顯示,電路工作速度可達(dá)360MHz。最后給出了在Matlab和ModelSim中仿真的結(jié)果,驗(yàn)證了各個(gè)模塊以及整個(gè)系統(tǒng)的正確性。
本文引用地址:http://www.ex-cimer.com/article/201610/308189.htm數(shù)字下變頻(Digital Down Conversion,DDC)是軟件無(wú)線電系統(tǒng)的關(guān)鍵模塊之一,其可將高頻數(shù)據(jù)流信號(hào)變成易于后端數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)設(shè)備實(shí)時(shí)處理的低頻數(shù)據(jù)流信號(hào)。在數(shù)字下變頻實(shí)現(xiàn)中,隨著信號(hào)采樣率的不斷提高,數(shù)據(jù)率也會(huì)相應(yīng)的提高,但是實(shí)際應(yīng)用中隨著數(shù)據(jù)速率的不斷提高,數(shù)據(jù)處理器件(如FPGA)的處理速度會(huì)無(wú)法滿足要求而不能正常工作,從而帶來(lái)了數(shù)字信號(hào)處理的瓶頸問(wèn)題。本設(shè)計(jì)就是以多路并行NCO技術(shù)為基礎(chǔ),研究了如何在FPGA中用多路并行采樣數(shù)據(jù)的方式來(lái)解決數(shù)據(jù)處理器件無(wú)法提供高速率的匹配信號(hào)的問(wèn)題,并給出了高速DDC實(shí)現(xiàn)的架構(gòu)和仿真結(jié)果。
1 數(shù)字下變頻基本原理
數(shù)字下變頻主要由頻譜搬移和抽取兩部分組成,如圖1所示,其中頻譜搬移包含數(shù)控振蕩器(Numerically Controlled Oscillators,NCO)、乘法器和低通濾波器(LPF,Low Pass Filter);抽取包含抽取濾波器(LPF2)和D倍的抽取,LPF2是為了限制信號(hào)的頻譜,以免抽取后發(fā)生混疊。
模擬信號(hào)經(jīng)過(guò)A/D轉(zhuǎn)換后分成兩路信號(hào),一路信號(hào)和NCO輸出的正弦信號(hào)相乘(同相分量),一路和NCO輸出的余弦信號(hào)相乘(正交分量),之后經(jīng)過(guò)低通濾波器(LPF1)將高頻分量濾除,然后信號(hào)經(jīng)過(guò)抽取濾波以降低速率,最終輸出的兩路信號(hào)就可以送往后續(xù)的數(shù)字信號(hào)處理器中做進(jìn)一步的處理。
2 高速DDC系統(tǒng)設(shè)計(jì)
文中設(shè)計(jì)了一種基于并行NCO的高速DDC,可大大降低對(duì)FPGA處理速度的要求,其實(shí)現(xiàn)如圖2所示,該系統(tǒng)主要由換向器、并行NCO、乘法器模塊和兩個(gè)多相FIR濾波器組成。換向器右側(cè)的所有電路都是工作在Fs/4的時(shí)鐘頻率上,換向器將速率為Fs,16 bit的數(shù)據(jù)變成4路Fs/4,16 bit的數(shù)據(jù)。對(duì)于輸入速率要求較高的場(chǎng)合(例如,速率超過(guò)500M),對(duì)于輸入接口需要用到Xilinx的硬件原語(yǔ)IDDR。
換向器將一路高速率數(shù)據(jù)分成四路低速率數(shù)據(jù)輸出,并行NCO的輸出頻率和起始相位受FL控制,分別輸出8路正余弦數(shù)據(jù),乘法器模塊實(shí)現(xiàn)NCO輸出數(shù)據(jù)和四路低速率數(shù)據(jù)的相乘,輸出四路正交分量和四路同相分量,之后將這8路數(shù)據(jù)送入低通濾波器中進(jìn)行濾波處理,最后將同相分量和正交分量分別輸出。
2.1 并行NCO設(shè)計(jì)
NCO是用來(lái)產(chǎn)生載波cosωct和sinωct的部件。
假設(shè)NCO的多相分解路數(shù)為D,我們可以將x(n)寫為如下形式:
由式(1)和式(2)可以看出,經(jīng)過(guò)多相分解之后,數(shù)據(jù)由原來(lái)一路x(n)變?yōu)榱薉個(gè)支路,假設(shè)x(n)的采樣率為fs,那么多相分解后,每個(gè)支路的采樣率為fs/D,即每一條支路上數(shù)據(jù)速率變?yōu)閒s/D,相比原來(lái)一路x(n)的情況,數(shù)據(jù)到來(lái)的速率慢了D倍。
圖1中,一路x(n)的采樣率為,fs,那么NCO的輸出載波相位的速率也必須是fs。假設(shè)NCO輸出給上面支路的余弦信號(hào)為xLC(n),NCO輸出給下面支路的正弦信號(hào)為xLS(n),假設(shè)xLC(n)和xLS(n)的初始相位都為0,其頻率都為fL,我們以xLC(n)為例來(lái)說(shuō)明。未采樣之前的模擬信號(hào)為
xLC(t)=cos(2πfLt)
經(jīng)過(guò)ADC采樣,變成數(shù)字信號(hào)后,用nTs代替上式中的t,得到
由式(4)可以看出,多相分解之后,雖然每個(gè)支路的采樣率,即數(shù)據(jù)到來(lái)的速率變慢了D倍,但是每個(gè)支路NCO輸出的頻率仍然是fL。我們還需要進(jìn)一步降低NCO的輸出本振信號(hào)頻率,因?yàn)橥ǔG闆r下,利用NCO產(chǎn)生本振信號(hào)需要使用一個(gè)主時(shí)鐘fclk,這個(gè)主時(shí)鐘fclk必須是FPGA可以穩(wěn)定運(yùn)行的時(shí)鐘,其頻率不可能太高,而且,實(shí)際應(yīng)用中,NCO輸出的本振信號(hào)的頻率不能超過(guò)主時(shí)鐘fclk。因此無(wú)法直接產(chǎn)生所需要的輸出頻率,但是,我們可以利用三角函數(shù)的轉(zhuǎn)換關(guān)系,間接的產(chǎn)生。本文所設(shè)計(jì)的NCO采用如圖3所示的結(jié)構(gòu)。
2.2 多相FIR濾波器的設(shè)計(jì)
低通濾波器主要是用來(lái)對(duì)信號(hào)進(jìn)行整形濾波并除去信號(hào)中的噪聲。本設(shè)計(jì)利用DSP48系列IP核來(lái)構(gòu)成低通濾波器。Xilinx公司提供了兩種利用DSP48構(gòu)建FIR濾波器的方法,分別為Addr Tree和Addr Cascade,考慮到速度問(wèn)題,本設(shè)計(jì)使用Addr Tree的設(shè)計(jì)方法,使用該方法,在Kintex7系列FPGA上其速率超過(guò)650 MHz。
假設(shè)H(z)對(duì)應(yīng)的沖擊響應(yīng)h(n)的長(zhǎng)度為N,且N能被D=4整除(以D=4為例),則四路濾波器輸出分別為:
3 仿真及驗(yàn)證
根據(jù)系統(tǒng)設(shè)計(jì)的要求,我們利用Matlab軟件對(duì)整個(gè)的數(shù)字下變頻系統(tǒng)進(jìn)行了建模仿真,并使用Verilog硬件描述語(yǔ)言在Xilinx的kintex7系列FPGA上實(shí)現(xiàn)了該數(shù)字下變頻器。為了更好的驗(yàn)證該下變頻器的設(shè)計(jì),我們利用Matlab建模的上變頻系統(tǒng)產(chǎn)生該下變頻器的輸入激勵(lì),如圖4所示為上變頻系統(tǒng)的輸入波形。圖5為Matlab建模仿真得到的數(shù)字下變頻器I、Q兩路的輸出信號(hào)波形。圖6為利用Modelsim仿真得到的輸出結(jié)果,NCO本振頻率(CLK)為320 MHz,輸入信號(hào)跳變頻率(FL)分別為50 MHz、150 MHz、250 MHz、350 MHz以及450 MHz,P_out_I1和P_out_Q1分別為混頻后四相I、Q信號(hào)中的一路,I_out和Q_out為經(jīng)過(guò)多相濾波后最終的輸出波形。從Matlab和ModelSim的仿真波形可以很直觀的看出我們?cè)O(shè)計(jì)的數(shù)字下變頻器與理論相符,輸出結(jié)果正確,達(dá)到了預(yù)期的設(shè)計(jì)目的。
4 結(jié)論
在設(shè)計(jì)數(shù)字下變頻n系統(tǒng)中,提高處理速度是很關(guān)鍵的一部分,本設(shè)計(jì)首先利用多相結(jié)構(gòu),將數(shù)據(jù)分為D路,把每一路的數(shù)據(jù)速率降成原來(lái)的D分之一。在設(shè)計(jì)低通濾波器和乘法器模塊時(shí)充分利用了Kintex7上的硬核資源DSP 48,大幅度的提高了電路的處理速度。利用Xilinx的ISEl4.4工具進(jìn)行綜合、布局、布線后的時(shí)序報(bào)告顯示,該電路最高工作速度可達(dá)360 MHz,充分顯現(xiàn)了此設(shè)計(jì)的速度優(yōu)勢(shì)。由于該數(shù)字下變頻器是基于FPGA實(shí)現(xiàn)的,且具有很高的工作速度,可用它來(lái)代替大多數(shù)的專用數(shù)字下變頻芯片,它能夠滿足大多數(shù)通信系統(tǒng)中接收機(jī)對(duì)數(shù)字下變頻器處理速度、處理帶寬以及濾波性能的要求,可廣泛應(yīng)用于數(shù)據(jù)采集、軟件無(wú)線電等領(lǐng)域中,具有較高的實(shí)用價(jià)值。
評(píng)論