Why do I need to apply a window function to samples when building a power spectrum of an audio signal?

后端 未结 4 1470
青春惊慌失措
青春惊慌失措 2020-12-04 20:21

I have found for several times the following guidelines for getting the power spectrum of an audio signal:

  • collect N samples, where N is a power of 2
4条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-04 20:56

    Most real world audio signals are non-periodic, meaning that real audio signals do not generally repeat exactly, over any given time span.

    However, the math of the Fourier transform assumes that the signal being Fourier transformed is periodic over the time span in question.

    This mismatch between the Fourier assumption of periodicity, and the real world fact that audio signals are generally non-periodic, leads to errors in the transform.

    These errors are called "spectral leakage", and generally manifest as a wrongful distribution of energy across the power spectrum of the signal.

    The plot below shows a closeup of the power spectrum of an acoustic guitar playing the A4 note. The spectrum was calculated with the FFT (Fast Fourier Transform), but the signal was not windowed prior to the FFT.

    Notice the distribution of energy above the -60 dB line, and the three distinct peaks at roughly 440 Hz, 880 Hz, and 1320 Hz. This particular distribution of energy contains "spectral leakage" errors.

    Power spectrum of guitar playing an A4 note, no window was applied

    To somewhat mitigate the "spectral leakage" errors, you can pre-multiply the signal by a window function designed specifically for that purpose, like for example the Hann window function.

    The plot below shows the Hann window function in the time-domain. Notice how the tails of the function go smoothly to zero, while the center portion of the function tends smoothly towards the value 1.

    Hann window function

    Now let's apply the Hann window to the guitar's audio data, and then FFT the resulting signal.

    The plot below shows a closeup of the power spectrum of the same signal (an acoustic guitar playing the A4 note), but this time the signal was pre-multiplied by the Hann window function prior to the FFT.

    Notice how the distribution of energy above the -60 dB line has changed significantly, and how the three distinct peaks have changed shape and height. This particular distribution of spectral energy contains fewer "spectral leakage" errors.

    Power spectrum of guitar playing an A4 note, Hann window was applied

    The acoustic guitar's A4 note used for this analysis was sampled at 44.1 KHz with a high quality microphone under studio conditions, it contains essentially zero background noise, no other instruments or voices, and no post processing.

    References:

    Real audio signal data, Hann window function, plots, FFT, and spectral analysis were done here:

    Fast Fourier Transform, spectral analysis, Hann window function, audio data

提交回复
热议问题