文档介绍:MIMO信道容量计算
实验一: MIMO信道容量计算
实验学时:3
实验类型:(演示、验证、综合、设计、√研究)
实验要求:(√必修、选修)
一、实验目的
通过本实验的学习,理解和掌握信道容量的概念和物理意义;了解f(c==0) %当所有信道满足时退出循环
break;
end
if(i==L+1) %每个信道和Pav对比一遍后初始化各值,并重新计算Pav
i=1;
L=L-c;
c=0;
Pav=(P+D)*;
end
end
L=length(ai);
for i=1:L
if(p(i)~=0)
p(i)=Pav-d(i); %计算各子信道分配功率
end
end
C=0;
for i=1:L
C=C+1/2*log2(1+p(i)/d(i));
end
p
C输出
>> WF
子信道数目 L=10
各子信道噪声方差 d=[ ]
输入信号总功率 P=5
p =
Columns 1 through 8
Columns 9 through 10
C =
>> WF
子信道数目 L=10
各子信道噪声方差 d=[ ]
输入信号总功率 P=1
p =
Columns 1 through 8
0 0 0 0
Columns 9 through 10
0 0
C =
二、实验题目
clear all;
nt=[2 4 8];
nr=[2 4 8];
v=0; %给定1/v初始值(也就是这里的v)
for count=1:3
y=0;
for PTdb=0:5:30
y=y+1;
PT=10^(PTdb/10); %把PT转化为10
进制
for k=1:1000
H=sqrt(1/2)*complex(randn(nr(count),nt(count)),randn(nr(count),nt(count))); %随机产生H ,每个信道系数服从均值为0,方差为1的高斯分布(对Rayliegh分布)(sqrt(1/2)为了使模也为1)
[U,D,VH]=svd(H); %奇异值分解 H=U*D*VH
A=D'*D; %求DH*D
ai=sort((1./diag(A))'); %求ai并按从小到大排序
L=length(ai);
AI=sum(ai); %各子信道的方差和
Pav=(PT+AI)/L; %求平均输出频率
i=1;
p=ones(1,L); %功率初始值
boolean=1;
ct=0; %关闭的信道数量
while(boolean)
while(i<=L)
if(Pav<ai(i)& p(i)~=0) %找出不符合的子信道并赋值为0
p(i)=0;
AI=AI-ai(i);
ct=ct+1;
end
i=i+1;
end
if(ct==0) %当所有信道满足