基于DDS的高精度函數(shù)信號發(fā)生器的研制
軟件設計主要分為菜單操作和頻率控制值計算兩部分。不同的按鍵代表著不同的數(shù)字和功能,除了正常的10個數(shù)字鍵0~9外,為了方便頻率值輸入,還設計了左右移動鍵、刪除鍵、Output確認輸出鍵等功能鍵。相應的數(shù)值如頻率、相位、幅度輸入完成后按Output輸出鍵,即產生相應的信號輸出。整體軟件設計流程圖如圖4所示。本文引用地址:http://butianyuan.cn/article/173784.htm
2.3 48 b頻率控制字的處理
由于單片機C語言中數(shù)據(jù)運算最多為32 b,如單精度Float型、Long長整型,而Double雖是64 b但Keil C編譯時出錯,故將介紹一種在單片機中計算48 b頻率控制字的方法。
在該設計中取參考時鐘頻率fosc為300 MHz,在DDS的原理中介紹了輸出頻率的計算方法為:
那么根據(jù)式(1)就能推導出計算頻率控制字的表達式:
當fo≤fL1時,頻率控制字計算公式為:
FTW=(248*fo)/300 000 000△938 249.922 369*fo
當fo>fL1時,通過把48 b頻率控制字分成8 b+32 b+8 b,令最前面的8 b和最后面的8 b等于O,引入臨界頻率fL2,可由算式(1)計算得到:
fL2=300000000*2 40/2 48△1.17172MHz
當fL1fo≤fL2時,得到頻率控制字計算公式為:FTW=(240*fo)/300 000 000△3 665.038 759*fo最后當fo大于fL2,即把后16 b定為0,這時式(1)中N=32,則頻率控制字計算公式為:
此時頻率分辨率為(300 000 000*216)/248△0.07 Hz。同理可得當輸出頻率小于fL1、大于fL1小于fL2時分辨率分別為1.07e一6 Hz和2.73e一4 Hz,本方案設計為輸出頻率低于1 MHz時分辨率為O.001 Hz,高于1 MHz時分辨率為O.1 Hz。由上可見此方法合理有效,解決了單片機48 b頻率控制字算法,同時也達到了很高的頻率分辨率和精確度。
3 結 語
針對目前市場上的函數(shù)發(fā)生器存在的頻帶范圍窄、精度不高、準確度低、頻譜純度差等缺點,設計了一款高精度高頻數(shù)控函數(shù)信號發(fā)生器,該函數(shù)發(fā)生器具有頻帶范圍寬、精度高、頻譜純度好、頻率輸出穩(wěn)定等優(yōu)點。經測試頻率范圍可以達到50 MHz,頻率分辨率為0.001 Hz,并可以產生正弦波、FSK與BPSK波形??蓱糜谌粘=虒W與科研工作中,在晶體濾波器測試、復雜通信系統(tǒng)測試、音頻系統(tǒng)測試、高性能視頻測試等領域有廣泛的應用前景。
評論