注水算法的论文.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.1功率注水算法 在频率选择性衰落明显的信道中,OFDM的不同的子信道受到不同的衰落,因此有不同的传输能力,将自适应技术应用于OFDM系统,根据子信道的瞬时特性动态地分配数据速率和传输功率,可以优化系统性能。在单用户OFDM系统中,由于频率选择性衰落的缘故,有相当一部分子信道由于衰落严重而不应被使用;而在多用户OFDM系统中,由于传输路径不同,使得相对于某一用户衰落严重的子信道,对于其他用户的衰落并不一定严重。事实上,各用户的衰落是相互独立的,很少会出现对所有用户都严重衰落的子信道。因此,在OFDM系统中,采用自适应资源分配和调制技术,即根据信道的瞬时特性在每个OFDM符号周期内分配给每个子信道不同的信息比特数,使系统达到最大比特率。各子信道信息分配应遵循信息论中的“注水定理”,亦即优质信道多传送,较差信道少传送,劣质信道不传送的原则。 下图里面1/λ是由环境(多径衰落、SNR)决定的功率阈值,那些阶梯表示子信道的状态,越靠下信道越好。由1/λ和子信道的状态来决定在各子信道中如何分配功率。(图14中的P*就表示对那个阶梯层(即子信道)分配的功率多少,也就是1/λ和阶梯层的差值)。信道状态越好,分配的功率越多,越差就越少,当状态差的程度超过阈值1/λ就不在该子信道上分配功率了。这样就好比在一个池子里放水,水面的高度就是1/λ,而池底的分布就由各子信道状态来组成(即图中的阶梯),因此叫注水算法。 注水算法是根据某种准则,并根据信道状况对发送功率进行自适应分配,通常是信道状况好的时刻,多分配功率,信道差的时候,少分配功率,从而最大化传输速率。实现功率的“注水”分配,发送端必须知道CSI。 当接收端完全知道信道而发送端不知道信号时,发送天线阵列中的功率平均分配是合理的。当发送端知道信道,可以增加信道容量。 考虑一个维的零均值循环对称复高斯信号向量,r为发送信道的秩。向量在传送之前被乘以矩阵()。在接收端,接受到的信号向量y被乘以。这个系统的有效输入输出关系式由下式给出: 其中是维的变换的接受信号向量,是协方差矩阵为的零均值循环对称复高斯变换噪声向量。向量必须满足已限制总的发送能量。 可以看出 ,i=1,2,…,r MIMO信道的容量是单个平行SISO信道容量之和,由下式给出 其中(i=1,2,…,r)反映了第i个子信道的发送能量,且满足。 可以在子信道中分配可变的能量来最大化互信息。现在互信息最大化问题就变成了: 最大化目标在变量中是凹的,用拉格朗日法最大化。最佳能量分配政策 注水算法: Step1:迭代计数p=1,计算 Step2:用μ计算,i=1,2,…,r-p+1 Step3:若分配到最小增益的信道能量为负值,即设,p=p+1,转至Step1. 若任意非负,即得到最佳注水功率分配策略。 1.2 发送端知道信道时的信道容量 % in this programe a highly scattered enviroment is considered. The % Capacity of a MIMO channel with nt transmit antenna and nr recieve % antenna is analyzed. The power in parallel channel (after % decomposition) is distributed as water-filling algorithm clear all close all clc nt_V = [1 2 3 2 4]; nr_V = [1 2 2 3 4]; N0 = 1e-4; B = 1; Iteration = 1e2; % must be grater than 1e2 SNR_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); [S V D] = svd(H); landas(:,j) = diag(V); [Capacity(i,j) PowerAllo] = WaterFilling_alg(Pt,landas(:,j),B,N0);

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档