Vital-Signs-Detection-and-Estimation / SWEllingson_.m
SWEllingson_.m
Raw
function [Idata__,Qdata__]=SWEllingson_(Idata, Qdata)
    
    
    Inorm = max(Idata);
    Qnorm = max(Qdata);
    
    Idata = Idata/Inorm;
    Qdata = Qdata/Qnorm;


    Imean = mean(Idata);
    Qmean = mean(Qdata);

    Idata_ = Idata - Imean;
    Qdata_ = Qdata - Qmean;
    
    
    alpha = sqrt(2 * mean(Idata_.*Idata_));
    
    sin_ = 2/alpha * (mean(Idata_.*Qdata_));

    cos_ = sqrt(1-(sin_)^2); 

    A_ = 1/alpha;
    C_ = -sin_/(alpha*cos_);
    D_ = 1/cos_;

    Idata__ = Inorm * (A_ * Idata_);
    Qdata__ = Qnorm * (C_ * Idata_ + D_ * Qdata_);


end