On 20 Jun, 02:57, "alexryu" <ryu.a...@gmail.com> wrote:
> I've always seen 2D sinc interpolation done in a separable fashion -
> interpolate along the x axis to the correct x-coordinate, and then
> interpolate the new values down the y axis to the correct y-coordinate. �So
> if you have data defined on a grid, D(m,n), and you want to interpolate
> D(m1,n1+eps), you only need to do one sinc interpolation. �This is well
> and good (Nyquist's theorem is Nyquist's theorem, after all),
In 2D: No, it isn't.
You can get situations where Nyquist's theorem doesn't hold
in any one direction, but the reconstruction still is well-
defined. Check out the 1992'ish edition of Gonzales and Woods'
(or maybe that one was Gonzales & Wintz) book on image processing.
In the 2008 edition, Gonzales & Woods have over-simplified the
sampling theorem to (wrongly) give the impression that Nyquist
must hold along both dimensions.
> but in real
> life we frequently have (1) data that is not perfectly bandlimited and (2)
> spatial windowing. �Doesn't this imply that some sort of nonseparable 2D
> sinc interpolation procedure,
Nope. Band limitations might be a problem, depending on
exactly what kind of data you are sampling: If one of
the physical dimensions is time, then yes: Band limtations
might be a problem. If you are taking still images, then
no, there are no problems.
As for windowing, that's life. You are limited to do
experiments that produce finite amounts of data.
However, none of these have anything to do with whether
the resulting data are separable. 'Separability' has
only to do with sampling parameters, and is thus
determined solely by the geometry of the CCD if we
stick with images: If the CCD lay-out is a regular
matrix, then the resulting image is (x,y) separable.
If the layout is, say, a honeycomb, it is not separable.
> which takes into account all the data
> surrounding the desired interpolation point, should be occasionally
> useful?
Sinc interpolation does that by default. Separability
has to do with the computational work required to achieve
that goal.
Rune
Reply by Tim Wescott●June 20, 20092009-06-20
On Fri, 19 Jun 2009 19:57:55 -0500, alexryu wrote:
> I've always seen 2D sinc interpolation done in a separable fashion -
> interpolate along the x axis to the correct x-coordinate, and then
> interpolate the new values down the y axis to the correct y-coordinate.
> So if you have data defined on a grid, D(m,n), and you want to
> interpolate D(m1,n1+eps), you only need to do one sinc interpolation.
> This is well and good (Nyquist's theorem is Nyquist's theorem, after
> all), but in real life we frequently have (1) data that is not perfectly
> bandlimited and (2) spatial windowing. Doesn't this imply that some
> sort of nonseparable 2D sinc interpolation procedure, which takes into
> account all the data surrounding the desired interpolation point, should
> be occasionally useful?
> Thanks for any help
I don't know about _useful_:
The 2D sync function is the 2D Fourier transform of a square. The 2D
Fourier transform of a circle is circularly symmetric and evolves
according one of the Bessel functions as the radius increases (see Airy
rings for a solved example of this).
Similarly one could use some other circularly-symmetric filter. But
you're talking about loads and loads more computation power.
It'd be interesting to see if you reduce funny artifacts that way, though
-- the rectangular sync function has a number of them.
--
http://www.wescottdesign.com
Reply by dbd●June 20, 20092009-06-20
On Jun 19, 5:57 pm, "alexryu" <ryu.a...@gmail.com> wrote:
> I've always seen 2D sinc interpolation done in a separable fashion -
> interpolate along the x axis to the correct x-coordinate, and then
> interpolate the new values down the y axis to the correct y-coordinate. So
> if you have data defined on a grid, D(m,n), and you want to interpolate
> D(m1,n1+eps), you only need to do one sinc interpolation. This is well
> and good (Nyquist's theorem is Nyquist's theorem, after all), but in real
> life we frequently have (1) data that is not perfectly bandlimited and (2)
> spatial windowing. Doesn't this imply that some sort of nonseparable 2D
> sinc interpolation procedure, which takes into account all the data
> surrounding the desired interpolation point, should be occasionally
> useful?
> Thanks for any help
What are your dimensions: time, space, frequency, bearing, K-omega,
etc. ?
If you have finite sets of discrete samples why have you chosen sinc
interpolation?
Dale B. Dalrymple
Reply by alexryu●June 19, 20092009-06-19
I've always seen 2D sinc interpolation done in a separable fashion -
interpolate along the x axis to the correct x-coordinate, and then
interpolate the new values down the y axis to the correct y-coordinate. So
if you have data defined on a grid, D(m,n), and you want to interpolate
D(m1,n1+eps), you only need to do one sinc interpolation. This is well
and good (Nyquist's theorem is Nyquist's theorem, after all), but in real
life we frequently have (1) data that is not perfectly bandlimited and (2)
spatial windowing. Doesn't this imply that some sort of nonseparable 2D
sinc interpolation procedure, which takes into account all the data
surrounding the desired interpolation point, should be occasionally
useful?
Thanks for any help