1.算法概述
最大比合并(Maximal Ratio Combining,MRC)是分集合并技術(shù)中的最優(yōu)選擇,相對(duì)于選擇合并和等增益合并可以獲得最好的性能,其性能提升是由陣列增益( 陣列增益即發(fā)射的信號(hào)的功率增益,是通過發(fā)送機(jī)和/或接收機(jī)的多個(gè)天線而實(shí)現(xiàn)功率增益的,一般在LTE中,增加一個(gè)天線會(huì)有3db的增益)帶來的更高的信噪比,進(jìn)而帶來更好的誤碼率特性。最大比合并的實(shí)現(xiàn)方式是通過給分集的N路不同信號(hào)乘上一個(gè)不同的系數(shù) ,而系數(shù)的確定與N路分支的衰落系數(shù) 有關(guān)。
如下圖所示:

考慮了一個(gè)RIS 增強(qiáng)型共生無線電下行鏈路系統(tǒng),它由一個(gè)具有 Q (Q ≥ 1) 個(gè)天線的 基站BS、K (K ≥ 1) 個(gè)單天線反向散射設(shè)備BD、一個(gè)具有 M 反射元件(M ≥ 1) 的 RIS 組成) 和單天線主接收器PR。 關(guān)于信道系數(shù)不再贅述。其中BD 的符號(hào)周期是主信號(hào)的 N 倍,其中 N 是整數(shù),遠(yuǎn)大于 1(共生無線電的特點(diǎn))。
最大比合并是分集合并技術(shù)中的最優(yōu)選擇,相對(duì)于選擇合并和等增益合并可以獲得最好的性能,性能提升是由Array Gain帶來的更高的信噪比,進(jìn)而帶來更好的誤碼率特性決定的。
最大比合并(Maximal Ratio Combining)的實(shí)現(xiàn)方式即通過給分集的N路不同信號(hào)乘上一個(gè)不同的系數(shù)wi,i=1,2,……,N,系數(shù)的確定與N路分支的衰落系數(shù)hi,i=1,2,……,N有關(guān)。通常有:

下面來證明為什么最大比合并是最優(yōu)合并方案。
如上所述,考慮一個(gè)AWGN信道,其中發(fā)送符號(hào)功率為Es,噪聲功率譜密度為N0,N條之路的衰落系數(shù)為hi,i=1,2,……,N,合并加權(quán)系數(shù)為wi,i=1,2,……,N。
接收端的和信噪比為:

如果需要SNR最大,則需要取到極大值,通過SNR對(duì)wi求偏導(dǎo)并令偏導(dǎo)為0可得:

化簡后有如下式子:

分析i=1和i=2時(shí)兩個(gè)式子,經(jīng)過對(duì)比作差有:

故證明信噪比最大時(shí)的合并方式是MRC合并。
2.仿真效果預(yù)覽
matlab2022a仿真結(jié)果如下:

3.核心MATLAB代碼預(yù)覽
%隨機(jī)數(shù)據(jù)位
data ???= round(rand(N_bits,1));
%使用速率1/2卷積碼的信道編碼
trellis = poly2trellis(3,[5 7]); ?
c_data ?= convenc(data,trellis);
%BPSK調(diào)制
tx ?????= 2*c_data - 1;
%信道特征
SNRdB = 0:25; %SNR范圍
%中繼信道的附加噪聲和信道響應(yīng):
%上行信道
noise_d = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));
h_d ????= 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));
%用戶間信道
noise_r1 = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));
h_r1 ????= 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));
%中繼上行鏈路
noise_r2 = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));
h_r2 ????= 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));
SNR = 10^(SNRdB(k)/10); %將SNRdB轉(zhuǎn)換為線性值SNR
ftx_r1 = sqrt(SNR) * h_r1 .* tx + noise_r1;
%Decode n F
%均衡
eq_rx1 = ftx_r1 .* conj(h_r1);
%硬判決和從雙極到bits的轉(zhuǎn)換
r_bits = (sign(real(eq_rx1)) + 1)/2;
%信道解碼
dec_dcf_r1 = vitdec(r_bits,trellis,3,'term','hard');
%重新編碼
c_data2 = convenc(dec_dcf_r1,trellis);
%中繼編碼數(shù)據(jù)的BPSK信號(hào)
tx2_dcf = 2 * c_data2 - 1;
%Detect n F
dec_dtf_r1 = sign(real(eq_rx1));
tx2_dtf ???= dec_dtf_r1;
%放大 n F
beta = sqrt(1./((SNR * abs(h_r1).^2) + 1));
%放大:
ftx_amp = ftx_r1 .* beta;
%中繼%
%DCF
ftx_dcf_r2 = sqrt(SNR) * tx2_dcf .* h_r2 + noise_r2 ;
%DTF
ftx_dtf_r2 = sqrt(SNR) * tx2_dtf .* h_r2 + noise_r2 ;
%AF
ftx_af_r2 = sqrt(SNR) * ftx_amp .* h_r2 + noise_r2 ;
%目的地
ftx_d = sqrt(SNR)* tx .* h_d + noise_d;
%MRC
R_dcf ??????= ftx_dcf_r2 .* conj(h_r2) + ftx_d .* conj(h_d);
%硬決策
dec_com_dcf = sign(real(R_dcf));
A68