直接數字式頻率合成器(Direct Digital Synthesizer,DDS)是一種新型的頻率合成技術,具有相對帶寬大、頻率轉換時間短、穩定性好、分辨率高、可靈活產生多種信號等優點,被廣泛應用于現代電子系統及設備的頻率源設計中。本文先簡單介紹一下DDS實現頻率、相位控制的基本原理,后續文章會介紹其Verilog代碼實現。
假設存儲空間里有一組數據:n0~n23,這組數據是對一個周期正弦波形采樣的結果。現在計算機想輸出其中一些數據點,有幾種輸出方法呢?

一、輸出數據索引從n0開始依次累加M
1、M = 1:即n0、n1、n2、…、n22、n23、n0、n1、…

2、M = 3:即n0、n3、n6、…、n18、n21、n0、n3、…

假設系統時鐘頻率為Fclk,那么,在一秒鐘的時間內索引會一直累加至M×Fclk,但是,存儲空間內只有一個周期的數據,只有24個數據點,因此,每當索引值累加至23時便會溢出,繼續從0開始累加,意味著一個周期輸出完成,開始輸出下一周期。因此,一秒內的溢出次數就是數據重復輸出的次數,即輸出信號的頻率,公式表達為:

式中:F為輸出信號頻率,Fclk為系統時鐘頻率,M為累加步進值,2^N為存儲空間內的數據點數。
二、數據索引從n0開始依次累加M,在每次累加結果的基礎上加上偏移量P作為輸出數據索引
1、M = 3、P = 0:即n0、n3、n6、…、n18、n21、n0、n3、…

2、M = 3、P = 6:即n6、n9、n12、…、n0、n3、n6、n9、…

偏移量P決定了第一個數據點的索引,進而決定了輸出信號的初始相位,初始相位的公式表達為:

式中: P為累加結果的偏移量,2^N為存儲空間內的數據點數。
總結一下DDS實現頻率及相位控制的流程:DDS首先通過累加器對頻率控制字累加進行頻率控制,累加結果通過加法器加上相位控制字進行相位調制,形成最終數據索引對波形ROM表里的數據索引輸出,通過D/A轉換器合成相應的模擬信號波形。
