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

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

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

基于FPGA的OFDM調制器設計

CHANBAEK ? 來源:哈勒昆 ? 作者:小哈 ? 2023-07-23 11:48 ? 次閱讀

今天介紹的是使用FPGA做OFDM的調制。

圖片

首先是OFDM調制的原理圖,輸入數(shù)據(jù)在輸入系統(tǒng)后首先會經(jīng)過擾碼環(huán)節(jié),在數(shù)字通信中數(shù)據(jù)中長連的“0”或“1”序列會對接收機的位同步產(chǎn)生重要影響,通過對要發(fā)送的數(shù)據(jù)進行擾碼操作,可以解決其對接收機同步的影響。擾碼器的實質是一個反饋的移位寄存器,輸出結果是一個m序列,將輸出的m序列域輸入的數(shù)據(jù)進行異或運算,從而將輸入的數(shù)據(jù)攪亂。

擾碼模塊根據(jù)使用的生成多項式完成對輸入數(shù)據(jù)的擾碼操作。這里使用的擾碼器是通過一個7位的反饋移位寄存器來實現(xiàn)的,使用的擾碼器生成多項式為:

image.png

圖片

上圖為擾碼器的硬件實現(xiàn)結構圖,該擾碼器輸出序列的周期為127,首先將擾碼器的初始值設置為1011101,每來一個時鐘周期將擾碼器的值右移一位,同時將第七位和第四位進行異或運算,將異或的結果作為最低位的值。同時也將得到的結果和輸入的數(shù)據(jù)分別進行異或運算,從而實現(xiàn)對輸入數(shù)據(jù)的擾碼操作。

擾碼器程序如下所示:

圖片

圖片

s_start為啟動信號,s_coder為7位移位寄存器,s_yz為第七位和第四位異或后的結果,當時在程序中因為順序問題我寫的是s_coder[0]和s_coder[3]。s_out為移位寄存器s_coder[0]的輸出,data_in為輸入數(shù)據(jù),data_out為輸入數(shù)據(jù)data_in與移位寄存器輸出s_out異或運算的結果,即為擾碼后的輸出。

這里因為我沒做解調所以省去了信道編碼部分,在需要添加冗余的部分我才用補零來進行補充。

對于64QAM調制,如下圖所示為64QAM調制原理圖

圖片

這里的2到8電平轉換即為星座映射(8電平為-1,-3,-5,-7,1,3,5,7)。

對于64QAM的星座圖,星座圖中每一個點都由6bit數(shù)據(jù)表示,所以在程序中每6bit數(shù)據(jù)映射一次,下圖為verilog仿真圖。

圖片

圖片

圖片

s_start為起始信號,data_in為擾碼之后的輸入64QAM調制的信號data_index為存儲輸入的6bit數(shù)據(jù),cnt為計數(shù)器,data_index每輸入一個數(shù)據(jù)cnt自加一次;index為計算6bit數(shù)據(jù)后對應的映射狀態(tài),data_i和data_q為根據(jù)(index)的映射結果I/Q信號。這里我是根據(jù)狀態(tài)機來寫的,index為6bit信號的計算結果,然后根據(jù)index的大小來描寫狀態(tài)機進行映射。最后將data_i和data_q的結果存儲到fifo中,即圖中的data_fifo_in。

在FPGA上已經(jīng)完成了星座映射后將I、Q信號送入fifo中存儲,然后通過RAM地址進行加冗余以及添加導頻,從而將一個OFDM符號中星座映射后的48個數(shù)據(jù)增加至128個數(shù)據(jù),數(shù)據(jù)都寫入RAM,然后通過地址讀取RAM中的數(shù)據(jù)送入IFFT變換的輸入端口,以及正常輸出,在FPGA上實現(xiàn)頻域至時域的轉換。

下圖中data_i和data_q為星座映射后得到I、Q數(shù)據(jù),data_fifo_in為寫入fifo的數(shù)據(jù),由圖二可以看出,data_fifo_in的前八位為data_i,data_fifo_in的后八位為data_q。

圖片

下圖便是將數(shù)據(jù)寫入RAM,并通過地址讀寫增加冗余以及插入導頻。rd_en為讀取fifo數(shù)據(jù)使能,data_fifo_out為讀取的fifo數(shù)據(jù)。ram_en為RAM使能,ram_wea為高電平時向RAM中寫入數(shù)據(jù),ram_wea為低電平時向RAM中讀取數(shù)據(jù),ram_addr為寫入/讀取數(shù)據(jù)的地址。data_ram_in為寫入ram中的數(shù)據(jù),增加的冗余為前38個寫入的數(shù)據(jù)為0以及后37個寫入數(shù)據(jù)為0。中間插入四個導頻。

