📄 alamouti2xnr.m
字号:
%************************************************************************
%Alamouti Coding with 2xNr antenna configuration
%
%Num_RxAnt: the number of receive antenna
%M: M-ary digital modulation
%
%
%************************************************************************
clc;
clear all;
%repeat for different receive antennas
for w = 1: 4
if w == 4
Num_RxAnt = 6;
else
Num_RxAnt = 2^(w - 1);
end
M = 4; %QPSK Modulation Scheme
SNR_max = 10;
N = 2000; %the pair number of symbol will being transmitted
randn('state',0); %Remove it if you want a random start of the randn generator
randn('state',0); %Remove it if you want a random start of the randn generator
z = 1;
for k = 1:2:SNR_max
A = floor(M*rand(2,N)); %transmitted alphabet
Str = exp(j*2*pi/M*A)/sqrt(2); %transmitted symbols
%Str=2xN matrix, the block of input is going to be transmitted with constant SNR
for i = 1:N
S = [Str(1,i);Str(2,i)]; %making STC matrix
snr = 10.^(k/10);
sig = 0.5/snr;
Ns = sqrt(sig).*(rand(2.*Num_RxAnt,1) + j*(rand(2.*Num_RxAnt,1)));
H = [];
for p = 1:Num_RxAnt
h = (rand(1,2) + j*(rand(1,2)))/sqrt(2);
H = [H;h(1) h(2);h(2)' -h(1)']; %channel matrix
end
p = 0;
r = H*S + Ns; %receive signal on the receiver
S_ = H'*r;
ang = angle(S_); %receive angles
B = mod(round(ang/(2*pi/M)),M); %receive alphabet, its another
end
%overal output for the all of the transmission symbol
Ses(:,i) = [B(1);B(2)];
%Str = transmitted symbols
%Ses = received symbols
%calculating bit error rate
BER = 0;
ERROR = 0;
for p = 1:2
for i = 1:N
if A(p,i) ~= Ses(p,i)
ERROR = ERROR + 1;
end
end
end
ber(z) = ERROR/(2*N);
z = z + 1;
end
Snr = 1:2:SNR_max;
ber;
Ber(:,w) = ber;
end
%plot the bit error rate
semilogy(Snr,Ber(:,1),'b*-',Snr,Ber(:,2),'g+-',Snr,Ber(:,3),'ro-',Snr,Ber(:,4),'m^-','LineWidth',2.0);
xlabel('SNR [dB]');
ylabel('BER');
title('Bit Error Rate Evaluation for MIMO Alamouti coding, QPSK Modulation');
legend('2Tx & 1 Rx antennas','2Tx & 2 Rx antennas','2Tx & 4 Rx antennas','2Tx & 6 Rx antennas');
grid on;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -