Files
openairinterface5g/openair1/EMOS/MATLAB/plot_eigval_dist.m
T
2013-06-25 09:05:02 +00:00

73 lines
1.8 KiB
Matlab
Executable File

clear all
close all
%% measured eigenvalue distribution
load eigenval_idx_32.mat
tmp = reshape(Eigval_4U_ZF,[],4);
for i=1:4
[Eigval_4U_ZF_f(i,:),Eigval_4U_ZF_x(i,:)] = ecdf(tmp(:,i));
end
[Cond_4U_ZF_f,Cond_4U_ZF_x] = ecdf(tmp(:,4)./tmp(:,1));
%% iid case
M_Tx=4;
N_Rx=2;
Nfreq = 20;
Nsamples = 2000;
NUsers = 4;
SNRdB=10;
SNR=10^(SNRdB/10);
%%% MMSE regularization factor
mu = M_Tx/SNR;
%%% noise variance
n_p=1/SNR;
HH_4U_4x1=1/sqrt(2)*complex(randn(N_Rx,M_Tx,Nfreq,Nsamples,NUsers),randn(N_Rx,M_Tx,Nfreq,Nsamples,NUsers));
Eig_4U_ZF_iid=zeros(Nfreq,Nsamples,M_Tx);
Cap_4U_ZF_iid=zeros(Nfreq,Nsamples);
for k2=1:Nsamples
for k1=1:Nfreq
HS = HH_4U_4x1(1,:,k1,k2,:);
HS = squeeze(HS).';
[Cap_4U_ZF_iid(k1,k2),gain2,eigval] = MISO_MMSE(HS,n_p,0);
Eig_4U_ZF_iid(k1,k2,:) = eigval;
end
end
tmp = reshape(Eig_4U_ZF_iid,[],4);
for i=1:4
[Eigval_4U_ZF_iid_f(i,:),Eigval_4U_ZF_iid_x(i,:)] = ecdf(tmp(:,i));
end
[Cond_4U_ZF_iid_f,Cond_4U_ZF_iid_x] = ecdf(tmp(:,4)./tmp(:,1));
%% plot
figure(1)
plot(Eigval_4U_ZF_x.',Eigval_4U_ZF_f.');
hold on
plot(Eigval_4U_ZF_iid_x.',Eigval_4U_ZF_iid_f.','--');
xlabel('eigenvalue')
xlim([0 40])
ylabel('CDF')
title('Empirical CDF of the eigenvalues of H H''')
legend('\lambda_1','\lambda_2','\lambda_3','\lambda_4', ...
'\lambda_1 iid','\lambda_2 iid','\lambda_3 iid','\lambda_4 iid',...
'Location','SouthEast')
grid on
h_fig = figure(2);
plot(Cond_4U_ZF_x,Cond_4U_ZF_f,'Linewidth',2)
hold on
plot(Cond_4U_ZF_iid_x,Cond_4U_ZF_iid_f,'--','Linewidth',2)
xlabel('condition number')
xlim([0 1000])
ylabel('CDF')
title('Empirical CDF of the condition number of H H^H','Fontsize',14,'Fontweight','bold')
legend('measured','iid', 'Location','SouthEast')
grid on
saveas(h_fig, 'figs_spawc/idx_32_condition.eps', 'epsc2');