function capacity = symcap(H,P,its,tol) % Symmmetric Capcity % % Usage: cap=symcap(H,P) % cap=symcap(H,P,its) % cap=symcap(H,P,its,tol) % Inputs: % H : 3-dim channel matrices % P : power constraint % its : dpc steps % tol : tolerance for the ellipsoid algoirithm % Output: % cap : symmetric rate for an individual user % % Authors: Juyul Lee and Nihar Jindal % Date: 05/31/2006 % % Note: This routine is based on the paper: % J. Lee and N. Jindal % "Symmetric capacity of a downlink MIMO channel," % IEEE ISIT 2006. if nargin < 4 tol = 1e-4; end; if nargin < 3 its = 25; end; [M,N,K]=size(H); mu = (1/K)*ones(K,1); % init E = (1-1/K)*eye(K-1); subgrad=zeros(K-1,1); while(1) [rate_y,Q]=f_wtdratesumcap2(mu,H,10*log10(P),its); % check sort_rate = sort(rate_y); mean_rate = mean(rate_y); if((mean_rate-sort_rate(1)0) break; %error('Negative length of axis due to finite representation...'); end; end; capacity = sum(rate_y)/K;