


Compute alpha,beta, and epsilon to update weights as
w(i) = tau/alpha/(beta*abs(x(i)) + epsilon)
Inputs:
rwt_mode
iteration number
varargin - x : running signal estimate
M : number of measurements

0001 function [alpha beta epsilon] = weight_param(rwt_mode,itr,varargin) 0002 % Compute alpha,beta, and epsilon to update weights as 0003 % w(i) = tau/alpha/(beta*abs(x(i)) + epsilon) 0004 % Inputs: 0005 % rwt_mode 0006 % iteration number 0007 % varargin - x : running signal estimate 0008 % M : number of measurements 0009 0010 switch rwt_mode 0011 case 1 0012 % Increase alpha and beta in such a way that beta > alpha > 1 0013 % This way weights decrease on all the indices, but they decrease 0014 % at a faster rate on the active set. 0015 alpha = sqrt(itr); beta = z; epsilon = 1; 0016 case 2 0017 st_wt = 2; alpha = st_wt+itr; beta = 2.5*st_wt+itr; epsilon = 0.1; 0018 case 3 0019 st_wt = 5; alpha = st_wt+itr; beta = 2*st_wt+itr; epsilon = 0.1; 0020 case 4 0021 % Fixed alpha and beta (boring) 0022 alpha = 1; beta = 1; epsilon = 0.1; 0023 case 5 0024 % Increase weights if solution becomes dense (L1/L2 norm as a proxy 0025 % for the support size, note that \|x\|_2 \le \|x\|_1 \| 0026 % sqrt(K)\|x\|_2 0027 % Decrease the weights when M is large. 0028 % Update beta at every reweighting iteration according to the 0029 % solution. 0030 x = varargin{1}; 0031 M = varargin{2}; 0032 alpha = 1; beta = M*(norm(x,2)/norm(x,1))^2; epsilon = 1; 0033 end