-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathErgodic_Capacity_Correlation.m
41 lines (40 loc) · 1.4 KB
/
Ergodic_Capacity_Correlation.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
%------------------相关性对信道容量的影响----------------%
%-----------------------author:lzx-------------------------%
%-----------------------date:22点07分-----------------%
clear;
close;
SNR_dB=[0:5:20];
SNR_linear=10.^(SNR_dB/10);
N_iter=1000;
N_SNR=length(SNR_dB);
%%----------------- 4x4 -----------------------------
nT=4;
nR=4;
n=min(nT,nR);
I = eye(n);
sq2=sqrt(0.5);
R=[1 0.76*exp(0.17j*pi) 0.43*exp(0.35j*pi) 0.25*exp(0.53j*pi);
0.76*exp(-0.17j*pi) 1 0.76*exp(0.17j*pi) 0.43*exp(0.35j*pi);
0.43*exp(-0.35j*pi) 0.76*exp(-0.17j*pi) 1 0.76*exp(0.17j*pi);
0.25*exp(-0.53j*pi) 0.43*exp(-0.35j*pi) 0.76*exp(-0.17j*pi) 1 ];
C_44_iid=zeros(1,N_SNR);
C_44_corr=zeros(1,N_SNR);
for iter=1:N_iter
H_iid = sq2*(randn(nR,nT)+1j*randn(nR,nT));
H_corr = H_iid*R^(1/2);
tmp1 = H_iid'*H_iid/nT;
tmp2 = H_corr'*H_corr/nT;
for i=1:N_SNR
C_44_iid(i) = C_44_iid(i) + log2(det(I+SNR_linear(i)*tmp1)); %近似公式,见书(9.49)
C_44_corr(i) = C_44_corr(i) + log2(det(I+SNR_linear(i)*tmp2));
end
end
C_44_iid = real(C_44_iid)/N_iter;
C_44_corr = real(C_44_corr)/N_iter;
plot(SNR_dB,C_44_iid, SNR_dB,C_44_corr,':');
xlabel('SNR [dB]');
ylabel('bps/Hz');
set(gca,'fontsize',10)
legend('iid 4x4 channels','correlated 4x4 channels');
title('信道相关信道容量')
grid on;