1. A signal processing system adapted for sparse representation of signals, said system comprising: (i) one or more training signals; (ii) a dictionary containing signal-atoms; (iii) a representation of each training signal using a linear combination of said dictionary's signal-atoms; (iv) means for updating the representation of the training signal; (v) means for updating the dictionary one group of atoms at a time, wherein each atom update may include all representations referring to said updated atom; and (vi) means for iterating (iv) and (v) until a stopping rule is fulfilled.