在前38個寫入數(shù)據(jù)0后便開始寫入fifo中的數(shù)據(jù),在地址為37時(0~37)打開fifo的讀使能(rd_en),此時將fifo輸出端(data_fifo_out)數(shù)據(jù)賦值給RAM寫入端(data_ram_in)。圖中的ram_addr為43時寫入的數(shù)據(jù)為導頻符號,在這里導頻符號我是通過類似于m序列的擾碼器來進行產(chǎn)生的。

圖片

導頻的產(chǎn)生:

需要插入的4個導頻符號分別為1,1,1,-1。OFDM數(shù)據(jù)中插入的導頻符號并不都是一樣的,需要根據(jù)公式對插入的導頻符號的極性進行改變,這里我用的改變導頻符號極性的公式為s(x)=x7+x4+1。

公式的實質是一個擾碼器,首先將擾碼器的初始狀態(tài)設置為1111111,根據(jù)擾碼器的輸出結果對導頻符號的極性進行修改,若擾碼器的輸出結果為0,則導頻符號的極性不變,若擾碼器的輸出結果為1,則對導頻符號的極性進行修改,修改規(guī)則為1 -> -1,-1 -> 1。

圖七為導頻產(chǎn)生數(shù)據(jù)波形圖,其中data_m為擾碼器序列,初始狀態(tài)為1111111,每當需要插入導頻時m_start便會使能置1,根據(jù)m_start可以看出圖中一個OFDM符號中共插入四個導頻。p寄存器中便是存放的四個原始導頻數(shù)據(jù),01表示導頻1,11表示導頻-1。data_m_out便是最終插入OFDM符號的導頻數(shù)據(jù),即寫入ram中的導頻數(shù)據(jù)。

圖片

ifft變換:

在數(shù)據(jù)都在RAM中存好之后便是將ram中的數(shù)據(jù)送入IFFT變換的輸入端口,此時將ram的ena使能端置為高電平ram的wea置為低電平,開始讀取ram中的數(shù)據(jù)。如下圖所示,ram的ena為高,ram的wea為低,ram數(shù)據(jù)輸出端為douta開始輸出數(shù)據(jù)。

圖片

這里OFDM一次傳輸128個數(shù)據(jù),在星座映射后為48個數(shù)據(jù),插入四個導頻后為52個數(shù)據(jù),這里選擇通過補零來添加冗余,如下圖所示。

圖片

在上圖中,ifft_s_data_tdata為ifft變換的輸入端口,ifft_s_data_tvalid為輸入使能,ifft_s_data_tvalid為高時輸入ifft_s_data_tdata的數(shù)據(jù)才有效。

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

    關注

    1624

    文章

    21538

    瀏覽量

    600459
  • ofdm
    +關注

    關注

    6

    文章

    348

    瀏覽量

    56954
  • 接收機
    +關注

    關注

    8

    文章

    1170

    瀏覽量

    53320
  • 調制器
    +關注

    關注

    3

    文章

    826

    瀏覽量

    45049
