張 成,鄭明輝
(江蘇科技大學 電子信息學院,江蘇 鎮江 212003)
DDS(直接數字合成技術)是一種新型的數字頻率合成技術,它具有頻率分辨率高、頻率切換快、頻率切換時相位連續、穩定度高、可編程、全數字化、易集成等突出優點[1],因而得到廣泛的應用。而FPGA器件具有高性能、高集成度的特點,使用FPGA可以設計開發出性能優良的DDS系統,成為DDS實現的常用方法。
但是,由于DDS數字化實現的固有特點,決定了其輸出信號頻譜雜散較大。如何抑制DDS輸出頻譜中的雜散就成為了研究的熱點。文中總結了雜散噪聲的來源,深入分析了幅度量化雜散并提出了使用FPGA實現抑制幅度量化雜散的有效方法。
DDS(Direct Digital Synthesizer)技術是一種把一系列數字量形式的信號通過高速數模轉換器轉換成模擬量形式的信號合成技術[2]。目前使用最廣泛的一種DDS方式是利用高速存儲器作為波形數據查找表,然后通過某種方式把存儲的數據輸出并通過高速DAC把數字形式的正弦波轉換為模擬量輸出[3]。
其中fc為參考時鐘(常數),K為頻率控制字,N為相位累加器位數;
DDS的原理框圖如圖1所示。

圖1 DDS原理框圖Fig.1 DDS functional block diagram
FPGA即現場可編程門陣列,它是作為專用集成電路領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點[4]。FPGA具有高集成度、高可靠性、可反復使用、配置靈活方便等特點,FPGA最大的特點是使用靈活,可以定制各種電路,并且FPGA的時鐘頻率可以使用分頻器或鎖相環修改,這給DDS信號發生器的設計帶來了方便,本文即利用此特點提出了針對DDS信號發生器的幅度量化雜散的兩種抑制方法。
方法一:使用單片機控制頻率控制字和相位控制字從而實現調頻和調相,并且單片機還可以驅動顯示模塊作為人機界面;使用FPGA器件的高性能、高集成度的特性可以實現累加器、加法器和波形ROM并把數字形式的波形數據輸出到外接的高速D/A,從而設計開發出性能優良、界面友好和便于控制的DDS系統。
方法二:方法一同時使用了單片機和FPGA,因此需要實現兩者之間的通信,從而增加了復雜度并降低了系統的穩定性。因此可以只用FPGA實現簡易的信號發生器,其中的頻率和相位控制部分可以通過FPGA外擴按鍵的方法實現。
DDS合成信號頻率切換時間短、頻率分辨率高、頻率切換時相位連續;可以輸出寬帶正交信號;輸出相位噪聲低,對參考頻率源的相位噪聲有改善作用;可以產生任意波形;全數字化實現,便于集成,體積小,重量輕等優點。 在各行各業的測試應用中,信號源扮演著極為重要的作用。雖然信號源具有許多不同的類型,不同類型的信號源在功能和特性上各不相同,但是信號源中采用DDS技術在當前的測試測量行業已經逐漸稱為一種主流的做法。
DDS數字頻率合成的固有特點,決定了其必然存在輸出信號頻譜雜散,DDS的雜散誤差來源主要有以下幾個方面:
2.2.1 輸出頻率穩定性
DDS輸出頻率的穩定性取決于參考時鐘頻率的穩定性,也就是說只要保證了參考時鐘的穩定,就可以保證輸出頻率的穩定[2]。
2.2.2 相位截斷誤差
DDS的相位累加器的位數大于ROM中的尋址位數P,在尋址的時候,就只能采用相位累加器的高P位去尋址ROM中的數據,此時就會有N-P位的低位被舍去,這就造成了相位截斷誤差,因此,使相位累加器的位數和ROM的尋址位數相同時,就可以避免相位截斷誤差[2]。
2.2.3 幅度量化誤差
ROM中存儲值是量化值(數字值)而非模擬值,任何一個幅度值需要用無限位二進制才能精確示[5];DDS是由已抽樣數字信號先經過二次抽取過程,再經過高速D/A轉換及后級的 LPF重建原始信號的過程[6],其中頻率控制字K對頻率的調節就是基于對ROM中的數據進行的抽取,而且頻率控制字K越大幅度量化誤差也越大,因此幅度量化誤差是數字頻率合成技術固有的無法完全消除的缺點,只能通過限制頻率控制字K不能太大來避免DDS出現明顯失真。圖2所示的是每周期抽樣點數分別是6 000和12時由抽樣得到的數字信號所恢復的模擬信號對比圖(N代表每周期抽樣點數)。

