In a previous section, we discussed the use of the STFT to estimate a signal's time-varying frequency response.
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.
To minimize spectral “splatter” associated with signal discontinuities at the block boundaries, window functions are first applied (multiplication in the time-domain).
In Figure 2, a series of concatenated triangular windows are applied to a time-domain signal. Clearly, certain parts of the signal are lost when this happens.
Figure 2:
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).