In a previous section, we discussed the use of the Short-Time Fourier Transform (STFT)
to estimate a signal's time-varying frequency characteristics.
With the STFT, a signal is divided into blocks and an FFT is computed for each block.
To improve time resolution, FFT blocks typically overlap one another.
The STFT can be viewed as a filterbank, such that each spectral “bin” provides information about frequency content in a signal around a specific point in time (such as in the trumpet spectrogram below).
Figure 13:
A trumpet sound spectrogram.
To minimize spectral “splatter” associated with signal discontinuities at the block boundaries, window functions are first applied (multiplication in the time-domain).
In Figure 14, a series of concatenated (non-overlapping) triangular windows are applied to a time-domain signal. Clearly, certain parts of the signal are lost when this happens.
Figure 14:
A time-domain signal “windowed” with back-to-back triangular windows.
In order to maintain a given signal's properties when performing the STFT, it is necessary that window functions be applied in such a way that they overlap to a constant factor.
For example, if we overlap triangular windows by 50%, they sum to a constant value of one. With an overlap of 75%, they sum to a constant of two.
The Matlab script olaw.m
can be used to test various window overlap percentages. Note that there can be issues with constant overlap due to odd/even window sizes and discrepancies in end points (see link for details).
Triangular, Hanning and Hamming will sum to a constant for overlap percentages of 75% and 50%. Blackman windows sum to a constant for an overlap percentage of 75%. Other overlap percentages that sum to a constant are possible for all these window types.
If the windows do not sum to a constant, an amplitude modulation is imposed on the signal with resulting side-bands spaced by in the frequency domain (where is the sample rate and is the “hop” size in samples).