亚洲天堂网_国产中出_日韩激情网_97se.com_中国亚洲老少妇色视频

基于FPGA的簡易OFDM調(diào)制解調(diào)系統(tǒng)開發(fā)

發(fā)布時間:2022/4/1 瀏覽數(shù):4481

  設(shè)OFDM信號發(fā)射時間周期為[0,T],子載波數(shù)為N,N也是符號序列的時間間隔。可以證明滿足子載波正交的條件為:=1/T。(式中為子載波的頻率間隔。)輸入數(shù)據(jù)流首先被QAM調(diào)制器調(diào)制,這里其實(shí)是完成一個星座點(diǎn)的映射過程,并沒有進(jìn)行頻譜搬移。經(jīng)過星座映射后得到的符號,存在兩個相互正交的分量和。設(shè)。所以再進(jìn)行OFDM調(diào)制進(jìn)行頻譜搬移后,已調(diào)信號的數(shù)學(xué)表達(dá)式為:
————————————————

由上式可知,恰好是的逆離散傅里葉變換(IDFT)。所以O(shè)FDM調(diào)制可以由IDFT實(shí)現(xiàn),解調(diào)可以由DFT實(shí)現(xiàn)。對于調(diào)制過程,輸入數(shù)據(jù)流首先被QAM調(diào)制器調(diào)制,這里其實(shí)是完成一個星座點(diǎn)的映射過程,并沒有進(jìn)行頻譜搬移。得到了一個復(fù)符號流d[0],d[1],…,d[N-1],復(fù)符號流通過串/并變換,得到一系列并行的QAM符號d[0],d[1],…,d[N-1]。經(jīng)過IFFT變換,得到一系列并行的符號流,,…,,再將它們經(jīng)過并/串變換,得到一串串行的符號流,,…,。由于此時符號流為離散的,所以要經(jīng)過D/A轉(zhuǎn)換,將其變?yōu)闀r間上連續(xù)的信號。最后再將信號搬移到射頻。解調(diào)過程正好相反。

        應(yīng)此我們設(shè)計(jì)的數(shù)字系統(tǒng)是一個OFDM 通信系統(tǒng)中的基帶數(shù)據(jù)處理部分,就是不包括變頻,射頻電路部分的設(shè)計(jì),甚至沒有加入同步的部分,而是只包括信道編碼、交織、星座映射、FFT 和插入循環(huán)前綴的部分。這離一個完整的 OFDM 系統(tǒng)還差得很遠(yuǎn),不過我覺得自己已經(jīng)盡力了,也許以后有機(jī)會還可以在此基礎(chǔ)上再做得更好些。下面敘述一下發(fā)射和接收端的具體結(jié)構(gòu)。

OFDM接收模塊,其主要包括解碼模塊,串并轉(zhuǎn)換,F(xiàn)FT變化,并串轉(zhuǎn)換,信號解調(diào)模塊(QAM/QPSK)。根據(jù)上面的設(shè)計(jì)原理,在本課題中,我們使用BPSK作為映射方式,最后獲得如下的仿真結(jié)果:
————————————————


`timescale 1 ns / 1 ps
module tops(
            i_clk,
                i_rst,
                o_signals,
                o_sp,
                o_spflag,
                o_Dreal,
                o_Dimag,
                o_flag_fft,
                o_doutfft1,
                o_Rec
           );

input       i_clk;
input       i_rst;
output      o_signals; 
output[31:0]o_sp; 
output      o_spflag;
output signed[8:0]o_Dreal;
output signed[8:0]o_Dimag;
output      o_flag_fft;
output[31:0]o_doutfft1; 
output      o_Rec; 


signals signals_u(
                 .i_clk  (i_clk),
                      .i_rst  (i_rst),
                      .o_dout (o_signals)
               );
                    
//Transform                    
s2p s2p_u(
           .i_clk  (i_clk),
              .i_rst  (i_rst),
              .i_din  (o_signals),
              .o_dout (o_sp),
              .o_flag (o_spflag)
           );

//IFFT & P2S        
IFFTs_p2s IFFTs_p2s_u(
                             .i_clk   (i_clk),
                             .i_rst   (i_rst),
                             .i_en    (o_spflag),
                             .i_dn    (o_sp),
                             .o_Dreal (o_Dreal),
                             .o_Dimag (o_Dimag)
                             );

//Reciver
//FFT & S2P    
FFT_s2p FFT_s2p_u(
               .i_clk   (i_clk),
                    .i_rst   (i_rst),
                    .i_I     (o_Dreal[7:0]),
                    .i_Q     (o_Dimag[7:0]),
                    .o_flag  (o_flag_fft),
                    .o_dout1 (o_doutfft1),
                    .o_dout2 (),
                    .o_dout0 (),
                    .test1   (),
                    .test2   ()
              );

//P2S
p2s p2s_u(
           .i_clk  (i_clk),
              .i_rst  (i_rst),
              .i_din  (o_doutfft1),
              .i_en   (o_flag_fft), 
              .o_dout (o_Rec)
           );
              
endmodule
 

Copyright 2017-2025 © 嘉興麥特萊博軟件開發(fā)工作室
  • 網(wǎng)站備案號:浙ICP備18008591號-1