Direct dedispersion, in Julia.

License GitHub Stars Gitmoji Badge

This package implements the direct dedispersion algorithm in pure Julia. Quoting from Barsdell et al. (2012):

The direct dedispersion algorithm operates by directly summing frequency channels along a quadratic dispersion trail for each time sample and dispersion measure. In detail, the algorithm computes an array of dedispersed time series $D$ from an input data set $A$ according to the following equation: $$\boxed{D_{d, t} = \sum_{\nu}^{N_{\nu}} A_{\nu, t + \Delta t(d, \nu)}}$$ where the subscripts $d$, $t$ and $\nu$ represent dispersion measure, time sample and frequency channel, respectively, and $N_{\nu}$ is the total number of frequency channels.

Install it by typing and running:

] add DirecDedispersion

in the Julia REPL.

Here is an example of the same time series, obtained via PRESTO and via DirectDedispersion.jl, from 30 seconds of data with a simulated FRB. The FRB has a DM of 1000 pc cm$^{-3}$, and an arrival time of 15 seconds1:

Plot: Example dedispersed time series

The simulation was carried out using the simulateSearch library, and is included in this package as a part of its testing suite here.

  1. The incline is due to the fact that the burst is present towards the end of the file, and the dispersion trail gets cut off. Hence, we end up summing less and less samples the closer we get to the end of the trail, leading to an odd incline. The same, but less steep, incline can be noticed in the PRESTO output.