I recently heard about this interesting math tool:

  1. With a matrix $A$, compute the SVD ($ A = U \Sigma ^tV$ factorization, where $\Sigma$ is a diagonal matrix containing the "singular values")
  2. Keep the $k$ biggest singular values only and discard the lowest ones (set them to $0$); this gives $\tilde{\Sigma}$.
  3. Then $ \tilde{A} = U \tilde{\Sigma} ^tV$ will be the best rank-$k$ approximation of A.

Step #2 allows to save a lot of storage size, and thus this can be thought as a compression technique. See this example on image processing.

Then I wanted to try this on STFT. I did :

Audio sound ---> STFT ---> low-rank-approximation of the STFT matrix thanks to SVD ---> iSTFT

The good thing is that it helps to save storage size, compression! The bad thing is that it only resulted in loosing the high frequencies :

Original STFT (listen to the audio file):

enter image description here

After low-rank-approximation STFT (high frequencies more or less lost) (listen to the audio file):

enter image description here

Is there a way to turn this "low-rank approximation of STFT" into something better? And if not, why?

  • $\begingroup$ The problem with low rank SVD approximations generally is that you have no control over what components ("singular" vectors; SVD equivalent of eigenvectors) the decomposition will find. Would just using $k$ largest FFT coefficients do any better? $\endgroup$ – Peter K. Nov 27 '15 at 19:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.