I have a data file with some points equally spaced. These represent some function. I have to calculate the Fourier transform of this set of points. The thing is, I'm tempted to take a cubic spline of these data points to calculate the Fourier transform by FFT (actually I'm more than tempted, since I have done it already). But I'm wondering, isn't this cubic spline adding noise to the Fourier transform ?

I have tested this idea on some particular analytical function. I calculated the FFT in different ways (with and without spline) and compared it to the analytical Fourier transform and it actually added some contribution at large frequency. But is this always the case ?

Is there some work that has already been done on this ?

  • $\begingroup$ After you calculate the cubic spline I assume that you also sampled those to get more data between the original data and calculated the FFT? $\endgroup$ – fibonatic Sep 13 '16 at 14:07
  • $\begingroup$ @fibonatic Yes, indeed :) $\endgroup$ – mwoua Sep 13 '16 at 15:40

The frequency content of the interpolated signal is significantly influenced by the interpolation basis. If you have a band-limited function that you have adequately sampled (i.e. satisfying Nyquist criterion), interpolating with any function that is not band-limited to the same frequency will indeed introduce high-frequency noise. Unfortunately, exact band-limited interpolation (i.e. by sinc filter or Fourier method) is a global operation, in that the interpolation functions involved have infinite tails as a consequence of being exactly band-limited. The consequence of this is that each sample of the interpolated function necessarily involves all samples of the original function.

There is an interesting sequence of papers by John Knab published in IEEE journals in the late 1970s/early 1980s on local interpolation using functions that are essentially limited in both time and frequency space. Excellent accuracy with respect to the exact band-limited interpolation scheme and minimal spectral pollution can be achieved using the interpolant Knab describes.

  • $\begingroup$ I will have a look :) $\endgroup$ – mwoua Sep 13 '16 at 15:40

The interpolation indeed affects the Fourier transform. @Steve already gives the correct answer in general, but I want to give you an example that helps the intuition more. Think for example that you have samples a sine function on a set of equally spaced points. If you did a (discrete) FFT on these points alone, you would of course recover a Fourier transform that is non-zero for only one frequency.

On the other hand, imagine you connected these points by piecewise linear functions (the simplest possible interpolation). This is no longer a sine function and consequently if you did a (continuous) Fourier transform, you'd get something different than the Fourier transform of the original sine function. In fact, because the function now has kinks, you will have to expect that the Fourier transform has nonzero coefficients for all frequencies, up to infinity.

Using a spline interpolation of course is different from a piecewise linear function, but the principle is the same.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.