comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Complex rebin
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: Complex rebin [message #34531] Thu, 27 March 2003 06:24 Go to next message
the_cacc is currently offline  the_cacc
Messages: 104
Registered: October 2001
Senior Member
Ahh, of course. I knew it would be something like that - I had a
similar problem with MEDIAN a few months ago. I'm only using REBIN to
expand a 2D array to 3D (containing the same values) so I just
separated Re and Im and REBINned them separately, easy.

Thanks.
Re: Complex rebin [message #34534 is a reply to message #34531] Wed, 26 March 2003 18:35 Go to previous messageGo to next message
MKatz843 is currently offline  MKatz843
Messages: 98
Registered: March 2002
Member
> Any reason why REBIN doesn't take complex args?

I can't say why REBIN doesn't take complex args, but I can say that
you have to be very careful when you interpolate complex values if you
want to have meaningful results.

Consider these two numbers
z1 = complex(1,0) = 1.
z2 = complex(-1,0) = -1.

Suppose you were using rebin to redice the size of a linear array by
2.
Which of the following behaviors would you want?

You could separately average x and y like this, and get zero:
z_avg = (complex(1,0) + complex(-1,0))/2. = complex(0,0) = 0

Or, you could respect the fact that the phase changes by 180 degrees
but the amplitude doesn't change at all. So,

z_avg = complex(0,1) = i

This second value would come from
z1 = r1*exp(i*theta1)
z2 = r2*exp(i*theta2) ;--- note i = complex(0,1)

z_avg = ((r1+r2)/2.) * exp(i * (theta1+theta2)/2.)

To accomplish the first mode, you could break up and separately REBIN
real(a) and imaginary(a).

To accomplish the second mode, you could break up ans separately REBIN
abs(a) and atan(a, /phase)

M. Katz
Re: Complex rebin [message #34615 is a reply to message #34534] Fri, 28 March 2003 01:12 Go to previous message
Craig Markwardt is currently offline  Craig Markwardt
Messages: 1869
Registered: November 1996
Senior Member
MKatz843@onebox.com (M. Katz) writes:

>> Any reason why REBIN doesn't take complex args?
>
> I can't say why REBIN doesn't take complex args, but I can say that
> you have to be very careful when you interpolate complex values if you
> want to have meaningful results.
>
> Consider these two numbers
> z1 = complex(1,0) = 1.
> z2 = complex(-1,0) = -1.
>
> Suppose you were using rebin to redice the size of a linear array by
> 2.
> Which of the following behaviors would you want?
>
> You could separately average x and y like this, and get zero:
> z_avg = (complex(1,0) + complex(-1,0))/2. = complex(0,0) = 0

This one. It's what all the other flavors of REBIN do.

It's the "compress" form of REBIN that I would be really interested
in, i.e. the ability to sum up loads of complex values.

Craig

--
------------------------------------------------------------ --------------
Craig B. Markwardt, Ph.D. EMAIL: craigmnet@cow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
------------------------------------------------------------ --------------
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: IDL 6.0
Next Topic: Is there a standard 'null' array?

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 13:07:11 PDT 2025

Total time taken to generate the page: 0.00546 seconds