  We describe new results and algorithms for two different, but related,
problems which deal with circulant matrices: learning shift-invariant
components from training data and calculating the shift (or alignment) between
two given signals. In the first instance, we deal with the shift-invariant
dictionary learning problem while the latter bears the name of (compressive)
shift retrieval. We formulate these problems using circulant and convolutional
matrices (including unions of such matrices), define optimization problems that
describe our goals and propose efficient ways to solve them. Based on these
findings, we also show how to learn a wavelet-like dictionary from training
data. We connect our work with various previous results from the literature and
we show the effectiveness of our proposed algorithms using synthetic, ECG
signals and images.
