⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 channelcapacity.m

📁 本人详细分析后的mimo信道容量的仿真代码
💻 M
字号:
%% Channel Capacity of MIMO 

temp=MyAngleSpread/2/180*pi;%temp是用弧度表示的扩展角的一半
Coefficient_1_2=quadv(@CorrCoe_1_2,-temp,temp)/2/temp;
Coefficient_1_3=quadv(@CorrCoe_1_3,-temp,temp)/2/temp;
Coefficient_1_4=quadv(@CorrCoe_1_4,-temp,temp)/2/temp;
Coefficient_4_1=quadv(@CorrCoe_4_1,-temp,temp)/2/temp;
Coefficient_4_2=quadv(@CorrCoe_4_2,-temp,temp)/2/temp;
Coefficient_4_3=quadv(@CorrCoe_4_3,-temp,temp)/2/temp;
%接收相关矩阵中,在主对角线上方的积分表达式中天线间距/波长取正值,在主对角线下方的积分表达式中天线间距/波长取负值
%为什么有的取负有的取正呢,这实在没有什么好讲的,这是由相关系数的推导决定的
%主对角线上方的元素列大于行,相关矩阵中元素r(i,j)=对表达式:exp(-j*2*pi*(j-i)*d*sin(a))进行积分
%其中d代表相邻天线间距和波长的比值,d是一个变量,以0.1为步长,从0变到5
%针对这里的算法我提出用二重循环,这样就可以减少很多函数如Coefficient_1_2
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_4_3;
Re_CorrelationMatrix(2,3,:)=Coefficient_1_2;
Re_CorrelationMatrix(2,4,:)=Coefficient_1_3;
Re_CorrelationMatrix(3,1,:)=Coefficient_4_2;
Re_CorrelationMatrix(3,2,:)=Coefficient_4_3;
Re_CorrelationMatrix(3,4,:)=Coefficient_1_2;
Re_CorrelationMatrix(4,1,:)=Coefficient_4_1;
Re_CorrelationMatrix(4,2,:)=Coefficient_4_2;
Re_CorrelationMatrix(4,3,:)=Coefficient_4_3;
%以上是构建51个不同的接收端的相关系数矩阵
Re_CorrelationMatrix=real(Re_CorrelationMatrix);

Capacity=zeros(1,51);

for mm=1:51 %对于51种接收端相关系数矩阵分别求信道容量
    for nn=1:1500 %对于随机信道,求1500次再取平均
        WhiteMatrix=sqrt(1/2)*randn(4)+j*sqrt(1/2)*randn(4);%独立同分布的复高斯随即矩阵Hw
        Capacity(mm)=Capacity(mm)+log2(det(eye(4)+25*(Re_CorrelationMatrix(:,:,mm))'...
            *WhiteMatrix*eye(4)*WhiteMatrix'));
    end
    Capacity(mm)=Capacity(mm)/1500; %循环1500次是为了求得平均信道容量
end

Capacity=real(Capacity)';




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -