Sparsity-Cognizant Algorithms With Applications To Communications, Signal Processing, And The Smart Grid.