国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于FPGA的簡易 DDS 信號發(fā)生器的設計

這篇具有很好參考價值的文章主要介紹了基于FPGA的簡易 DDS 信號發(fā)生器的設計。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

DDS 是直接數(shù)字式頻率合成器(Direct Digital Synthesizer)的英文縮寫,是一項關鍵的數(shù)字化技術。與傳統(tǒng)的頻率合成器相比, DDS 具有低成本、低功耗、高分辨率和快速轉換時間等優(yōu)點,廣泛使用在電信與電子儀器領域,是實現(xiàn)設備全數(shù)字化的一個關鍵技術。作為設計人員,我們習慣稱它為信號發(fā)生器,一般用它產生正弦、鋸齒、方波等不同波形或不同頻率的信號波形,在電子設計和測試中得到廣泛應用


提示:以下是本篇文章正文內容,下面案例可供參考

一、pandas是什么?

DDS 技術是一種全新的頻率合成方法,其具有低成本、低功耗、高分辨率和快速轉換時間等優(yōu)點, 對數(shù)字信號處理及其硬件實現(xiàn)有著很重要的作用。DDS 的基本結構主要由相位累加器、相位調制器、波形數(shù)據(jù)表 ROM、 D/A 轉換器等四大結構組成,其中較多設計還會在數(shù)模轉換器之后增加一個低通濾波器。 DDS 結構示意圖
基于FPGA的簡易 DDS 信號發(fā)生器的設計
上圖是不含低通濾波器的 DDS 結構示意圖,圖中主要包括相位累加器、相位調制器、波形存儲器、數(shù)模(D/A)轉換器等四大結構。接下來我們會結合 DDS 結構示意圖,為大家講解一下 DDS 的工作原理。在講解之前,先來對其中各參數(shù)做一下說明。系統(tǒng)時鐘 CLK 為整個系統(tǒng)的工作時鐘,頻率為 fCLK;頻率字輸入 F_WORD,一般為整數(shù),數(shù)值大小控制輸出信號的頻率大小,數(shù)值越大輸出信號頻率越高,反之,輸出信號頻率越低,后文中用 K 表示;相位字輸入P_WORD,為整數(shù),數(shù)值大小控制輸出信號的相位偏移,主要用于相位的信號調制,后文用 P 表示;設輸出信號CLK_OUT,頻率為 fOUT。

圖中所展示的四大結構中,相位累加器是整個 DDS 的核心,在這里完成相位累加,生成相位碼。相位累加器的輸入為頻率字輸入 K,表示相位增量,設其位寬為 N,滿足等式K = 2N * fOUT / fCLK 。其在輸入相位累加器之前,在系統(tǒng)時鐘同步下做數(shù)據(jù)寄存,數(shù)據(jù)改變時不會干擾相位累加器的正常工作。相位調制器接收相位累加器輸出的相位碼, 在這里加上一個相位偏移值 P, 主要用于信號的相位調制, 如應用于通信方面的相移鍵控等, 不使用此部分時可以去掉, 或者將其設為一個常數(shù)輸入, 同樣相位字輸入也要做寄存。波形數(shù)據(jù)表 ROM 中存有一個完整周期的正弦波信號。假設波形數(shù)據(jù) ROM 的地址位寬為 12 位,存儲數(shù)據(jù)位寬為 8 位,即 ROM 有 212 = 4096 個存儲空間,每個存儲空間可存儲 1字節(jié)數(shù)據(jù)。將一個周期的正弦波信號,沿橫軸等間隔采樣 212 = 4096 次,每次采集的信號幅度用 1 字節(jié)數(shù)據(jù)表示,最大值為 255,最小值為 0。將 4096 次采樣結果按順序寫入 ROM的 4096 個存儲單元, 一個完整周期正弦波的數(shù)字幅度信號寫入了波形數(shù)據(jù)表 ROM 中。波形數(shù)據(jù)表 ROM 以相位調制器傳入的相位碼為 ROM 讀地址,將地址對應存儲單元中的電壓幅值數(shù)字量輸出。D/A 轉 換 器 將 輸 入 的 電 壓 幅 值 數(shù) 字 量 轉 換 為 模 擬 量 輸 出 , 就 得 到 輸 出 信 號CLK_OUT。輸出信號 CLK_OUT 的信號頻率 fOUT = K * fCLK / 2N。當 K = 1 時,可得 DDS 最小分辨率為: fOUT = fCLK / 2N,此時輸出信號頻率最低。根據(jù)采樣定理, K 的最大值應小于 2N /2。

對于 N 位的相位累加器,它對應的相位累加值為 2N,如果正弦 ROM 中存儲單元的個數(shù)也是 2N 的話,這個問題就很好解決,但是這對 ROM 的對存儲容量的要求較高。在實際操作中,我們使用相位累加值的高幾位對 ROM 進行尋址,也就是說并不是每個系統(tǒng)時鐘都對 ROM 進行數(shù)據(jù)取,而是多個時鐘讀取一次,因為這樣能保證相位累加器溢出時,從正ROM 表中取出正好一個正弦周期的樣點。因此,相位累加器每計數(shù) 2N 次,對應一個正弦周期。而相位累加器 1 秒鐘計數(shù) fCLK次,在 k=1 時, DDS 輸出的時鐘頻率就是頻率分辨率。頻率控制字 K 增加時,相位累加器溢出的頻率增加,對應 DDS 輸出信號 CLK_OUT 頻率變?yōu)?K 倍的DDS 頻率分辨率。

