0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

DDS的工作原理及基于FPGA的實現(xiàn)方法

FPGA設計論壇 ? 來源:CSDN技術(shù)社區(qū) ? 作者:雷凌峻毅 ? 2022-04-21 09:04 ? 次閱讀

DDS原理及FPGA實現(xiàn)

一個按一定速度沿x軸行進,同時半徑按一定頻率在圓周上滑動的圓,最后留下的痕跡就是一個正余弦波。

DDS全稱直接數(shù)字頻率合成(Direct Digital Synthesis),簡單來講,分以下幾步:

1.抽樣

既然是數(shù)字頻率合成,那么從模擬信號變成數(shù)字信號的過程必不可少。這個過程就是抽樣的過程。根據(jù)奈奎斯特采樣定律,我們在采樣過程要保留源信號的信息,那么采樣率至少為源信號頻率的兩倍。換句話說,我們想要在數(shù)字合成出來的波形還能還原原始信號的信息的話,我們一個周期中至少要有兩個以上的“點”。

但一般來講,為了波形的完整,我們一個周期中最少保留的點還會多一些。如果假設一個周期最小4個點,采樣頻率為為100MSPS,那我們可以還原的源信號的頻率最大為25M

我們通常對一個周期采樣的點數(shù)為2^N個,在這里,我采樣為2的8次方,即256個。

采樣的過程可以通過matlab進行模擬,設置好采樣的位寬和深度便可以生成采樣數(shù)據(jù)。

6938cf34-c100-11ec-bce3-dac502259ad0.png

得到的部分采樣數(shù)據(jù)如下

694e9c7e-c100-11ec-bce3-dac502259ad0.png

6964a7a8-c100-11ec-bce3-dac502259ad0.png

2.合成

DDS技術(shù)的核心,簡單來說就是將我們的抽樣數(shù)據(jù)還原成模擬信號。還原的方式和文章講到的一樣:以一定的頻率將抽樣數(shù)據(jù)依次輸出,就可以還原波形。

假設,以100M的頻率輸出我們的1024個抽樣數(shù)據(jù),則將會得到一個頻率為

697c4c1e-c100-11ec-bce3-dac502259ad0.png

的正弦波。這就達到了最初的信號輸出。

那如何調(diào)頻呢?

調(diào)頻的方案有兩種:一種是改變我們的時鐘頻率,將我們讀取抽樣數(shù)據(jù)的速度變快或者變慢,這樣就可以改變頻率。這種方法對于當下很多開發(fā)板固定的晶振頻率來說比較難以實現(xiàn)。

另一種方案就是減少我們輸出的抽樣數(shù)據(jù),輸出的抽樣數(shù)據(jù)越少,按照上面的公式,頻率便會越高。

比如說,我們最開始查數(shù)據(jù)是按照依次加一的方式,那我們改成依次加二,顯然,這樣做之后,輸出頻率便會提高。但也會帶來一個問題,我們輸出的點數(shù)少了,那么點與點之間不再平滑,輸出的波形會變得階梯化。

顯然加一會得到一個頻率,加二會得到另一個頻率,但這兩個頻率都不是我想要的怎么辦?

如何精準調(diào)頻?

假設我們需要得到一個頻率很低的信號,1KHZ,而我們的時鐘頻率為100M,我們在一個周期內(nèi)輸出1024個點也達不到這樣的頻率。因此我們就需要在輸出的每個數(shù)據(jù)之間進行等待,可以通過設置計數(shù)器來解決這個問題。為了使輸出的信號盡可能的低,我們設置一個32位的累加器。將高10位作為查表的地址。對于1KHZ,有

699196a0-c100-11ec-bce3-dac502259ad0.png

所以,累加值f w o r d fwordfword為4295。

其余頻率對應的累加值均可以按此公式計算。

如何解決階梯化?

從數(shù)字上來看,波形變得階梯化是因為我們輸出的抽樣數(shù)據(jù)減少,點與點之間不再平滑。但是從另一個角度理解,波形變得階梯化的原因是因為疊加了其他雜波

我們簡單地波形變得階梯化理解為趨近于方波。下圖是方波的合成。

