天天看點

基于DF中繼的協作MIMO通信系統matlab仿真

目錄

​​一、理論基礎​​

​​二、核心程式​​

​​三、仿真測試結果​​

作者ID  :fpga和matlab

擅長技術:
1.無線基帶,無線圖傳,編解碼 
2.機器視覺,圖像處理,三維重建 
3.人工智能,深度學習 
4.智能控制,智能優化
5.其他      

一、理論基礎

         FD-MIMO代表全次元多入多出技術(Full Dimension Multi-Input-Multi-Output, FD-MIMO)。那麼,這裡的全維是什麼意思?它表示天線系統,可以形成一個波束(beams)在水準和垂直方向,覆寫(集中)在三維空間的任何地方。 

        由于頻率複用技術的廣泛應用,節點間的同頻幹擾凸顯,并成為目前限制移動接入網絡容量進一步提升的主要瓶頸之一。其中,中繼節點面臨的幹擾是整個移動通信網絡幹擾問題的重要組成部分。雖然中繼能夠有效地提高分集增益和複用增益,但同時也受到同頻幹擾的制約,影響系統性能。對AF/DF協作方式下最優中繼選擇進行了研究,以使得在同頻幹擾下MIMO中繼系統信噪比最大化,并對AF/DF方式下的最優MIMO中繼在同頻幹擾下的中斷機率進行性能分析。通過理論推導和蒙特卡羅仿真結果表明,與AF,DF協定中繼在同頻幹擾下的中斷機率性能相比,AF/DF方式下最優中繼選擇在同頻幹擾下的中斷機率遠低于AF,DF協定中繼在同頻幹擾下的中斷機率。

        協作通信是一種利用移動中繼節點來增加特定使用者容量的技術,這種技術的原理是在小區所有節點工作頻帶相同的情況下,可以将系統分解成三類節點,基站為源節點、特定使用者(高速使用者)為目的節點、其他使用者終端為中繼節點,所有中繼節點都可以看作是特定使用者節點的收發天線,進而網絡就等于一個多輸入多輸出(MIMO)天線系統,被稱為是虛拟多入多出天線(V-MIMO)系統,能支援高速使用者的特定容量。是以,這種技術被稱為“協作通信”。

        簡單來說,就是基站給你發資料的時候,處于該基站覆寫範圍内的移動台也可以接收到基站給你發送的資料,然後接收到該資料的所有移動台對資料進行處理之後,再把它們發送給你的移動台。該方法使用帶有一根天線的移動台,在多使用者環境中可以共享其他移動使用者的天線,這樣可産生多根虛拟發射天線,進而得到相應的分集增益,改善移動通信系統的性能。

AF

       放大轉發中繼,指的是中繼節點收到信号之後,不對信号進行解碼或編碼,直接将收到的信号轉發給目的節點。

優點: 做法比較簡單,減少中繼的壓力。

缺點: 中繼節點處的噪聲也轉發給目的節點。

       在AF模式下,中繼節點對收到的資料不進行任何的解調或解碼操作,隻對信号的功率作歸一化處理,然後用自身的發射功率将信号放大後發射給目的節點。

       AF方式:操作簡單,開銷小,複雜度低,但在放大有用信号的同時也放大了噪聲,在信道狀況較差時并不能獲得良好的性能。

      中繼節點不對接收的信号進行解調和解碼,而是直接将收到的信号進行模拟處理後轉發,這是采用最早的一種協作模式。 在該機制中,每個使用者接收它夥伴發送過來的帶有噪聲的信号,接着對該信号進行放大,然後将放大的帶有噪聲信号重新發送。基站将對使用者和其夥伴傳送來的資料進行合并判決。 盡管協作者在進行放大時也放大了噪聲,但是基站接收到兩個獨立的衰落信号,最後能作出較好的判決。

DF

        解碼轉發中繼,指的是中繼節點收到信号之後,對信号進行解碼,然後将解碼結果進行重新編碼,最後轉發給目的節點。

優點: 避免中繼節點的噪聲轉發到目的節點,導緻目的節點處噪聲過大。

缺點: 協定比較複雜,同時中繼節點的計算壓力比較大。

二、核心程式

clc;
clear;
close all;
warning off;
pack;
addpath 'func\'

Snr_1        = 1;   
Snr_2        = 15;
%信号功率 
Power_signal = 0.2; 
Monte_Times  = 100;   
M            = 4;  %QPSK調制 
N            = 1e4;%仿真bit數
%産生信号源
Signal       = randint(1,N,M);
Signal_mod   = modulate(modem.pskmod(M),Signal);

%産生信道
%Source and Destination
H_sd         = func_Rayleigh_Channel(1,1);    
%節點1信道
H_sr1        = func_Rayleigh_Channel(1,7);  
H_rd1        = func_Rayleigh_Channel(1,7);  

Index        = 0;    
for SNR_dB=Snr_1:Snr_2
    SNR_dB  
    Index = Index+1;   
    ERR   = 0; 
    for Times = 0:Monte_Times
        RandStream.setDefaultStream(RandStream('mt19937ar','seed',Times));
        sig           = 10^(SNR_dB/10);
        Power_Signals = Power_signal;   
        Power_Niose   = Power_Signals / sig;  
        %直接模式下不通過中繼節點直接進行傳輸
        Y_S2D  = awgn(sqrt(Power_signal)*H_sd*Signal_mod,SNR_dB);   
        Y_S2R1 = awgn(sqrt(Power_signal)*H_sr1*Signal_mod,SNR_dB);  
        Y_S2R  = [Y_S2R1];
        H_sr   = [H_sr1];
        H_rd   = [H_rd1];
        %選瞬時信噪比最大的座位轉發中繼
        R1     = SNR_dB*(abs(H_sr1))^2;
        R      = [R1];
        [V,I]  = max(R);
        Y_S2RO = Y_S2R(I,:);
        H_rdO  = H_rd(I);
        H_srO  = H_sr(I);
        %DF
        x_ODF         = func_DF(M,Y_S2RO,Signal);
        y_rd          = awgn(sqrt(0.5)*H_rdO * x_ODF, SNR_dB);
        
        y_combine_ODF = func_MRC(H_sd,H_rdO,Power_Signals,Power_Niose,Y_S2D,y_rd);
        y_ODF         = demodulate(modem.pskdemod(M),y_combine_ODF);
        
        %計算中斷概論
        ERR    = ERR + func_ber(Signal,y_ODF);  
    end
    BERS(Index)      = ERR/(N*Monte_Times); 
end

SNR_dB = Snr_1:1:Snr_2;
figure;
semilogy(SNR_dB,BERS,'r-o');
grid on;
ylabel('BER');
xlabel('SNR(dB)');
axis([Snr_1,Snr_2,10^(-6),1]);
save DF1.mat SNR_dB BERS      

三、仿真測試結果

繼續閱讀