數位電路/DDS
一個直接數字合成器 (DDS) 允許建立頻率由數字控制的週期性波形。
DDS 輸出的頻率與電路使用的石英的穩定性相同。頻率步長可以非常小,頻率值範圍可達時鐘頻率的一半。
DDS 可用於實現函式發生器或振盪器,並將其用於更復雜的電路中,例如混頻器、調製器和鎖相環。
DDS 是一個自由執行的計數器。當計數器達到最大值時,它會摺疊回零。

電路輸出可以是三重的
- 計數器輸出提供可程式設計頻率的鋸齒波訊號
- 計數器 MSB 提供具有相同頻率的二進位制訊號
- 將鋸齒波輸出視為相位訊號,可以計算三角函式並提供正弦或甚至正交正弦和餘弦輸出
正弦和餘弦值傳統上是透過 ROM 或查詢表 (LUT) 獲得的。但是,CORDIC 運算子計算這些函式的精度相同,同時硬體成本大大降低。
如果計數器在每個上升沿遞增 1,則其形狀將是一個週期為
的鋸齒波,其頻率為
如果計數器在每個上升沿遞增,它將計數 倍快,其頻率為
計數器本身提供鋸齒波訊號。計數器 MSB 提供方波訊號。將鋸齒波視為相位訊號可以產生正弦波輸出。正弦函式可以透過 CORDIC 運算子進行計算。
下圖顯示了 DDS 的時間訊號。

方波和正弦波的傅立葉變換在下圖中給出。

正弦波給出兩個藍色的峰值,正如預期的那樣。方波是週期性訊號,只有奇次諧波。
前面的影像是使用一個很好的步長值:16 製作的。當步長值不能完全整除計數器範圍時,鋸齒波的齒會更加參差不齊,方波輸出會顯示一種抖動:其平均頻率是所需的頻率,但訊號邊沿會移到最接近的活動時鐘邊沿。
下圖顯示了具有奇數步長的 DDS 的時間訊號。

方波和正弦波的傅立葉變換在下圖中給出。

正弦波仍然是一個純音。方波顯示出更多的頻率成分。
DDS 電路可以在 FPGA 等可程式設計電路中非常有效地實現。它由一個計數器組成,後面跟著一個從計數器輸出計算正弦的模組,該輸出被視為相位。正弦的計算最好使用 CORDIC 演算法進行。
DDS 的 VHDL 原始碼 可以在 opencores 上找到。這種實現更喜歡使用查詢表而不是 CORDIC 來計算正弦函式。