Skip to content

Baseband Analysis -- Core

Some basic routines are called core routines. This is a bit arbitrary, but functions like RFI flagging, dedispersion, and downsampling are included in baseband_analysis.core in a Pythonic way so they can be sped up with Numba later.

Dedispersion

In CHIME we divide the frequency band 400-800 MHz into 1024 channels of width 390 kHz, each of which is centered at some \(\nu_0\) (a vector of 1024 channel centres, from 800,...400.390625 MHz). Within each channel, ISM-dispersed broadband impulses can be significantly smeared. For dispersion measures of \(>100\), e.g. those of FRBs, it is necessary to coherently de-smear each channel. We do this for each channel independently by further dividing each channel into a range of ``intra-channel frequencies'' \(-190 kHz < \nu < +190 kHz\).

Then for each channel we apply the two transfer functions below, which describe an sub-integer translation, and an intra-channel de-smearing which applies a phase shift to each channel after upchannelizing. $$ H{smear}(\nu) = \exp(-2\pi i K \nu^2 / \nu_0^2 / (\nu + \nu_0))$$

\[ H*{shift}(\nu) = \exp(-2\pi i K*{DM} (\nu + \nu*0) (t*{GPS}(\nu*0) - \tau(\nu_0,\nu*{ref}))\]

Note that when applying \(H_{shift}\), we effectively roll the data along the time axis. This breaks the timestamp accounting using data['ctime'].