Cyclic Matching Pursuit (CMP): Fourth Results

I am back in Rennes, working again on developing and testing a very “fast” version of cyclic matching pursuit in the MPTK framework. You may remember all my previous trials and tribulations in June of this year. Now that it is working, and MPTK is bug free, I can begin experimenting with large signals and dictionaries.

Below are the residual energy decays for MP (gray) and CMP (black) for a musical signals (glockenspiel), using a dictionary of 1,662,616 Gabor atoms of scales powers of 2 from 7 to 14, and translations one quarter their scales. CMP is refining the model every 3 dB decrease in the residual energy, with a maximum of 10 refinement cycles, or until it sees a residual energy decrease less than 0.001 dB. This of course takes longer than MP. The race to -40 dB residual energy ends for CMP at 76% of the number of MP iterations. The simple trick of CMP saves nearly a quarter of the atoms.

So, where are the differences? Below we see two spectrograms of the residuals from each algorithm. These are the ghosts of the glockenspiel, and they remind me of public television.

Any differences between the two are extremely difficult to spot to the untrained eye. But I do see some differences just before the first attack between 2 – 8 kHz. So, let’s look at the difference between the two spectrograms, which is shown below.

Now we certainly see large differences at that left transient edge. But damn if I can’t tell anything more. So let’s look at the differences between the spectrograme of the syntheses. To create the figures below, I take the spectrogram of the MP resynthesis, subtract that of CMP, and keep only the positive values. Thus, if there is a non-zero here, it means that content is in the MP synthesis and not in that of CMP.

For some reason, this picture reminds me of a wall burned by an electrical fire. Or maybe, the strange figures made through Kirlian photography.
And below we see the same, but for CMP.

And finally we see it so clearly, I think. Whatever there is in MP, there is a lot less of it for CMP. And CMP suffers less from between-transient burn? Where did those 1,731 atoms go?