I am trying to extract features from a nonstationary signal (frequencies and time locations). For this purpose, I computed a wavelet transform (complex morlet) of the signal in MATLAB and obtained the scalogram as follows:

Examined signal Spectrogram

Than I tried to decompose the scalogram matrix by SVD, in order to localize the peaks and the spreads of energy in the image. The problem is that every matrix obtained from the decomposition (one for every singular value) contains informations about more than one single atom (peak in the image). I've read many articles about rotating the SVD basis in order to decompose the original matrix in matrices connected each to a single atom, but I'm not able to apply it in practice. If we consider the standard SVD:


a source in particular:

[Bashor & Kareem, Efficacy of Time-Frequency Domain System Identification Scheme Using Transformed Singular Value Decomposition]

talks about a new SVD given by:


where Y, Z, and X are the transformed singular vector and singular value matrices, defined as:


and the trasformation matrices are found by:


"where C are the eigenvectors of M that maximize the mean and M is a matrix of the singular vectors". My problem is to understand the mean of the latter sentence and to apply it in MATLAB. Please help me!


1 Answer 1


What you're describing is a spectrum estimation based on signal representation in a vector space spanned by eigenvectors of a particular matrix generated from your signal observation.

That reminds me extremely much of MUSIC, and ESPRIT. I think the best way to go here is to read up on spectral estimation using MUSIC, which is based on the idea that there's an autocovariance matrix (which can be easily estimated by the dyadic product of a receive signal vector with itself, for example), and that autocovariance matrix can, using an EVD (which is a special case of the SVD for quadratic matrices), be diagonalized like you do it, into a an upper, lower and a diagonal matrix. Using the magnitudes of the eigenvalues (which happen to be the entries of the diagonal matrix), you can select the eigentvectors to span a sub-space that only contains autocovariance Eigenvectors (i.e. periodicities!) that are actually in the signal; the energy in the complementary sub-space is pretty much only noise.

Using that technique, you can directly get a function that you can sample to get a pseudospectrum (MUSIC), or through elegant rotations, the set of strongest frequencies in the signal (ESPRIT).

So, I don't get the full context of the "Eigenvectors that maximize the mean", but maybe you don't have to – you can walk on the shoulders of other SVD-based spectral estimation papers, and maybe that'll help you understand the one you're currently reading (or you just build a scalogram matrix and hit it with MUSIC as if it was an autocovariance matrix estimate, and see what happens – I love just experimenting with algorithms :) ).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.