最近听了老师讲MIMO信道容量的实现,感触良多,作为刚入门通信的菜鸟,特贴上老师上课的学习笔记,以此激励自己!

信道容量

所谓信道容量,是指信道能无差错的传输信息的最大信息速率,从信息论的角度,信道容量定义为:
C=max⁡f(x) I(x,y)C=\underset{f(x)}{\mathop{\max }}\,I(x,y)C=f(x)maxI(x,y)
      其中I(x,y)I(x,y)I(x,y)是随机变量x和y的互信息,f(x)是x的概率密度函数,相当于,我们通过改变发射信号的概率密度函数,可以实现互信息的最大值,这个最大值就是信道容量。
SISO信道
先看最简单的单输入单输出信道模型:
在这里插入图片描述
                                                            输出   y(t)=hx(t)+z(t)y(t)=hx(t)+z(t)y(t)=hx(t)+z(t)
通信原理我们学过,当输出x服从高斯分布时,可以达到信道容量:
C=log⁡2(1+Pσ2∣h∣2)C={{\log }_{2}}(1+\frac{P}{{{\sigma }^{2}}}|h{{|}^{2}})C=log2(1+σ2Ph2)
这里对带宽进行了归一化,所以没有B。
MIMO信道
在这里插入图片描述
                                                                 输出   y=Hx+zy=Hx+zy=Hx+z
