李平,周原
(黃淮學院 信息工程學院,河南 駐馬店 264001)
直接數字頻率合成技術DDS(Direct Digital Synthesizer)是一種從相位出發直接合成所需波形的頻率合成技術,是基于奈奎斯特抽樣定理理論和現代器件生產技術發展的一種頻率合成技術[1]。與第二代基于鎖相環頻率合成技術相比,DDS具有頻率切換時間短、頻率分辨率高、相位可連續變化和輸出波形靈活等優點,因此,廣泛應用于教學科研、通信、雷達、自動控制和電子測量等領域[2]。隨著高速可編程邏輯器件FPGA的發展,電子工程師可根據實際需求,在單一FPGA上開發出性能優良的具有任意波形的DDS系統,極大限度地簡化設計過程并提高效率。
DDS主要通過查波形表實現。由奈奎斯特抽樣定理理論可知,當抽樣頻率大于被抽樣信號的最高頻率2倍時,通過抽樣得到的數字信號可通過一個低通濾波器還原成原來的信號。實際上,它是由設置的二進制控制字對參考時鐘做除法運算。控制字一般為24~48位字長,因此可以認為DDS是數字信號處理理論的延伸,是數字信號處理的硬件實現[3-5]。
設一路頻率為的余弦信號:

現以采樣率fc對該路信號采樣,得到離散序列為:

式中:Tc=1/fc為采樣周期。
式(2)中對應的相位序列為:

該相位序列的顯著特點就是線性,即相鄰樣值之間的相位增量是一常數,且僅與信號頻率f有關,即相位增量為:

由于頻率f與參考源頻率fc滿足:

式中:K和M為正整數。
相位增量為:

由式(6)可知,若將2π的相位均勻分為M等分,則頻率f=(K/M)·fc的余弦信號以頻率fc采樣后,其量化序列的樣本之間的量化相位增量為一變值K。
根據以上原理,用變量K構造一個量化序列:

完成 φ(n)到另一序列 s(n)的映射,即由 φ(n)構造序列:

式(8)是連續時間信號s(t)經采樣頻率fc采用后的離散時間序列。根據采樣定理,當時,s(n)經低通濾波器濾波后,可以唯一的恢復s(t)。可見,通過上述系列變換,變量K將唯一確定一個單頻模擬余弦信號s(t):

該信號頻率為:

式(10)是 DDS方程,在實際的 DDS中,一般取 M=2N,N為正整數,于是DDS的方程可寫成:

通過分析,DDS可由下列兩次變換實現。
1)變量K產生量化的相位序列
該過程一般由一個以fc作為時鐘的N位相位累加器實現,如圖1所示。

圖1 相位累加器Fig.1 The phase accumulator
2)離散量化相位序列產生正弦信號離散幅度序列
該過程是由(8)式的映射關系所構成的波形ROM尋址完成的,如圖2所示。把量化的數字波形經數模轉換,再通過低通濾波器LPF得到頻率為fo的余弦信號。變量K稱為相位增量(也叫頻率控制字)。當K=1時,DDS輸出最低頻率(即頻率分辨率)為fc/2N。因此,只要N足夠大,DDS可以得到很細的頻率間隔。要改變DDS輸出頻率,只要改變頻率控制字K即可。DDS的最大輸出頻率由Nyquist采樣定理決定,即fc/2,也就是K的最大值為2N-1。
DDS可以很容易實現正弦信號和余弦信號兩路輸出,只需用相位累加器的輸出同時驅動正弦信號波形的ROM和余弦信號的ROM并各自經數模轉換器和低通濾波器輸出即可。

圖2 波形ROM尋址Fig.2 Waveform ROM addressing
DDS包括數字和模擬兩部分,其中主要是由相位累加器、ROM波形查詢表,數模轉換器和低通濾波器LPF構成。DDS的基本結構如圖3所示。
圖3中,K為頻率控制字,fc為時鐘頻率,N為相位累加器字長,D為ROM數據庫位及D/A轉換器字長。相位累加器在時鐘的fc/2控制下以步長K為累加,輸出N位二進制碼作為波形ROM的地址,對波形ROM尋址,波形ROM輸出的幅值碼經數模轉換器轉換成模擬信號后再經LPF輸出[6]。

