衡阳派盒市场营销有限公司

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

如何寫一個簡易AM信號的FPGA實現(xiàn)?

FPGA之家 ? 來源:bug記錄 ? 作者:bug記錄 ? 2021-03-29 11:40 ? 次閱讀

前幾天,臨危受命,幫幾個初學(xué)者的學(xué)生寫一個簡易AM信號FPGA實現(xiàn),以幫助他們搭建一個相對完整的系統(tǒng),測試他們的低速ADC,高速DAC,AGC控制等等模塊。本文的FPGA代碼已經(jīng)經(jīng)過上板測試,由于時間緊急沒有保存圖片,所以文章只有仿真圖片。

首先,為什么是AM信號的調(diào)制過程,是因為在短時間情況下,AM信號的實現(xiàn)相對簡單,而且上述提到的幾個模塊都可以得到使用和驗證。因為FPGA的價格因素,做課設(shè)/比賽使用最多的還是Altera的Cyclone系列板。所以,本文使用Quartus II 13.1 作為Verilog代碼綜合實現(xiàn)工具。AM信號調(diào)制過程就不做過多介紹了,簡單來說,就是基帶信號和一個直流信號相加,然后與載波相乘。那么,在實現(xiàn)過程中,做了些許改變,先讓基帶信號與載波相乘,然后將截位后的信號與載波相加。如果想要實現(xiàn)更精細(xì)的AM信號調(diào)制(變更調(diào)制深度等參數(shù)),可以修改這個地方的先后順序。AM公式表達(dá)如下:

為直流信號,是基帶信號,是載波信號。

9f5cb222-8ecc-11eb-8b86-12bb97331649.png

實現(xiàn)過程如上圖,頂層文件使用BSF文件,更為直觀。由上圖可以看出,基帶信號和載波信號是由NCO(DDS)產(chǎn)生,在上板驗證中,低頻部分的NCO被刪去,由低速ADC采樣外部信號替換這部分的低頻信號。所以在剛開始搭建模塊時,低速NCO輸出信號位寬就兼容了低速ADC的16位位寬。根據(jù)資料1可得,Altera提供的NCO是根據(jù)32位輸入信號phi_inc_i而輸出對應(yīng)的頻率的正弦波。公式為:

是NCO預(yù)設(shè)輸出正弦波頻率,是輸入時鐘頻率,是NCO的相位精度。這里的設(shè)置是32位。NCO(DDS)的本質(zhì)是ROM表,ROM表存儲著正弦波的波形數(shù)據(jù),相位精度代表波形數(shù)據(jù)的多少。根據(jù)phi_inc_i累加地址,ROM根據(jù)地址輸出波形數(shù)據(jù),最后數(shù)據(jù)計算如下。

基帶載波

頻率(MHz)0.110

phi_inc_i8589935858993459

然后讓基帶和載波信號相乘,使用LPM_MULT IP核,設(shè)置好位寬,數(shù)據(jù)類型設(shè)為“signed”,設(shè)置流水線(增加clock),延遲設(shè)為1,便于后續(xù)通過時序檢查。相乘輸出信號位寬為32位,保險起見我們只截取最高位的符號位,再截取低位的數(shù)據(jù)。但是經(jīng)過上板測試和仿真,符號位實際上有很多位。當(dāng)然,這部分可以將符號位進(jìn)行優(yōu)化,或者設(shè)置一個模塊,根據(jù)輸入的參數(shù)輸出不一樣的截位信號,相當(dāng)于在調(diào)整調(diào)制深度。同時,將載波信號延遲一個周期,與乘法器延遲一周期的信號做好時序?qū)R,然后經(jīng)過LPM_ADD_SUB IP核的加法運算;同樣,LPM_ADD_SUB IP核設(shè)置好輸入信號位寬,數(shù)據(jù)類型設(shè)為“signed”,設(shè)置流水線,延遲設(shè)為1。最后輸出的信號就可以經(jīng)過高速DAC輸出。整個調(diào)制過程就結(jié)束了。仿真結(jié)果:

9fc47e16-8ecc-11eb-8b86-12bb97331649.png

