资源描述:
《MIMO功率分配算法,注水原理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.1功率注水算法注水算法是根据某种准则,并根据信道状况对发送功率进行自适应分配,通常是信道状况好的时刻,多分配功率,信道差的时候,少分配功率,从而最大化传输速率。实现功率的“注水”分配,发送端必须知道CSI。当接收端完全知道信道而发送端不知道信号时,发送天线阵列中的功率平均分配是合理的。当发送端知道信道,可以增加信道容量。考虑一个维的零均值循环对称复高斯信号向量,r为发送信道的秩。向量在传送之前被乘以矩阵()。在接收端,接受到的信号向量y被乘以。这个系统的有效输入输出关系式由下式给出:其中是维的变换的接受信号向量,是协方差矩阵为的零均
2、值循环对称复高斯变换噪声向量。向量必须满足已限制总的发送能量。可以看出,i=1,2,…,rMIMO信道的容量是单个平行SISO信道容量之和,由下式给出其中(i=1,2,…,r)反映了第i个子信道的发送能量,且满足。可以在子信道中分配可变的能量来最大化互信息。现在互信息最大化问题就变成了:最大化目标在变量中是凹的,用拉格朗日法最大化。最佳能量分配政策注水算法:Step1:迭代计数p=1,计算Step2:用μ计算,i=1,2,…,r-p+1Step3:若分配到最小增益的信道能量为负值,即设,p=p+1,转至Step1.若任意非负,即得到最佳
3、注水功率分配策略。1.2发送端知道信道时的信道容量%inthisprogrameahighlyscatteredenviromentisconsidered.The%CapacityofaMIMOchannelwithnttransmitantennaandnrrecieve%antennaisanalyzed.Thepowerinparallelchannel(after%decomposition)isdistributedaswater-fillingalgorithmclearallcloseallclcnt_V=[12324]
4、;nr_V=[12234];N0=1e-4;B=1;Iteration=1e2;%mustbegraterthan1e2SNR_V_db=[-10:3:20];SNR_V=10.^(SNR_V_db/10);color=['b';'r';'g';'k';'m'];notation=['-o';'->';'<-';'-^';'-s'];for(k=1:5)nt=nt_V(k);nr=nr_V(k);for(i=1:length(SNR_V))Pt=N0*SNR_V(i);for(j=1:Iteration)H=random('raylei
5、gh',1,nr,nt);[SVD]=svd(H);landas(:,j)=diag(V);[Capacity(i,j)PowerAllo]=WaterFilling_alg(Pt,landas(:,j),B,N0);endendf1=figure(1);holdonplot(SNR_V_db,mean(Capacity'),notation(k,:),'color',color(k,:))clearlandasendf1=figure(1)legend_str=[];for(i=1:length(nt_V))legend_str=[l
6、egend_str;...{['nt=',num2str(nt_V(i)),',nr=',num2str(nr_V(i))]}];endlegend(legend_str)gridonset(f1,'color',[111])xlabel('SNRindB')ylabel('Capacitybits/s/Hz')注水算法子函数function[CapacityPowerAllo]=WaterFilling_alg(PtotA,ChA,B,N0);%%WaterFillinginOptimisingtheCapacity%========
7、=======%Initialization%===============ChA=ChA+eps;NA=length(ChA);%thenumberofsubchannelsallocatedtoH=ChA.^2/(B*N0);%theparameterrelatetoSNRinsubchannels%assignthepowertosubchannelPowerAllo=(PtotA+sum(1./H))/NA-1./H;while(length(find(PowerAllo<0))>0)IndexN=find(PowerAllo<
8、=0);IndexP=find(PowerAllo>0);MP=length(IndexP);PowerAllo(IndexN)=0;ChAT=ChA(IndexP);HT=ChAT.^2/(B*N0);P