圖3 DDS基本結構Fig.3 Basic structure of DDS
本設計所用到的核心器件主要是可編程邏輯器件(FPGA)和D/A轉換器。FPGA采用Altera公司的CycloneII系列EP2C35F672C8。該芯片內部資源豐富,包含有33 216個邏輯單元,105個M4K RAM模塊,以及35個 18 BIT×18 BIT嵌入式乘法器4個高性能PLL以及多達475個用戶自定義I/O,因此,能較好滿足該系統設計要求。
D/A轉換器則采用德州儀器公司THS5651。THS5651采用先進的高速混合信號CMOS工藝,是一個10位分辨率的數字到模擬轉換器(DAC),專為優化數字數據傳輸有線和無線通信系統。該THS5651提供優越的AC和DC性能,同時支持更新率高達100MSPS的。
相位累加器主要完成累加,實現輸出波形頻率可調功能。利用可編程邏輯器件系統開發工具Quartus II9.0進行設計。在Quartus II9.0軟件中,新建一個工程管理文件,根據累加器與移位寄存器的工作原理,寫出其對應的源代碼并進行編譯與仿真。部分源代碼如下:
module adder8(clk,key,s1,s2,nrst,da,ph);
input clk; //模塊時鐘輸入
input[7:0]key; //鍵值輸入
input s1; //步進
input s2; //相位
inputnrst; //復位
output[7:0]da; //步進輸出
output[7:0]ph; //相位輸出
reg[7:0]ax;
reg[7:0]da;
reg[7:0]ph;
always@(posedge clk or negedge nrst)
begin
if(!nrst)
begin
da <=8'b0;
ph <=8'b0;
end
else
begin
ax <=key;
if(!s1) da <=ax;
if(!s2) ph <=ax;
end
end
endmodule
為了提高系統的分辨率和降低FPGA資源的利用率,采用基于1/4波形的存儲器設計技術[7]。利用正弦波對稱性特點,只要存儲[0~π/2]幅值,可以通過地址和幅值數據變換,來得到整個周期內的正弦波,其設計原理如圖4所示。用相位累加器輸出高2位作為波形區間標志位。當最高位與次高位都為’0’時,表示輸出正弦波正處在[0~π/2]區間內,這時,地址與輸出數據都不需要變換;當最高位為’0’,次高位為’l’時,輸出正弦波正處在[π/2~π]區間內,這時,地址變換器對地址進行求補操作,而輸出數據不變;當最高位為’l’,次高位為’0’時,輸出正弦波正處在[π~3π/2]區間內,這時,地址不變,而輸出變換器對輸出數據進行求補操作;當最高位與次高位都為’l’時,輸出正弦波正處在[3π/2~2π]區間內,這時,地址和輸出數據都進行求補操作。

圖4 1/4波形存儲器設計原理圖Fig.4 The principle diagram of 1/4 waveform storage design
D/A轉換單元是繼波形數據產生單元之后,將數字量形式的波形幅值轉換成
所要求的合成頻率的模擬量形式信號[8]。DAC輸出信號實際上是階梯模擬信號,數模轉換輸出通過高速運放THS3001放大,然后利用低通濾波器對波形進行平滑處理。單元電路如圖5所示。