收藏 人收藏

    評論

    相關推薦

    一種基于相位調制器的40 GHz OFDM-ROF系統(tǒng)實驗研究

    【作者】:李支蘭;曹子崢;董澤;陳林;【來源】:《光電子.激光》2010年03期【摘要】:實驗研究了一種基于相位調制器(PM)并級聯(lián)強度調制器(IM)實現(xiàn)40 GHz毫米波傳輸正交頻分復用(OFDM
    發(fā)表于 04-23 11:32

    請問FM調制器FPGA實現(xiàn)

    求助FM調制器FPGA實現(xiàn),對FPGA這些完全不了解,在網(wǎng)上看可以用DDS技術實現(xiàn)FM的數(shù)字調制,就在書上按照步驟先做了產(chǎn)生正弦波分頻模塊尋址模塊數(shù)據(jù)存儲模塊,但編譯不能通過,也不知
    發(fā)表于 03-16 11:43

    ∑-△調制器的設計原理是什么?怎么實現(xiàn)FPGA?

    ∑-△調制頻率合成器及其實現(xiàn)∑-△調制器原理設計∑-△調制器FPGA實現(xiàn)
    發(fā)表于 04-15 06:47

    QPSK高性能數(shù)字調制器FPGA實現(xiàn)

    本文提出了一種QPSK 高性能數(shù)字調制器FPGA 實現(xiàn)方案,由Altera 的IP 核NCO2.3.0 提供QPSK高穩(wěn)定度的數(shù)字正弦信號,給出了QPSK 的實驗仿真結果。結果表明,基于NCO 的QPSK 數(shù)字調制器極大
    發(fā)表于 09-26 08:56 ?43次下載

    QPSK調制器FPGA實現(xiàn)

    提出了一種基于FPGA 實現(xiàn)QPSK 調制器的方法。以FPGA 實現(xiàn)DDS,通過對DDS 信號輸出相位的控制實現(xiàn)調相。仿真結果表明方案是可行的。
    發(fā)表于 12-18 11:57 ?66次下載

    電光調制器,電光調制器工作原理是什么?

    電光調制器,電光調制器工作原理是什么? 電光調制器是利用某些晶體材料在外加電場的作用下所產(chǎn)生的電光效應而制成的器件。常用的有兩種方
    發(fā)表于 04-02 15:50 ?2.1w次閱讀

    基于FPGA的QDPSK調制器的設計

    介紹了QDPSK信號的優(yōu)點,并分析了其實現(xiàn)原理,提出一種QDPSK 高性能數(shù)字調制器FPGA實現(xiàn)方案。采用自頂向下的設計思想,將系統(tǒng)分成串/并變換、差分編碼、邏輯選相電路、四相載
    發(fā)表于 05-05 16:17 ?78次下載
    基于<b class='flag-5'>FPGA</b>的QDPSK<b class='flag-5'>調制器</b>的設計

    FPGA實現(xiàn)OFDM調制器設計

    提出一種 OFDM 高性能數(shù)字調制器FPGA實現(xiàn)方案;采用自頂向下的設計思想,將系統(tǒng)分成FIR濾波、數(shù)控振蕩、移相器、乘法電路和加法電
    發(fā)表于 08-15 11:15 ?62次下載
    <b class='flag-5'>FPGA</b>實現(xiàn)<b class='flag-5'>OFDM</b><b class='flag-5'>調制器</b>設計

    基于FPGAOFDM系統(tǒng)設計與實現(xiàn)

    本文基于802.16a協(xié)議的原理架構,本著小成本、高效率的設計思想,建立了一個基于FPGA的可實現(xiàn)流水化運行的OFDM系統(tǒng)的硬件平臺,包括模擬前端及OFDM調制器
    發(fā)表于 05-25 09:38 ?6239次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>OFDM</b>系統(tǒng)設計與實現(xiàn)

    基于FPGA的全數(shù)字FQPSK調制器實現(xiàn)_楊峰

    基于FPGA的全數(shù)字FQPSK調制器實現(xiàn)_楊峰
    發(fā)表于 03-19 11:38 ?2次下載

    基于ofdm調制解調原理,ofdm調制解調fpga代碼

      摘要:OFDM是一種無線環(huán)境下的高速傳輸技術。本文主要總結了基于ofdm調制解調原理以及OFDMFPGA代碼實現(xiàn),下面我們一起來看
    發(fā)表于 12-12 14:10 ?2.4w次閱讀
    基于<b class='flag-5'>ofdm</b>的<b class='flag-5'>調制</b>解調原理,<b class='flag-5'>ofdm</b><b class='flag-5'>調制</b>解調<b class='flag-5'>fpga</b>代碼

    如何使用FPGA設計和實現(xiàn)OFDM系統(tǒng)和OFDM中的FFT模塊設計及其FPGA實現(xiàn)

    建立了一個基于FPGA的可實現(xiàn)流水化運行的OFDM系統(tǒng)的硬件平臺,包括模擬前端、基于FPGAOFDM調制器
    發(fā)表于 12-13 16:45 ?22次下載
    如何使用<b class='flag-5'>FPGA</b>設計和實現(xiàn)<b class='flag-5'>OFDM</b>系統(tǒng)和<b class='flag-5'>OFDM</b>中的FFT模塊設計及其<b class='flag-5'>FPGA</b>實現(xiàn)

    如何使用FPGA實現(xiàn)QPSK調制器的設計與實現(xiàn)

    采用FPGA設計芯片技術對多進制數(shù)字通信技術的QPSK調制器實現(xiàn)進行了設計研究,將調制器中原有多種專用芯片的功能集成在一片大規(guī)??删幊踢壿嬈骷?b class='flag-5'>FPGA芯片上,實現(xiàn)了高度集成化,小型化。
    發(fā)表于 07-22 17:51 ?15次下載
    如何使用<b class='flag-5'>FPGA</b>實現(xiàn)QPSK<b class='flag-5'>調制器</b>的設計與實現(xiàn)

    一種基于FPGA的MSK調制器設計與實現(xiàn)

    一種基于FPGA的MSK調制器設計與實現(xiàn)說明。
    發(fā)表于 04-27 14:08 ?22次下載

    基于FPGAOFDM調制器設計與實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于FPGAOFDM調制器設計與實現(xiàn).pdf》資料免費下載
    發(fā)表于 10-26 09:25 ?2次下載
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>OFDM</b><b class='flag-5'>調制器</b>設計與實現(xiàn)