# Low-rank approximation of the STFT matrix : good audio compression technique?

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):

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

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

• 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? – Peter K. Nov 27 '15 at 19:21