sinc_interp() vs resample()

True sinc() interpolation (in blue) is not the same as FFT resample() interpolation (in red), though they are close. Known samples are the dots, vertical lines are the boundaries of a single period.


The difference is because the FFT interpolation assumes that the signal is periodic; it repeats outside the known values. The sinc() interpolation assumes that the signal is zero outside the known values (ringing in this case). You can make them closer by padding the signal with zeros before resample(), but it will never be exact.


See Time-domain interpolation using the Fast Fourier Transform (Richard Lyons):


Here’s the second issue regarding time-domain real signal interpolation, and it’s a big deal indeed. This exact interpolation algorithm provides correct results only if the original x(n) sequence is periodic within its full time inter­val.

0 faves
Uploaded on October 19, 2011