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

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

3天內不再提示

FSK調制技術的MATLAB與FPGA設計

FPGA設計論壇 ? 來源:CSDN技術社區(qū) ? 作者:FPGADesigner ? 2022-04-26 13:12 ? 次閱讀

FSK調制

FSK是利用載波的頻率表示基帶信息,比如在2FSK系統(tǒng)中,采用單頻信號f1表示信息0、單頻信號f2表示信息1。根據碼元轉換時載波的相位是否連續(xù),分為非連續(xù)相位FSK和連續(xù)相位FSK,如下圖所示:

ed9ac034-c515-11ec-bce3-dac502259ad0.jpg

第三幅圖為連續(xù)相位FSK調制,也稱作CPFSK,可視作振蕩頻率隨基帶信號線性變化;第四幅圖為非連續(xù)相位FSK,在碼元轉換時有一個相位的跳變,可視作兩個ASK調制信號的疊加。

FSK的一個重要參數是頻移指數h=(f2-f1)*T,T為碼元周期。該參數影響著兩個單頻信號之間的相關系數ρ。ρ越小,越容易將兩個信號區(qū)分開,即解調系統(tǒng)的解調性能越好。h的幾個特殊取值如下:

當h=0.715時,ρ可以取到最小值-2π/3;

當h=kπ(k≥1)時,ρ為0,即兩信號正交;

當h=N(整數)時,FSK總是會體現出連續(xù)相位特性。

調制信號的頻譜與相位變化息息相關,如果存在相位突變,信號頻譜寬度會擴展(產生旁瓣)。CPFSK是一種恒包絡調制技術,在碼元速率和h相同時,CPFSK比非連續(xù)相位的FSK主瓣寬度更窄,且旁瓣分量更小,通過限帶濾波后信號包絡起伏小,適合應用于非線性信道。

MATLAB設計

MATLAB中可以按照FSK原理完成FSK調制,但是只能產生非連續(xù)相位的FSK調制信號(除非h=1)。如果想要產生連續(xù)相位的FSK調制信號,必須使用MATLAB提供的fskmod函數,示例代碼如下:

edb6e4c6-c515-11ec-bce3-dac502259ad0.png

上面將代表0和1兩個頻率之間的間隔直接設置為8,也可以根據頻移指數h的計算公式來設定。fskmod最后還可以增加一個參數,默認值為’cont’表示連續(xù)相位;’discont’表示非連續(xù)相位。

需要注意的是,老版本的MATLAB可能會用到randint函數產生隨機序列;而2017以后的版本只能使用randi函數。

FSK的FPGA設計

在Vivado開發(fā)環(huán)境下完成2FSK(非連續(xù)相位)調制技術的設計并進行仿真,系統(tǒng)時鐘32Mhz,碼元速率1Mhz,載波頻率6Mhz,頻移指數h=3.5。模塊接口如下:

edd0128e-c515-11ec-bce3-dac502259ad0.png

配置兩個DDS產生兩個代表1和0的單頻信號。f2-f1=h/T=3.5/1ns=3.5Mhz,則在6Mhz載波頻率的基礎上選擇4.25Mhz和7.75MHz。DDS Compiler IP核使用方法可參考https://blog.csdn.net/fpgadesigner/article/details/80512067。本設計將DDS的無雜散動態(tài)范圍設置為95dB,對應的位寬為16bit。實例化代碼如下:

ede74878-c515-11ec-bce3-dac502259ad0.png

FSK調制信號的產生有兩種方法。第一種方法將FSK視作兩路ASK信號的合成(一路ASK有載波代表1,一路ASK無載波代表1),代碼如下:

edfb4940-c515-11ec-bce3-dac502259ad0.png

采用此方法的系統(tǒng)原理圖如下:

ee105498-c515-11ec-bce3-dac502259ad0.jpg

可以看到一路ASK信號為din與f1的乘法,另一路信號為din取反后與f2的乘法,兩路加起來便得到FSK調制信號。另一種方法直接使用多路選擇器對輸入的基帶數據進行判決輸出:

ee3109d6-c515-11ec-bce3-dac502259ad0.png

采用此方法的系統(tǒng)原理圖如下:

