Every now and then I come across mention of sinc interpolation. Trying to read up on it, I have yet to get what it's about. I have done basic DSP work, have programmed stuff using FFT (using just a rectangular window on the data which i know is not so great), and have also done a lot of work with Bezier (and related) curves and polynomial interpolation.
Can anyone explain plainly how to do sinc interpolation, and why it's useful?
Thank you!!
The
Sincfunction is a way to represent the waveform that each discrete sample is responsible for. In particular, it represents the waveform by adding no higher frequency content. Using the Sinc function to interpolate ensures no higher harmonics are added. The FFT of the interpolated waveform will have a sharp drop to zero frequency content above the original Nyquist frequency.I repeat, each discrete sample is responsible for a sinc waveform. If your signal has $10$ samples, you need to sum all $10$ waveforms together.
A waveform with $N$ samples $x_i$, an interpolation evaluated at $j=0.5$.
$$\sum_{i=0}^{N-1} x_i \operatorname {sinc}(j-i)$$
where $$\operatorname {sinc}(i) = \begin{cases} \dfrac{\sin(\pi i)}{\pi i}, & \text{if $i \ne 0$} \\ 1, & \text{if $i = 0$} \end{cases}$$
That's right, a whole summation expression for each interpolation point. $N$ point waveform interpolated to $M$ new points takes $N \times M$ operations