基于DSP數字振蕩器的移相正弦波發生器設計
0 引 言
產生數字式移相信號的方法有很多。傳統的直接數字頻率合成(DDS)移相原理是先將正弦波信號數字化,并形成一張數據表存入兩片ROM芯片中,此后可通過兩片。D/A轉換芯片在計數器的控制下連續地循環輸出該數據表,就可獲得兩路正弦波信號。當兩片D/A轉換芯片所獲得的數據序列完全相同時,則轉換所得到的兩路正弦波信號無相位差。當兩片D/A轉換芯片所獲得的數據序列不同時,則轉換所得到的兩路正弦波信號就存在著相位差。相位差的值與數據表中數據的總個數及數據地址的偏移量有關。這種處理方式的實質是將數據地址的偏移量映射為信號間的相位值。數據的偏差可以通過外部微處理器來獲得相應的數字量輸入,這個數值對應著正弦信號的移相角度。直接頻率合成方法具有頻率轉換時間短、相位噪聲性能好、精度高,產生的信號頻率范圍寬等優點,但由于需要采用地址、相位計算、訪問存儲器操作等環節,導致直接頻率合成器結構復雜、成本高、移相分辨率低。本文利用DSP技術,通過數值迭代方法,即用DSP數字振蕩器的實現原理獲得兩路正弦波信號。通過仿真,硬件實現,能得到設定參數的兩路正弦波輸出,達到了設計目的,并具有調整方便靈活、分辨率高等特點。數值迭代方法能精確計算角度的正弦值,只需較小的存儲空間,選擇正弦周期中的樣點數、改變樣點間的延遲,能產生不同頻率的波形,可利用軟件改變波形幅度及相位。
1 波形及移相波形發生器的DSP實現原理
利用DSP通過運算,用疊代的方法產生正弦信號,即數字振蕩器。數字振蕩器的單位沖擊響應為sin(nωT+θ)?u(n)即系統在δ(n)的激勵下,產生振蕩,輸出相位為θ的正弦序列,該系統的系統函數就是沖擊響應的Z變換,即

則該系統所對應的差分方程為

通過疊代可由差分方程求出系統的沖擊響應。系統的輸入為x(n)=δ(n),初始條件為零。則由差分方程可得:

當n≥3時有:y(n)=2cosωT?y(n-1)-y(n-2)。在n≥3以后,y(n)能用y(n-1)和y(n-2)算出,這是一個遞歸的差分方程。因此得到如下結論:只要已知系統輸出正弦信號角頻率ω和采樣周期T就可以得到系統差分方程,系統只需每隔T秒時間計算一次差分方程,就可得到當前正弦采樣序列y(n)的值。設定的y(1)、y(2)初值不同,初始相位就不同。在設計中,主程序通過鍵盤輸入頻率及相位差等數據,在初始化時依輸出信號頻率、采樣速率及相位差等數據先計算出兩路正弦信號的初始值y1(1)、y1(2)和y2(1)y2(2),然后開放定時器中斷。以后每次進入定時器中斷服務程序時,利用前面的y1(1)、y1(2)和y2(1)y2(2),計算出新的y1(0)和y2(0)。雖然兩次計算并輸出y1(0)和y2(0)有一定的延遲,但由于DSP的高速流水線運行及McBSP高速串行輸出,所引起誤差將很小。











評論