二、ROM 內波形數(shù)據(jù)寫入

1.MIF

我們設計的 DDS 簡易信號發(fā)生器想要實現(xiàn)正弦波、方波、三角波和鋸齒波 4 種波形的輸出,需要事先在波形數(shù)據(jù)表 ROM 中存入 4 種波形信號各自的完整周期波形數(shù)據(jù)。 ROM作為只讀存儲器,在進行 IP 核設置時需要指定初始化文件, 我們將波形數(shù)據(jù)作為初始化文件寫入其中,文件格式為 MIF 文件。使用 MatLab 繪制 4 種信號波形,對波形進行等間隔樣,以采樣次數(shù)作為 ROM 存儲地址,將采集的波形幅值數(shù)據(jù)做為存儲數(shù)據(jù)寫入存儲地址對應的存儲空間。
基于FPGA的簡易 DDS 信號發(fā)生器的設計

2.DDS 模塊參考代碼

代碼如下(示例):

//********************************************************************//
//fre_add:相位累加器
always@(posedge sys_clk or negedge sys_rst_n)
    if(sys_rst_n == 1'b0)
        fre_add <=  32'd0;
    else
        fre_add <=  fre_add + FREQ_CTRL;

//rom_addr:ROM讀地址
always@(posedge sys_clk or negedge sys_rst_n)
    if(sys_rst_n == 1'b0)
        rom_addr <= 14'd0;
    else
    case(wave_select)
        sin_wave:
            begin
                rom_addr_reg    <=  fre_add[31:20] + PHASE_CTRL;
                rom_addr        <=  rom_addr_reg;
            end     //正弦波
        squ_wave:
            begin
                rom_addr_reg    <=  fre_add[31:20] + PHASE_CTRL;
                rom_addr        <=  rom_addr_reg + 14'd4096;
            end     //方波
        tri_wave:
            begin
                rom_addr_reg    <=  fre_add[31:20] + PHASE_CTRL;
                rom_addr        <=  rom_addr_reg + 14'd8192;
            end     //三角波
        saw_wave:
        begin
                rom_addr_reg    <=  fre_add[31:20] + PHASE_CTRL;
                rom_addr        <=  rom_addr_reg + 14'd12288;
            end     //鋸齒波
        default:
            begin
                rom_addr_reg    <=  fre_add[31:20] + PHASE_CTRL;
                rom_addr        <=  rom_addr_reg;
            end     //正弦波
    endcase

//********************************************************************//

波形仿真

基于FPGA的簡易 DDS 信號發(fā)生器的設計文章來源地址http://www.zghlxwxcb.cn/news/detail-469334.html

到了這里,關于基于FPGA的簡易 DDS 信號發(fā)生器的設計的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 畢設分享|基于51單片機DDS信號發(fā)生器設計

    畢設分享|基于51單片機DDS信號發(fā)生器設計

    在電子通信技術日益發(fā)展的時代潮流下,直接式(DFS)和鎖相式(PLL)已經不能滿足生活和科研方面對于頻率技術的需求。經過科研人員的不斷攻堅下,直接數(shù)字頻率合成器(DDS)應運而生。它現(xiàn)在廣泛運用于移動通信、電子雷達、航天等方面。本次設計主要通過FPGA模塊+單片機最小

    2024年02月03日
    瀏覽(28)
  • DDS信號發(fā)生器Verilog波形發(fā)生器FPGA

    DDS信號發(fā)生器Verilog波形發(fā)生器FPGA

    名稱:DDS信號發(fā)生器Verilog波形發(fā)生器 軟件:Quartus 語言:Verilog 要求: ?1.可產生正弦波,鋸齒波,三角波,方波4種波形,頻率可調 ?2.具有波形選擇、起動、停止功能。 代碼下載:DDS信號發(fā)生器Verilog波形發(fā)生器_Verilog/VHDL資源下載 代碼網(wǎng):hdlcode.com 部分代碼展示 設計文檔

    2024年02月07日
    瀏覽(25)
  • FPGA實驗筆記_Vivado:DDS信號發(fā)生器;數(shù)碼管;基于DHT11的溫濕度傳感器

    FPGA實驗筆記_Vivado:DDS信號發(fā)生器;數(shù)碼管;基于DHT11的溫濕度傳感器

    目錄 1、 FPGA的DDS信號發(fā)生器 1.1、DDS簡介 1.2、ROM IP核的生成 1.3、波形數(shù)據(jù)的生成 1.4、 ROM的調用 1.5、 完整代碼(包括拓展部分) 2、數(shù)碼管顯示 2.1、數(shù)碼管簡要說明 2.2、SM410564 3、基于DHT11的溫濕度傳感器 3.1、DHT11 3.2、基本思路 3.3、數(shù)據(jù)分離模塊(BTD) 3.4、數(shù)據(jù)轉換模塊(

    2024年02月04日
    瀏覽(97)
  • 基于STC89C52RC芯片 高頻DDS信號發(fā)生器AD9851信號源方波正弦波系統(tǒng)設計

    基于STC89C52RC芯片 高頻DDS信號發(fā)生器AD9851信號源方波正弦波系統(tǒng)設計

    一開始是使用按鍵進行頻率輸出數(shù)值的增加或者減少,后改進成使用EC11調節(jié)輸出數(shù)值,使數(shù)值的輸出更加順滑流暢。 AD9851.c AD9851.h LCD12864.c LCD12864.h EC11.c EC11.h main.c

    2024年02月05日
    瀏覽(26)
  • 信號發(fā)生器:Intel FPGA DDS(NCO)+雙路DAC(AD9767)輸出正余弦信號

    信號發(fā)生器:Intel FPGA DDS(NCO)+雙路DAC(AD9767)輸出正余弦信號

    Quartus18.1 小梅哥AC620開發(fā)板+ACM9767模塊 示波器 ACM9767模塊使用的是ADI公司的AD9767芯片,14位CMOS 雙通道DAC,125Msps轉換率。 輸出形式為差分電流輸出,輸出電流滿量程范圍為可設置為 2~20mA。 AD9767的兩路DA輸出都為補碼形式的電流輸出IoutA和IoutB。當AD9767數(shù)字輸入為滿量程時(DAC的

    2024年03月24日
    瀏覽(19)
  • 基于vivado DDS ip核的DDS信號發(fā)生器(可調頻調相)

    基于vivado DDS ip核的DDS信號發(fā)生器(可調頻調相)

    基于Vivado DDS ip核的DDS信號發(fā)生器: 在Vivado軟件中調出DDS ip核進行設置,很多參數(shù)可以參考xilinx官方手冊,比較重要的是System Clock系統(tǒng)時鐘和Phase Widh相位寬度的設置,這是最終得到波形的頻率和相位所需要的基礎參數(shù),在這里我分別設置為50Mhz和16bit。 在implementation頁面設置頻

    2024年02月12日
    瀏覽(18)
  • 【畢業(yè)設計—DDS信號發(fā)生器】Quartus II 軟件新建工程

    【畢業(yè)設計—DDS信號發(fā)生器】Quartus II 軟件新建工程

    大學四年的時間轉瞬即逝,2023年我將迎來我的本科畢業(yè)。為了記錄自己的研究進展,我將在這兒分享我的畢業(yè)設計進度~~博客涉及的知識點,如有不對,歡迎大家及時糾正,共同進步! 我安裝的是Quartus II 13.1 版本。 1.在電腦D磁盤下新建一個文件夾【DDS】,然后分別新建4個子

    2024年02月03日
    瀏覽(18)
  • 基于AD9767高速DAC的DDS信號發(fā)生器(Verilog&Vivado)

    基于AD9767高速DAC的DDS信號發(fā)生器(Verilog&Vivado)

    基于AD9767高速DAC的DDS信號發(fā)生器 提示:以下是本篇文章正文內容,下面案例可供參考 1.做一個雙通道的信號發(fā)生器; 2.簡單調整每個通道的頻率輸出; 3.能夠調整每個通道的輸出相位; 4.能夠輸出正弦波,三角波,方波。 代碼如下(示例): 代碼如下(示例): 【附件:】

    2024年02月06日
    瀏覽(56)
  • FPGA學習任意波函數(shù)信號發(fā)生器的設計(基于quartus II13.0)

    FPGA學習任意波函數(shù)信號發(fā)生器的設計(基于quartus II13.0)

    平臺: quartus II 13.0 仿真:signal tap II 語言:VHDL 方式:原理圖bdf輸入 芯片:Cyclone IV E: EP4CE6E22C8 設計一任意波函數(shù)信號發(fā)生器,具備以下兩功能: ①能輸出標準正弦波波形。 ②能輸出任意函數(shù)波形。 首先明確實驗用到的宏模塊操作是在tool——MeGaWizard Plug-In Manager中(如下圖)

    2024年02月03日
    瀏覽(45)
  • 基于STM32單片機和AD9850的智能DDS函數(shù)信號發(fā)生器

    基于STM32單片機和AD9850的智能DDS函數(shù)信號發(fā)生器

    CSDN話題挑戰(zhàn)賽第2期 參賽話題:學習筆記 有一天,我在瀏覽CSDN時看到一篇關于 AD9850 的帖子。AD9850是一款可以產生1hz到40mhz左右正弦波的芯片。淘寶的產品經銷商能夠將芯片與提供 TTL 電平控制的小板配對,然后以令人難以置信的 60元(或更低?。┑膬r格出售。 要控制 AD985

    2024年02月13日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包