文档介绍:该【MIMO信道容量计算 】是由【wawa】上传分享,文档一共【12】页,该文档可以免费在线阅读,需要了解更多关于【MIMO信道容量计算 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
实验一:MIMO信道容量计算
实验学时:3
实验类型:(演示、验证、综合、设计、√研究)
实验要求:(√必修、选修)
一、实验目的
\
通过本实验的学习,理解和掌握信道容量的概念和物理意义;了解多天线系
统信道容量的计算方法;采用计算机编程实现经典的注水算法。
二、实验内容
MIMO信道容量;
注水算法原理;
采用计算机编程实现注水算法。
,
三、实验组织运行要求
以学生自主训练为主的开放模式组织教学
四、实验条件
(1)微机
(2)MATLAB编程工具
,
五、实验原理、方法和手段
MIMO(MIMO,MultipleInputMultipleOutput)技术利用多根天线实现多
发多收,充分利用了空间资源,在有限的频谱资源上可以实现高速率和大容量,
已成为4G通信系统以及未来无线通信系统的关键技术之一。
:.
h
11
11
h
21
22
TR
nn
TR
图1平坦衰弱MIMO信道模型
;
MIMO指多输入多输出系统,当发送信号所占用的带宽足够小的时候,信道
可以被认为是平坦的,即不考虑频率选择性衰落。平坦衰弱的MIMO信道可以用
一个nn的复数矩阵H描述:
RT
hhh
11121nT
hhh
21222n
HT(1)
hhh
n1n2nn
RRRT
其中n为发送端天线数,n为接收端天线数,H的元素h表示从第i根发射天
TRj,i
线到第j根接收天线之间的空间信道衰落系数。
窄带MIMO信道模型(如图1所示)可以描述为:
yHxn
(2)
;
其中,x为发送信号;y为接收信号;n为加性高斯白噪声。
假设n服从均值为0,协方差为单位阵的复高斯分布。根据信道容量
Cmax{I(X;Y)}的定义,可以证明当px服从高斯分布时,达到MIMO信道容
p(X)
:.
量。令x的协方差矩阵为R,则MIMO信道容量可表示为:
x
H
CRlogdetIHRH(3)
xx
》
其中上标‘H’表示复共轭,I为单位阵,det表示取行列式。CR表示单位带
x
宽下的MIMO信道传输速率,单位为Nat/sec。
发射机的传输功率可以表示为:
PEx2
ETrxxH
TrExxH
TrR
x
其中,x表示向量的模,Tr表示取矩阵的迹,E表示求期望。
假设发射机的最大传输功率为P,则功率约束下的MIMO信道容量计算问题可以
T
描述为:
.
H
maxlogdetIHRH
x
Rx0(4)
s..tTrRP.
xT
即在功率约束下找到x的最佳分布使得信道容量最大。此处R0表示R为半
xx
正定矩阵。
将信道矩阵进行奇异值分解,即H可分解为HUDVH,其中U和V为酉
矩阵满足
、
UUHI;UHUI;VHVI;VVHI,
nn
D为RT的矩形对角矩阵。
利用恒等式detIABdetIBA和酉矩阵性质UHUI,得到
:.
HHH
detIUDVRVDU
x
HHH
detIUUDVRVD
x
HH
detIDVRVD
x
HH
detIDDVRV
x
(5)
利用恒等式TrABTrBA和酉矩阵性质VHVI,得到
<
HH
TrRTrVVRTrVRV(6)
xxx
定义ΛDHD,利用(5)和(6),问题(4)可写为:
H
maxlogdetIΛVRV
Hx
VRxV0
(7)
H
P.
xT
经过变量替换,令XVHRV,问题(7)(.,(4))等价为
x
maxlogdetIΛX
X0(8)
s..tTrXP.
T
【
根据Hadamard不等式(参考《信息论基础》,),问题(8)的
最优解X必为对角阵。因此问题(8)可简化为
rx
maxlog1i
x0
ii1
i(9)
r
s..txP.
iT
i1
1
其中,r为H(或者Λ)的秩,x和分别为X和Λ的对角元素。
i
i
(water-filling)算法求解问题(9)
\
对问题(9)使用拉格朗日乘子法,可知最优解必须满足:
:.
1
xmax,0,i1,2...r
ivi
r
xP
iT
i1
1
其中为拉格朗日乘子。为求得x,需先确定,它满足
iv
r1
max,0P(10)
viT
i1
11
注意左边为的递增函数,因此满足(10)的唯一。
vv
@
1
找到满足(10)的的方法可形象地称为注水(warter-filling)。这是因
v
为,我们可以将看做是第i片区域的水平线,然后对整个区域注水,使其具有
i
n
深度1/v,如图1所示。所需总水量为max0,1/v,不断注水,直至总
i
i1
水量为P,。第i个区域的水位深度即为最优的x*。
Ti
1
v*
x
i
i
i
图2注水算法图示。每片区域的高度为。注水总量为P,对整个区域
iT
注水使其高度达到1/v*。每片区域上水的高度(阴影部分所示)即为最优的x*。
i
六、实验数据及具体步骤
:
1)随机产生H,每个信道系数服从均值为0,方差为1的高斯分布(对Rayliegh分布)
2)奇异值分解HUDVH(利用matlabSVD函数)
:.
3)计算ΛDHD
4)注水法求解问题(9)
5)计算RVXVH,根据(3)计算容量(或者根据问题(9)的最优值确定最大容量)。
x
·
七、实验程序和结果
一、有一并联高斯加性信道,各子信道的方差为d2=,d2=,d2=,d2=,d2=,d2=,d2=,
1234567
d2=,d2=,d2=。
8910
1、若输入的信号总功率P=5
程序
L=input('子信道数目L=');%输入子信道数目
;
d=input('各子信道噪声方差d=');%输入各信道的噪声方差
P=input('输入信号总功率P=');%输入信号总功率
D=sum(d);%各子信道的方差和
Pav=(P+D)*L;%求平均输出频率
i=1;
】
p=ones(1,L);%功率初始值
boolean=1;
c=0;%关闭的信道数量
while(boolean)
while(i<=L)
—
if(Pav<d(i)&p(i)~=0)%找出不符合的子信道并赋值为0
p(i)=0;
D=D-d(i);
c=c+1;
end
《
:.
i=i+1;
end
if(c==0)%当所有信道满足时退出循环
break;
end
!
if(i==L+1)%每个信道和Pav对比一遍后初始化各值,并重新计算Pav
i=1;
L=L-c;
c=0;
Pav=(P+D)*L;
、
end
end
L=length(ai);
fori=1:L
if(p(i)~=0)
)
p(i)=Pav-d(i);%计算各子信道分配功率
end
end
C=0;
fori=1:L
}
C=C+1/2*log2(1+p(i)/d(i));
end
p
C输出
>>WF
!
:.
子信道数目L=10
各子信道噪声方差d=[]
输入信号总功率P=5
p=
Columns1through8
,
Columns9through10
C=
、
>>WF
子信道数目L=10
各子信道噪声方差d=[]
{
输入信号总功率P=1
p=
Columns1through8
0000
Columns9through10
/
00
C=
二、实验题目
clearall;
]
:.
nt=[248];
nr=[248];
v=0;%给定1/v初始值(也就是这里的v)
forcount=1:3
y=0;
(
forPTdb=0:5:30
y=y+1;
PT=10^(PTdb/10);%把PT转化为10进制
fork=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)%当所有信道满足时退出循环
;
break;
end
if(i==L+1)%每个信道和Pav对比一遍后初始化各值,并重新计算Pav
i=1;
L=L-ct;
@
ct=0;
Pav=(PT+AI)/L;
end
end
fori=1:L
*
if(p(i)~=0)
p(i)=Pav-ai(i);%计算各子信道分配功率
end
end
X=diag(p);
Rx=VH'*X*VH;%计算Rx=V*X*VH
T=H*Rx*H';
L=length(ai);
I=diag(ones(1,L));
:.
c(k)=log2(det(T+I));%I为单位阵,det表示取行列式。c表示单位带宽
下的MIMO信道传输速率,单位为Nat/sec。
end
C(y)=real(sum(c))/1000;
pt(y)=PTdb;
end
switchcount
case1
plot(pt,C,'r-*');
holdon;
case2
plot(pt,C,'y-p');
holdon;
case3
plot(pt,C,'g-s');
holdon;
end
end
legend('nt=nr=2','nt=nr=4','nt=nr=8');
title('MIMO信道容量与功率关系图');
xlabel('功率/dB');
ylabel('容量/Nat/sec');
gridon;
输出
:.
八、实验心得
在本次的实验中,我了解了注水法的思想,并且学会了如何使用注水法来求解MIMO的信
道容量和子信道的分配功率。注水法的思想:我们可以将ai看做是第i片区域的水平线,
n
然后对整个区域注水,使其具有深度1/v。所需总水量为max0,1/v,不断注水,
i
i1
直至总水量为PT。第i个区域的水位深度即为最优的xi。在解决书上的问题时,我们要考
虑到每次平均功率都要重算,并且要知道如何找到该关闭的子信道。实验题目时我们要注意
一些数据的初始值不能少。