基于SOPC的任意波形發生器設計
1 DDS技術及其原理
任意波形發生器目前主要有兩種實現方法:一種是傳統的任意波形發生器,但是由于采用的是模擬和模數混合的方法,限制了其頻率穩定度,并且系統比較復雜;另一種是基于直接數字頻率合成(DDS)技術的任意波形發生器,采用這種技術的AWG具有很高的頻率分辨率和快速的輸出頻率轉換能力,并且輸出頻率范圍寬。
DDS技術是一種先進的頻率合成技術,其優點是易于程控、相位連續、輸出頻率穩定度高、分辨率高等。DDS 技術的實現依賴于高速、高性能的數字器件,可編程邏輯器件以其速度高、規模大、可編程以及有強大EDA軟件支持等特性,十分適合實現DDS技術。基于以上的原因,該系統采用第2種實現方法。DDS原理框圖如圖1所示。

圖1 DDS原理框圖
2 系統總體設計
該系統實現的主要功能是:輸出頻率相同,幅值相同,具有可調相位差的兩路任意波形,同時可實現輸出波形過零切換(當波形參數發生改變時,系統總是在零相位時改變輸出波形,這樣可得到平滑的波形輸出),該系統還可以通過PC 端軟件產生數據,并通過USB接口下載到FPGA中從而生成任意波形。同時,波形的頻率和幅度均可調節,輸出頻率范圍為0.1Hz~1MHz,頻率分辨率為0.1Hz,輸出電壓范圍為0~10V。系統的整體設計如圖2所示。

圖2 系統原理框圖
3 PC端軟件軟件設計
該系統可以根據用戶的需要設定不同的波形,為了使用戶更容易的得到自己想要的信號波形,在這里設計了兩個可以產生任意波形的方法。一種方法是繪圖法,用戶可以自己畫出想得到的波形的圖形,但是用這種方法產生出來的信號精度不高,適用于對產生的信號要求不高的用戶,其優點是簡單方便。另一種方法是公式法,根據用戶輸入的公式或者函數語句產生波形信號,這種方法比較科學,精度較高。由于MATLAB軟件具有強大的數據計算、仿真、繪圖等功能,所以該用戶界面是用MATLAB軟件編程。用戶的軟件界面如圖3所示。

圖3 用戶軟件界面
在繪圖法中,主要用到MATLAB中的兩個函數:ginput(鼠標輸入圖形)和spline(三次樣條多項式擬合)。結合這兩個函數,交互式創建二維曲線。首先,利用ginput函數在figure圖上選擇一系列點[x,y],這樣就可得到一些分散的數據點,為了從這些分散的數據點中找到其內在的規律性,然后通過這些點進行樣條平滑,就要運用到spline函數來產生一系列點來逼近這些已知點。結合ginput和spline函數設計程序,用戶就可以根據自己的需要在圖上任意畫出波形,描述的點越多,則輸出的波形越接近真實波形;如果描述的數據點少,則有可能改變波形形狀及趨勢。繪圖法中使用鼠標取點的方法主要是避免用鼠標直接畫波形時的不靈活性和不好控制性。
評論