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

📄 waterfill.m

📁 实现mimo预编码环境中容量的所有计算,包括不同的准则
💻 M
字号:
function [lambda] = waterfill(gamma, sigma)
  
%------------------------------------------------------------
% Function to calculate the waterfilling power levels.
%
% Author: Mai Vu
% Date: 11/30/2003
% Modified: 04/17/2004
%------------------------------------------------------------

%------------------------------------------------------------
% INPUTS
%   gamma: SNR (linear, not dB)
%   sigma: channel eigenvalues
%
% OUTPUTS
%  lambda: waterfilling power levels
%
%------------------------------------------------------------

  [sigma_valid, indices] = sort(-sigma);
  sigma_valid = -sigma_valid;

  while (1)
    N = length(sigma_valid);
    mu = (1 + sum(1./sigma_valid)/gamma)/N;
    lambda_temp = mu - 1./sigma_valid/gamma;
    if min(lambda_temp) < 0
      sigma_valid = sigma_valid(1:N-1);
    else
      break;
    end
  end
  
  lambda_temp = [lambda_temp; zeros(length(sigma)-length(lambda_temp), 1)];
  lambda(indices) = lambda_temp;
  lambda = lambda';  % make into a column vector

⌨️ 快捷键说明

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