您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > MIMO功率分配算法-注水原理
1.1功率注水算法注水算法是根据某种准则,并根据信道状况对发送功率进行自适应分配,通常是信道状况好的时刻,多分配功率,信道差的时候,少分配功率,从而最大化传输速率。实现功率的“注水”分配,发送端必须知道CSI。当接收端完全知道信道而发送端不知道信号时,发送天线阵列中的功率平均分配是合理的。当发送端知道信道,可以增加信道容量。考虑一个1r维的零均值循环对称复高斯信号向量s~,r为发送信道的秩。向量在传送之前被乘以矩阵V(HVUH)。在接收端,接受到的信号向量y被乘以HU。这个系统的有效输入输出关系式由下式给出:nsMEnUsVVUUMEnUsHVUMEyTsHHHTsHHTs~~~~~VHsysynHU发送端信道接收端其中y~是1r维的变换的接受信号向量,n~是协方差矩阵为rHINnn0}~~{的零均值循环对称复高斯1r变换噪声向量。向量s~必须满足THMss}~~{已限制总的发送能量。可以看出iiiTsinsMEy~~~,i=1,2,…,rMIMO信道的容量是单个平行SISO信道容量之和,由下式给出riiTisNMEC102)1(log其中}{2iis(i=1,2,…,r)反映了第i个子信道的发送能量,且满足TriiM1。可以在子信道中分配可变的能量来最大化互信息。现在互信息最大化问题就变成了:riiTisMNMECriTi1)2)1(logmax1最大化目标在变量),..,1(rii中是凹的,用拉格朗日法最大化。最佳能量分配政策}0),max{(0isToptiENMriToptiM1注水算法:Step1:迭代计数p=1,计算]11[1110prisTENprMStep2:用μ计算isTiENM0,i=1,2,…,r-p+1Step3:若分配到最小增益的信道能量为负值,即设01pr,p=p+1,转至Step1.若任意i非负,即得到最佳注水功率分配策略。1.2发送端知道信道时的信道容量%inthisprogrameahighlyscatteredenviromentisconsidered.The%CapacityofaMIMOchannelwithnttransmitantennaandnrrecieve%antennaisanalyzed.Thepowerinparallelchannel(after%decomposition)isdistributedaswater-fillingalgorithmclearallcloseallclcnt_V=[12324];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('rayleigh',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=[legend_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%===============%Initialization%===============ChA=ChA+eps;NA=length(ChA);%thenumberofsubchannelsallocatedtoH=ChA.^2/(B*N0);%theparameterrelatetoSNRinsubchannels%assignthepowertosubchannelPowerAllo=(PtotA+sum(1./H))/NA-1./H;while(length(find(PowerAllo0))0)IndexN=find(PowerAllo=0);IndexP=find(PowerAllo0);MP=length(IndexP);PowerAllo(IndexN)=0;ChAT=ChA(IndexP);HT=ChAT.^2/(B*N0);PowerAlloT=(PtotA+sum(1./HT))/MP-1./HT;PowerAllo(IndexP)=PowerAlloT;endPowerAllo=PowerAllo.';Capacity=sum(log2(1+PowerAllo.'.*H));注意:是HHH的奇异值,所以对H奇异值分解后要平方ChA.^21.3发送端不知道信道时的信道容量功率均等发送,信道容量的表达式为HTnHHnPIWCR22logclearallclcnt_V=[12324];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:length(nt_V))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('rayleigh',1,nr,nt);Capacity(i,j)=log2(det(eye(nr)+Pt/(nt*B*N0)*H*H'));endendf2=figure(2);holdonplot(SNR_V_db,mean(Capacity'),notation(k,:),'color',color(k,:))clearlandasendf2=figure(2)legend_str=[];for(i=1:length(nt_V))legend_str=[legend_str;...{['nt=',num2str(nt_V(i)),',nr=',num2str(nr_V(i))]}];endlegend(legend_str)gridonset(f2,'color',[111])xlabel('SNRindB')ylabel('Capacitybits/s/Hz')1.4已知信道和未知信道容量比较clearallcloseallclcnt_V=[12324];nr_V=[12234];N0=1e-4;B=1;Iteration=1e2;%mustbegreaterthan1e2SNR_V_db=[-10:3:20];SNR_V=10.^(SNR_V_db/10);color=['b';'r';'g';'k';'m'];notation=['-o';'-';'-';'-^';'-s'];notation_uninf=[':o';':';':';':^';':s'];for(k=1:length(nt_V))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('rayleigh',1,nr,nt);[SVD]=svd(H);landas(:,j)=diag(V);Capacity_uninf(i,j)=log2(det(eye(nr)+Pt/(nt*B*N0)*H*H'));[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,:))holdonplot(SNR_V_db,mean(Capacity_uninf'),notation_uninf(k,:),'color',color(k,:))clearlandasendgridonset(f1,'color',[111])xlabel('SNRindB')ylabel('Capacitybits/s/Hz')f1=figure(1)legend_str=[];for(i=1:length(nt_V))legend_str=[legend_str;...{['nt=',num2str(nt_V(i)),',nr=',num2str(nr_V(i))]}];endlegend(legend_str)gridonset(f1,'color',[111])xlabel('SNRindB')ylabel('Capacitybits/s/Hz')由图形中可以看出:1.在小信噪比时,相同信噪比下利用CSI的功率注水算法获得容量优于未知CSI的平均功率分配算法;相同容量下已知CSI信噪比比未知CSI时的信噪比小3dB.2.当信噪比增大到一定程度时,功率注水算法所获得的信道容量将收敛到平均功率分配的信道容量。
本文标题:MIMO功率分配算法-注水原理
链接地址:https://www.777doc.com/doc-5557560 .html