In a joint work with Michal Aharon and Freddy Bruckstein, we studied ways to train a dictionary to lead to sparse representation of training signals. The developed algorithm, called K-SVD, along with some demonstration of its use for denoising, are available as Matlab toolbox package that was organized by Ron Rubinstein, and it can be downloaded from his web-page.