Pre-ci test passed git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4000 818b1a75-f10b-46b9-bf7c-635c3b92a50f
73 lines
1.8 KiB
Matlab
Executable File
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');
|