69a6992e-c100-11ec-bce3-dac502259ad0.png

由方波的傅里葉級展開式

69c99078-c100-11ec-bce3-dac502259ad0.png

可以得出,方波是由無數(shù)個奇次諧波疊加起來的,頻率為2n-1倍,幅度為

69df1a42-c100-11ec-bce3-dac502259ad0.png

因此,若我們的波形也是疊加了高頻的諧波導致波形階梯化,那么就通過低通濾波器來濾除高頻諧波,得到平滑的波形。

DDS的原理圖如下:

69f4fa10-c100-11ec-bce3-dac502259ad0.png

3.實現(xiàn)

基于FPGA的DDS,就是按照上面的原理來實現(xiàn)的。

6a0da89e-c100-11ec-bce3-dac502259ad0.png

我這里只儲存了256個數(shù)據(jù),至于原因,后面會講到。

(2)累加

設置一個32位相位控制字和頻率控制字,進行累加。

6a2588b0-c100-11ec-bce3-dac502259ad0.png

6a3d2d6c-c100-11ec-bce3-dac502259ad0.png

這里我只儲存了2^8個波形數(shù)據(jù),是為了節(jié)省寄存器資源。因為一個周期的正弦波的四個相位實際上數(shù)據(jù)是有關(guān)聯(lián)的,知道第一相位的數(shù)據(jù),便可推導出另外三個相位的數(shù)據(jù)。

代碼中,00表示第一相位,此時按照正常的查表順序即可。

01表示第二相位,此時,查表的順序應當是2^8-地址值。但實際上這個減法的操作就是異或的操作。

相減后,地址值8位中原本的“1”變?yōu)?,原本的“0”變?yōu)?,正好和異或的原理相同。這里為了方便,就直接寫了異或。實際上寫256-addr_cache[7:0]也是一個效果。

其余兩個相位,查表的方式類似。

(4)轉(zhuǎn)換

因為我這里的256個數(shù)據(jù)是第一相位的,而第三第四相位的數(shù)據(jù)是等于2^10減去第一相位的值,因此這里需要將輸出的數(shù)據(jù)轉(zhuǎn)換一下。

6a5419b4-c100-11ec-bce3-dac502259ad0.png

(5)測試

通過串口分別發(fā)送01999b60和031a5f60,由上面公式

6a691418-c100-11ec-bce3-dac502259ad0.png

6a8b92e0-c100-11ec-bce3-dac502259ad0.jpg

可以算出分別是1M和2M的頻率控制字

6aa3dfa8-c100-11ec-bce3-dac502259ad0.jpg

6ab79066-c100-11ec-bce3-dac502259ad0.jpg

6acf2d02-c100-11ec-bce3-dac502259ad0.jpg

以上便是DDS的FPGA實現(xiàn)。

原文標題:FPGA學習-DDS原理及FPGA實現(xiàn)

文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21748

    瀏覽量

    603907
  • DDS
    DDS
    +關(guān)注

    關(guān)注

    21

    文章

    634

    瀏覽量

    152704

