目錄
一、理論基礎
二、核心程式
三、仿真測試結果
作者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