DDS信號源的FPGA實現(xiàn)
通過分析,DDS可由下列兩次變換實現(xiàn):
(1)變量K產(chǎn)生量化的相位序列 該過程一般由一個以上作時鐘的Ⅳ位相位累加器實現(xiàn),如圖1所示。本文引用地址:http://m.butianyuan.cn/article/192016.htm
(2)離散量化相位序列產(chǎn)生正弦信號離散幅度序列 該過程是由式(8)的映射關(guān)系所構(gòu)成的波形ROM尋址完成的,如圖2所示。把量化的數(shù)字波形經(jīng)模數(shù)轉(zhuǎn)換,再通過低通濾波器LPF得到頻率為fc的余弦信號。變量K稱為相位增量(也叫頻率控制字)。當(dāng)K=1時,DDS輸出最低頻率(即頻率分辨率)為fc/2N。因此,只要N足夠大,DDS可以得到很細(xì)的頻率間隔。要改變DDS的輸出頻率,只要改變頻率控制字K即可。DDS的最大輸出頻率由Nyquist采樣定理決定,即fc/2,也就是K的最大值為2N-1。
DDS可以很容易實現(xiàn)正弦信號和余弦信號正交兩路輸出,只需用相位累加器的輸出同時驅(qū)動固化有正弦信號波形的ROM和余弦信號波形的ROM,并各自經(jīng)數(shù)模轉(zhuǎn)換器和低通濾波器輸出即可。
2.2 DDS的基本結(jié)構(gòu)
DDS包括數(shù)字和模擬兩部分,其主要由相位累加器、ROM波形查詢表、數(shù)模轉(zhuǎn)換器和低通濾波器LPF構(gòu)成。DDS的基本結(jié)構(gòu)如圖3所示,其中K為頻率控制字、f為時鐘頻率,N為相位累加器的字長,D為ROM數(shù)據(jù)位數(shù)及D/A轉(zhuǎn)換器的字長。相位累加器在時鐘fc/2的控制下以步長K為累加,輸出N位二進(jìn)制碼作為波形ROM的地址.對波形ROM尋址,波形ROM輸出的幅值碼S(n)經(jīng)數(shù)模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號后再經(jīng)LPF輸出。
3 應(yīng)用設(shè)計
該系統(tǒng)設(shè)計是針對DDS的基本結(jié)構(gòu),以FPGA為核心,并與外圍電路而實現(xiàn)的。
3.1 相位累加器
相位累加器由8位加法器與8位寄存器級聯(lián)構(gòu)成。累加器將加法器在上一個時鐘作用后所產(chǎn)生的相位數(shù)據(jù)反饋到加法器的輸入端;使加法器在下一個時鐘作用下繼續(xù)與頻率控制字(K)相加,實現(xiàn)相位累加,當(dāng)相位累加器累加結(jié)果等于或大于256時,則產(chǎn)生一次溢出,返回到初始狀態(tài),完成一個周期波形輸出。該相位累加器采用VHDL語言設(shè)計實現(xiàn)。
3.2 波形存儲器
以相位累加器輸出數(shù)據(jù)作為波形存儲器的取樣地址。進(jìn)行波形的相位一幅碼轉(zhuǎn)換,即可在給定的時間上確定輸出的波形的抽樣幅碼。Ⅳ位的尋址RAM相當(dāng)于把0°~360°的正弦信號離散成具有2個樣值的序列,若波形存儲器有D位數(shù)據(jù)位,則各樣值的幅碼以D位二進(jìn)制數(shù)值保存在該模擬ROM(FlexlOKl0的RAM)中,按照不同地址輸出相應(yīng)相位的正弦信號的幅碼數(shù)值。
DDS中的波形存儲器模塊用Ahera的F3exl OK系列中的RAM實現(xiàn),選用Flexl0K10,F(xiàn)lexl0K10中共有3塊RAM,每塊大小為2 K位,可構(gòu)成2 048x1,1 024×2,512x4,256x84種類型。該設(shè)計取N=8,D=8,波形數(shù)據(jù)運用高級語言C編制,相應(yīng)數(shù)據(jù)保存于FPGA的RAM中。
3.3 D/A轉(zhuǎn)換電路的實現(xiàn)
D/A轉(zhuǎn)換器的作用是把已合成的正弦波的數(shù)字量轉(zhuǎn)換成模擬量。正弦幅度量化序列經(jīng)D/A轉(zhuǎn)換后變成包絡(luò)為正弦波的階梯波s(t)。
該單元選用數(shù)模轉(zhuǎn)換器DAC0832,使其工作于雙緩沖器方式,并強制片選信號(Cs)、寫信號1(R1)、寫信號2(R2)、數(shù)據(jù)傳送信號(XFER)為低電平,將F:PGA輸出的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)模擬量。
評論