基於FPGA的DDS研究與設計
DDS(Direct Digital frequency Synthesis)即直接數字頻率合成器,是一種新型的頻率合成技術,具有較高的頻率解析度,快速的頻率切換,穩定性好,可靈活產生多種訊號的優點。因此,在現代電子系統及裝置的頻率源設計中,尤其在通訊領域,直接數字頻率合成器的應用越來越廣泛。在數字化的調製解調模組中。DDS取代了VCO(模擬的壓控振盪器),被大量應用。這種合成技術是一種利用數字技術來控制訊號的相位增量的技術,它採用插值取樣的方式,將要合成的正弦波波形用若干個取樣點的取值來代替,然後依次等時間間隔輸出這些取值,每個取樣點的值由預先儲存的數字值經D/A轉換後得到。
DDS工作原理框圖如圖1所示。其基本結構包括:相位累加器PA、波形查詢表ROM、數模轉換器DAC及低通濾波器。
圖1 DDS原理框圖
DDS的工作過程為:在參考時鐘fc的作用下,相位累加器對頻率控制字FCW(Frequency Control Word)進行線性累加,將其高W位作為地址碼通過波形查值表ROM變換,產生D位對應訊號波形的數字序列,再由數模轉換器DAC將其轉化為階梯模擬電壓波形後由具有內插作用的低通濾波器LPF將其平滑為連續的正弦波形作為輸出。
為了說明DDS相位量化的工作原理,可將正弦波一個完整週期內相位的變化用相位圓來表示,其相位與幅度一一對應,如圖2所示:
圖2相位碼與幅度碼的對應關係
一個N位的相位累加器對應相位圓2N上個相位點,其最低相位解析度為θmin=Δθ=2π/2N。在圖2中N為4,則有16個相位值和16個幅度碼相對應。該幅度儲存于波形儲存器中,在頻率控制字FCW的作用下,相位累加器給出不同的相位碼,對波形儲存器定址,完成相位--幅度變換,經DAC變成階梯正弦波訊號,再通過低通濾波器平滑,便得到模擬正弦波輸出。
自第一部正弦波發生器問世以來,函式發生器的設計已經發生了多次演進,在當前數字領域中,大多數新型函式發生器都在採用直接數字頻率合成技術。DDS在大部分操作中使用數位電路,從而提供了數字操作擁有的許多優勢。
第一,輸出訊號的頻率精度可以達到作為發生器參考訊號使用的晶體控制振盪器的水平。如果想實現更高的精度,也可以採用函式發生器本身的溫度補償晶體振盪器產生。
第二,DDS訊號發生器的數位電路可以實現與數位電路相同的頻率精度。
第三,如果擁有RAM波形儲存器,那麼DDS函式發生器可以重現幾乎任何波形。因此,函式發生器現在的功能要遠遠超過傳統函式發生器。對稱性可變的波形現在已經是標配功能,另外還可以內建各種不常見的波形,如指數上升和下降型波形或正弦脈衝型波形等。但由於DDS的全數字結構,使得直接數字頻率合成器不可避免的擁有以下兩個缺點。
第一,其雜散分量豐富。這些雜散分量主要由相位舍位、幅度量化和DAC的非理想特性所引起。
第二,輸出頻帶受限。由於DDS內部DAC和ROM的工作速度限制,使得DDS輸出的最高頻率受到極大的限制。
圖3所示是一個基本的DDS結構,主要由相位累加器、相位調製器、正弦ROM查詢表和D/A構成。圖中的相位累加器、相位調製器、正弦ROM查詢表是DDS結構中的數字部分,由於具有數控頻率合成的功能,又合稱為NCO(Numerically Controlled Oscillators)。
圖3 基本DDS結構
相位調製器接收相位累加器的相位輸出,在這裡加上一個相位偏移值,主要用於訊號的相位調製,如PSK(相移鍵控)等。在不使用時可以去掉該部分,或者加一個固定的相位字輸入。相位字輸入也需要用同步暫存器保持同步。需要注意的是,相位字輸入的資料寬度M與頻率字輸入N往往是不相等的,M<N。
正弦ROM查詢表完成的查錶轉換,也可以理解成相位到幅度的轉換,它的輸入是相位調製器的輸出,事實上就是ROM的地址值;輸出送往D/A,轉化成模擬訊號。由於相位調製器的輸出資料位寬M也是ROM的地址位寬,因此在實際的DDS結構中N往往很大,而M總為10位左右。M太大會導致ROM容量的成倍上升,而輸出精度受D/A位數的限制未有很大改善。
通過前面的分析可知,為了抑制山於DDS技術的非理想特性所產生的雜散,利用FPGA器件設計DDS應該考慮如何選擇相位累加器的位數,相位截斷的位數,如何選擇D/A轉換器才能滿足設計的要求,這樣才能得到較理想的輸出波形。從上面的理論分析得到,相位累加器的位數,關為系統時鐘
頻率,為輸出訊號最小解析度。其次,D/A轉換器位數的選擇,根據前而的分析,SQR=l.76+.602D(dB),D為有效字長位數,如果一個系統的要求是希望訊雜比能夠達到70dB,則D=121bits。
通過上面的理論分析,我們將以正弦訊號為輸出訊號作為DDS的具體設計。我們將設計好的程式進行綜合,檢視其RTL電路原理圖,如圖4所示.
圖4 系統RTL圖
從上圖,我們可以看到系統的ROM查詢表,相位累加器等模組。下面我們將對系統進行模擬。通過修改頻率控制字,我們可以得到不同的頻率波形,這裡我們以sin訊號為模擬波形。模擬結果如圖5所示。
圖5系統模擬結果
輸出不同的頻率效果:
圖6 系統模擬結果2
由此可見,我們通過DDS模組得到了可以改變頻率的系統模組。
通過示波器,我們可以看到如下的效果:
圖7 示波器顯示效果
相關文章
- 基於FPGA的乘法器原理介紹及設計實現FPGA
- 基於STM32的SNTP授時伺服器的研究與設計伺服器
- FPGA基礎設計(6)使用DAC的Interleaved模式FPGA模式
- CPLD與FPGA都是通用可程式設計邏輯器件。在下面關於CPLD與FPGA的選項中,正確的是()FPGA程式設計
- 基於FPGA 的SDRAM控制器FPGA
- 基於FPGA的VGA控制器FPGA
- 優化基於FPGA的深度卷積神經網路的加速器設計優化FPGA卷積神經網路
- FPGA經典:Verilog傳奇與基於FPGA的數字影像處理原理及應用FPGA
- FPGA基礎設計(7)雙口RAM乒乓操作FPGA
- 基於風險回報設計的遊戲自由度研究遊戲
- 基於android的智慧導診的設計與實現Android
- 遊戲心理學研究:基於發展心理學與社會時鐘的遊戲設計遊戲設計
- 基於Scrapy分散式爬蟲的開發與設計分散式爬蟲
- 基於區塊鏈的智慧鎖設計與實現區塊鏈
- 基於Android的失物招領APP的設計與實現AndroidAPP
- 《FPGA的人工智慧之路——基於Intel FPGA開發的入門到實踐》FPGA人工智慧Intel
- Java畢業設計_基於MySQL網盤管理系統的設計與實現JavaMySql
- 基於Android的音樂播放器的設計與實現Android播放器
- 基於java的網路招聘系統的設計與實現Java
- 基於java的文章釋出系統的設計與實現Java
- 基於原型的角色設計方法原型
- 基於 esbuild 的 universal bundler 設計UI
- 基於shiro RBAC的表設計
- 基於UDP程式設計UDP程式設計
- 高度整合的可程式設計邏輯器件fpga晶片處理能力與作用程式設計FPGA晶片
- 基於 LLM 的智慧運維 Agent 系統設計與實現運維
- vivo 基於 JaCoCo 的測試覆蓋率設計與實踐
- 基於AlexNet和Inception模型思想的TFCNet模型設計與實現模型
- 基於MATLAB的水果分級設計Matlab
- 基於MaxCompute的拉鍊表設計
- 基於ATmega8的測速計設計
- 基於java的企業車輛管理系統的設計與實現Java
- 基於KubeEdge的邊緣節點分組管理設計與實現
- 基於SSH培訓機構管理系統的設計與實現
- 【FPGA基礎】Latch基礎FPGA
- 基於FPGA的光口通訊開發案例|基於Kintex-7 FPGA SFP+光口的10G UDP網路通訊開發案例FPGAUDP
- 基於關卡設計維度的戰棋遊戲系統與關卡設計用例遊戲
- FPGA:乒乓球比賽模擬機的設計FPGA