跳轉到內容

數位電路/DDS

來自華夏公益教科書,開放的書本,開放的世界

一個直接數字合成器 (DDS) 允許建立頻率由數字控制的週期性波形。

DDS 輸出的頻率與電路使用的石英的穩定性相同。頻率步長可以非常小,頻率值範圍可達時鐘頻率的一半。

DDS 可用於實現函式發生器或振盪器,並將其用於更復雜的電路中,例如混頻器、調製器和鎖相環。

DDS 是一個自由執行的計數器。當計數器達到最大值時,它會摺疊回零。

DDS
DDS

電路輸出可以是三重的

  • 計數器輸出提供可程式設計頻率的鋸齒波訊號
  • 計數器 MSB 提供具有相同頻率的二進位制訊號
  • 將鋸齒波輸出視為相位訊號,可以計算三角函式並提供正弦或甚至正交正弦和餘弦輸出

正弦和餘弦值傳統上是透過 ROM 或查詢表 (LUT) 獲得的。但是,CORDIC 運算子計算這些函式的精度相同,同時硬體成本大大降低。

工作原理

[編輯 | 編輯原始碼]

如果計數器在每個上升沿遞增 1,則其形狀將是一個週期為

的鋸齒波,其頻率為

如果計數器在每個上升沿遞增,它將計數 倍快,其頻率為


輸出訊號

[編輯 | 編輯原始碼]

計數器本身提供鋸齒波訊號。計數器 MSB 提供方波訊號。將鋸齒波視為相位訊號可以產生正弦波輸出。正弦函式可以透過 CORDIC 運算子進行計算。

下圖顯示了 DDS 的時間訊號。

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

正弦波給出兩個藍色的峰值,正如預期的那樣。方波是週期性訊號,只有奇次諧波。

奇數步長

[編輯 | 編輯原始碼]

前面的影像是使用一個很好的步長值:16 製作的。當步長值不能完全整除計數器範圍時,鋸齒波的齒會更加參差不齊,方波輸出會顯示一種抖動:其平均頻率是所需的頻率,但訊號邊沿會移到最接近的活動時鐘邊沿。

下圖顯示了具有奇數步長的 DDS 的時間訊號。

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

正弦波仍然是一個純音。方波顯示出更多的頻率成分。

DDS 電路可以在 FPGA 等可程式設計電路中非常有效地實現。它由一個計數器組成,後面跟著一個從計數器輸出計算正弦的模組,該輸出被視為相位。正弦的計算最好使用 CORDIC 演算法進行。

DDS 的 VHDL 原始碼 可以在 opencores 上找到。這種實現更喜歡使用查詢表而不是 CORDIC 來計算正弦函式。

華夏公益教科書