原文標題:FPGA學習-DDS原理及FPGA實現(xiàn)

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA實現(xiàn)直接數(shù)字頻率合成(DDS)的原理、電路結(jié)構(gòu)和優(yōu)化...

    FPGA實現(xiàn)直接數(shù)字頻率合成(DDS)的原理、電路結(jié)構(gòu)和優(yōu)化方法介紹了利用現(xiàn)場可編程邏輯門陣列FPGA
    發(fā)表于 08-11 18:10

    如何利用FPGA設計DDS信號發(fā)生器?

    DDS工作原理和基本結(jié)構(gòu)基于FPGADDS信號發(fā)生器的設計如何建立頂層模塊?
    發(fā)表于 04-09 06:46

    如何利用FPGADDS技術(shù)實現(xiàn)正弦信號發(fā)生器的設計

    DDS電路的工作原理是什么如何利用FPGADDS技術(shù)實現(xiàn)正弦信號發(fā)生器的設計
    發(fā)表于 04-28 06:35

    如何利用現(xiàn)場可編程邏輯門陣列FPGA實現(xiàn)實現(xiàn)DDS技術(shù)?

    介紹了利用現(xiàn)場可編程邏輯門陣列FPGA實現(xiàn)直接數(shù)字頻率合成(DDS)的原理、電路結(jié)構(gòu)和優(yōu)化方法。重點介紹了DDS技術(shù)在
    發(fā)表于 04-30 06:29

    如何利用FPGA設計DDS電路?

    ACEX 1K具有什么特點DDS電路工作原理是什么如何利用FPGA設計DDS電路?
    發(fā)表于 04-30 06:49

    DDS工作原理是什么?如何去設計DDS?

    DDS工作原理是什么?基于DSP Builder和DDS設計基于FPGADDS設計
    發(fā)表于 05-06 06:27

    怎么實現(xiàn)基于FPGA+DDS的正弦信號發(fā)生器的設計?

    介紹了DDS的發(fā)展歷史及其兩種實現(xiàn)方法的特點,論述了DDS的基本原理,并提出一種基于FPGADDS
    發(fā)表于 05-11 06:58

    什么是DDSDDS工作原理是什么

    什么是DDS?DDS工作原理是什么?怎么做出一個DDS模塊呢?
    發(fā)表于 01-26 06:31

    基于FPGADDS調(diào)頻信號的研究與實現(xiàn)

    本文從DDS 基本原理出發(fā),利用FPGA實現(xiàn)DDS 調(diào)頻信號的產(chǎn)生,重點介紹了其原理和電路設計,并給出了FPGA 設計的仿真和實驗,實驗
    發(fā)表于 06-26 17:29 ?72次下載

    基于FPGADDS信號源設計與實現(xiàn)

    基于FPGADDS信號源設計與實現(xiàn) 利用DDSFPGA 技術(shù)設計一種信號發(fā)生器.介紹了該信號發(fā)生器的
    發(fā)表于 02-11 08:48 ?225次下載

    DDS方式的工作原理電路圖

    DDS方式的工作原理電路圖
    發(fā)表于 07-14 17:08 ?3626次閱讀
    <b class='flag-5'>DDS</b>方式的<b class='flag-5'>工作原理</b>電路圖

    基于FPGADDS雜散分析及抑制方法

    首先介紹了采用直接數(shù)字頻率合成(DDS)技術(shù)的正弦信號發(fā)生器的基本原理和采用FPGA實現(xiàn)DDS信號發(fā)生器的基本方法,然后結(jié)合
    發(fā)表于 11-26 16:23 ?49次下載
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>DDS</b>雜散分析及抑制<b class='flag-5'>方法</b>

    基于FPGADDS設計

    利用現(xiàn)場可編程門陣列(FPGA)設計并實現(xiàn)直接數(shù)字頻率合成器(DDS)。結(jié)合DDS 的結(jié)構(gòu)和原理,給出系統(tǒng)設計方法,并推導得到參考頻率與輸出
    發(fā)表于 04-01 16:14 ?26次下載

    DDS的基本結(jié)構(gòu)和工作原理及Matlab在DDS系統(tǒng)仿真中的應用說明

    介紹了直接數(shù)字頻率合成器(Direct Digital fiequency Synthesizer,DDS)的基本結(jié)構(gòu)和工作原理,并在此基礎上著重論述了利用舭軟件建立DDS的理想和雜散仿真模型的
    發(fā)表于 11-06 17:48 ?15次下載
    <b class='flag-5'>DDS</b>的基本結(jié)構(gòu)和<b class='flag-5'>工作原理</b>及Matlab在<b class='flag-5'>DDS</b>系統(tǒng)仿真中的應用說明

    如何使用FPGA實現(xiàn)DDS數(shù)字移相信號發(fā)生器的原理

    本文討論了基于FPGA芯片的直接數(shù)字頻率合成器(DDS)的設計方法。因為DDS實現(xiàn)依賴于高速、高性能的數(shù)字器件,使用現(xiàn)場可編程器件
    發(fā)表于 03-02 17:11 ?36次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>DDS</b>數(shù)字移相信號發(fā)生器的原理