Disadvantages of using large NFFT value in pwelch/spectrogram

6 views (last 30 days)
I'm using the pwelch function to analyse power spectrums of an audio signal:
w = 512;
nfft = 4096;
fs = 48.1e3;
[px1,px2] = pwelch(data,w,round(0.7*w),nfft,fs);
I'm trying to understand the disadvantage (apart from computing time) of using large values of nfft, in online examples the window length is often used. I understand the length of nfft determines the frequency resolution used, and that this is to do with zero-padding the signal.
If someone could give insight into how this zero padding works (considering the window length is << nfft length), and how increasing NFFt (as computing time is not a constraint) could be a disadvantage that would be great!.

Answers (1)

Greg Dionne
Greg Dionne on 30 Nov 2016
You can mean one of two things by frequency resolution:
  1. The frequency spacing between computed estimates (sometimes called the "bin width")
  2. The ability to resolve frequencies of the sampled signal independently.
When you zero-pad an FFT you essentially perform (periodic) interpolation between data points in the Fourier space. You can think of it as taking a long signal and convolving it (in the frequency domain) with the Fourier transform of the shorter window. If your window is rectangular, then you are essentially performing sin(x)/x interpolation in the frequency domain. You get a lot more estimates in the sense of #1, but they're very smoothed out.
You don't actually gain any frequency resolution in the sense of #2. You just get finer interpolation between points. The only way to gain resolution is to actually have more sample points of the original signal.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!