毛啊敏,王紅旗,萬各各,李林偉
(河南理工大學(xué)電氣工程與自動(dòng)化學(xué)院,河南 焦作 454003)
基于DDS的虛擬信號(hào)發(fā)生器LabVIEW程序設(shè)計(jì)*
毛啊敏,王紅旗,萬各各,李林偉
(河南理工大學(xué)電氣工程與自動(dòng)化學(xué)院,河南焦作454003)
針對傳統(tǒng)信號(hào)發(fā)生器存在的成本高、功能單一、電子線路復(fù)雜等缺點(diǎn),設(shè)計(jì)了一種基于頻率合成技術(shù)的虛擬任意信號(hào)發(fā)生器。通過動(dòng)態(tài)鏈接庫(DLL)與下位機(jī)設(shè)備DDS-3X25進(jìn)行通信,基于“模塊化”和事件結(jié)構(gòu)的設(shè)計(jì)思想,用LabVIEW編程實(shí)現(xiàn)了基本波形、任意波形、噪聲疊加、波形數(shù)據(jù)載入、波形數(shù)據(jù)量化轉(zhuǎn)換和線性插值等程序模塊。實(shí)驗(yàn)結(jié)果表明,該設(shè)計(jì)不僅能產(chǎn)生純凈和疊加噪聲的正弦波、方波、三角波和鋸齒波等基本波形,而且可以輸出手繪的任意波形,驗(yàn)證了設(shè)計(jì)的有效性。
LabVIEW,信號(hào)發(fā)生器,頻率合成技術(shù),DDS-3X25,動(dòng)態(tài)鏈接庫
在電子測量領(lǐng)域中,信號(hào)發(fā)生器被廣泛應(yīng)用于教學(xué)實(shí)驗(yàn)和科學(xué)研究中,而且很多設(shè)備經(jīng)常需要提供不同類型的信號(hào)源,尤其是任意波信號(hào)發(fā)生器,然而大多信號(hào)發(fā)生器采用硬件來實(shí)現(xiàn),價(jià)格昂貴、不易調(diào)試、研發(fā)時(shí)間長,因此,設(shè)計(jì)一種理想的信號(hào)發(fā)生器是當(dāng)前所要研究的內(nèi)容[1]。
虛擬儀器是在傳統(tǒng)儀器的基礎(chǔ)上發(fā)展而來的,完全繼承了傳統(tǒng)儀器的所有優(yōu)點(diǎn),并超越了傳統(tǒng)儀器,因此,基于LabVIEW的信號(hào)發(fā)生器成為了當(dāng)前研究的熱點(diǎn)[2-3]。例如,楊大偉[4]等人研究的基于FPGA的DDS多信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)完成了正弦波、鋸齒波、方波、三角波的產(chǎn)生與控制;陳洋[5]等人設(shè)計(jì)的基于DDS和DSM的多通道信號(hào)源的設(shè)計(jì)與實(shí)現(xiàn)可以輸出多路正余弦信號(hào);梁赫西[6]等人研究的基于FPGA與LabVIEW的DDS任意信號(hào)發(fā)生器設(shè)計(jì)實(shí)現(xiàn)了任意波形的產(chǎn)生。但是,他們研究的基于LabVIEW的信號(hào)發(fā)生器功能不太完善,而且頻率調(diào)節(jié)范圍窄,程序?qū)崿F(xiàn)起來比較復(fù)雜,易受到計(jì)算機(jī)通信接口通信速率和D/A轉(zhuǎn)換器轉(zhuǎn)換頻率的限制,所以設(shè)計(jì)一臺(tái)功能強(qiáng)大而易于人機(jī)交互的虛擬信號(hào)發(fā)生器是一個(gè)值得研究的問題[7]。
本文基于LabVIEW和DDS-3X25設(shè)計(jì)的虛擬信號(hào)發(fā)生器由儀器DDS-3x25通過USB接口連接到計(jì)算機(jī)上,由上位機(jī)LabVIEW控制不僅可以產(chǎn)生1 Hz~25 MHz的基本波形和任意波形,通過探頭在示波器上進(jìn)行顯示,而且輸出頻率、速度、精度都比較高,可以根據(jù)要求實(shí)時(shí)進(jìn)行改進(jìn),還可以進(jìn)行外觸發(fā)、對波形計(jì)數(shù),通過調(diào)節(jié)參數(shù)滿足用戶需求,操作簡單,攜帶方便,實(shí)時(shí)性高,易于擴(kuò)展。
DDS是一種新的全數(shù)字頻率合成技術(shù),由相位累加器、波形存儲(chǔ)器、D/A轉(zhuǎn)換器和低通濾波器組成,本文是基于采樣定理,利用上位機(jī)LabVIEW產(chǎn)生所需要的波形數(shù)據(jù)。首先對生成的波形進(jìn)行采樣,然后將與離散相位所對應(yīng)的二進(jìn)制幅值保存到波形存儲(chǔ)器作為查找表,在每個(gè)時(shí)鐘脈沖輸入時(shí),累加一次頻率控制字,相位累加器的輸出也增加一個(gè)步長的相位增量,將相位量化的輸出作為地址,查詢波形存儲(chǔ)器,然后得到對應(yīng)的波形量化幅值,再經(jīng)過D/A轉(zhuǎn)換器把幅值量化序列轉(zhuǎn)化為模擬量信號(hào),最后經(jīng)濾波器濾波產(chǎn)生輸出波形。
設(shè)有一個(gè)頻率為f0余弦信號(hào)為
式中:A為振幅,φ0為初始相位。由于振幅和初始相位不會(huì)隨著時(shí)間而變化,因此,頻率與相位關(guān)系就確定了,當(dāng)A=1,φ0=0時(shí),則得到相位
現(xiàn)以一采樣頻率fs對余弦信號(hào)進(jìn)行采樣,對應(yīng)的離散信號(hào)序列為
離散相位序列為
則相鄰兩個(gè)采樣值之間的相位增量為
現(xiàn)將一個(gè)周期的相位2π分為M等份,令每一份為
若每次相位的增量為δ的d倍,其中d和M為正整數(shù),則由式(5)、式(6)得信號(hào)頻率為
由香農(nóng)采樣定理知,采樣頻率在不小于信號(hào)頻譜中最高頻率的2倍時(shí)才能不失真地恢復(fù)原始號(hào),則
一般在DDS中,取M=2N,則輸出頻率f0與系統(tǒng)時(shí)鐘頻率fs之間的關(guān)系為:
式(9)為DDS方程,稱d為頻率控制字,N為相位累加器的字長[8]。當(dāng)fs固定時(shí),只要改變頻率控制字d,則可以輸出不同的頻率。其基本原理圖如圖1所示。
圖1 DDS-3X25基本原理圖
2.1虛擬信號(hào)發(fā)生器的前面板設(shè)計(jì)
LabVIEW前面板提供了用戶與信號(hào)發(fā)生器的交互,信號(hào)發(fā)生器前面板包括波形控制和波形顯示部分,用戶可以通過選擇和調(diào)節(jié)前面板上的控件來模擬傳統(tǒng)儀器的操作,通過鼠標(biāo)或鍵盤實(shí)現(xiàn)對信號(hào)發(fā)生器的控制。虛擬信號(hào)發(fā)生器的前面板設(shè)計(jì)界面如圖2所示。
圖2 虛擬信號(hào)發(fā)生器前面板
其中,數(shù)值輸入控件用于信號(hào)的頻率、振幅、相位等屬性的設(shè)置;信號(hào)類型用于選擇正弦波、方波、鋸齒波、三角波和手繪波;噪聲類型用于選擇高斯白噪聲、均勻白噪聲和無噪聲;觸發(fā)方式分為上升沿和下降沿;信號(hào)類型用于標(biāo)示基本波形和手繪波形,只在手繪波時(shí)點(diǎn)亮;XY圖形控件用于顯示輸出波形[9]。
2.2虛擬信號(hào)發(fā)生器程序設(shè)計(jì)
程序采用事件結(jié)構(gòu)進(jìn)行編寫,與前面板控件的動(dòng)作對應(yīng),包含超時(shí)、信號(hào)屬性值改變、XY圖光標(biāo)移動(dòng)、XY圖鼠標(biāo)按下、XY圖鼠標(biāo)釋放、手繪完成值改變、觸發(fā)值改變和退出值改變7個(gè)事件,分別實(shí)現(xiàn)了基本波形和手繪任意波形的生成和輸出,及觸發(fā)和計(jì)數(shù)等功能。信號(hào)發(fā)生器的總體設(shè)計(jì)方案如圖3所示。
圖3 信號(hào)發(fā)生器程序流程圖
2.2.1基本波形程序設(shè)計(jì)
基本波形程序用于生成和輸出正弦波、方波、三角波和鋸齒波等基本波形。該部分程序包括波形數(shù)據(jù)生成,噪聲疊加,波形數(shù)據(jù)提取,量程轉(zhuǎn)換和波形數(shù)據(jù)下載等功能模塊,圖4為基本波形模塊的程序流程圖。通過調(diào)節(jié)前面板的信號(hào)類型、頻率、幅值、相位和占空比等參數(shù)可以輸出25 M帶寬內(nèi)任意頻率、相位、±3.5 V的正弦波、三角波、鋸齒波和任意占空比的方波信號(hào)[10]。對應(yīng)的labview程序如圖5所示。
圖4 基本信號(hào)發(fā)生器基本流程圖
設(shè)備DDS-3X25的垂直分辨率為12位,其雙極性輸出的波形幅值為[-3.5 V,3.5 V]的電壓,因此,在波形數(shù)據(jù)下載到設(shè)備之前,需要把幅值為[-3.5 V,3.5 V]的電壓信號(hào)轉(zhuǎn)換成0~4 095的波形數(shù)據(jù),即:y=2 047-585x,其中,x是電壓幅值,取值范圍為[-3.5 V,3.5 V],y是波形數(shù)據(jù),取值范圍為[0,4 095],然后通過移位寄存器得到波形數(shù)據(jù),最后利用動(dòng)態(tài)鏈接庫函數(shù)DDSDownload將波形數(shù)據(jù)下載到示波器的緩沖區(qū)中用于輸出顯示。
圖5 基本信號(hào)發(fā)生器的程序框圖
2.2.2手繪波形模塊設(shè)計(jì)
與基本波相比,手繪波主要實(shí)現(xiàn)了任意波形的繪制,其基本流程圖如圖6所示,對應(yīng)的光標(biāo)移動(dòng)事件和手繪完成事件的程序框圖如圖7所示。
圖6 手繪波程序流程圖
在手繪波的光標(biāo)移動(dòng)事件中,首先將光標(biāo)在XY圖中的實(shí)時(shí)位置通過坐標(biāo)至XY映射函數(shù)進(jìn)行轉(zhuǎn)換,然后將光標(biāo)移動(dòng)的點(diǎn)插入數(shù)組進(jìn)行輸出顯示。為保證手繪波在XY圖中能獲得有效的波形數(shù)據(jù),在插入數(shù)組前需要進(jìn)行光標(biāo)移動(dòng)處理,先將含有XY值的簇按名稱解除捆綁獲得X和Y值,并滿足式(10)
在手繪完成事件中,為提高示波器上波形信號(hào)顯示的連續(xù)性,需要對獲得的手繪波形圖(XY圖)進(jìn)行線性插值運(yùn)算,主要是把XY圖中手繪好的任意波形中的坐標(biāo)轉(zhuǎn)換成等時(shí)間間隔的波形數(shù)據(jù)。之后就可以實(shí)現(xiàn)目標(biāo)波形的生成。
圖7 手繪波形程序框圖
此外,本程序還通過動(dòng)態(tài)鏈接庫函數(shù)DDSGet-Measure進(jìn)行參數(shù)配置實(shí)現(xiàn)對波形頻率測量和計(jì)數(shù),以及通過動(dòng)態(tài)鏈接庫函數(shù)DDSSetTrigger的參數(shù)配置實(shí)現(xiàn)觸發(fā)等功能[11-13]。
本文基于LabVIEW設(shè)計(jì)了虛擬信號(hào)發(fā)生器,其中,儀器DDS-3X25通過USB接口與計(jì)算機(jī)相連,由LabVIEW上位機(jī)設(shè)計(jì)的信號(hào)發(fā)生器界面控制儀器DDS-3X25產(chǎn)生波形,然后通過探頭在示波器上進(jìn)行波形顯示。下頁圖8中以正弦波為例說明,其他波形可以得到類似的結(jié)果。
在上位機(jī)波形頁面中,波形類型設(shè)置成正弦波,幅值為2 V,頻率為1 Hz,偏移量設(shè)置為0,相位為0。從示波器顯示的圖8(a)中可以看出,顯示結(jié)果與設(shè)置預(yù)期結(jié)果相同。這也說明本設(shè)計(jì)的合理性。以下波形原理同圖8(a)。
圖8(c)中波形設(shè)置與圖8(a)、圖8(b)的不同之處為添加了高斯噪聲。所得的波形與預(yù)期是一致的。
圖8(d)是手繪波的顯示波形,當(dāng)上位機(jī)頁面選擇手繪波功能時(shí),通過光標(biāo)畫出波形,在示波器上的顯示的波形與所畫的波形基本相同。
圖8 實(shí)驗(yàn)結(jié)果
本文利用DDS技術(shù)基于LabVIEW2013事件結(jié)構(gòu)設(shè)計(jì)出一臺(tái)功能完善的虛擬信號(hào)發(fā)生器,通過軟件設(shè)計(jì)和硬件的結(jié)合,該虛擬信號(hào)發(fā)生器不僅可以實(shí)現(xiàn)正弦波、三角波、鋸齒波、方波、手繪波的輸出,以及可以對頻率從1Hz~25MHz、幅值、相位、偏移量、占空比的調(diào)節(jié),而且可以添加噪聲以及對噪聲幅值與標(biāo)準(zhǔn)差進(jìn)行調(diào)節(jié),還可以進(jìn)行外觸發(fā)、對波形頻率測量與計(jì)數(shù)。用戶界面友好,操作簡單方便,用戶可根據(jù)需求對參數(shù)進(jìn)行設(shè)定,在生產(chǎn)實(shí)踐中經(jīng)濟(jì)實(shí)用,而且還可以進(jìn)一步進(jìn)行擴(kuò)充,具有很好的發(fā)展前景。
[1]周晶晶,吳文全,孫金明,等.基于虛擬儀器系統(tǒng)的多功能信號(hào)發(fā)生器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014,37(17):121-124.
[2]陳錫輝,張銀鴻.LabvIEW 8.20程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2010.
[3]鄭對元.精通LabVIEW虛擬儀器程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2012.
[4]楊大偉,楊秀芳,陳劍虹.基于FPGA的DDS多信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].西安理工大學(xué)學(xué)報(bào),2013,29(4):439-443.
[5]陳洋,管國云,聶在平.基于DDS和DSM的多通道信號(hào)源的設(shè)計(jì)與實(shí)現(xiàn)[J].測井技術(shù),2013,37(1):76-79.
[6]梁赫西,周密,謝虎城.基于FPGA與LabVIEW的DDS任意信號(hào)發(fā)生器設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2015,34(2):25-28.
[7]宋曉梅,李根,閆樹柏.基于LabVIEW和單片機(jī)的信號(hào)發(fā)生器的設(shè)計(jì)[J].電子測量技術(shù),2014,37(7):93-97.
[8]范海英,楊嘉,張金鳳,等.基于LabVIEW的虛擬信號(hào)發(fā)生器和示波器設(shè)計(jì)[J].實(shí)驗(yàn)科學(xué)與技術(shù),2013,11(4):43-45.
[9]武一,戎向向.基于LabVIEW9.0的虛擬信號(hào)發(fā)生器的設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(2):182-184.
[10]趙華,張代遠(yuǎn).基于LabVIEW的虛擬任意信號(hào)發(fā)生器設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(7):219-221.
[11]陳樹學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
[12]李輝,劉鯤.基于LabVIEW的虛擬信號(hào)源設(shè)計(jì)[J].中國西部科技,2015,14(3):26-27.
[13]張黎,蔡亮.基于LabVIEW的虛擬信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].應(yīng)用天地,2014,33(1):82-85.
LabVIEW Program Design of Virtual Signal Generator Based on DDS
MAO A-min,WANG Hong-qi,WAN Ge-ge,LI Lin-wei
(School of Electrical Engineering&Automation of Henan Polytechnic University,Jiaozuo 454000,China)
Aiming at the disadvantages existing in the traditional signal generator of high cost,single function and complicated electronic circuits,this paper designs an virtual arbitrary signal generator based on the frequency synthesis technology.Through the dynamic link library(DLL)and the lower machine equipment DDS-3X25 communication,based on the"modular"and event structure design idea,using LabVIEW programming to achieve the basic waveform,arbitrary waveform,noise adding,waveform data loading,waveform data quantization transformation and linear interpolation program modules.Experiment results show that the program design can not only produce pure or adding noise sine wave,square wave,triangular wave and sawtooth wave and other basic waveform,and can also output hand-painted arbitrary waveform,verify the effectiveness of the design.
LabVIEW,signal generator,frequency synthesis technology,DDS-3X25,dynamic link library
TP216
A
1002-0640(2016)07-0130-05
2015-06-12
2015-07-27
*
國家自然科學(xué)基金(61104119);河南理工大學(xué)博士基金資助項(xiàng)目(B2010-60)
毛啊敏(1990-),女,河南安陽人,碩士研究生。研究方向:檢測技術(shù)與自動(dòng)化裝置。