...
The design supports a future option to apply delays to each signal path to point the telescope to a specified correlation pointing centre. When that mode becomes available, it will involve the integer sample component of the required delays being applied using whole-sample shifts as the sub-observation data is assembled, with the residual fractional delays being applied within the FX engine. The required fractional delay values for each signal path (on 5 ms resolution) are passed to the FX Engine via the prepended metadata block written to the input ring buffer. Delays are applied by multiplying the frequency-domain samples of each sub-block by a phase gradient, whose complex gain values are taken from a pre-computed look-up table to increase speed. Delay corrections can be static over the entire sub-observation (e.g. to eliminate fixed cable delays) or dynamic over the sub-obervation (with a 5 ms resolution) to implement fringe stopping, i.e. to keep the correlation pointing centre on a fixed RA/Dec.
The FFT’d data is then transposed to place it in the order that xGPU requires (slowest-to-fastest changing): [time][channel][tile][polarization]. As the data is re-ordered, it is written directly into xGPU’s input holding buffer in GPU memory. The data from five 50 ms blocks is aggregated in this buffer, corresponding to an xGPU “gulp size” of 250 ms. The minimum integration time is one gulp, i.e. 250 ms. The integration time can be any multiple of 250 ms for which there are an integer number of gulps over the full 8 second sub-observation.
...