目前波形合成技術(shù)主要有兩種通用的方法,一種是使用專用的DDS 芯片,一種是基于CPLD/FPGA的解決方案。雖然專用DDS芯片的功能也比較多,但控制方式卻是固定的,控制不靈活,而利用FPGA 則可以根據(jù)需要利用Verilog/VHDL 語言來實(shí)現(xiàn)各種比較復(fù)雜的調(diào)頻、調(diào)相和調(diào)幅功能,具有良好的實(shí)用性。 1 DDS技術(shù)及其原理 任意波形發(fā)生器目前主要有兩種實(shí)現(xiàn)方法:一種是傳統(tǒng)的任意波形發(fā)生器,但是由于采用的是模擬和模數(shù)混合的方法,限制了其頻率穩(wěn)定度,并且系統(tǒng)比較復(fù)雜;另一種是基于直接數(shù)字頻率合成(DDS)技術(shù)的任意波形發(fā)生器,采用這種技術(shù)的AWG具有很高的頻率分辨率和快速的輸出頻率轉(zhuǎn)換能力,并且輸出頻率范圍寬。 DDS技術(shù)是一種先進(jìn)的頻率合成技術(shù),其優(yōu)點(diǎn)是易于程控、相位連續(xù)、輸出頻率穩(wěn)定度高、分辨率高等。DDS 技術(shù)的實(shí)現(xiàn)依賴于高速、高性能的數(shù)字器件,可編程邏輯器件以其速度高、規(guī)模大、可編程以及有強(qiáng)大EDA軟件支持等特性,十分適合實(shí)現(xiàn)DDS技術(shù)。基于以上的原因,該系統(tǒng)采用第2種實(shí)現(xiàn)方法。DDS原理框圖如圖1所示。 圖1 DDS原理框圖 2 系統(tǒng)總體設(shè)計(jì) 該系統(tǒng)實(shí)現(xiàn)的主要功能是:輸出頻率相同,幅值相同,具有可調(diào)相位差的兩路任意波形,同時(shí)可實(shí)現(xiàn)輸出波形過零切換(當(dāng)波形參數(shù)發(fā)生改變時(shí),系統(tǒng)總是在零相位時(shí)改變輸出波形,這樣可得到平滑的波形輸出),該系統(tǒng)還可以通過PC 端軟件產(chǎn)生數(shù)據(jù),并通過USB接口下載到FPGA中從而生成任意波形。同時(shí),波形的頻率和幅度均可調(diào)節(jié),輸出頻率范圍為0.1Hz~1MHz,頻率分辨率為0.1Hz,輸出電壓范圍為0~10V。系統(tǒng)的整體設(shè)計(jì)如圖2所示。 圖2 系統(tǒng)原理框圖 3 PC端軟件軟件設(shè)計(jì) 該系統(tǒng)可以根據(jù)用戶的需要設(shè)定不同的波形,為了使用戶更容易的得到自己想要的信號(hào)波形,在這里設(shè)計(jì)了兩個(gè)可以產(chǎn)生任意波形的方法。一種方法是繪圖法,用戶可以自己畫出想得到的波形的圖形,但是用這種方法產(chǎn)生出來的信號(hào)精度不高,適用于對(duì)產(chǎn)生的信號(hào)要求不高的用戶,其優(yōu)點(diǎn)是簡(jiǎn)單方便。另一種方法是公式法,根據(jù)用戶輸入的公式或者函數(shù)語句產(chǎn)生波形信號(hào),這種方法比較科學(xué),精度較高。由于MATLAB軟件具有強(qiáng)大的數(shù)據(jù)計(jì)算、仿真、繪圖等功能,所以該用戶界面是用MATLAB軟件編程。用戶的軟件界面如圖3所示。 圖3 用戶軟件界面 在繪圖法中,主要用到MATLAB中的兩個(gè)函數(shù):ginput(鼠標(biāo)輸入圖形)和spline(三次樣條多項(xiàng)式擬合)。結(jié)合這兩個(gè)函數(shù),交互式創(chuàng)建二維曲線。首先,利用ginput函數(shù)在figure圖上選擇一系列點(diǎn)[x,y],這樣就可得到一些分散的數(shù)據(jù)點(diǎn),為了從這些分散的數(shù)據(jù)點(diǎn)中找到其內(nèi)在的規(guī)律性,然后通過這些點(diǎn)進(jìn)行樣條平滑,就要運(yùn)用到spline函數(shù)來產(chǎn)生一系列點(diǎn)來逼近這些已知點(diǎn)。結(jié)合ginput和spline函數(shù)設(shè)計(jì)程序,用戶就可以根據(jù)自己的需要在圖上任意畫出波形,描述的點(diǎn)越多,則輸出的波形越接近真實(shí)波形;如果描述的數(shù)據(jù)點(diǎn)少,則有可能改變波形形狀及趨勢(shì)。繪圖法中使用鼠標(biāo)取點(diǎn)的方法主要是避免用鼠標(biāo)直接畫波形時(shí)的不靈活性和不好控制性。 如果波形可以數(shù)學(xué)描述,就可以采用公式波這種方法。在GUI界面中,設(shè)置了公式波的公式輸入文本編輯框,只需要在文本編輯框中輸入公式,根據(jù)它已有的條件就可以產(chǎn)生信號(hào)波形。在本設(shè)計(jì)中,由于輸入的公式是用戶自定義的,用戶可以使用多種算法或者運(yùn)用MATLAB自帶的函數(shù)庫。在MATLAB的界面設(shè)計(jì)中,文本編輯框里輸入文本后,MATLAB會(huì)把輸入的文本默認(rèn)成字符串,當(dāng)想對(duì)這些輸入在文本編輯框里的公式進(jìn)行計(jì)算時(shí),MATLAB無法識(shí)別,在這里使用eval函數(shù)對(duì)字符串進(jìn)行處理。eval函數(shù)將符號(hào)表達(dá)式轉(zhuǎn)化為數(shù)值表達(dá)式,這樣就能使MATLAB執(zhí)行該公式,公式法產(chǎn)生的波形更精確。 使用繪圖法編輯波形,只需點(diǎn)擊“任意波形”按鈕,然后按照提示在坐標(biāo)軸內(nèi)點(diǎn)擊鼠標(biāo)右鍵取點(diǎn)畫出所要波形的大概形狀,再點(diǎn)擊鼠標(biāo)左鍵就可以產(chǎn)生用戶想要的波形;當(dāng)使用公式法編輯波形,只需按提示在編輯框中寫入所要產(chǎn)生的波形公式,點(diǎn)擊“公式波”按鈕,系統(tǒng)就會(huì)立刻對(duì)輸入公式進(jìn)行計(jì)算,并向硬件傳送改變波形類型的字符,然后再把數(shù)據(jù)發(fā)送到硬件上。 4 實(shí)驗(yàn)結(jié)果 該系統(tǒng)所有實(shí)驗(yàn)結(jié)果均由RIGOL 公司DS5022M 數(shù)字存儲(chǔ)示波器采樣所得。 圖4所示為采用公式法輸入的GUI 界面和產(chǎn)生的相應(yīng)1kHz 任意波形,輸入公式為Sin(2*pi*x)+sin(4*pi*x),其中變量x的范圍為0到1。 圖4 公式法輸入的GUI 界面和產(chǎn)生的任意波形 圖5所示為采用繪圖法輸入的GUI界面和產(chǎn)生的相應(yīng)50kHz任意波形。 圖5 繪圖法輸入的GUI界面和產(chǎn)生的任意波形 從上面的實(shí)驗(yàn)結(jié)果可以看到,該系統(tǒng)不僅可以產(chǎn)生方波、正弦波、三角波、鋸齒波等常見波形,還可以實(shí)現(xiàn)真正意義上的任意波形。系統(tǒng)頻率誤差小于1%,且具有很高的頻率調(diào)制精度,實(shí)驗(yàn)結(jié)果符合各項(xiàng)設(shè)計(jì)指標(biāo)。 5 總 結(jié) 該系統(tǒng)采用DDS 技術(shù),通過基于NIOS Ⅱ的SOPC 系統(tǒng)實(shí)現(xiàn)了任意波形發(fā)生器。DDS技術(shù)在相對(duì)帶寬、頻率轉(zhuǎn)換時(shí)間、相位連續(xù)性、正交輸出、高分辨率及集成化等一系列性能指標(biāo)方面遠(yuǎn)遠(yuǎn)超過了傳統(tǒng)頻率合成技術(shù)所能達(dá)到的水平,為系統(tǒng)提供了優(yōu)于模擬信號(hào)源的性能;而基于NIOS Ⅱ的SOPC 系統(tǒng)可以根據(jù)用戶需要自由定制CPU 及其外設(shè),其靈活性和通用性使其成為未來系統(tǒng)設(shè)計(jì)的一大趨勢(shì)。 該設(shè)計(jì)完成了任意波形發(fā)生器的軟硬件設(shè)計(jì)和調(diào)試,實(shí)驗(yàn)結(jié)果表明,該波形發(fā)生器基本達(dá)到了設(shè)計(jì)要求。 |