function c = pick_higher_energy(cPrimary, M)
%selectHigherEnergy select points in higher energy shells
% to realize selection gain
[~, mPrimary] = size(cPrimary);
if (M == mPrimary)
    % return if no redundant bits to achive selection gain
    c = cPrimary;
    return
end
%Measure energy of each point
energy = sum(cPrimary .* conj(cPrimary), 1);
%Sort points based on energy
[~, index] = sort(energy,'descend');
%Return the first M points with highest energy
c = cPrimary(:, index(1:M));