This document discusses the K-SVD algorithm, which is a dictionary learning method for sparse representations of signals. It alternates between sparse coding to represent signals using the current dictionary, and dictionary updating to learn a new dictionary from the signal representations. The algorithm generalizes the K-means clustering process. The document provides details on the methodology of K-SVD, including its basic steps and application to synthetic and real image signals. It is concluded that K-SVD learns dictionaries that better represent given signal groups compared to alternative methods.