It looks like things are working as they should, but that's not to say that 
they're working the way we expect.

In your case of 8 antennas with demux of 8, output group number 31 is actually 
baseline 5_0 (which is what the x engines produce natively). But this is not 
what is normally expected so I conjugate the output and relabel it (0,5). It 
seems this scheme is a little too simple though... you get 0x5x,0y5y,0y5x,0x5y 
instead of what we expect (0x5x,0y5y,0x5y,0y5x). This is true for the entire 
last output triangle (baselines 0_5,0_6,0_7,1_6,1_7,2_7 for the 8antenna case). 

For each one, you first get the real component and then the imaginary 
component. So that non-zero value corresponds to 0y5x real, which is as 
expected for your input. 

Maybe I should build-in a little reorder block or change the descramble to read 
out in the expected order. I'll think about this a little more. Thanks for 
bringing it to my attention.

Jason

On 19 Oct 2010, at 22:37, Jack Hickish wrote:

> Hi All,
> 
> After some bizarre cross-pol results in a recent observing run, I started 
> taking a semi-careful look at the order the X-engine outputs data. As far as 
> I can tell, the output order of the x-engine doesn't quite match the order 
> expected by the casper recieving code...
> 
> -- The order according to software (corr 0.5, though 0.4.2 gives the same 
> result).
> Running corr.sim.get_bl_order(8) returns:
> In [7]: corr.sim.get_bl_order(8)
> Out[7]: 
> ((0, 0),
>  (0, 1),
>  (1, 1),
>  (0, 2),
>  (1, 2),
>  (2, 2),
>  (0, 3),
>  (1, 3),
>  (2, 3),
>  (3, 3),
>  (0, 4),
>  (1, 4),
>  (2, 4),
>  (3, 4),
>  (4, 4),
>  (1, 5),
>  (2, 5),
>  (3, 5),
>  (4, 5),
>  (5, 5),
>  (2, 6),
>  (3, 6),
>  (4, 6),
>  (5, 6),
>  (6, 6),
>  (3, 7),
>  (4, 7),
>  (5, 7),
>  (6, 7),
>  (7, 7),
>  (0, 5),
>  (0, 6),
>  (0, 7),
>  (1, 6),
>  (1, 7),
>  (2, 7))
> 
> Judging by the behaviour of casper receive code and bit of documentation 
> floating around, I also expect the output of each baseline to contain 
> (consecutively) values for the XX, YY, XY and YX polarisations, in that order.
> 
> -- The order according to simulink
> I knocked up a simple model (using a new clone of mlib_devel i grabbed about 
> an hour ago), that feeds an X-Engine block with the following signals:
> 0x = 1x = 2x = 3x = 4x = 5x = 6x = 7x = 2
> 0y = 1
> All other y-pols = 0
> 
> I attach a plot of the output of the x-engine (rescaled to remove the 
> accumulation in the xeng block)
> 
> Essentially, all is well apart from the (0,5),(0,6),(0,7) outputs, which, if 
> you believe the software order, show signals in 0x5y, 0x6y, and 0x7y, rather 
> than 0y5x, 0y6x and 0y7x.
> 
> So my question is, am I using the x-engine block incorrectly, or is this a 
> real bug? I'm sure it's easy to fix (I haven't yet checked, but at a guess 
> I'd say the baselines from 0,5 - 2,7 (so called 'order2' in the get_bl_order 
> script) are backwards), but I thought before I go changing bits of code I'd 
> check that I wasn't about to mess with something that isn't broken.
> 
> Thanks,
> 
> Jack
> 
> 
> 
> 
> <Screenshot-1.png>


Reply via email to