楊柳青
摘 要 本文對直接頻率合成器(DDS)的基本原理以及基于fpga的設(shè)計技術(shù)進行了研究。原本基于傳統(tǒng)的CORDIC(坐標旋轉(zhuǎn)數(shù)字計算)方法,它具有消耗硬件資源大,輸出延時長等缺點,然而查找表技術(shù)與之相比,則具有消耗硬件資源少,結(jié)構(gòu)簡單和輸出沒有延遲小等優(yōu)點,并且得到了廣泛運用。
關(guān)鍵詞 直接頻率合成器(DDS) fpga 頻率分辨率
一、引言
直接數(shù)字頻率合成器(DirectDigitalSynthysizer,DDS)是隨微電子技術(shù)出現(xiàn)的一種新數(shù)字頻率合成技術(shù),它在相對帶寬、具有調(diào)制功能、相位連續(xù)性、相位噪聲小、高分辨率和集成化等一系列性能指標方面超過了傳統(tǒng)頻率合成技術(shù)。目前,大多任意波形發(fā)生器是基于專用的DDS(直接頻率合成器)芯片設(shè)計完成,但其芯片固化,靈活性較差。因此,基于上述原因,本文提出基于fpga(現(xiàn)場可編程門陣列)設(shè)計任意波形的方案。
二、DDS的工作原理和組成結(jié)構(gòu)
DDS的組成原理
DDS系統(tǒng)的核心是N位相位累加器,即由一個N位全加器和N位累加寄存器組成。時鐘脈沖每觸發(fā)一次,累加寄存器就會將上一時刻輸出的累加相位數(shù)據(jù)反饋到N位全加器,并和全加器輸入的相位控制字K相加。然后,它把相加結(jié)果送至累加寄存器的數(shù)據(jù)輸入端,使得相位累加器在下一個時鐘作用下繼續(xù)與相位控制數(shù)據(jù)相加。其中,每一個相位在線性查找表中有對應(yīng)幅值,當相位累加器溢出時便完成一個周期動作,稱為DDS合成信號的一個頻率周期,同時相位累加器的溢出頻率就是DDS輸出的信號頻率。最后,輸出數(shù)據(jù)經(jīng)DAC進行D/A變化,并經(jīng)一個低通濾波器得到完整的正弦(或余弦)波。
每一個相位都對應(yīng)一個特定幅值,當相位走完一個周期后對應(yīng)的幅度也走完一個周期,這是DDS的相位與幅值之間的基本原理(如圖2)。DDS波形輸出頻率f0和時鐘頻率fc和時鐘控制字k間的關(guān)系為:f0=fc譳。
其中k為頻率控制字,N為相位累加器的輸出寬度,當k=1時可以得到系統(tǒng)的最小輸出頻率公式:△f=譮c?!鱢為DDS的最小分辨頻率,由式可知系統(tǒng)最小分辨頻率與相位累加器輸出位數(shù)寬度N有關(guān),假設(shè)N=32,fc=25hz則系統(tǒng)的最小分辨頻率為0.00582hz。按照抽樣定律,最高輸出頻率為采樣頻率的,但因包括低通濾波器在內(nèi)的各種雜散頻率影響,一般只能達到40%fc。所以采用DDS技術(shù)幾乎可以合成從直流到0.4fc內(nèi)的所有的頻率。
三、基于fpga的DDS的硬件實現(xiàn)
1、fir濾波器設(shè)計
基于以上原理,為更好抑制系統(tǒng)中產(chǎn)生的雜散噪聲,并為獲得更高輸出帶寬,本文在傳統(tǒng)硬件結(jié)構(gòu)基礎(chǔ)上做如下:第一,為得到更高的系統(tǒng)時鐘在fpga中嵌入PLL(鎖相環(huán)),把輸入頻率提高到100MHZ,作為整個系統(tǒng)的時鐘信號;第二,為更好抑制雜散噪聲與簡化模擬低通濾波器設(shè)計復(fù)雜度,本文在DAC模塊前,增加一個21階,截止頻率40MHZ,采用漢明窗技術(shù)設(shè)計出帶外衰減較大的FIR濾波器模塊。
2、相位累加器及線性查找表設(shè)計
(1)相位累加器
相位累加器是DDS系統(tǒng)中重要的模塊,可通過增加相位累加器位數(shù),來達到較高精度。但這增加了系統(tǒng)復(fù)雜度,限制整個系統(tǒng)速度。而流水線技術(shù)是高速電路中常用的技術(shù),利用流水線技術(shù)能夠提高系統(tǒng)轉(zhuǎn)換速率、工作頻率及精度。
流水技術(shù)的主要思想,是把一個復(fù)雜計算步驟拆分成多個簡單步驟。本文是把一個32位累加運算,拆分為四個8位累加運算,總共形成了四級流水結(jié)構(gòu)。
(2)線性查找表
理論上,一個周期內(nèi)采樣點數(shù)越多,輸出波形精度越高。但采樣點數(shù)增加,則需更多存儲空間。為了解決這個問題,人們提出以下兩種方法:一是,利用CORDIC及其改進方法設(shè)計DDS;二是,利用抽樣定理,存儲最少的抽樣點數(shù);三是,利用波形的對成型只存儲1/4周期的數(shù)據(jù)。因此,它里面存儲的是完整的1/4正弦(余弦)信號的幅值信息。在這里我們選擇設(shè)計占用資源較少,輸出波形信號質(zhì)量較好的方法三。首先利用matlab設(shè)計出所需幅值數(shù)據(jù),其次把數(shù)據(jù)存儲在存儲單元中。這里我們所設(shè)計的存儲單元采用的是Altera公司提供的ROM的IP核,設(shè)計出深度為256,寬度為8的存儲單元。
四、測試與結(jié)果分析
在完成整個波形設(shè)計后,對整個系統(tǒng)進行功能測試,測試選用Tektronix的帶寬為100MHZ的示波器。測試如下參數(shù):
波形:正弦波。
頻率范圍(正弦波):>20MHZ;
頻率分辨率:0.023HZ;
電壓幅度50mv~5v;
波形幅度分辨率:8比特;
下面波形是通過Tektronix示波器測出來的波形和它們的頻譜(如圖1),可以清晰地看到波形的峰峰值、頻率、幅度和譜線等參數(shù)。
從實驗結(jié)果看,輸出波形在設(shè)定參數(shù)內(nèi)的輸出光滑平整。由此可見設(shè)計的結(jié)果與理論是接近的,說明設(shè)計結(jié)果正確。
五、結(jié)論
本文從理論和實踐兩個方面,對DDS技術(shù)進行了探討和深入研究,并且設(shè)計出了具有輸出正弦波、方波等波形的信號發(fā)生器。輸出的正弦波在高達20MHZ時沒有明顯的失真,設(shè)計的其它波形也符合所設(shè)定的參數(shù)。本文一大特點是內(nèi)嵌一個高階的數(shù)字濾波器來化解對外置高階模擬濾波器的設(shè)計要求,來抑制產(chǎn)生的雜散噪聲。所設(shè)計的各種指標都得到驗證并符合要求。
(作者單位:東華理工大學(xué)研究生院)