Matlab comparative simulation of bit error rate between MRC algorithm and Alamouti algorithm in MIMO system

Directory

1. Theoretical basis

2. Core program

3. Simulation conclusion


1. Theoretical basis

MIMO (Multiple-Input Multiple-Output) system is a communication system that uses multiple antennas for transmission and reception, which can significantly improve the reliability and throughput of the system. In the MIMO system, the MRC (Maximum Ratio Combining) algorithm and the Alamouti algorithm are two commonly used receiving algorithms.

MRC algorithm
The MRC algorithm is a receiving algorithm that can combine signals received by multiple receiving antennas to improve system reliability and performance. The principle of the MRC algorithm is to weight and sum the signals received by multiple receiving antennas, and the weight value is determined by the signal-to-noise ratio (SNR) of the signals received by each receiving antenna. Specifically, for a MIMO system with $n$ receiving antennas, assuming that the signal received by the i-th antenna is xi, the output of the MRC algorithm is:

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

Among them, w_i is the weight of the i-th receiving antenna, which can be calculated according to the signal-to-noise ratio, and can usually be calculated using the Maximum Ratio Combining method. In the maximum ratio combining method, the weights are:
w_i=\frac{h_i^*}{\sum_{j=1}^{n}|h_j|^2}
Among them, h_i is the channel coefficient corresponding to the i-th receiving antenna, and ^* represents the complex conjugate. It can be seen that the maximum ratio combining method normalizes the signal received by each receiving antenna, and also considers the signal-to-noise ratio of each receiving antenna. Therefore, the MRC algorithm can effectively improve the performance and reliability of the system.

Alamouti Algorithm
The Alamouti algorithm is a multi-antenna encoding technology, which can encode signals sent by multiple transmitting antennas to improve system reliability and throughput. The principle of the Alamouti algorithm is to linearly combine the signals sent by each sending antenna, and then send them through two antennas, so as to realize multi-antenna coding. Specifically, assuming a MIMO system with n transmit antennas and m receive antennas, and the signal sent by each transmit antenna is x_i, the encoding method of the Alamouti algorithm is:

1st time period:
s_1=a_1x_1 + a_2x_2 + … + a_nx_n
s_2=a_1x_2-a_2x_1 + … + a_nx_n
Among them, a_i is the encoding coefficient, usually \pm1 or \pm j. In the first time period, the signals transmitted by transmitting antennas 1 and 2 are linearly combined and transmitted through the two antennas.

2nd time period:
s_3=a_1x_1-a_2x_2 + … + a_nx_n
s_4=a_1x_2 + a_2x_1 + … + a_nx_n
In the second time period, transmitting antennas 1 and 2 respectively transmit a coded signal. The signal received by the receiver is:
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
Among them, $h_{ij}$ is the channel coefficient between the $i$ receiving antenna and the $j$ transmitting antenna, and n_i is the noise at the receiving end. It can be seen that the receiving end has received 4 signals, and the original sending signal can be restored through decoding.
The Alamouti algorithm can improve the reliability and throughput of the system without increasing the transmission power. At the same time, the Alamouti algorithm also has better anti-interference performance and is suitable for complex channel environments.

Both the MRC algorithm and the Alamouti algorithm are commonly used MIMO system receiving algorithms, and they can improve the reliability and performance of the system. The MRC algorithm performs weighted summation of the signals received by multiple receiving antennas, thereby improving the signal-to-noise ratio of the system; while the Alamouti algorithm uses multi-antenna coding technology to improve the reliability and throughput of the system without increasing the transmission power .

2. Core program

................................................ .........
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

3. Simulation conclusion

The knowledge points of the article match the official knowledge files, and you can further learn relevant knowledge algorithm skill treeHome pageOverview 46684 people are studying systematically