最后思考,可以在加法器和乘法器增加一個enable端口,IP核可以增加這個輸入信號;如果先加再乘,由于直流信號一般不會變動,使能信號可以等待每次低速ADC或低速NCO數(shù)值更新再拉高一次;乘法器也可以使用使能信號控制,這樣的話性能可能沒有變化,功耗或許可降低些。此外,使用VCS仿真NCO的nco.vo文件時,一直遇到一個問題,報錯如下:

a01b5a88-8ecc-11eb-8b86-12bb97331649.png

大概是說NCO生成的4個hex文件有問題,但是使用modelsim就沒這個問題了。

原文標(biāo)題:簡易AM信號調(diào)制的FPGA實現(xiàn)過程簡單講解

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

責(zé)任編輯:haq

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

    關(guān)注

    1630

    文章

    21798

    瀏覽量

    606064
  • 加速器
    +關(guān)注

    關(guān)注

    2

    文章

    807

    瀏覽量

    38093

原文標(biāo)題:簡易AM信號調(diào)制的FPGA實現(xiàn)過程簡單講解

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

收藏 人收藏

    評論

    相關(guān)推薦

    ADS8361 fpga如何實現(xiàn)

    ADS8361項目中用到ADS8361,Verilog或者vhdl語言怎么實現(xiàn)對ad的讀寫?? ADS8361的誤差有多少?我用FPGA的誤差有30mv,什么原因?求賜教
    發(fā)表于 01-20 06:15

    文讀懂BOM管理(下):BOM結(jié)構(gòu)/實例,PLM中的BOM管理

    BOM管理進(jìn)階:如何寫BOM結(jié)構(gòu)?怎樣開始BOM管理?
    的頭像 發(fā)表于 11-13 15:19 ?673次閱讀
    <b class='flag-5'>一</b>文讀懂BOM管理(下):BOM結(jié)構(gòu)/實例,PLM中的BOM管理

    使用FPGA構(gòu)建ADAS系統(tǒng)簡易過程

    之前已經(jīng)介紹過《FPGA在汽車電子中應(yīng)用-ADAS》,但是很多人留言說是沒有相關(guān)例程,應(yīng)用不夠直觀,所以,今天他來了-使用FPGA制作便攜式 ADAS 系統(tǒng)(源碼開源)。
    的頭像 發(fā)表于 11-05 09:19 ?336次閱讀

    【AG32開發(fā)板體驗連載】簡易邏輯分析儀

    非常感謝電子發(fā)燒友和AGM提供的這次測評機會。之前也了解過AGM家的MCU+FPGA,覺得肯定很強大,但是直沒有機會使用到。這次終于有機會了。 項目計劃 本次測評計劃基于AG32開發(fā)板設(shè)計
    發(fā)表于 10-04 21:50

    如何實現(xiàn)FPGA的IO輸出脈沖信號放大?

    高速的MOS開關(guān)管控制,產(chǎn)生這樣的波形。FPGA輸出的TTL電平不能直接驅(qū)動MOS開關(guān)管,因此前級可以通過三極管驅(qū)動。 請教大家這個方案可行嗎,如果可行,請教器件該如何選取。或者有其他的方案可以
    發(fā)表于 09-13 08:13

    如何用FPGA實現(xiàn)通信系統(tǒng)的發(fā)射端接收機?

    實現(xiàn)通信系統(tǒng)(5GHz 頻段,通信距離約 10km)的發(fā)射端和接收機的大致步驟: 發(fā)射端: 數(shù)字信號生成:使用 FPGA 內(nèi)部的邏輯資
    發(fā)表于 09-10 19:15

    用AD630做了簡易的鎖相放大器,如何才算成功的把信號提取出來?

    我用AD630做了簡易的鎖相放大器。前置放大為100倍,輸入信號為30uv的正弦波,最后經(jīng)過低通后的信號大約3mv的直流
    發(fā)表于 09-09 06:54

    AM243x/AM64x單芯片伺服電機控制實現(xiàn)和基準(zhǔn)測試

    電子發(fā)燒友網(wǎng)站提供《AM243x/AM64x單芯片伺服電機控制實現(xiàn)和基準(zhǔn)測試.pdf》資料免費下載
    發(fā)表于 09-04 10:35 ?0次下載
    <b class='flag-5'>AM</b>243x/<b class='flag-5'>AM</b>64x單芯片伺服電機控制<b class='flag-5'>實現(xiàn)</b>和基準(zhǔn)測試

    FPGA輸出1GHz的數(shù)字信號,需要buffer,要怎么實現(xiàn)

    我這邊FPGA輸出1GHz的數(shù)字信號,需要buffer。我看TI的高速運放(如LMH3401)都是差分輸入輸出的,請問能不能配置成單端輸入輸出?或者有其它方案推薦也可以。
    發(fā)表于 08-21 07:57

    使用FPGA產(chǎn)生5MHz的時鐘信號,怎樣把脈沖信號疊加到時鐘信號上?

    我使用FPGA產(chǎn)生5MHz的時鐘信號,0V-3.3V。為了測試產(chǎn)品的穩(wěn)定性,需要在這個時鐘信號的低電平位置疊加
    發(fā)表于 08-19 07:18

    FPGA異步信號處理方法

    FPGA(現(xiàn)場可編程門陣列)在處理異步信號時,需要特別關(guān)注信號的同步化、穩(wěn)定性以及潛在的亞穩(wěn)態(tài)問題。由于異步信號可能來自不同的時鐘域或外部設(shè)備,其到達(dá)時間和頻率可能不受
    的頭像 發(fā)表于 07-17 11:10 ?1280次閱讀

    FM調(diào)制和AM調(diào)制的區(qū)別有哪些

    AM調(diào)制是種將信息(如音頻信號)通過改變載波信號的幅度來傳輸?shù)募夹g(shù)。在AM調(diào)制中,載波的頻率和相位保持不變,只有幅度隨調(diào)制
    的頭像 發(fā)表于 05-30 15:17 ?2651次閱讀

    基于FPGA 的DDS正弦信號發(fā)生器的設(shè)計和實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于FPGA 的DDS正弦信號發(fā)生器的設(shè)計和實現(xiàn).pdf》資料免費下載
    發(fā)表于 03-24 09:34 ?8次下載

    fpga仿真文件怎么

    首先,你需要選擇FPGA仿真軟件,如ModelSim、Vivado、Quartus II等。這些軟件都提供了強大的仿真功能,可以幫助你驗證FPGA設(shè)計的正確性。
    的頭像 發(fā)表于 03-15 14:00 ?894次閱讀

    FPGA向FX3數(shù)據(jù)的過程中遇到了些問題求解

    你好我在做FPGA向FX3數(shù)據(jù)的過程中遇到了些問題想要明確下: (緩沖區(qū)的大小設(shè)置為16kB,數(shù)據(jù)總線位寬為32位,水印值為6) 1、如果以16kB為單位
    發(fā)表于 02-28 07:45
    百家乐预测和局| 闲和庄百家乐官网娱乐场| 澳门百家乐官网技巧| 高档百家乐官网桌| 无锡百家乐官网的玩法技巧和规则| 澳门百家乐官网必赢看| 网上百家乐作弊下载| 百家乐程序开户发| 大发888棋牌| 南开区| 澳门百家乐官网常赢打法| 百家乐官网家乐娱乐城| 百家乐合理的投注法| 联合百家乐的玩法技巧和规则| 大发888老虎机手机版| 永泰县| 女神百家乐官网娱乐城| 澳门百家乐游戏皇冠网| 真人百家乐官网视频| 百家乐注码投注论坛| 百家乐群lookcc| 华阴市| 至尊百家乐官网20130402| 大西洋百家乐官网的玩法技巧和规则 | 利博亚洲| 合乐8百家乐官网娱乐城| 太阳城百家乐杀猪吗| 顶级赌场下载| 百家乐官网买闲打法| 欢乐博百家乐娱乐城| 皇廷娱乐| 百家乐官网在线娱乐场| 百家乐透视牌靴价格| 老虎机批发| 百家乐官网玩法的技巧| 转载24山五行相克| 大发888dafa8668| 百家乐官网投注之对冲投注| 永利博百家乐现金网| 1737棋牌游戏中心| 广东百家乐官网主论坛|