Lanczos Normalization Error

The Lanczos sampler is a truncated version of the optimal sampling function, sinc(x). The
kernel of this sampler is given as

    f(x) = sinc(pi x) sinc(pi x/n)    |x| < n
       0                              |x| >= n

Here x is given in units of pixels and the sinc function is just sin(x)/x.  Take a look at Wikipedia for a sense of the function.

Let’s say we want to sample our function at 4.8 when we have measured values, f_n at the integer values of x. If we are using an order 3 Lanczos sampler then the value, m(x) we measure would be

  m(4.8) = f_2 f(-2.8) + f_3 f(-1.8) + f_4 f(-0.8) +
           f(5) f(0.2) + f(6) f(1.2) + f_7 f(2.2)

This is how we have used the Lanczos sampler since we introduced it into SkyView. A keen-eyed user, Benjamin Winkler, noted that his resampled images using the Lanczos sampler were slightly fainter than the originals on average. It turns out that the Lanczos sampler as given above is not quite normalized. If we integrate f(x) the total integral for n-3 is about 0.997, about 0.3% less than unity.

We have updated the Lanczos sampler to properly normalize the sampler. The correction gets smaller with increasing n.

n Integral
1 0.90283358
2 1.00878984
3 0.997055
4 1.00126
5 0.999353
6 1.00038
7 0.999762
8 1.00016

Since SkyView samples in two directions, the introduced error is actually the square of the value in the table.  The renormalized samplers will be installed in the next release of SkyView next week.   Fortunately the error of order 1% or less except for the first order Lanczos sampler.

If there are any users who would prefer to use the unnormalized samplers we have added the LanczosNorm setting, but this will only be available to SkyView-in-a-Jar users.

We apologize for this long-standing issue. We greatly appreciate any feedback or concerns you have with SkyView processing.

This entry was posted in Discussion, Notices and tagged , . Bookmark the permalink.