This might be more of a statistical question, but let us assume that we take a spectrogram, or STFT, where time is on the x-axis, and frequency is on the y-axis in this matrix. What information might be lost - or 'changed', if we decide to normalize each column by its own standard deviation, so that the variance of each column is equal to 1.

I understand that we would not be able to see sudden changes in overall power changes over time, etc, that is obvious, but what other features might be contorted and/or lost if we did this?


  • 1
    $\begingroup$ As you noted, you obviously lose the ability to compare absolute magnitudes from frame to frame. This may or may not be an issue in your (unspecified) application, depending upon what you want to do. You don't really lose any intra-frame information, because scaling is a trivially reversible process. $\endgroup$
    – Jason R
    Commented Sep 17, 2013 at 18:30
  • $\begingroup$ @JasonR Right, but what about patterns/information inter-frame, (besides their power) may be lost and/or contorted by such normalization? $\endgroup$ Commented Sep 17, 2013 at 18:48
  • 1
    $\begingroup$ It's hard to answer that question without knowing your application. You're essentially scaling each frame by a value that is unknown a priori, so saying for sure what effect that is going to have is difficult. Perhaps a better question is, given your application, "can I still make <insert specific comparison> between frames that have been scaled in this way?" $\endgroup$
    – Jason R
    Commented Sep 17, 2013 at 19:25
  • $\begingroup$ @JasonR Ok, the application is basically studying the statistics of each frequency bin across the time frames. I am wondering if normalizing each frame, would somehow warp or contort any statistics we might later do on frequency bins across frames. $\endgroup$ Commented Sep 18, 2013 at 13:32

1 Answer 1


Although the specifics of your data will be the ultimate factor in how this sort of normalization will impact what you're trying to measure, I think it's useful to look at extreme cases to get a sense of what might go wrong.

For example, suppose the time samples of your STFT just happened to come out one-hot, with 1s in either the highest-frequency or lowest-frequency bins and 0s everywhere else :

STFT = [[1, 0, 0, 0, 0],
        [0, 0, 0, 0, 1],
        [1, 0, 0, 0, 0],

If you subtracted out the mean values from each time sample, then clearly you'd get some "bleeding" of the power information across frequencies. In particular, the middle-frequency bin would get some nonzero value, even though in your unnormalized STFT values, that bin never has any power.

What about just dividing each time sample by its standard deviation, like you're asking about ? In this case you'll just be changing the value of the nonzero frequency bin. This would certainly impact the mean value across time of each frequency bin, since all nonzero values in your spectrogram would now be 1+$\epsilon$ rather than just 1.

This is just one possible thought experiment that you could do to explore these effects. I'd say in general that the statistics of the frequency bins across time would definitely be affected by normalizing each time frame independently, but again that the specifics will depend heavily on the data that you're analyzing.

  • $\begingroup$ Thank you. Building on what you said, isnt it safe to say however, that ALL statistics of (any) FFT bin across time would be affected? Means, variances, skewness, and all combinations thereof? It would seem to me that this would indeed be the case, no? $\endgroup$ Commented Sep 18, 2013 at 16:49
  • $\begingroup$ I would say that depends on your data, but in a general sense you should expect that none of the statistical moments of your data are guaranteed to remain the same pre- and post-normalization. In other words, local normalization is going to mess with things globally. :) $\endgroup$
    – lmjohns3
    Commented Sep 18, 2013 at 16:52
  • $\begingroup$ That makes sense. :) $\endgroup$ Commented Sep 18, 2013 at 17:17
  • $\begingroup$ Why would you subtract the mean? In power normalization, only a scaling is applied, so there is no bleeding. $\endgroup$
    – jan
    Commented Sep 19, 2013 at 21:46
  • $\begingroup$ @jan What do you mean? $\endgroup$ Commented Sep 19, 2013 at 23:37

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.