2

As a response to this question I have proposed interpolating new samples in a DFT (meaning the frequency samples of an existing DFT result) sufficient to be the new samples that if we were to take the inverse DFT we would get a zero padded sequence. The property referenced is that a zero padded time domain sequence will create interpolated samples in between the existing samples of the DFT of the original sequence. The new samples are determined from a circular convolution of the DFT with the Dirichlet Kernel, and when done properly, the inverse FFT of the result will be the original sequence zero-padded out to the longer length.

In deriving the details of implementing that, my most efficient solution (in a long round-about path to get there not seeing the forest for the trees) ended up being to simply take the inverse FFT, zero pad that and take the FFT.

This leads to my question now in that if our intention was to create an interpolated FFT from a given FFT (that would be the FFT of a zero padded inverse FFT), is there a more direct approach that would be more efficient than inverse FFT, zero pad, FFT based on the convolution property stated? Can we predict the frequency domain samples without having to go to the time domain in a way that would be more efficient?

Dan Boschen
  • 50,942
  • 2
  • 57
  • 135
  • If you want to compute all of the uniform frequency samples in the range $[-\pi,\pi)$ (or $[0 , 2\pi)$) then, afaik, the DFT (via FFT) approach is the most efficient way to "exactly" compute that whole set of interpolated samples... If you need just a subset of the interpolated frequency samples, may be CTA, ChirpZ etc can help... – Fat32 Dec 03 '21 at 15:31
  • @Fat32 yes will need ALL and in the case when zero padding out to an integer multiple then we can reuse the original samples (so only need about half the samples when doubling for example) – Dan Boschen Dec 03 '21 at 15:57
  • Why not just use the DTFT? – MBaz Dec 03 '21 at 17:24
  • @MBaz can you elaborate? I always did the DTFT as a zero padded FFT but that too is done from the time domain samples. The question here is if we can get the missing samples of the DTFT from the FFT samples directly (and the answer is yes of course as there is only one solution - but then is there a more efficient and direct approach over what I am doing: which is IFFT first and then DTFT – Dan Boschen Dec 03 '21 at 18:15
  • Dan, my suggestion is: instead of IFFT -> zero-pad -> FFT, do IFFT -> DTFT(evaluated at the frequencies you are interested in). I'm not certain that this approach is less computationally expensive, but the benefit is that you get to choose the frequencies you're interested in directly. With zero-padding, the new spectrum samples are at pre-defined frequencies. If you don't need this flexibility, then I can't see a better approach than what you're currently doing. – MBaz Dec 03 '21 at 18:32
  • @MBaz but I need at least half of all the bins an FFT will give and in many cases even more than that - wouldn’t the FFT be more efficient for that? If not then yes please add that as an answer showing how it will be simpler / more efficient. It sounds like you are saying there is a better way to compute the DTFT instead of doing a zero padded FFT (for this case when I need at least N/2 samples…)- that will be helpful for me to see – Dan Boschen Dec 03 '21 at 22:35
  • 1
    @DanBoschen If all you need is more samples, or if the zero-padded interpolated samples happen to fall on the frequencies you want, then I think zero-padding is the best approach. If you want to interpolate at very specific frequencies, then it's possible that you'd have to pad with lots of zeros, and in the process calculating many more samples than you needed. This is the case where I think the DTFT could be attractive, since it does not need any padding. – MBaz Dec 03 '21 at 23:46
  • @MBaz in this case specifically the goal was to interpolate exactly the samples that would result in a zero padded time domain sequence if we were to take the inverse FFT. So I was seeking to see if there was possibly any other direct interpolation technique other than going back and forth with the IFFT FFT (I think not but was open to the possibility). – Dan Boschen Dec 04 '21 at 02:25
  • @Fat32 you likely answered it if you want to instead post that as an answer and we'll close this out. Unless you are not 99% confident... (I'm 95% confident you're right). – Dan Boschen Dec 04 '21 at 03:03
  • I would like to, but your question seems a little broad, and an adequate answer would therefore be kind of wiki article...quite long... :-), and I'm defintely not 99% confident on my answer as well... :-) – Fat32 Dec 04 '21 at 22:44

0 Answers0