[Difx-users] vex2difx bandwidth-sample rate check

Joe Skeens jskeens1 at utexas.edu
Mon Jun 14 10:20:32 EDT 2021


Hi Adam,

Thanks for the help and the quick response! We've been using an adapted
version of the files given in the pre-packaged tests that come with DiFX to
establish a proof-of-concept run with simulated complex data. That is to
say, I'm changing the premade .vex file by hand to match the properties of
the simulated signals I'm feeding into the correlator. Prior to removing
the if statement I mentioned, I was giving a bandwidth of sample rate
divide by 2 in the .vex file, running vex2difx, then manually changing the
bandwidth to the sample rate in the .input file before running mpifxcorr.
I'm not sure if that leads to a problem somewhere in the guts of DiFX, but
we've been able to see injected tones in the output FITS file using this
method.

Best,
Joe

On Sat, Jun 12, 2021 at 4:56 AM Adam Deller <adeller at astro.swin.edu.au>
wrote:

> Hi Joe,
>
> I don't believe the current vex standard is actually capable of
> representing that a signal is complex sampled (a problem which is one of
> the justifications for the long-awaited vex2 standard).  To sidestep this,
> the v2d file can state that the data sampling is complex - but the vex
> loader doesn't have access to that information.  So the vex file basically
> can't represent the full info, and it has to be wrong or at least
> incomplete in one way or another.  So if you just change the sample rate in
> the vex file (but still tell vex2difx via the v2d file that the sampling is
> complex) you should be ok.
>
> Out of interest, how did you get this vex file (with the sampling rate set
> to the bandwidth) in the first place?
>
> Cheers,
> Adam
>
> On Sat, 12 Jun 2021 at 03:22, Joe Skeens via Difx-users <
> difx-users at listmgr.nrao.edu> wrote:
>
>> Hello all,
>>
>> I've been working with a couple of collaborators on running DiFX with
>> complex signals, and we've found something that looks like it may be an
>> oversight. In the vex2difx file 'vexload.cpp,' there's a simple if
>> statement check which seems to ensure the sample rate is above the
>> Nyquist frequency:
>>
>> if(bandwidth - stream.sampRate/2 > 1e-6)
>>
>> This causes vex2difx to exit on an error condition for bandwidth greater
>> than sample rate divided by 2, but for a complex signal, the signal is
>> only undersampled for bandwidth greater than sample rate. Commenting out
>> this check and rebuilding DiFX seems to correct the problem. Is there
>> something I'm missing with respect to how the bandwidth is processed in
>> the channel definitions under $FREQ in the .vex file, or has this check
>> been designed with only real signals in mind? Thanks in advance for any
>> insights.
>>
>> Best,
>> Joe Skeens
>> _______________________________________________
>> Difx-users mailing list
>> Difx-users at listmgr.nrao.edu
>> https://listmgr.nrao.edu/mailman/listinfo/difx-users
>>
>
>
> --
> !=============================================================!
> A/Prof. Adam Deller
> ARC Future Fellow
> Centre for Astrophysics & Supercomputing
> Swinburne University of Technology
> John St, Hawthorn VIC 3122 Australia
> phone: +61 3 9214 5307
> fax: +61 3 9214 8797
>
> office days (usually): Mon-Thu
> !=============================================================!
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listmgr.nrao.edu/pipermail/difx-users/attachments/20210614/f7efb694/attachment.html>


More information about the Difx-users mailing list