title: Improving frequency resolution of FFT output by limiting frequency range?
body: <p>I am new to FFTs and signal processing, so hopefully this question makes sense and/or isn't stupid.</p>
  
  <p>I would like to perform spectrum analysis on a live audio signal. My goal is to find a good tradeoff between responsiveness and frequency resolution, such that I can take a guess at the pitch of the incoming audio in near-realtime.</p>
  
  <p>From what I've gathered about the math behind the Fourier transform, there is an inherent balance between sample size and frequency resolution. The bigger the sample, the better resolution. Since I am trying to minimize sample size (to attain the near-realtime requirement), this means my resolution suffers (each slot in the output buffer corresponds to a wide frequency range, which is undesirable).</p>
  
  <p>However, for my intended application, I don't care about most of the spectrum. I only need spectrum info for a narrow frequency range, say 100hz - 1600hz for example. Is there any way to modify an FFT implementation such that I can improve the resolution of the frequency domain output while keeping the input buffer size constant (and small)? In other words, can I trade output total bandwidth for output resolution? If so, how is this done?</p>
  
  <p>Although I have a weak grasp of the math at best, it seems that padding the input buffer with zeros might be interesting, no?</p>
  
  <p>Thanks in advance for any help you can offer.</p>