RTL_MUX即為多路選擇器,明顯第二種方法更加節(jié)省資源。

CPFSK的FPGA設計

連續(xù)相位的FSK調制信號產生可以借助DDS的特性,DDS的實現原理就使其輸出信號具有連續(xù)相位特性,即使頻率突然改變。配置一個DDS,Implementation->Phase Increment Programmability設置為Streaming,可以通過S_AXIS_PHASE接口動態(tài)配置DDS的輸出頻率。完整代碼如下:

ee470114-c515-11ec-bce3-dac502259ad0.png

DDS的頻率分辨率設置為976.5625Hz,正好對應相位位寬為15Bits(Fs/2^B=32MHz/2^15=976.5625Hz)。因此f1=4.25MHz對應的頻率控制字為4351(f1/976.5625-1=4351);f2=7.75MHz對應的頻率控制字為7935(f2/976.5625-1=7935)。

代碼中根據輸入基帶的情況設定對應的頻率控制字。可見CPFSK只需要使用一個DDS Compiler IP核即可,比FSK要節(jié)省不少資源。

仿真測試

編寫testbench,產生一個周期信號模擬二進制基帶數據。首先仿真非連續(xù)相位的FSK:

ee69f8d6-c515-11ec-bce3-dac502259ad0.jpg

可以明顯看到在碼元的跳變時刻FSK信號的相位有明顯的突變。再仿真CPFSK:

ee82f714-c515-11ec-bce3-dac502259ad0.jpg

看到碼元跳變時刻FSK信號的相位仍保持連續(xù)變化。注意由于DDS有一定的Latency,導致上圖FSK信號相比基帶數據有一定的延遲。

Quartus環(huán)境下實現

Quartus中對應的IP核為NCO,在產生FSK信號時與DDS用法基本相同;但在產生CPFSK信號時,NCO IP核有獨特的配置方式。

NCO的輸出頻率由phi_inc_i接口控制。需要使用FSK調制功能時,在Implementation標簽下選中“Frequency Modulation Input”:

ee9e0572-c515-11ec-bce3-dac502259ad0.jpg

IP核會多出一個freq_mod_i接口,該接口的作用時在phi_inc_i輸出頻率的基礎上進行調整。比如:頻率控制字位寬為25Bits,phi_inc_i輸出頻率6Mhz,系統(tǒng)時鐘32MHz,需要輸出f1=4.25Mhz,則freq_mod_i對應的控制字為(4.25Mhz-6MHz)/(32Mhz/2^25)=-1835008。

根據基帶數據改變freq_mod_i接口的控制字即可實現CPFSK信號的產生。

原文標題:FPGA學習-FSK調制技術

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

審核編輯:湯梓紅

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

    關注

    1629

    文章

    21736

    瀏覽量

    603419
  • matlab
    +關注

    關注

    185

    文章

    2976

    瀏覽量

    230483
  • FSK調制
    +關注

    關注

    0

    文章

    7

    瀏覽量

    7834

原文標題:FPGA學習-FSK調制技術

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

