FPGA實現DDS方案

2021-08-28 14:50:51 字數 1850 閱讀 7030

一、dds的系統結構

dds是直接數字式頻率合成器(direct digital synthesizer),系統結構可分為如下幾個部分,其中相位控制字可調整輸出正弦波的相位,頻率控制字可以調整輸出正弦波的頻率。dac把fpga輸出的數字量轉換成模擬訊號,因為訊號中有大量高頻訊號,再加一級的低通濾波器可以使訊號變得更加平滑。

圖1:系統框圖

二、實現基本原理

通過matlab可以生成一組2^n個點的正弦波查詢表,如果系統時鐘(fclk)按位址加1的順序迴圈讀取rom查詢表的值,則可以產生乙個週期為fclk/2^n的乙個正弦波訊號(稱為基頻)。因為系統時鐘不能改變,而如果想得到更高頻率的訊號,可以通過減少輸出rom查詢表的點的方法(跳過rom表中的一些值)來加快rom表週期讀取實現,而如果想得到更低的頻率,則可以通過重複輸出乙個點的值來減慢rom表週期的讀取來實現。

三、系統引數選擇

相位累加器是實現dds的核心,rom的位寬和深度、系統時鐘頻率、相位累加器的寬度的引數選擇是設計滿足要求需要考慮的重要引數,這裡通過乙個例子說明:

假設系統時鐘為50m, rom的位寬為8位,即把乙個正弦波的峰峰值用8位資料(256個點)來量化,則需要512個點去表示乙個週期的正弦波,設定rom表的深度為512。

因為rom的深度為512(2^9)位,所以相位累加器要大於9位,只需取高9位作為rom的輸入位址,低位作為累計量。假設相位累加器是16位位寬,因此高9位作為rom的位址輸入。

頻率控制字是相位累計器每次加的值,如果我們要得到這個假設系統的基頻,則需要每個時鐘沿都對rom的位址加1,即16位相位累加器的第7位加1(見圖2),則輸入的控制字fword為1000_0000,產生的基頻為50m/512= 97656.25hz,其中512是rom的深度,也是2^16迴圈計數一次的個數,其取值為2^16/fword。所以輸出頻率(fout)可以用公式表示為:fout=50m/(2^16/fword)。假設系統頻率為fclk,相位累加器的位寬為n,則fout=(fclk*fword)/2^n。我們可以通過設定不同的fword大小來調節輸出的正弦波頻率。

圖2:每次對第7位加1

在這個例子中fword每加1即輸出頻率改變50m/2^16= 762.939453125,所以輸出頻率的最小解析度約為763hz,系統輸出的最小頻率也為763hz;又因為當不斷增加輸出正弦波的頻率的時候會跳過很多點去取樣rom表的資料,對於本例中如果系統要求乙個週期必須輸出16個正弦波的取樣點,則滿足要求的最大正弦波頻率為50m/16=3.125mhz,則該設計滿足要求的頻率約為763hz~3.125mhz,其中輸出正弦波頻率的最小解析度約為763hz。

由此可以知道在設計乙個優良dds之前首先我們需要知道dac的位寬、輸出頻率範圍、頻率解析度和最小週期取樣點個數,根據這些要求我們可以通過計算出滿足要求的系統的時鐘頻率、rom位寬,資料深度、相位累加器的寬度這些引數滿足設計的需求。

四、設計乙個輸出3khz-3mhz的正弦波

假設要求輸出每個正弦波的週期點為64個,因為最大的輸出頻率為3m,所以系統時鐘至少應該為64*3m=192m。

假設dac的位寬為16位,則為了盡可能利用好dac的精度,我們設計rom的位寬為16位,資料深度為131072。假設dac的最大輸出電壓為5v則量化精度可以達到5v/65536≈0.0763mv。

因為輸出頻率的最小值為3k,累加器的寬度為log(192m/3k)≈15.965784,所以至少累加器需要設定為16位位寬。為了能達到更好的頻率解析度,我們設計累加器的計數字寬為32位,則該系統的輸出頻率解析度為192m/(2^32)≈0.0447hz。

基於FPGA實現DDS正弦波發生器

名言 學無止境。1 開發環境 作業系統 win7 開發軟體 ise14.7 硬體平台 xilinx fpga spartan6 2 dds簡介 dds direct digital synthesizer 直接數字合成器。dds也稱訊號發生器,用它來產生一定頻率的正弦波。3 dds設計方案 基於fp...

基於國產FPGA的DDS訊號源(一)

頻率控制 許久沒有更新csdn,這兩個月一直在弄訊號源,使用的是上海安陸集團的fpga eg4s20fpga,用了他的小核心板lichee tang。話不多說,講下原理吧 我們使用的所謂的dds,我覺得就是查表,我們用matlab生成乙個mif檔案,然後控制fpga來讀表,在rom中每乙個位置都有對...

FPGA入門實驗六 計數器 ROM和DDS

1.新建工程並新增verilog和bdf檔案,bdf檔案如下圖 2.rtl圖如下 3.用signal tap 對out訊號在bus line 模式下觀察 回答問題 1 電路的工作頻率是50mhz,正弦波頻率和計數器增量值的對應關係是什麼 答 設增量為m,則正弦波的頻率 f m 128 50mhz 2...