# How to subsample shift with sinc interpolation?

Does anybody know of a way to shift data by a fraction of a sample by using sinc interpolation? For example, shift an image to the right by 0.1 pixels.

I'm struggling to find a formula or reference that explains how to generate such a kernel, and I already know how to do it in the frequency domain....

I'm thinking something like:

function kernel=subpixelshifter(shift)
trange=[-1,0,1]-shift;
kernel=lanczos3(trange);
end
function x=lanczos3(x)

• This is also called a fractional delay filter. Generate a sinc(n-fraction) function, multiply it by a window (truncation causes artifacts), and convolve your signal with it. The longer the tails of the sinc function you include, the better the quality will be. – endolith Mar 27 '15 at 16:37