收藏 人收藏

    評論

    相關推薦

    FSK調制工作原理

    0用不發(fā)射載波表示,二進制1用發(fā)射1表示。 ASK跟OOK的頻譜都比較寬。 FSK是頻移鍵控調制的簡寫,即用不同的頻率來表示不同的符號。例如2KHz表示符號0,3KHz表示符號1。 GFSK是高斯
    發(fā)表于 03-27 14:38

    【資料分享】基于FPGAFSK調制解器器設計

    的2FSK信號調制解調器,利用m序列的隨機性和確定性來產生輸入基帶信號,用分頻器把時鐘信號分頻成兩個不同頻率的信號。詳細介紹了基于FPGA的2FSK信號發(fā)生器的設計方法,提供了VHDL
    發(fā)表于 03-20 16:54

    怎樣用FPGA實現FSK調制解調呢?

    最近想做這方面的,怎樣用FPGA實現FSK調制解調?但是我一點頭緒都沒有,哪位高手幫幫忙,講解一下什么的
    發(fā)表于 04-06 14:29

    怎樣用FPGA實現FSK調制解調呢?

    最近想做這方面的,怎樣用FPGA實現FSK調制解調?但是我一點頭緒都沒有,哪位高手幫幫忙,講解一下什么的
    發(fā)表于 05-08 17:34

    什么是fsk調制? fsk調制是什么意思?

    什么是fsk調制fsk調制是什么意思? 數字調頻又稱移頻鍵控,簡記為FSK,它是載波頻率隨數字信號而變化的一種
    發(fā)表于 04-21 13:13 ?2.3w次閱讀

    fsk調制電路

    fsk調制電路 本圖是由74LS74等構成的FSK調制電路。這種頻移鍵控(FSK)調制電路既沒
    發(fā)表于 04-22 00:24 ?8405次閱讀
    <b class='flag-5'>fsk</b><b class='flag-5'>調制</b>電路

    FSK調制和電力線接口電路

    FSK調制和電力線接口電路
    發(fā)表于 02-26 22:30 ?734次閱讀
    <b class='flag-5'>FSK</b><b class='flag-5'>調制</b>和電力線接口電路

    基于CORDIC算法2FSK調制器的FPGA設計

    本文提出了應用CORDIC(Coordinate Rotation Digital Computer)算法實時計算正弦值的方案,并基于CORDIC算法在FPGA芯片上設計了2FSK調制器。這不僅能夠節(jié)省大量的
    發(fā)表于 05-31 10:22 ?1809次閱讀
    基于CORDIC算法2<b class='flag-5'>FSK</b><b class='flag-5'>調制</b>器的<b class='flag-5'>FPGA</b>設計

    基于DDS與FPGAFSK調制方式

    在傳統(tǒng)的 FSK 調制方式中, 兩個載波頻率轉換期間, 已調信號存在相位和頻率突變, 造成系統(tǒng)頻帶利用率不高和信號頻譜衰減太慢。用DDS 進行標準FSK 調制, 可使其相位連續(xù), 但由
    發(fā)表于 08-04 15:16 ?72次下載
    基于DDS與<b class='flag-5'>FPGA</b>的<b class='flag-5'>FSK</b><b class='flag-5'>調制</b>方式

    FPGA實現2FSK數字信號調制解調

    基于FPGA調制和解調的數字信號有多種,包括2ASK、2FSK、2PSK等,文中介紹了2FSK信號的調制與解調,以及該信號的功率譜。最后提
    發(fā)表于 03-23 11:17 ?400次下載
    <b class='flag-5'>FPGA</b>實現2<b class='flag-5'>FSK</b>數字信號<b class='flag-5'>調制</b>解調

    基于MATLAB的simulink仿真2Fsk調制解調

    基于MATLAB的simulink仿真2Fsk調制解調
    發(fā)表于 11-12 10:36 ?33次下載

    一文看懂MSK調制FSK調制的區(qū)別和聯(lián)系

    本文開始闡述了MSK調制的基本原理,其次介紹了FSK調制的基本原理,最后介紹了MSK調制FSK調制
    的頭像 發(fā)表于 04-16 08:44 ?8.1w次閱讀
    一文看懂MSK<b class='flag-5'>調制</b>與<b class='flag-5'>FSK</b><b class='flag-5'>調制</b>的區(qū)別和聯(lián)系

    FSK信號的調制原理 FSK調制信號的FPGA實現

    1、FSK信號的調制原理 數字頻率調制是利用載波的頻率傳輸信息的一種調制方式,FSK是在ASK之后出現的一種
    的頭像 發(fā)表于 09-28 15:01 ?6.4w次閱讀
    <b class='flag-5'>FSK</b>信號的<b class='flag-5'>調制</b>原理 <b class='flag-5'>FSK</b><b class='flag-5'>調制</b>信號的<b class='flag-5'>FPGA</b>實現

    FSK調制解調方法簡析

    FSK通信系統(tǒng)主要由基帶數據生成模塊(pcm.v)、FSK調制模塊(fsk_mod.v) 、FSK解調模塊(
    的頭像 發(fā)表于 03-31 09:07 ?5059次閱讀

    fsk調制解調原理 Fsk調制體制的主要優(yōu)點

    FSK調制和解調是一種常用的調制解調技術,其中FSK代表頻移鍵控。在FSK
    的頭像 發(fā)表于 02-03 14:28 ?3799次閱讀