Window size is the amount of time over which a waveform is sampled, known as time record, expressed in samples. For example, a window size of 128 samples at a sample rate of 48 kHz. Equals a time record of 128 samples x 1/48000 seconds = 0,0027 seconds or 2,7 milliseconds.

So how does this determine frequency resolution?

Time record is not unlike shutter speed on a camera. For a waveform to be fully characterized, it must complete at least one full cycle within the duration of the time record. Consequentially lower frequencies (longer periods) require longer time records. Continuing the example above. A 2,7 ms time record equals a period of 1/0,0027 = 375 Hz. In other words, the lowest frequency you can analyze with a window size of 128 samples at a sample rate of 48 kHz is 375 Hz.

The Fast Fourier Transform will show all frequencies that have completed one or more full cycles during the time record. Again continuing the above example. Runner-up is 2 cycles or half the time record each, which is period of 750 Hz. Twice the lowest frequency. Third place goes to 3 cycles or one-third of the time record each, which is a period of 1.125 Hz. Three times the lowest frequency. So on and so forth. The linear fashion of FFT is revealing itself, demonstrating the 375 Hz bandwidth of a 128 sample time window or 2,7 ms time record at 48 kHz sample rate.

The image on the right shows the entire series up to Nyquist or half the sample rate, for a window size of 128 samples, containing 63 frequencies or data points. With each octave the amount of data points doubles and frequency resolution increases. The frequency resolution is expressed in Points Per Octave or PPO. The last column shows the bandwidth of each data point expressed in octaves.