I am new to Lanczos filters and trying to figure out how they can be used to generate a zero-phase lowpass filter with good time-domain properties. This example shows how to implement such a filter in Python but does not give any justification for the choice of window length, despite it determining the filter order, which I would think a relatively important parameter. Also, I am not sure about its phase response.
Does anyone have insights about the uses of Lanczos filters in this sort of context, their pros and cons, and how to choose the window size objectively?


2 Answers 2


This is a rather late response, but I just came over this question. So if it could of any help to future problems for anyone, I will post an answer:

Although your question is pretty comprehensive; In my experience with the Lanczos filter, it is a rather versitale filter especially when it comes to image processing. I have mainly used it for scaling images, where the filter is a part of other FIR processes. To use it I would design the Sinc function(which is defined by the Lanczos resampling function) to be dependent of the following parameters: Upscale factor (N) and filter order (a). When I defined the window length it is a simple function of the two parameters which is:

k = (a * 2) + 1

and then the window space results in:

x = np.linspace(-a, a + (N-1), k*N)

where k*N is the length. The Lanczos Sinc function is then multiplied with the interval values. This was to give a practical example. In other words, you need to know what you want to do with the filter. It is highly dependent on what you want to filter, and you need to define one (or more) parameter, besides the filter order, to define the actual window length to take full use of the filter.

To give a quick overview of the Lanczos:

It is just one of many ways to realize the Sinc function in practical terms, and it is quite good when it comes to image sharpening and interpolating between resampled discrete data points. It does have some limitations though. If the range of values of the interpolated signal is wider than the range spanned by the discrete sample values, it can cause ringing artifacts which ultimately leads to clipping artifacts. However the effect of this is quite low compared to many other realizations of the Sinc function.

  • $\begingroup$ Thank you @ewol. For those interested in timeseries applications, I ended up implementing this in the pyleoclim package. I hope this is useful to whomever lands here. $\endgroup$
    – El Niño
    Feb 16, 2022 at 22:36

Lanczos is a sinc function windowed by another sinc function, commonly used for image scaling.

To put it into a general context, I would view it as the «window method» of creating practical filters from sinc prototypes. The question then is «why does the first lobe of a sinc work particularly well for windowing a sinc when used for image scaling, compared to eg a rect window, a Hann window or something else.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.