FFT - radix 2 - decimation in time -frequency range ​
Hello,

I would like to ask how to decrease (make it narrow) frequency range for calculations in FFT radix 2 - decimation in time - algorithm?

Let me explain what I exactly mean:

When you compute DFT in regular manner (I mean not FFT) you make frequency bin loop, and for each frequency bin you need next loop to use each possible sample you have. Then you can measure whole frequency range - in example for audio it would be something like from 0 Hz to 44100 Hz, of course if you have buffer size the same as sample rate 44100. But very often we don’t need to calculate whole frequency range, in example for audio very often 20 Hz to 20 kHz is perfectly enough. So in regular computation of DFT, you can just change frequency bin loop range, and then you use all possible samples but measure only those chosen frequences.

But when you compute DFT by FFT algorithm, you first divide your buffer size by half of a buffer size, so in my example you compute 22050 DFTs with two point size of each. And then you conquer results in log2(buffer size) steps. From the the first step to the one before last there is no loop that correspond to frequency range or just I can’t see it. Only the last step correspond to frequency range.

So my question is:

can I shrink the frequency range only in that last step, or can I do that in some way for whole FFT algorithm? If yes, could you give me some hint, how to do that?
If you studied the materials I recommended you on comments to your previous question. You would notice that FFT algorithm takes advantage of certain symmetries to make computations faster. If you don't want to work with a whole frequency range simply select the appropriate sampling frequency and concentrate all your FFT resolution points there. If you can't choose your sampling frequency take the samples and then decimate  them. Alternatively you can also use the Goertzel algorithm to work only with the frequencies you select.