baijie223 2015-04-23 13:07 采纳率: 0%
浏览 3078
已结题

注水算法子函数,希望得到注释

讲清一下重要的步骤,程序意义及物理意义,只程序意义也可
function [Capacity PowerAllo] = WaterFilling_alg(PtotA,ChA,B,N0);
%
% WaterFilling in Optimising the Capacity
%===============
% Initialization
%===============
ChA = ChA + eps;
NA = length(ChA); % the number of subchannels allocated to

H = ChA.^2/(B*N0); % the parameter relate to SNR in subchannels
% assign the power to subchannel
PowerAllo = (PtotA + sum(1./H))/NA - 1./H;
while(length(find(PowerAllo < 0 ))>0)
IndexN = find(PowerAllo <= 0 );
IndexP = find(PowerAllo > 0);
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;
end
PowerAllo = PowerAllo.';

Capacity = sum(log2(1+ PowerAllo.' .* H));

  • 写回答

2条回答 默认 最新

  • Z_shsf 2015-05-19 12:59
    关注

    你程序%那都是解释呀,看来你对注水算法不了解呀
    基本原理:
    信噪比(即信号功率谱与噪声功率谱之和)为常数时,系统才能达到总信道容量最大的要求。
    当SNR很大时,Pi等功率分配,注水算法功效消失。
    在功率分配的问题中,只有满足注水定理时,才能达到信道容量最大化。
    也就是说信噪比大的信道分得的功率多,信噪比小的信道分得的功率少。
    使用拉格朗日乘子分配信道功率Pi使得信道容量最大。
    Pi=( 1/(lambda)i—u )+
    编程仿真:
    先对池底进行排序,然后分段求解拉格朗日乘子(lambda)i。

    评论

报告相同问题?

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)