⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 water_fill.m

📁 mimo信道容量的matlab的分析mimo信道容量的matlab的分析mimo信道容量的matlab的分析mimo信道容量的matlab的分析
💻 M
字号:
function Pw=water_fill(Plinear,Le,ee)

if (Le==1)
  Pw=Plinear;
else
  %
  % Coefficients
  %
  wf_coef              = zeros(Le);
  wf_coef(:,1)         = ones(Le,1);
  wf_coef(Le,:)        = ones(1,Le);
  wf_coef(1:Le-1,2:Le) = (-1)*eye(Le-1);
  inv_wf_coef          = inv(wf_coef);
  Pw                   = zeros(Le,1);
  %
  % Independent term
  %
  wf_indep         = zeros(Le,1);
  wf_indep(1:Le-1) = (ones(Le-1,1)./ee(2:Le))-(ones(Le-1,1)./ee(1));
  wf_indep(Le)     = Plinear;
  %
  % Result
  %
  Pw = inv_wf_coef*wf_indep;
  %
  % Consistency check 1 (P_i <> NaN)
  %
  if ((~(Pw(Le,1)<=0))&(~(Pw(Le,1)>=0)))
    Pt = water_fill(Plinear,Le-1,ee(1:Le-1));
    Pw = [Pt;0];
  end;
  %
  % Consistency check 2 (P_i > 0 for all i)
  %
  if (Pw(Le,1)<0)
    Pt = water_fill(Plinear,Le-1,ee(1:Le-1));
    Pw = [Pt;0];
  end;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -