摘 要:研究傳統的DDFS頻譜雜散分量,分析了雜散分量的來源和傳統相位抖動除噪技術的缺點,提出了對相位舍入分解進行Taylor展開的DDFS改進結構。同時該結構采用循環相位累加器等結構,降低了雜散分量,提高了頻率精度,壓縮了ROM的容量。FPGA上的實現表明該結構能有效降低雜散,能使SDFR比采用相位抖動除噪的方法擴大30 dB,同時ROM的容量比傳統結構壓縮了4倍以上。關鍵詞:DDFS; FPGA ; Taylor; 雜散抑制; 循環相位累加器
中圖分類號:TN911-34文獻標識碼:A
文章編號:1004-373X(2010)18-0013-04
Design of DDFS with Low Spurious and Small-capacity Based on FPGA
YING Wen-wei, JIANG Yu-zhong, ZHANG Jia-wei
(Naval University of Engineering, Wuhan 430033, China)
Abstract: The traditional DDFS spurious spectral component is researched, the source of spurious noise and the disadvantage of traditional phase jitter noise canceling technology are analyzed, then a new architecture of DDFS based on the Taylor series approximation of the phase rounding decomposition is proposed. This architecture effectively reduced the spurious noise of the output signal, increased accuracy of the frequency, and compressed the volume of ROM. The realization based on FPGA shows that this architecture can reduce spurious noise effectively, the SDFR broadened 30db more than that of the technology of phase jitter and the volume of ROM compressed four times more than that of the classic architecture.Keywords: DDFS; FPGA; Taylor; spurious noise suppression; cycle phase accumulator
0 引 言
直接數字頻率合成器(DDFS),由于其具有高精度、頻率控制的靈活性、易于用軟件實現等特點,在跳頻通信、軟件無線電[1]等領域得到了廣泛的應用。DDFS的經典結構是由Tiery,Rader,Gold等人提出。這一經典結構主要包括帶相位存儲的溢出相位累加器和基于ROM的查找表。
每當時鐘來到時,相位累加器累加頻率控制字,由于查找表的限制,輸出相位將進行截斷,只將高位作為ROM查找表的地址,根據地址輸出預先存儲在ROM中的數據。ROM中的數據一般為等間隔采樣的一個周期sin函數數據。還有一些技術根據sin函數的對稱性只存儲1/4波形以壓縮ROM的空間[2-3]等,只不過這些技術大多增加了系統的復雜度或犧牲精度,同時也不能很好解決雜散性的問題。DDFS雜散問題主要源于相位累加器的相位截斷[4],ROM存儲字長的限制和DAC性能對輸出噪聲的影響[5]等。其中相位累加器的相位截斷對雜散起了很大的作用,特別是在NCO等的應用中,這樣使得DDFS的應用有了一定的限制。本文所提出的DDFS的改進的主要目的是為了有效降低相位截斷所引起的雜散性和壓縮ROM空間。
1 相位截斷對輸出噪聲的影響
通過經典的DDFS結構進行分析,容易得到輸出頻率為:
fo=F2Lfclk(1)
式中:F為頻率控制字;L為字長,fclk為時鐘的采樣頻率。該DDFS所能達到的分辨率為:
Δf=12Lfclk(2)
考慮到相位截位的誤差,截取B位,相位誤差函數為l(n),則輸出的DDFS信號為sin[2πnF-l(n)2L]。其中,l(n)的值為nFmod 2B,mod代表求余算子。可以得到l(t)是一周期T=2BFmod 2B,幅度A=2B的周期鋸齒波信號[6],而l(n)就可以看成以時鐘頻率fclk對l(t)的抽樣,l(n)的周期變為Te=2B(F,2B),其中,(#8226;)為公約數算子。l(t)誤差函數的傅里葉變換為:
Ε(ω)=2π∑+∞m=-∞2Bjω(sa(ωT2)e-jωT2-e-jωT)δ(ω-mωT) (3)
式中:ωT=1T=Fmod 2B2B,又由于l(n)=l(t)σT(t)=∑nl(t)σ(t-nTclk),而其中σT為周期的方波信號,所以l(n)的頻譜為:
Εp(ω)=2π2Bjω(sa(ωT2)e-jωT2-e-jωT)sa(ωTclk2)
e-jωTclk2∑+∞m=-∞∑+∞n=-∞δ(ω-mωT-nωclk) (4)
為了分析的方便定義ν(ω)=2Bjω(sa(ωT2)e-jωT2-e-jωT),可以看到誤差函數的頻譜分布主要集中在ω=mωT±nωclk(m,n=0,1,2,…)處。
現在分析DDFS輸出信號,對于f(n)=sin(2πnF-l(n)2L),有:
sin(2πnF-l(n)2L)=sin(2πnF2L)#8226;cos(2πl(n)2L)-
sin(2πl(n)2L)cos(2πnF2L)(5)
由于2πl(n)2L很小,因此cos(2πl(n)2L)≈1,sin(2πl(n)2L)≈2πl(n)2L:
f(n)≈sin(2πnF2L)-2πl(n)2Lcos(2πnF2L) (6)
式中:Δ(n)=2πl(n)2Lcos(2πnF2L)就是由于DDFS系統所產生的誤差。 對Δ(n)進行傅里葉變換得:
Δ(ω)=2π2ν(ω)2Lsa(ωTclk2)e-jωTclk2∑+∞m=-∞∑+∞n=-∞
[δ(ω+ω0-mωT-nωclk)+δ(ω-ω0-mωT-nωclk)] (7)
從式(7)可以看出,系統產生的誤差主要分布在ω=±ω0±mωT±nωclk,(m,n=1,2,…)處,其中第一項的誤差來源于相位的截斷。
2 改進的DDFS結構
為了控制相位的截斷所產生的誤差,一些研究者嘗試著從破壞誤差函數的周期性來考慮,如擾動注入法,DAC隨機輸入和隨機時鐘,相位擾動法[7]等。相位擾動法一種常用的方法,它是在相位中加入隨機信號,這種結構能較好地減少雜散分量,但是仍存在一些不足。首先隨機源的設計很難到達實際的要求,在工程中實際采用偽隨機序列來代替隨機源,如線性反饋移位寄存器,但偽隨機序列并非真正意義上的隨機序列。M序列[8]是帶線性反饋的移存器產生的周期最長的序列,L位M序列的周期2L-1,它仍是周期序列,沒有本質上消除噪聲。其次隨機源的引入,使得頻率的精度降低上下波動等。再者,當前隨機數生成器大多存在資源開銷大,可移植差等問題[9]。為此,提出對相位舍入分解進行Taylor展開來提高精度和降低雜散。
將L位的相位分為兩部分,使得相位K=M+N。設舍去的位數為B,M是相位與2B相除之后的就近整數,N是K與M相減的值。對sin(2πM+N2L)進行Taylor展開:
sin(2πM+N2L)=sin(2πM2L)+2πN2Lcos(2πM2L)-
12(2πN2L)2sin(2πM2L)+ο((2πN2L)2)(8)
式中:δ=ο((2πN2L)2)為Taylor展開式的余項。如果直接將K分解成W高位的M,低B位的N,那么N的最大值就為2B。δ的最值就為δmax=2π2B2L2=2π2M2。
而由于引進了就近舍入機制,于是N的范圍約束在[-2B-1,2B-1]內。這樣就使得δ的最值 δmax = 2π2B-12L2 = 2π2M + 12??梢钥闯鲈谧顗那闆r下,新的機制的誤差降低了14(即12 dB)。
若僅僅考慮舍去誤差項的情況下,設L=30,B=20時,則在最壞情況下的誤差為δmax=(2π2M-1)2≈9.4×10-6(即100.526 dB)。可以看出隨著舍位的減少,每減少1位,最壞誤差下降12.1 dB,這是相當好的性能。如圖1所示,是本文提出的對相位舍入分解進行Taylor展開的改進DDFS結構。
圖1 DDFS結構
循環相位累加器的作用主要體現在對于頻率控制的精度更加精確。循環相位累加器的累加性質是帶模運算[10]。例如當頻率控制字F=11,L=10時,當累加器從0逐漸累加到1 023時,再累加1次的值是11,而不是溢出累加器的10。這樣的好處在于使得頻率控制更加精確。因為根據頻率計算得到的頻率控制字往往不是一個整數,只能取得其近似值,這樣就導致了K在相位盤上轉了一圈之后并不能與原先的值重合,引起了頻率誤差。而循環累加器能夠使得在相位在相位盤上轉動時,在相位溢出時加入了補償,使得相位始終保持等間隔F,從而有效提高頻率精度。
經過循環累加之后,對相位K進行分解。對B位進行判決,是1則前w位加1得到M,反之直接取前w位為M,K與M相減為N。進行這樣的舍入,主要的考慮還是基于對誤差項精度的考慮。從Taylor展開式的余項考慮δ,新的機制最壞情況下誤差減少了12 dB。再者由于N最高幅度低于直接分解法,2πN/2L的值變小,這樣使得在Taylor展開式中第一項的權重提高,如果提高sin函數數據的位數,性能提高也將更為明顯。
相位經過分解之后,分成三條通路。M尋址得到sin存儲器和2πcos存儲器的值。存儲2πcos而不直接存儲cos的目的是為了在算法上減少1次乘積。K0的值為1/2L,K1的值為π2/22L-1,在FPGA的實現時為了計算的簡便K1取近似值9/22L-1。最后經過加減運算,計算得到最后的結果。
3 FPGA實現及結果
在Altera公司的FPGA設計平臺軟件QuartusⅡ9.0上實現這一設計,并通過編譯綜合布線下載到Cyclone系列的CycloneⅡ EP2C5T144C8。在Modelsim 6.5a平臺上對這一設計進行仿真驗證。
將Modelsim中仿真的輸出DDFS數據導出,作1 024×16點FFT頻譜分析。圖2是采用在相位上加噪聲方法輸出811 kHz的頻譜圖,存儲容量為2 048×21 b,最大雜散幅度為-82.4 dB。
圖2 引入噪聲的DDFS輸出頻譜
圖3是同等條件下,在本文方法下輸出811 kHz信號的頻譜圖,其最大雜散為-112.4 dB,比相位抖動的方法無雜散頻譜的動態范圍(SFDR)提高了30.0 dB。
圖3 本文提出的DDFS結構輸出頻譜
在之前的討論中,頻率控制字F,sin查找表的容量大小R0,2πcos查找表的容量大小R1,輸出數據的位數Q,相位位數L,查找地址長度W對最后輸出頻率的雜散性能都有密切的關系。表1列出在不同參數下,部分頻率輸出的頻譜雜散性能。
表1 不同參數對雜散性能的影響
F /kHzR0 /bR1 /bQ /bL /bW /b雜散幅度/dB
1 210.91 024×181 024×21183010-111.1
1 210.91 024×141 024×17143010-87.1
1 210.9256×14256×1714308-87.7
1 210.964×1464×1714306-84.6
7 011.01 024×181 024×21183010-112.4
7 011.0512×18512×21183010-111.7
7 011.0512×14512×1714309-88.8
81.01 024×181 024×21183010-116.7
81.01 024×141 024×17143010-90.65
在表1中,由于1 210.9 kHz頻率下N很大,因此在該頻率下測得雜散結果近似可看成是最壞情況下的雜散結果。從表1中可以看出在本方法中制約雜散性能的主要因數是數據位的長度,數據位越高SFDR越大,雜散越低。而ROM中地址位數卻降低了對DDFS的雜散性能的制約。在存儲器地址線位數從10位降低到9位,8位時,雜散性能卻沒有明顯的下降,保持了很好的雜散性能。也正因此,使得這一方法能夠有效提高雜散性能的同時能夠降低對存儲容量的要求。
對設計的DDFS工程進行編譯綜合,其中sin ROM空間為512×17 b,2πcos ROM空間為512×20 b,相位為30 b,尋址地址9 b。經測得在該條件下雜散幅度為-104.7 dB。如圖4、圖5所示,邏輯資源和存儲單元的利用率都僅為16%,對FPGA的資源要求很低,特別對存儲單元的要求大幅減少,從而能夠擴展它的應用。
圖4 LE資源利用率
圖5 存儲資源利用率
4 結 語
本文提出一種新的DDFS結構來解決兩個問題:
(1) 原有DDFS結構由于查找表的容量有限,相位輸出有截位,由于截位的影響產生了高的雜散噪聲。傳統采用相位抖動的方法能夠壓低雜散噪聲,但作用有限且對頻率精度有影響。
(2) 為了滿足DDFS的頻率精度的需要,傳統的DDFS往往開辟了大規模的ROM空間,使得DDFS的應用受到了很大的限制。
本文提出對相位舍入分解進行Taylor展開的DDFS結構,有效約束了輸出誤差,提高了頻率精度,并且大量縮小了ROM的規模,減少了4倍以上。并且通過使用循環相位累加器,新的舍入機制對實際的硬件設計進行了優化。
仿真結果表明新的結構能有效提高無雜散動態范圍,在數據位足夠的條件下,無雜散動態范圍能夠達到-112.4 dB以上。
參考文獻
[1]楊小牛.軟件無線電原理與應用[M].北京:電子工業出版社,2001.
[2]BRAMBLE D P. Direct digital frequency synthesis: a comparison of techniques[C]//Proceedings of Canadian Confe-rence on Electrical and Computer Engineering. Canada: CNECE,1994, 2: 535-538.
[3]TAN L K, SAMUELI H. 200 MHz quadrature digital synthesizer/mixer in 0.8um CMOS[J].IEEE Journal of Solid-State Circuits, 1995,30(3):193-200.
[4]劉曉明,謝明欽,黃智勇.一種能有效減少DDS雜散的設計方法[J].現代雷達,2004,26(3):61-63,67.
[5]KROUPA V F. Discrete spurious signal and back ground noise in direct digital frequency synthesizer[C]//1993 IEEE International Frequency Control Symposium.Salt Lake: IEEE, 1993: 242-250.
[6]張玉興,彭清泉.相位舍位對DDFS頻譜分布的影響[J].電子科技大學學報,1997,28(4):137-142.
[7]李琳,王松.一種有效的DDS低雜散設計方法[J].通信學報,2000,21(10):81-85.
[8]樊昌信,曹麗娜.通信原理[M].北京:國防工業出版社,2007.
[9]霍文捷,劉政林,陳毅成,等.一種基于FPGA的真隨機數生成器的設計[J].華中科技大學學報:自然科學版,2009(1):20-22.
[10]李曉芳,常春波.基于FPGA的DDS算法的優化[J].儀器儀表學報,2006(Z1):896-898.