Lanczos filtering and Lanczos resampling are two applications of a certain mathematical formula. It can be used as a low-pass filter or used to smoothly interpolate the value of a digital signal between its samples. In the latter case, it maps each sample of the given signal to a translated and scaled copy of the Lanczos kernel, which is a sinc function windowed by the central lobe of a second, longer, sinc function. The sum of these translated and scaled kernels is then evaluated at the desired points. Lanczos resampling is typically used to increase the sampling rate of a digital signal, or to shift it by a fraction of the sampling interval. It is often used also for multivariate interpolation, for example to resize or rotate a digital image. It has been considered the "best compromise" among several simple filters for this purpose. The filter was invented by Claude Duchon, who named it after Cornelius Lanczos due to Duchon's use of the sigma approximation in constructing the filter, a technique created by Lanczos.
Definition
Lanczos kernel
The effect of each input sample on the interpolated values is defined by the filter's reconstruction kernel L(x), called the Lanczos kernel. It is the normalized sinc function sinc(x), windowed (multiplied) by the Lanczos window, or sinc window, which is the central lobe of a horizontally stretched sinc function sinc(x/a) for −a ≤ x ≤ a.
L ( x ) = { sinc ( x ) sinc ( x / a ) if − a < x < a , 0 otherwise . {\displaystyle L(x)={\begin{cases}\operatorname {sinc} (x)\operatorname {sinc} (x/a)&{\text{if}}\ -a<x<a,\\0&{\text{otherwise}}.\end{cases}}}
Equivalently,
L ( x ) = { 1 if x = 0 , a sin ( π x ) sin ( π x / a ) π 2 x 2 if − a ≤ x < a and x ≠ 0 , 0 otherwise . {\displaystyle L(x)={\begin{cases}1&{\text{if}}\ x=0,\\{\dfrac {a\sin(\pi x)\sin(\pi x/a)}{\pi ^{2}x^{2}}}&{\text{if}}\ -a\leq x<a\ {\text{and}}\ x\neq 0,\\0&{\text{otherwise}}.\end{cases}}}
The parameter a is a positive integer, typically 2 or 3, which determines the size of the kernel. The Lanczos kernel has 2a − 1 lobes: a positive one at the center, and a − 1 alternating negative and positive lobes on each side.
Interpolation formula Given a one-dimensional signal with samples si, for integer values of i, the value S(x) interpolated at an arbitrary real argument x is obtained by the discrete convolution of those samples with the Lanczos kernel:
S ( x ) = ∑ i = ⌊ x ⌋ − a + 1 ⌊ x ⌋ + a s i L ( x − i ) , {\displaystyle S(x)=\sum _{i=\lfloor x\rfloor -a+1}^{\lfloor x\rfloor +a}s_{i}L(x-i),}
where a is the filter size parameter, and ⌊ x ⌋ {\displaystyle \lfloor x\rfloor } is the floor function. The bounds of this sum are such that the kernel is zero outside of them.
… excerpt ends here. Continue reading the full article.






