One method of resampling is to perform a Fourier Transform on a signal, resize the resulting frequency spectrum, and then return to the resampled version of the signal with an inverse fourier transform.

Is this a method used in practice? Are there methods that perform better down/upsampling (it terms of interpolation error)? Are there faster methods?

  • $\begingroup$ What's "resizing the spectrum" mean to you? $\endgroup$ – Marcus Müller Jul 24 '20 at 20:04
  • $\begingroup$ @MarcusMüller I suspect that they mean zero padding. OP, start here: dsp.stackexchange.com/questions/69058/… then follow the links in my comments under that question. When you're ready for more, let me know. You can also check out my user profile, answers list, there have been a lot of posts on this topic. The irony is I can't really answer "Is this a method used in practice?" for you. $\endgroup$ – Cedron Dawg Jul 24 '20 at 21:16

Interpolation by zero padding and computing the IDFT is used in practice but is not optimum and will have greater error over other approaches with the same or less resources, for the same reason that filtering by zeroing frequency bins in a DFT is not recommended. This point is detailed at this post Why is it a bad idea to filter by zeroing out FFT bins?.

Methods that perform better in terms of efficiency and performance include polyphase resampling structures using filter coefficients based on least squares algorithm, and specifically for multiband fiters that concentrate rejection at the image locations associated with the spectral distortion.

For further details on such approaches see:

How to implement Polyphase filter?


Computational Complexity of Polyphase Resampling

When a Sinx/x droop can be tolerated (or easily compensated for, see how to make CIC compensation filter) cascade-integrator-comb (CIC) interpolators are highly attractive for their simplicity and efficiency (there are many posts here that detail the beautiful CIC (otherwise called the Hogenhauer filter after the original author) further, see:

CIC Cascaded Integrator-Comb spectrum

Puzzled by CIC filters

Interpolating/Decimating CIC Filter Group Delay

  • $\begingroup$ It's a pretty quick hack in Matlab or Scilab, though. $\endgroup$ – TimWescott Jul 25 '20 at 4:30
  • $\begingroup$ Yes true and often quite “good enough”, I should probably stress that more and for exactly your reason @TimWescott —- it’s just too easy to not ignore that option when you need the result and move on $\endgroup$ – Dan Boschen Jul 25 '20 at 5:13
  • $\begingroup$ But then again, so is the command “resample” in MATLAB, Octave and python’s scipy’signal $\endgroup$ – Dan Boschen Jul 25 '20 at 5:17

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.