MIMO系统中MRC算法和Alamouti算法的误码率matlab对比仿真

目录

一、理论基础

二、核心程序

三、仿真结论


一、理论基础

        MIMO(Multiple-Input Multiple-Output)系统是一种利用多个天线进行传输和接收的通信系统,它可以显著提高系统的可靠性和吞吐量。在MIMO系统中,MRC(Maximum Ratio Combining)算法和Alamouti算法是两种常用的接收算法。

MRC算法
       MRC算法是一种接收算法,它可以将多个接收天线接收到的信号进行合并,以提高系统的可靠性和性能。MRC算法的原理是将多个接收天线接收到的信号进行加权求和,权值由每个接收天线接收信号的信噪比(SNR)决定。具体地,对于一个具有$n$个接收天线的MIMO系统,假设第i个天线接收到的信号为xi,则MRC算法的输出为:

y_{MRC}=\sum_{i=1}^{n}w_ix_i

其中,w_i是第i个接收天线的权值,它可以根据信噪比进行计算,通常可以使用最大比合并(Maximum Ratio Combining)方法进行计算。在最大比合并方法中,权值为:
w_i=\frac{h_i^*}{\sum_{j=1}^{n}|h_j|^2}
        其中,h_i是第i个接收天线对应的信道系数,^*表示复共轭。可以看出,最大比合并方法将每个接收天线接收到的信号进行了归一化,同时也考虑了每个接收天线的信噪比。因此,MRC算法可以有效地提高系统的性能和可靠性。

Alamouti算法
       Alamouti算法是一种多天线编码技术,它可以将多个发送天线发送的信号进行编码,以提高系统的可靠性和吞吐量。Alamouti算法的原理是将每个发送天线发送的信号进行线性组合,然后通过两个天线进行发送,从而实现多天线编码。具体地,假设一个具有n个发送天线和m个接收天线的MIMO系统,每个发送天线发送的信号为x_i,则Alamouti算法的编码方式为:

第1个时间段:
s_1=a_1x_1+a_2x_2+...+a_nx_n
s_2=a_1x_2-a_2x_1+...+a_nx_n
        其中,a_i是编码系数,通常为\pm1或\pm j。在第1个时间段中,发送天线1和2发送的信号进行了线性组合,并通过两个天线进行发送。


第2个时间段:
s_3=a_1x_1-a_2x_2+...+a_nx_n
s_4=a_1x_2+a_2x_1+...+a_nx_n
       在第2个时间段中,发送天线1和2分别发送了一个编码后的信号。接收端接收到的信号为:
y_1=h_{11}s_1+h_{12}s_2+n_1
y_2=h_{21}s_1+h_{22}s_2+n_2
y_3=h_{11}s_3+h_{12}s_4+n_3
y_4=h_{21}s_3+h_{22}s_4+n_4
       其中,$h_{ij}$是第$i$个接收天线和第$j$个发送天线之间的信道系数,n_i是接收端的噪声。可以看出,接收端接收到了4个信号,通过解码可以还原出原始的发送信号。
       Alamouti算法可以在不增加发送功率的情况下,提高系统的可靠性和吞吐量。同时,Alamouti算法也具有较好的抗干扰性能,适用于复杂的信道环境。

       MRC算法和Alamouti算法都是常用的MIMO系统接收算法,它们可以提高系统的可靠性和性能。MRC算法通过多个接收天线接收到的信号进行加权求和,从而提高系统的信噪比;而Alamouti算法通过多天线编码技术,在不增加发送功率的情况下,提高系统的可靠性和吞吐量。

二、核心程序

............................................................
M = 2;              % maximum number of Rx antennas
for i = 1:11,
    BER_mrc12 = [BER_mrc12 mrc_new(M, frmLen, numPackets, EbNo(i))];
end
% plot of the BER values for 1x2 MRC scheme 
figure(1)
% BER_mrc12 = berfit(EbNo, BER_mrc12);
semilogy(EbNo,BER_mrc12,'g*-');
legend('simulated MRC scheme 1T2R'); 
axis([0 20 10^-5 1]);
xlabel('Eb/No (dB)'); ylabel('BER');
title('Plot of bit error probability of 1x2 MRC scheme');

% Calculation of BER for 1x4 MRC scheme
M = 4;              % maximum number of Rx antennas
for i = 1:11,
    BER_mrc14 = [BER_mrc14 mrc_new(M, frmLen, numPackets, EbNo(i))];
end
% plot of the BER values for 1x4 MRC scheme
figure(2)
% BER_mrc14 = berfit(EbNo, BER_mrc14);
semilogy(EbNo,BER_mrc14,'bd-');
legend('simulated MRC scheme 1T4R'); 
axis([0 20 10^-5 1]);
xlabel('Eb/No (dB)'); ylabel('BER');
title('Plot of bit error probability of 2x2 MRC scheme');

% Calculation of BER for 2x1 Alamouti scheme
M = 1;              % maximum number of Rx antennas
for i = 1:11,
    BER_alamti21 = [BER_alamti21 alamouti_new(M, frmLen, numPackets, EbNo(i))];
end
% plot of the BER values for 2x1 Alamouti scheme 
figure(3)
% BER_alamti21 = berfit(EbNo, BER_alamti21);
semilogy(EbNo,BER_alamti21,'mp-');
legend('simulated Alamouti scheme 2T1R');
axis([0 20 10^-5 1]);
xlabel('Eb/No (dB)'); ylabel('BER');
title('Plot of bit error probability of 2x1 Alamouti scheme');

% Calculation of BER for 2x2 Alamouti scheme
M = 2;              % maximum number of Rx antennas
for i = 1:11,
    BER_alamti22 = [BER_alamti22 alamouti_new(M, frmLen, numPackets, EbNo(i))];
end
% plot of the BER values for 2x2 Alamouti scheme
figure(4)
% BER_alamti22 = berfit(EbNo, BER_alamti22);
semilogy(EbNo,BER_alamti22,'ko-');
legend('simulated Alamouti scheme 2T2R');
axis([0 20 10^-5 1]);
xlabel('Eb/No (dB)'); ylabel('BER')
title('Plot of bit error probability of 2x2 Alamouti scheme');

% Calculation of BER for 1x1 BPSK scheme
M = 1;              % maximum number of Rx antennas
for i = 1:11,
    BER11 = [BER11 mrc_new(M, frmLen, numPackets, EbNo(i))];
end
% plot of the BER values for 1x1 BPSK scheme 
figure(5)
semilogy(EbNo,BER11,'gp-');
legend('simulated BPSK without diversity'); 
axis([0 20 10^-5 1]);
xlabel('Eb/No (dB)'); ylabel('BER');
title('Plot of bit error probability of 1x1 BPSK scheme');

        
% Now, plotting the all error probabilities together....
figure(6)
semilogy(EbNo,BER11,'rp-');
axis([0 20 10^-5 1]);
hold on;
semilogy(EbNo,BER_mrc12,'g*-');
semilogy(EbNo,BER_mrc14,'bd-');
semilogy(EbNo,BER_alamti21,'mp-');
semilogy(EbNo,BER_alamti22,'ko-');
xlabel('Eb/No (dB)'); ylabel('BER')
title('Comparison of performance of MRC & Alamouti schemes');
legend('simulated BPSK without diversity','simulated MRC scheme 1T2R',...
    'simulated MRC scheme 1T4R','simulated Alamouti scheme 2T1R',...
    'simulated Alamouti scheme 2T2R'); 
up182

三、仿真结论

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/130664774