RM新时代网站-首页

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

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

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

基于FPGA的OFDM調(diào)制器設(shè)計

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

今天介紹的是使用FPGA做OFDM的調(diào)制。

圖片

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

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

image.png

圖片

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

擾碼器程序如下所示:

圖片

圖片

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

這里因為我沒做解調(diào)所以省去了信道編碼部分,在需要添加冗余的部分我才用補(bǔ)零來進(jìn)行補(bǔ)充。

對于64QAM調(diào)制,如下圖所示為64QAM調(diào)制原理圖

圖片

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

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

圖片

圖片

圖片

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

在FPGA上已經(jīng)完成了星座映射后將I、Q信號送入fifo中存儲,然后通過RAM地址進(jìn)行加冗余以及添加導(dǎo)頻,從而將一個OFDM符號中星座映射后的48個數(shù)據(jù)增加至128個數(shù)據(jù),數(shù)據(jù)都寫入RAM,然后通過地址讀取RAM中的數(shù)據(jù)送入IFFT變換的輸入端口,以及正常輸出,在FPGA上實現(xiàn)頻域至?xí)r域的轉(zhuǎ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,并通過地址讀寫增加冗余以及插入導(dǎo)頻。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。中間插入四個導(dǎo)頻。

在前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ù)為導(dǎo)頻符號,在這里導(dǎo)頻符號我是通過類似于m序列的擾碼器來進(jìn)行產(chǎn)生的。

圖片

導(dǎo)頻的產(chǎn)生:

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

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

圖七為導(dǎo)頻產(chǎn)生數(shù)據(jù)波形圖,其中data_m為擾碼器序列,初始狀態(tài)為1111111,每當(dāng)需要插入導(dǎo)頻時m_start便會使能置1,根據(jù)m_start可以看出圖中一個OFDM符號中共插入四個導(dǎo)頻。p寄存器中便是存放的四個原始導(dǎo)頻數(shù)據(jù),01表示導(dǎo)頻1,11表示導(dǎo)頻-1。data_m_out便是最終插入OFDM符號的導(dǎo)頻數(shù)據(jù),即寫入ram中的導(dǎo)頻數(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ù),插入四個導(dǎo)頻后為52個數(shù)據(jù),這里選擇通過補(bǔ)零來添加冗余,如下圖所示。

圖片

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

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

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    602986
  • ofdm
    +關(guān)注

    關(guān)注

    6

    文章

    349

    瀏覽量

    57001
  • 接收機(jī)
    +關(guān)注

    關(guān)注

    8

    文章

    1180

    瀏覽量

    53453
  • 調(diào)制器
    +關(guān)注

    關(guān)注

    3

    文章

    840

    瀏覽量

    45142
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

    電光調(diào)制器,電光調(diào)制器工作原理是什么?

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

    基于FPGA的QDPSK調(diào)制器的設(shè)計

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

    FPGA實現(xiàn)OFDM調(diào)制器設(shè)計

    提出一種 OFDM 高性能數(shù)字調(diào)制器FPGA實現(xiàn)方案;采用自頂向下的設(shè)計思想,將系統(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'>調(diào)制器</b>設(shè)計

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

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

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

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

    基于ofdm調(diào)制解調(diào)原理,ofdm調(diào)制解調(diào)fpga代碼

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

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

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

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

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

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

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

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

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