hello this is code for 2xnr alamouti scheme
clear all
close all;
clc
no_of_symbols = 2; %% BPSK mod to be real const.
bits_per_symbol= log2(no_of_symbols);
snr=0:5:45;
nt=2; % number of Tx
nr=6; % max. number of Rx
num_bits = 1e3;
num_iter = 20;
% initialize the variables
hh=zeros(num_bits,nt,nr);
data_tx = zeros(num_bits,nt);
dec_sts_2_nr = zeros(num_bits,nr);
%%
tic
for j=1:1:length(snr)
for i=1:1:num_iter
% Transmitter
data_bits = randsrc(num_bits,1,[0 1;0.5 0.5]);
data_sym = pskmod(data_bits,no_of_symbols);
s1 = data_sym(1:nt:end);
s2 = data_sym(2:nt:end);
data_tx(1:nt:end,
= [s1 s2];
data_tx(2:nt:end,
= [-conj(s2) conj(s1)];
%channel
% assume constant channel over alamouti symbols
hh(1:nt:end,:,
= 1/sqrt(2)*(randn(num_bits/2,nt,nr))...
+sqrt(-1)*randn(num_bits/2,nt,nr)/sqrt(2);
hh(2:nt:end,:,
= hh(1:nt:end,:,
;
% SISO sytem channel
data_noisy_11 = awgn(hh
,1,1).*data_sym,snr(j));
% MIMO sytem channel
for n=1:nr
data_noisy_2_nr
,n) = awgn(sum(hh
,:,n).*data_tx,2)/sqrt(nt),snr(j));
end
% MIMO Receiver
% calculate decision statistics
for n=1:nr
dec_sts_2_nr(1:nt:end,n) = conj(hh(1:nt:end,1,n)).*data_noisy_2_nr(1:nt:end,n)...
+hh(1:nt:end,2,n).*conj(data_noisy_2_nr(2:nt:end,n));
dec_sts_2_nr(2:nt:end,n) = conj(hh(1:nt:end,2,n)).*data_noisy_2_nr(1:nt:end,n)...
-hh(1:nt:end,1,n).*conj(data_noisy_2_nr(2:nt:end,n));
end
for n=1:nr
dec_sts_all
,n) = sum(dec_sts_2_nr
,1:n),2);
% maximum likelihood decoder
data_est_all
,n) = pskdemod(dec_sts_all
,n),no_of_symbols);
% calculating BER
[err_num err_ratio_alamouti(j,i,n)]=biterr(data_bits,data_est_all
,n));
end
% SISO Receiver
data_est_11 = pskdemod(data_noisy_11.*conj(hh
,1,1)),no_of_symbols);
% Calculating BER for SISO
[err_num err_ratio_no_div(j,i)]=biterr(data_bits,data_est_11);
end
clc
snr_dB = snr(j);
% calculate remaining time
rem_time = (length(snr)-j)*toc/j;
end
%% calculate average BER
err_rate_no_div = mean(err_ratio_no_div');
semilogy(snr,err_rate_no_div,'k--')
hold on
grid on
semilogy(snr,mean(err_ratio_alamouti
,:,1)'),'k+-')
semilogy(snr,mean(err_ratio_alamouti
,:,2)'),'ko-')
semilogy(snr,mean(err_ratio_alamouti
,:,3)'),'kd-')
semilogy(snr,mean(err_ratio_alamouti
,:,4)'),'ks-')
semilogy(snr,mean(err_ratio_alamouti
,:,5)'),'k*-')
semilogy(snr,mean(err_ratio_alamouti
,:,6)'),'kp-')
xlabel('SNR (dB)')
ylabel('BER')
legend('No Diversity (1 Tx, 1 Rx)','Alamouti (2 Tx, 1 Rx)','Alamouti (2 Tx, 2 Rx)','Alamouti (2 Tx, 3 Rx)','Alamouti (2 Tx, 4 Rx)','Alamouti (2 Tx, 5 Rx)','Alamouti (2 Tx, 6 Rx)')
save('alamouti_2_nr_results')
- - - Updated - - -
hello again
I want to attach some other codes and pdfs but I cant attached them!!
I dont know why...
If U want send to me Ur Email
best regards