这里H是一个r×tr\times tr×t维的矩阵,输入x是一个t×1t\times 1t×1维的向量,t表示发射,r表示接收。z是一个服从均值为0,方差为σ2I{{\sigma }^{2}}Iσ2I的复高斯噪声。
回顾信息论,我们有如下公式:I(x,y)=H(y)−H(y∣x)I(x,y)=H(y)-H(y|x)I(x,y)=H(y)H(yx)
这里x和y都是连续随机向量,H(y)是y的微分熵。
假设x和z相互独立,所以有H(y|x)=H(z)(个人理解是熵是不确定性的度量,x和z相互独立,所以x条件下y的熵,相当于求信道里面噪声的不确定性,也就是H(z)。
所以,求最大化互信息,当给定H(z)时,即为最大化H(y),所以I(x,y)=H(y)−H(z)I(x,y)=H(y)-H(z)I(x,y)=H(y)H(z)
当x服从复高斯分布,y服从复高斯分布时,y的微分熵最大。
H(y)=log⁡2(det⁡(πeRy))H(y)={{\log }_{2}}(\det (\pi e{{R}_{y}}))H(y)=log2(det(πeRy))H(z)=log⁡2(det⁡(πeσ2I))H(z)={{\log }_{2}}(\det (\pi e{{\sigma }^{2}}I))H(z)=log2(det(πeσ2I))
这里Ry是接收信号y的自相关矩阵。
Ry=E{yyH}{{R}_{y}}=E\{y{{y}^{H}}\}Ry=E{yyH} =E{(Hx+z)(Hx+z)H}=E\{(Hx+z){{(Hx+z)}^{H}}\}=E{(Hx+z)(Hx+z)H} =E{(HxxHHH+HxzH+zxHHH+zzH)}=E\{(Hx{{x}^{H}}{{H}^{H}}+Hx{{z}^{H}}+z{{x}^{H}}{{H}^{H}}+z{{z}^{H}})\}=E{(HxxHHH+HxzH+zxHHH+zzH)} =HE{xxH}HH+σ2I=HE\{x{{x}^{H}}\}{{H}^{H}}+{{\sigma }^{2}}I=HE{xxH}HH+σ2I =HSHH+σ2I=HS{{H}^{H}}+{{\sigma }^{2}}I=HSHH+σ2I
这里,S是发送信号的协方差矩阵。因为x、z相互独立,所以乘积为0;信号的自协方差矩阵相当于方差,所以噪声那一项就变为了σ2I{{\sigma }^{2}}Iσ2I
代入熵的表达式中H(y)中,有:I(x;y)=log⁡2det⁡(I+1σ2HSHH)I(x;y)={{\log }_{2}}\det (I+\frac{1}{{{\sigma }^{2}}}HS{{H}^{H}})I(x;y)=log2det(I+σ21HSHH)
所以,我们的目标就变为C=max⁡I(x;y)Tr(s)<P =max⁡Tr(s)<P log⁡2det⁡(I+1σ2HSHH)C=\underset{Tr(s)<P}{\mathop{\max I(x;y)}}\,=\underset{Tr(s)<P}{\mathop{\max }}\,{{\log }_{2}}\det (I+\frac{1}{{{\sigma }^{2}}}HS{{H}^{H}})C=Tr(s)<PmaxI(x;y)=Tr(s)<Pmaxlog2det(I+σ21HSHH)
如何设计发送信号的协方差矩阵S,使得上式最大?
采用方法:SVD分解,hadamard不等式,注水法
1、SVD分解
(要想知道公式怎么来的可以去参考矩阵论,这里不做推导)
对信道矩阵H进行SVD分解,有 H=UΛVHH=U\Lambda {{V}^{H}}H=UΛVH
其中,H的秩为m,U为r×mr\times mr×m,V为t×mt\times mt×m的矩阵,U、V都是酉矩阵,即装置乘以本身为单位阵。Λ\LambdaΛ为m*m维,其对角元素为λi\lambda _{i}λi非负。
所以高斯信道容量可以写为:
C=max⁡I(x;y)Tr(s)<P =max⁡Tr(s)<P log⁡2det⁡(I+1σ2UΛVHSVΛUH)C=\underset{Tr(s)<P}{\mathop{\max I(x;y)}}\,=\underset{Tr(s)<P}{\mathop{\max }}\,{{\log }_{2}}\det (I+\frac{1}{{{\sigma }^{2}}}U\Lambda {{V}^{H}}SV\Lambda {{U}^{H}})C=Tr(s)<PmaxI(x;y)=Tr(s)<Pmaxlog2det(I+σ21UΛVHSVΛUH)定义S^=VHSV\hat{S}={{V}^{H}}SVS^=VHSV,再利用det(I+AB)=det(I+BA),可以得到:
I(x;y)=log⁡2det⁡(Ir+1σ2UΛVHSVΛUH)I(x;y)={{\log }_{2}}\det ({{I}_{r}}+\frac{1}{{{\sigma }^{2}}}U\Lambda {{V}^{H}}SV\Lambda {{U}^{H}})I(x;y)=log2det(Ir+σ21UΛVHSVΛUH)=log⁡2det⁡(Im+1σ2VHSVΛUHUΛ)={{\log }_{2}}\det ({{I}_{m}}+\frac{1}{{{\sigma }^{2}}}{{V}^{H}}SV\Lambda {{U}^{H}}U\Lambda )=log2det(Im+σ21VHSVΛUHUΛ)=log⁡2det⁡(Im+1σ2VHSVΛ2)={{\log }_{2}}\det ({{I}_{m}}+\frac{1}{{{\sigma }^{2}}}{{V}^{H}}SV{{\Lambda }^{2}})=log2det(Im+σ21VHSVΛ2)=log⁡2det⁡(Im+1σ2S^Λ2)={{\log }_{2}}\det ({{I}_{m}}+\frac{1}{{{\sigma }^{2}}}\hat{S}{{\Lambda }^{2}})=log2det(Im+σ21S^Λ2)
2、Hadamard不等式
Hadamard不等式:对任意半正定矩阵A的行列式小于或者等于所有对角元素的乘积:det(A)≤∏i[A]i,idet (A)\le {{\prod\limits_{i}{\left[ A \right]}}_{i,i}}det(A)i[A]i,i
当且仅当A是对角阵的时候成立。
所以,我们得到,I(x;y)≤∑i=1mlog⁡2det⁡(1+1σ2λi2[S^]i,i)I(x;y)\le \sum\limits_{i=1}^{m}{{{\log }_{2}}\det (1+\frac{1}{{{\sigma }^{2}}}\lambda _{i}^{2}{{[\hat{S}]}_{i,i}})}I(x;y)i=1mlog2det(1+σ21λi2[S^]i,i)当且仅当S^{\hat{S}}S^是对角阵的时候等号成立。
为了最大化互信息,假设S^=VHSV{\hat{S}}={{V}^{H}}SVS^=VHSV=Λp{{\Lambda }_{p}}Λp,即为对角矩阵。Λp{{\Lambda }_{p}}Λp为功率分配矩阵Λp=diag{p1,p2...pn}{{\Lambda }_{p}}=diag\{{{p}_{1}},{{p}_{2}}...{{p}_{n}}\}Λp=diag{p1,p2...pn}
我们有S=VS^VHS=V\hat{S}{{V}^{H}}S=VS^VH,代入I(X;Y)中,有:
C=maxI(x;y)=∑i=1mlog⁡2(1+λi2piσ2)C=max I(x;y)=\sum\limits_{i=1}^{m}{{{\log }_{2}}(1+\frac{\lambda _{i}^{2}{{p}_{i}}}{{{\sigma }^{2}}})}C=maxI(x;y)=i=1mlog2(1+σ2λi2pi)
**通过这个公式,对比siso的信道容量公式,就可以将mimo看成若干个siso的并行子信道,每个子信道的功率增益为λi\lambda _{i}λi
同时,考虑发射功率会有约束,Tr(S≤P)Tr(S\le P)Tr(SP),代入S,利用Tr(AB=Tr(BA)Tr(AB=Tr(BA)Tr(AB=Tr(BA),我们有:
Tr(S)=Tr(VΛpVH)=Tr(ΛpVHV)=Tr(Λp)=∑i=1mpi<=PTr(S)=Tr(V{{\Lambda }_{p}}{{V}^{H}})=Tr({{\Lambda }_{p}}{{V}^{H}}V)=Tr({{\Lambda }_{p}})=\sum\limits_{i=1}^{m}{{{p}_{i}}}<=PTr(S)=Tr(VΛpVH)=Tr(ΛpVHV)=Tr(Λp)=i=1mpi<=P
我们这里通过S,反过来设计最优发射信号x ,使得上面的功率约束取等号,这里没细说,等我想明白了再写上
接下来,每个信号的强弱不一样,对每个信号分配不同的功率,会影响信道容量。该如何分配这个功率,可以使信道容量达到最大值呢?
3、注水法
注水算法的基本原理就是根据香农公式和限制条件,通过拉格朗日乘数法组成的一个方程,先令其偏导为零,求出Pi的表达式,但是Pi的表达式中包含一个未知数,再根据限制条件可以先求解出该未知数,再回代到之前的方程中,可以求解得每个信道根据信道质量分配得到的Pi。求解问题如下:
mimo信道容量: max: C=∑i=1mlog⁡2(1+Piσ2λi)C = \sum\limits_{i = 1}^m {{{\log }_2}\left( {1 + \frac{{{P_i}}}{{{\sigma ^2}}}{\lambda _i}} \right)}C=i=1mlog2(1+σ2Piλi)
功率满足: ∑i=1mPi=P\sum\limits_{i = 1}^m {{P_i} = P}i=1mPi=P
上面为等式约束问题,可用拉格朗日乘子法求解。
引入拉格朗日函数,有 Z(λ,Pi)=∑i=1mlog⁡2(1+Piσ2λi)+L(P−∑i=1mPi)<=PZ(\lambda ,{P_i}) = \sum\limits_{i = 1}^m {{{\log }_2}\left( {1 + \frac{{{P_i}}}{{{\sigma ^2}}}{\lambda _i}} \right)} + L(P - \sum\limits_{i = 1}^m {{P_i}} )<=PZ(λ,Pi)=i=1mlog2(1+σ2Piλi)+L(Pi=1mPi)<=P
Pi{{P_i}}Pi求偏导,有
在这里插入图片描述
解得:Pi=1L∙ln⁡2−σ2λi=μ−σ2λi{P_i} = \frac{1}{{L \bullet \ln 2}} - \frac{{{\sigma ^2}}}{{{\lambda _i}}}=\mu-\frac{{{\sigma ^2}}}{{{\lambda _i}}}Pi=Lln21λiσ2=μλiσ2
其中μ\muμ为常数
因为功率不能为负数,将上述写为如下形式:
Pi=(μ−σ2λi)+{P_i} = {\left( {\mu - \frac{{{\sigma ^2}}}{{{\lambda _i}}}} \right)^ + }Pi=(μλiσ2)+
所以最优的分配策略如上式
其中(a)+=max⁡(a,0){\left( a \right)^ + } = \max (a,0)(a)+=max(a,0)
这里可用通过∑i=1mPi=P=mμ−∑i=1mσ2λ2\sum\limits_{i = 1}^m {{P_i}} = P = m\mu - \sum\limits_{i = 1}^m {\frac{{{\sigma ^2}}}{{{\lambda ^2}}}}i=1mPi=P=mμi=1mλ2σ2
得到:μ=P+∑i=1mσ2λ2m\mu = \frac{{P + \sum\limits_{i = 1}^m {\frac{{{\sigma ^2}}}{{{\lambda ^2}}}} }}{m}μ=mP+i=1mλ2σ2
在这里插入图片描述
也就是说,当已知csi(信道状态信息时),发送端会选择好的信道,给它分配大功率,过程如图示
在这里插入图片描述

时间有限,刚入门通信理论,不足之处我会虚心修改,打公式真的好难!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