圖5 D/A轉換電路Fig.5 D/A conversion circuit
濾波器是一種能通過有用頻率信號而同時抑制 (或衰減)無用頻率信號的電子裝置。由于運算放大器具有近似理想的特性,且可以省去電感,得到接近理論預測的頻率響應特性。構成有源濾波電路后還具有一定的電壓放大和緩沖作用,并能減小體積。綜合考慮,系統采用運算放大器SL560構成二階低通濾波器。
頻率控制字的生成直接影響著波形數據的尋址,該模塊負責快速記錄并實時顯示輸入的頻率數字,準確計算得到相應的頻率控制字。系統鍵盤為高速動態掃描(頻率為200 Hz),采用狀態機設計,設置了按鍵去抖動功能。在FPGA開發平臺對該模塊進行功能驗證,整體無誤操作產生,幾乎沒有時滯效應,按鍵的防抖動效果也良好,達到了預期的目的。
相位累加器用于實現相位累加,并存儲其累加結果。當前,相位累加器的值和時鐘周期到來后的相位累加器的值相差k(k為頻率控制字)。該模塊的仿真波形如圖6所示。
用存儲示波器測量放大器模擬輸出端的正弦波信號、方波信號、三角波信號,測試頻率為100 kHz時候輸出結果如圖7所示。
表1給出了DDS信號發生器實測頻率與給定頻率對照表。
檢測輸入頻率為0~1 MHz時,波形形狀均良好,未出現明顯失真。計算理論誤差為0.095%,在實測中發現,波形數字的誤差相對很小,不足0.2%。符合設計要求。

圖6 相位累加器仿真結果Fig.6 Simulation results of phase accumulato

圖7 各種輸出波形Fig.7 A variety of outputwaveform

表1 實測頻率與給定頻率對照表Tab.1 Themeasured frequency table with a given frequency
直接數字頻率合成(DDS)技術屬第三代頻率合成技術,與第二代基于鎖相環頻率合成技術相比,利用DDS技術合成的輸出波形具有良好的性能指標。本文 介紹了以直接數字頻率合成技術為基礎的波形信號發生器工作原理和設計過程,并在實驗平臺上設計實現了滿足各功能指標的信號發生器。本文在DDS技術工作原理的基礎上,從測試結果可看出,該系統工作穩定、可靠,并具有較好的參考與實用價值。
[1]張濤,陳亮.現代DDS的研究進展與概述[J].電子科技,2008,21(3):73-78.ZHANG Tao,CHEN Liang.Overview ofmodern DDSand Its research process[J].Electronic Science and Technology,2008,21(3):73-78.
[2]楊秀增.基于FPGA和DDS的信號源設計[J].電子設計工程,2009,17(11):7-9.YANG Xiu-zeng.Design of a signal generator based on FPGA and DDS[J].Electronic Design Engineering,2009,17(11):7-9.
[3]韓喜春,劉柏森.基于FPGA的可重構多通道DDS信號發生器[J].電測與儀表,2007,44(7):50-52.HANXi-chun,LIUBai-sen.The design of reconfigurablemultichannel DDS signal generator based on FPGA[J].Electrical Measurement&Instrumentation,2007,44(7):50-52.
[4]李精華.基于FPGA的DDS波形發生器設計[J].柳州師專學報,2011,26(3):114-116.LIJing-hua.On design of DDSwaveform generator based on FPGA[J].Journal of Liuzhou Teachers College,2011,26(3):114-116.
[5]楊東霞,巨永鋒.基于FPGA和DDS的數字調制信號發生器設計與實現[J].電子設計工程,2013,21(6):90-93.YANG Dong-xia,JU Yong-feng.Design and implementation of digital modulation signal generator based on FPGA and DDS[J].Electronic Design Engineering,2013,21(6):90-93.
[6]湯家華,王道德.基于FPGA設計的采用DDS技術的任意波形發生器[J].電子測量技術,2007,30(4):129-131.TANG Jia-hua,WaNG Dao-de.Arbitrary waveform generator based on FPGA by using DDS[J].Electronic Measurement Technology,2007,30(4):129-131.
[7]楊曉慧,楊旭.FPGA系統設計與實例[M].北京:人民郵電出版社,2010.
[8]高士友,胡學深.基于FPGA的DDS信號發生器設計[J].現代電子技術,2009,303(16):35-37.GAO Shi-you,HU Xue-shen.Design of DDS signal generator gased on FPGA[J].Modern Electronics Technique,2009,303(16):35-37.