How matching pusuit algorithm works
The point is that the dictionary is redundant or overcomplete, i.e. there is no unique expansion of a given signal, unlike the expansion in an orthonormal basis. This means that one tries to find "the best" expansion of a given signal, e.g. such that the error between the signal and its expansion is small while most expansion coefficients are close to zero, which is advantageous for signal compression. The matching pursuit algorithm is an iterative algorithm trying to find an approximation of the best expansion of a signal given a dictionary. Here you can find another useful overview of the matching pursuit algorithm.