摘 要:介紹了一種新型直接數(shù)字頻率合成技術(shù),根據(jù)遺傳算法確定的近似多項(xiàng)式直接產(chǎn)生數(shù)字正弦波,這種方法擺脫了ROM容量對(duì)DDS設(shè)計(jì)的限制。多項(xiàng)式近似方法采用流水線(xiàn)結(jié)構(gòu),并利用Xilinx公司的FPGA器件(XC2V3000-ff1152-4)進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。該方法的無(wú)雜散動(dòng)態(tài)范圍約為-83 dB,相對(duì)于傳統(tǒng)方法FPGA資源消耗大大降低,僅為傳統(tǒng)方法的40%。
關(guān)鍵詞:直接數(shù)字頻率合成器;FPGA;Rom-less;多項(xiàng)式近似
中圖分類(lèi)號(hào):TN91 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2008)11-135-03
The New Design of a Rom-less Pipelining DDS
WANG Hongyuan,YANG Gang,ZHANG Changge
(Beijing Institute of Remote Sensing Equipment,Beijing,100039,China)
Abstract:This paper describes the design of a Rom-less Direct Digital Frequency Synthesizer.This design dispenses with Rom,which mainly limits the design of DDS,but use SIN function polynomial approximation directly generating.Realizes the design of Rom-less DDS in Xilinx′s FPGA(XC2V3000-ff1152-4),the digital part of it can be pipelined,and this method attaches the Spurious Free Dynamic Rang (SFDR) about -83 dBc.Comparing with the traditional method,the new design uses only 40% of FPGA resources.
Keywords:direct digital frequency synthesizer;FPGA;Rom-less;polynomial approximation
1 引 言
直接數(shù)字頻率合成技術(shù)[1](Direct Digital Frequency Synthesizer,DDS)由美國(guó)學(xué)者J.Tiercy,C.M.Rade和B.Gold于1971年提出,近幾年來(lái)該技術(shù)得到飛速發(fā)展。DDS是一種將先進(jìn)的數(shù)字處理理論與方法引入信號(hào)合成領(lǐng)域的新型頻率合成技術(shù),具有頻率分辨率較高,輸出相位連續(xù),頻率、相位、幅度均可實(shí)現(xiàn)數(shù)控調(diào)制等優(yōu)點(diǎn)。DDS作為一種先進(jìn)的信號(hào)產(chǎn)生技術(shù)已經(jīng)廣泛應(yīng)用于信號(hào)源儀器、測(cè)量分析儀器、通信、數(shù)字信號(hào)處理、工業(yè)控制和軟件無(wú)線(xiàn)電等領(lǐng)域。
傳統(tǒng)的DDS數(shù)字正弦函數(shù)產(chǎn)生是基于ROM查表實(shí)現(xiàn)的,這種技術(shù)的主要缺點(diǎn)是為了得到高純凈的頻譜就需要加大ROM存儲(chǔ)容量,成為DDS發(fā)展的瓶頸。如今出現(xiàn)避免使用ROM實(shí)現(xiàn)DDS(Rom-less)的方法,如CORDIC算法[2]等。本文介紹一種新型的利用多項(xiàng)式近似的Rom-less設(shè)計(jì)方法產(chǎn)生數(shù)字正弦波。
2 傳統(tǒng)DDS實(shí)現(xiàn)方法
傳統(tǒng)DDS技術(shù)是在參考時(shí)鐘fc的控制下,頻率控制字K由累加器累加得到相應(yīng)的相位數(shù)據(jù),此相位值在每個(gè)時(shí)鐘周期內(nèi)應(yīng)用于正弦查找表中,正弦查找表將相位信息轉(zhuǎn)換為相應(yīng)的幅度值,數(shù)字正弦波經(jīng)D/A轉(zhuǎn)換器轉(zhuǎn)化為模擬波形,最后經(jīng)過(guò)低通濾波器進(jìn)一步平滑并濾掉帶外雜散,得到所需信號(hào)波形[3]。DDS原理框圖如圖1所示。
圖1 傳統(tǒng)DDS原理框圖
如圖1所示傳統(tǒng)DDS主要由相位累加器、波形存儲(chǔ)器ROM、數(shù)模轉(zhuǎn)換器D/A和低通濾波器組成。參考時(shí)鐘是一個(gè)穩(wěn)定的晶體振蕩器,用它來(lái)同步整個(gè)合成器的各個(gè)部分。
N位相位累加器輸出的二進(jìn)制轉(zhuǎn)換成相位值公式為:
n=θ2π#8226;2N[JY](1)
為了說(shuō)明正弦波一個(gè)完整周期內(nèi)相位0~2π的變化用相位圓表示,其幅度與相位一一對(duì)應(yīng),如圖2所示。
3 多項(xiàng)式近似的設(shè)計(jì)方法
傳統(tǒng)的DDS用相位尋址的方法得到幅度值,多項(xiàng)式近似的方法是利用一個(gè)近似的多項(xiàng)式方程直接將輸入的相位計(jì)算得出近似的正弦幅度值。下面從多項(xiàng)式近似出發(fā)首先得出近似多項(xiàng)式方程,然后介紹這種Rom-lessDDS的設(shè)計(jì)方法。
圖2 DDS相位碼與幅度碼對(duì)應(yīng)關(guān)系
3.1 多項(xiàng)式方程的選擇
當(dāng)相位在(1~0.5π)之間,正弦曲線(xiàn)可以用多項(xiàng)式近似方程表示:
sin(α)(α+a1α3+a2α5)[JY](2)
有很多方法可以求得正弦曲線(xiàn)的近似多項(xiàng)式,如拋物線(xiàn)逼近法、泰勒展開(kāi)式法、8倍角法、遺傳算法等,這樣的近似多項(xiàng)式也有無(wú)數(shù)個(gè),例如利用8倍角法[4]求得的近似多項(xiàng)式為:
sin(α)α-0.164 062 5α3+0.006 836 α5[JY](3)
利用遺傳算法[5]可求得另一個(gè)近似多項(xiàng)式:
sin(α)α-0.165 86α3+0.007 58α5[JY](4)
在(0~0.5π)區(qū)間,正弦波曲線(xiàn)與這兩個(gè)近似多項(xiàng)式曲線(xiàn)的對(duì)比如圖3所示。
圖3 正弦波與近似多項(xiàng)式曲線(xiàn)對(duì)比圖
圖4為8倍角法與遺傳算法得出的近似多項(xiàng)式與正弦曲線(xiàn)的誤差,最大誤差分別為:1.5e-3,4.4709e-004。由圖4可以看出遺傳算法得出的近似多項(xiàng)式明顯好于8倍角法得出的近似多項(xiàng)式,因此我們選擇用遺傳算法得到的近似多項(xiàng)式方程進(jìn)行多項(xiàng)式方程數(shù)字實(shí)現(xiàn)的推導(dǎo)。[LL]
圖4 誤差比較圖
3.2 多項(xiàng)式方程的數(shù)字實(shí)現(xiàn)
為了滿(mǎn)足頻率分辨率,需要設(shè)定較高位數(shù)的相位控制字,然后再截取高P位作為相幅轉(zhuǎn)換字。本文設(shè)定相位控制字位數(shù)為32位,截取高16位進(jìn)行相幅轉(zhuǎn)換,下面進(jìn)行將近似多項(xiàng)式推導(dǎo)為可以利用FPGA實(shí)現(xiàn)的形式。
在(0~π/2)內(nèi)相位的數(shù)字表示與實(shí)際表示之間的關(guān)系為:
α=nπ/22P-2=π2#8226;n214,n≤214-1[JY](5)
將式(5)代入式(4),并乘以(214-1),得:
sin(n)[WB]=(214-1)sin(α)=(214-1)#8226;nπ215#8226;
[DW] 1-n2π2230(0.165 86-0.007 58n2π2230)
[DW]π2#8226;n2148 192-n2228(3 352-378#8226;n2228)[JY](6)
用π/2歸一化式(6),得:
sin(n)=n2148 192-n2228(3 352-378#8226;n2228)
=n2148 192-n2228(3 352-n2(1220+1221-1226-1227))[JY](7)
根據(jù)正弦曲線(xiàn)的象限對(duì)稱(chēng)性,只需求出第一象限的曲線(xiàn)值,再根據(jù)相位的高兩位確定象限,經(jīng)過(guò)轉(zhuǎn)換便可以得到完整的正弦曲線(xiàn)。
3.3 Rom-less 流水線(xiàn)DDS的硬件實(shí)現(xiàn)
相位累加器產(chǎn)生一個(gè)數(shù)字掃描信號(hào)相位,多項(xiàng)式發(fā)生器將其轉(zhuǎn)換化為(0~0.5π)之間的正弦信號(hào)幅度,經(jīng)過(guò)次高位求補(bǔ)后通過(guò)多項(xiàng)式發(fā)生器轉(zhuǎn)化為(0~π)之間的正弦幅度,再通過(guò)高位求補(bǔ)求出(0~2π)之間的正弦幅度[6]。近似多項(xiàng)式法實(shí)現(xiàn)DDS的框圖和多項(xiàng)式發(fā)生器結(jié)構(gòu)框圖如圖5、圖6所示。
4 仿真結(jié)果分析
系統(tǒng)時(shí)鐘信號(hào)頻率100 MHz,產(chǎn)生的正弦波信號(hào)頻率為0.610 352 4 MHz,累加器位數(shù)32位,截取高16位進(jìn)行相幅轉(zhuǎn)換,F(xiàn)PGA芯片選用Xilinx公司的XC2V3000-ff1152-4。為了評(píng)估這種Rom-less DDS 的性能,只對(duì)數(shù)字部分進(jìn)行仿真,并與傳統(tǒng)方法產(chǎn)生同樣的正弦信號(hào)進(jìn)行頻譜與資源利用率的對(duì)比。
圖5 DDS的實(shí)現(xiàn)框圖
圖6 多項(xiàng)式發(fā)生器結(jié)構(gòu)
4.1 數(shù)字部分仿真
利用Matlab對(duì)數(shù)字部分仿真,時(shí)域結(jié)果如圖7所示,頻域結(jié)果如圖8所示。從圖8中可以看到Rom-less DDS產(chǎn)生正弦信號(hào)的SFDR約為-83 dB,諧波分量略高于傳統(tǒng)方法產(chǎn)生的頻譜的SFDR。
圖7 時(shí)域仿真結(jié)果
圖8 頻域仿真結(jié)果
4.2 FPGA資源利用率對(duì)比
FPGA資源對(duì)比表如表1所示。
表1 FPGA資源對(duì)比
由表1可以看出Rom-less DDS所需RAMB16s為0,表明實(shí)現(xiàn)波形過(guò)程中沒(méi)有用到ROM,消耗SLICEs也僅僅是傳統(tǒng)方法產(chǎn)生正弦信號(hào)的40%,比傳統(tǒng)方法減少了6%,極大地減小了FPGA消耗的資源。
5 結(jié) 語(yǔ)
本文介紹一種新型Rom-less DDS設(shè)計(jì)方法,利用多項(xiàng)式近似直接產(chǎn)生數(shù)字正弦波。給出了詳細(xì)的設(shè)計(jì)過(guò)程,并對(duì)數(shù)字部分進(jìn)行了仿真,通過(guò)與傳統(tǒng)方法產(chǎn)生的正弦波的比較,表明這種方法比傳統(tǒng)DDS設(shè)計(jì)方法產(chǎn)生的雜散略大,但是卻可以大大節(jié)省FPGA資源,只占傳統(tǒng)DDS方法資源的40%,同時(shí)擺脫了ROM容量對(duì)DDS設(shè)計(jì)的限制。
參 考 文 獻(xiàn)
[1]安建平.DDS/PLL頻率合成技術(shù)的研究\\[D\\].北京:北京理工大學(xué),2004.
[2]Wang C C,She H C,Hu R.A Rom-less Direct Digital Frequency Synthesizer by Using Trigonometric Quadruple Angle Formola\\[J\\].IEEE Solid-State Circuits,2002,38:65-68.
[3]黃愛(ài)蓉.高性能DDS信號(hào)產(chǎn)生器的設(shè)計(jì)研究\\[J\\].微機(jī)計(jì)算信息,2005,21(22):153-156.
[4]Ayatollahi A,Jafari H.A Low Power,High SFDR,Rom-less Direct Digital Frequency Synthesizer.IEEE International Frequency Cotrol Symposium and PDA Exhibition,2006:654-661.
[5]蒲錦先.一種DDS中節(jié)省ROM資源的實(shí)用方法[J].無(wú)線(xiàn)電通信技術(shù),2002,28(5):19-22.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。