您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > MIMO信道容量计算
实验一:MIMO信道容量计算实验学时:3实验类型:(演示、验证、综合、设计、√研究)实验要求:(√必修、选修)一、实验目的通过本实验的学习,理解和掌握信道容量的概念和物理意义;了解多天线系统信道容量的计算方法;采用计算机编程实现经典的注水算法。二、实验内容MIMO信道容量;注水算法原理;采用计算机编程实现注水算法。三、实验组织运行要求以学生自主训练为主的开放模式组织教学四、实验条件(1)微机(2)MATLAB编程工具五、实验原理、方法和手段MIMO(MIMO,MultipleInputMultipleOutput)技术利用多根天线实现多发多收,充分利用了空间资源,在有限的频谱资源上可以实现高速率和大容量,已成为4G通信系统以及未来无线通信系统的关键技术之一。T12nTh11h21R12nR图1平坦衰弱MIMO信道模型1.MIMO信道模型MIMO指多输入多输出系统,当发送信号所占用的带宽足够小的时候,信道可以被认为是平坦的,即不考虑频率选择性衰落。平坦衰弱的MIMO信道可以用一个RTnn的复数矩阵H描述:111212122212TTRTRRnnnnnnhhhhhhhhhH(1)其中Tn为发送端天线数,Rn为接收端天线数,H的元素,jih表示从第i根发射天线到第j根接收天线之间的空间信道衰落系数。窄带MIMO信道模型(如图1所示)可以描述为:yHxn(2)其中,x为发送信号;y为接收信号;n为加性高斯白噪声。2.MIMO信道容量假设n服从均值为0,协方差为单位阵的复高斯分布。根据信道容量()max{(;)}pXCIXY的定义,可以证明当px服从高斯分布时,达到MIMO信道容量。令x的协方差矩阵为xR,则MIMO信道容量可表示为:logdetHCxxRIHRH(3)其中上标‘H’表示复共轭,I为单位阵,det表示取行列式。CxR表示单位带宽下的MIMO信道传输速率,单位为Nat/sec。发射机的传输功率可以表示为:2HHPEETrTrETrxxxxxxR其中,x表示向量的模,Tr表示取矩阵的迹,E表示求期望。假设发射机的最大传输功率为TP,则功率约束下的MIMO信道容量计算问题可以描述为:0maxlogdet...HTstTrPxxRxIHRHR(4)即在功率约束下找到x的最佳分布使得信道容量最大。此处0xR表示xR为半正定矩阵。3.奇异值分解及问题转化将信道矩阵进行奇异值分解,即H可分解为HHUDV,其中U和V为酉矩阵满足;;;HHHHUUIUUIVVIVVI,D为RTnn的矩形对角矩阵。利用恒等式detdetIABIBA和酉矩阵性质HUUI,得到detdetdetdetHHHHHHHHHHxxxxIUDVRVDUIUUDVRVDIDVRVDIDDVRV(5)利用恒等式TrTrABBA和酉矩阵性质HVVI,得到HHTrTrTrxxxRVVRVRV(6)定义HΛDD,利用(5)和(6),问题(4)可写为:0maxlogdet...HHHTstTrPxxVRVxIΛVRVVRV(7)经过变量替换,令HxXVRV,问题(7)(i.e.,(4))等价为0maxlogdet...TstTrPXIΛXX(8)根据Hadamard不等式(参考《信息论基础》ThomasM.Cover,定理16.8.2),问题(8)的最优解X必为对角阵。因此问题(8)可简化为011maxlog1...irixiiriTixstxP(9)其中,r为H(或者Λ)的秩,ix和1i分别为X和Λ的对角元素。4.注水(water-filling)算法求解问题(9)对问题(9)使用拉格朗日乘子法,可知最优解必须满足:11max,0,1,2...iiriTixirvxP其中为拉格朗日乘子。为求得ix,需先确定1v,它满足11max,0riTiPv(10)注意左边为1v的递增函数,因此满足(10)的1v唯一。找到满足(10)的1v的方法可形象地称为注水(warter-filling)。这是因为,我们可以将i看做是第i片区域的水平线,然后对整个区域注水,使其具有深度1/v,如图1所示。所需总水量为1max0,1/niiv,不断注水,直至总水量为TP,。第i个区域的水位深度即为最优的*ix。ixi*1vi图2注水算法图示。每片区域的高度为i。注水总量为TP,对整个区域注水使其高度达到*1/v。每片区域上水的高度(阴影部分所示)即为最优的*ix。六、实验数据及具体步骤1)随机产生H,每个信道系数服从均值为0,方差为1的高斯分布(对Rayliegh分布)2)奇异值分解HHUDV(利用matlabSVD函数)3)计算HΛDD4)注水法求解问题(9)5)计算HxRVXV,根据(3)计算容量(或者根据问题(9)的最优值确定最大容量)。七、实验程序和结果一、有一并联高斯加性信道,各子信道的方差为d12=0.1,d22=0.2,d32=0.3,d42=0.4,d52=0.5,d62=0.6,d72=0.7,d82=0.8,d92=0.9,d102=1.0。1、若输入的信号总功率P=5程序L=input('子信道数目L=');%输入子信道数目d=input('各子信道噪声方差d=');%输入各信道的噪声方差P=input('输入信号总功率P=');%输入信号总功率D=sum(d);%各子信道的方差和Pav=(P+D)*1.0/L;%求平均输出频率i=1;p=ones(1,L);%功率初始值boolean=1;c=0;%关闭的信道数量while(boolean)while(i=L)if(Pavd(i)&p(i)~=0)%找出不符合的子信道并赋值为0p(i)=0;D=D-d(i);c=c+1;endi=i+1;endif(c==0)%当所有信道满足时退出循环break;endif(i==L+1)%每个信道和Pav对比一遍后初始化各值,并重新计算Pavi=1;L=L-c;c=0;Pav=(P+D)*1.0/L;endendL=length(ai);fori=1:Lif(p(i)~=0)p(i)=Pav-d(i);%计算各子信道分配功率endendC=0;fori=1:LC=C+1/2*log2(1+p(i)/d(i));endpC输出WF子信道数目L=10各子信道噪声方差d=[0.10.20.30.40.50.60.70.80.91.0]输入信号总功率P=5p=Columns1through80.95000.85000.75000.65000.55000.45000.35000.2500Columns9through100.15000.0500C=6.0661WF子信道数目L=10各子信道噪声方差d=[0.10.20.30.40.50.60.70.80.91.0]输入信号总功率P=1p=Columns1through80.40000.30000.20000.10000000Columns9through1000C=2.3514二、实验题目clearall;nt=[248];nr=[248];v=0;%给定1/v初始值(也就是这里的v)forcount=1:3y=0;forPTdb=0:5:30y=y+1;PT=10^(PTdb/10);%把PT转化为10进制fork=1:1000H=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*VHA=D'*D;%求DH*Dai=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(Pavai(i)&p(i)~=0)%找出不符合的子信道并赋值为0p(i)=0;AI=AI-ai(i);ct=ct+1;endi=i+1;endif(ct==0)%当所有信道满足时退出循环break;endif(i==L+1)%每个信道和Pav对比一遍后初始化各值,并重新计算Pavi=1;L=L-ct;ct=0;Pav=(PT+AI)/L;endendfori=1:Lif(p(i)~=0)p(i)=Pav-ai(i);%计算各子信道分配功率endendX=diag(p);Rx=VH'*X*VH;%计算Rx=V*X*VHT=H*Rx*H';L=length(ai);I=diag(ones(1,L));c(k)=log2(det(T+I));%I为单位阵,det表示取行列式。c表示单位带宽下的MIMO信道传输速率,单位为Nat/sec。endC(y)=real(sum(c))/1000;pt(y)=PTdb;endswitchcountcase1plot(pt,C,'r-*');holdon;case2plot(pt,C,'y-p');holdon;case3plot(pt,C,'g-s');holdon;endendlegend('nt=nr=2','nt=nr=4','nt=nr=8');title('MIMO信道容量与功率关系图');xlabel('功率/dB');ylabel('容量/Nat/sec');gridon;输出八、实验心得在本次的实验中,我了解了注水法的思想,并且学会了如何使用注水法来求解MIMO的信道容量和子信道的分配功率。注水法的思想:我们可以将ai看做是第i片区域的水平线,然后对整个区域注水,使其具有深度1/v。所需总水量为1max0,1/niiv,不断注水,直至总水量为PT。第i个区域的水位深度即为最优的xi。在解决书上的问题时,我们要考虑到每次平均功率都要重算,并且要知道如何找到该关闭的子信道。实验题目时我们要注意一些数据的初始值不能少。
本文标题:MIMO信道容量计算
链接地址:https://www.777doc.com/doc-4773874 .html