圖2 抽樣信號對比Fig.2 Comparison of sampling signal
從以上對比中可以得出結論:如圖2中左圖所示,當N的值比較大(對應頻率控制字K比較小)時,DDS輸出信號雖然也存在幅度量化誤差,但是由于誤差很小,用肉眼無法覺察出明顯失真。但隨著N值的減小 (對應頻率控制字K增大),幅度量化誤差也逐漸增大,如圖2中右圖所示,當N的值太小(對應頻率控制字K太大)時由數字信號恢復的模擬信號會出現明顯的失真,實際上隨著N值的減小失真度是處在一個逐漸增大的過程,不同的頻率點對應不同的失真度,實際上輸出信號的失真問題主要體現在高頻部分。為此文中提出以下兩種改進方法:方法1的基本原理是控制頻率控制字K的范圍并相應地改變參考頻率值,使K值范圍內產生的幅度量化誤差是可以接受的;方法2的基本原理是直接改變參考頻率值,而累加器的遞增值是固定的。
通過以上分析,可以認為DDS的調頻過程也是一個信號抽取頻率逐漸變化的過程,只有當抽取頻率太低(N太小)時才會發生明顯失真,因此在抽取頻率太低時可以提高參考時鐘頻率,并相應地增大一個周期內采樣點數(或抽取頻率)。因為參考時鐘頻率提高后單位時間內累加器的累加運算次數、加法器的運算次數及波形ROM內數據的抽取次數都相應的提高,如果改變時鐘頻率的同時降低頻率控制字的大小,這樣ROM內波形數據的抽取頻率降低,既保證了輸出信號頻率連續,也有效解決了波形失真問題,對解決高頻信號的失真問題有明顯效果。
此方法適用于基于FPGA實現的DDS信號發生器。FPGA具有時鐘頻率高和方便可調的特點,在輸出信號的低頻段需要對時鐘頻率分頻后可以作為DDS的參考頻率,而在高頻段可以很容易的通過降低分頻系數來提高參考時鐘頻率,同時限定K值不能太大。具體做法是設定最大的頻率控制字Km(保證信號不會產生明顯失真),當K≥Km時,把外接時鐘信號的分頻系數及頻率控制字K同時降為原來的n分之一即可,n的值根據實際情況而定,并且分頻系數和K值可以降低多次,直到時鐘頻率作為DDS的參考頻率為止,因此稱為階梯分頻法。這樣可以避免高頻段的信號失真并且還可以提高輸出信號的頻率范圍。
其中參考時鐘頻率fc會隨K發生變化,不再是常數。
階梯分頻法僅能實現信號無明顯失真,但在不同頻率點上信號的失真度仍然是不同的,為了實現輸出信號在不同的頻率點上有相同的失真度,可以直接改變參考時鐘的頻率而讓累加器的累加值為常數1,這樣輸出信號的每個周期都有相同數量的采樣點數或量化值,失真情況也就是確定的了。
此方法也適用于基于FPGA實現的DDS信號發生器。此方法可以定義新的頻率控制字M,M實際上是用來控制參考信號的分頻系數。因為FPGA外接時鐘信號頻率可達幾百MHZ,假定ROM為10位也就是1 024個量化值,那么DDS輸出最高頻率可達幾百kHz,仍然可以滿足低頻信號發生器的輸出頻率范圍的要求,而假如外接時鐘信號先經過倍頻后再分頻,那么DDS輸出信號的頻率范圍還可以進一步擴大,因此此方法特別適合外接時鐘頻率較大的情況,并且此方法可以保證高頻信號也不會發生明顯的失真。
其中fosc為晶振頻率,K為分頻系數。
MATLAB語言具有高效、可視化及推理能力強等特點,是工程界流行最廣的科學計算語言[7],使用MATLAB可以方便的對數字信號進行仿真,MATLAB仿真是驗證新理論、新方法的有效手段之一,以下是對本文提出的兩種抑制DDS雜散方法的頻譜仿真。
圖3表示的是采用階梯分頻法的DDS信號發生器在參考時鐘頻率倍頻前后的頻譜變化情況,可以看出當輸出高頻信號時,倍頻前幅度譜與相位譜存在明顯失真,倍頻后幅度譜及相位譜的失真度明顯降低。
圖4所示的是采用直接分頻法的DDS信號發生器的幅度譜與相位譜,在不同的頻率點,輸出信號具有相同的頻率譜和相位譜,并且頻譜失真度很小或近于理想,其微弱的失真甚至可以忽略不計。

圖3 階梯分頻法仿真結果Fig.3 Simulation results of ladder frequency method

圖4 直接分頻法仿真結果Fig.4 Simulation results of direct frequency method
文中介紹了DDS的基本原理與實現方法,從DDS數字化實現的固有特點出發,深入分析了幅度量化雜散帶來的誤差,提出了基于FPGA實現的兩種幅度量化雜散的抑制方法,通過MATLAB仿真可以驗證,改進方法較好的抑制了幅度量化雜散,減小了誤差。
[1]夏金環.DDS工作原理及性能分析[J].中國科技論文在線,2006(5):1-4.
XIA Jin-huan.The analysis of the principle and performance of the DDS device[J].Science Papers Online of China,2006(5):1-4.
[2]劉蘭坤,潘明海.DDS的雜散分析及降低雜散的方法[J].電子器件,2007(2):4.
LIU Lan-kun,PAN Ming-hai.DDS spurious analysis and improvement methods[J].Chinese Journal of Electron Devices,2007(2):4.
[3]戴逸民.頻率合成與鎖相技術[M].合肥:中國科學技術大學出版社,1995.
[4]徐志軍,徐光輝.CPLD/FPGA的開發與應用[M].北京,電子工業出版社,2002.
[5]張麗芝,王森章.DDS波形發生器幅度量化誤差的分析及其抑制[J].微處理機,2006(4):1-2.
ZHANG Li-zhi,WANG Sen-zhang.Amplitude quantization spurious analysis and improvement of DDS[J].Microprocessor,2006(4):1-2.
[6]田新廣,張爾揚,羅倫,等.DDS的幅度量化雜散分析[J].無線電工程,1999(4):57-60.
TIAN Xin-guang,ZHANG Er-yang,LUO Lun,et al.Amplitude quantization spurious analysis of DDS[J].Radio Engineering,1999(4):57-60.
[7]陳懷琛,吳大正,高西全.Matlab及在電子信息課程中的應用[M].北京:電子工業出版社,2002.