📄 capacity_ccdf.m
字号:
%% Channel Capacity of MIMO
%quad(fun,a,b)函数是对表达式fun在a到b的范围内积分
temp=MyAngleSpread/2/180*pi;%这是把扩展角的一半转换成弧度的形式,后面作为扩展角积分的范围
Coefficient_1_2=quad(@CorrCoe_1d,-temp,temp)/2/temp; %在扩展角范围内进行积分,得到
Coefficient_1_3=quad(@CorrCoe_2d,-temp,temp)/2/temp;
Coefficient_1_4=quad(@CorrCoe_3d,-temp,temp)/2/temp;
%下面确定接收天线的相关矩阵
Re_CorrelationMatrix(1,2)=Coefficient_1_2;
Re_CorrelationMatrix(1,3)=Coefficient_1_3;
Re_CorrelationMatrix(1,4)=Coefficient_1_4;
Re_CorrelationMatrix(2,1)=Coefficient_1_2;
Re_CorrelationMatrix(2,3)=Coefficient_1_2;
Re_CorrelationMatrix(2,4)=Coefficient_1_3;
Re_CorrelationMatrix(3,1)=Coefficient_1_3;
Re_CorrelationMatrix(3,2)=Coefficient_1_2;
Re_CorrelationMatrix(3,4)=Coefficient_1_2;
Re_CorrelationMatrix(4,1)=Coefficient_1_4;
Re_CorrelationMatrix(4,2)=Coefficient_1_3;
Re_CorrelationMatrix(4,3)=Coefficient_1_2;
%c=Re_CorrelationMatrix
Re_CorrelationMatrix=real(Re_CorrelationMatrix);
Capacity=zeros(1,1);
X_Capacity=0:0.1:7;
ccdf=zeros(1,max(size(X_Capacity)));
for nn=1:1500
WhiteMatrix=sqrt(1/2)*randn(4)+j*sqrt(1/2)*randn(4); %复高斯随机信道矩阵Hw.
ChannelMatrix=Re_CorrelationMatrix*WhiteMatrix;%应该是信道协方差矩阵 ??????
Capacity=log2(det(eye(4)+25*(Re_CorrelationMatrix)'...
*WhiteMatrix*eye(4)*WhiteMatrix'));%对于该式,已有理论依据,这是接收相关发送不相关的信道容量公式
Capacity=real(Capacity)/4;
for nnn=1:max(size(X_Capacity))
if Capacity>=X_Capacity(nnn);
ccdf(nnn)=ccdf(nnn)+1;
else
ccdf(nnn);
end
end
end
ccdf=ccdf/1500;
%该程序循环了1500次,总共求得了1500个信道容量,我不清楚 Capacity=real(Capacity)/4;的含义,但内嵌循环
%循环了71次,并且每次求得的信道容量和0到7之间以0.1为步长的数进行比较,大于则ccdf(n)加1,否则不加,即
%每次在capacity<X_Capacity(nnn)的时候,ccdf(1)到ccdf(nnn)都加1,这样的结果应该是一种累计概率分布形式
%就是ccdf(complementary cumulative distribution function),互补累计分布函数。
%我把ccdf定义为:ccdf=P(Capacity>X_Capacity(nnn)),就是信道容量大于某一个数的概率是多少,
%这些数组成的向量就是X_Capacity=0:0.1:7;观察运行结果可以得到感性认识,很明显,随着X_Capacity的增大,ccdf递减
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -