Detecting fast radio bursts in CHIME baseband
Radio telescopes don't record images. Before any power is detected, they record complex voltages: every sample has an amplitude and a phase. A fast radio burst that crosses billions of light-years is dispersed by free electrons along the way, so lower frequencies arrive later, by a delay proportional to DM/f², where the dispersion measure DM counts the electrons. Inside one narrow frequency channel that dispersion is a chirp, pure phase structure, and a detector that throws the phase away cannot use it.
Our new preprint, Physics Front Ends with Small Learned Heads for Detecting Dispersed Bursts in CHIME/FRB Baseband Voltages, asks what kind of model detects these bursts best when it reads the complex voltages directly, and how small it can be.
A sign convention that broke our first detector
CHIME, the Canadian Hydrogen Intensity Mapping Experiment, is a radio telescope in British Columbia that observes the whole northern sky between 400 and 800 MHz every day; its FRB project finds several fast radio bursts a day. For 140 bursts of its first catalogue the collaboration released the beamformed complex voltages, called baseband data, in a public archive.
Within one 390.625 kHz CHIME channel, dispersion is a phase factor exp(±i φ(f) DM), and which sign is right depends on how the channel's spectrum is oriented. The first time we ran our complex dedispersion filters on real CHIME recordings, the score timelines peaked away from the known bursts.
We dedispersed the voltages with both signs and correlated the result with the dedispersed power that the CHIME archive provides. Over 30 channel-polarisations the median correlation was 0.988 for one sign and 0.06 for the other: CHIME baseband channels have the reverse frequency orientation to the textbook formula. A plausible cause is that CHIME samples its 400–800 MHz band in the second Nyquist zone, which inverts the spectrum, though we established the sign empirically rather than from the signal chain. The Parkes data for the Vela pulsar in the Breakthrough Listen open-data archive has a similar trap: the band is inverted although the header gives a positive bandwidth. With the header's channel order the folded pulse has a signal-to-noise ratio of about 1; with the order inverted, about 2,400 in 2 seconds. Getting the orientation of the data right mattered more than any modelling choice.
From a 65-parameter filter bank to a 47k hybrid
The data are 29 public CHIME/FRB baseband events, 53 GB of beamformed complex voltages, split by event into 19 for training, 5 for validation and 5 for testing. Synthetic dispersed bursts are injected into real noise and interference, and each test event gets its own detection threshold at a 1% false-alarm rate, calibrated on separate noise windows.
- The chirp bank, 65 parameters. Sixteen analytic complex dedispersion filters applied in the Fourier domain, then a boxcar search and a 49-number linear read-out. It detects 53% of bursts at an energy of 200 noise units, against 20% for a phase-blind energy detector and 33% for a search over the same trial DMs without learning, and about the same as dedispersion at the true DM (51%). But a linear read-out over boxcar maxima cannot tell a burst from interference that raises the same maxima.
- The hybrid, 13k–47k parameters. The same 16 fixed filters produce a map of trial DM against time, and a small one-dimensional convolutional network reads that map. The physics front end does the coherent recompression; the small network weighs the evidence and learns what interference looks like.

On injected bursts in real noise and interference, detection probability at a 1% false-alarm rate:
| Detector | Parameters | E = 100 | E = 200 | E = 200, 3 events never used in development |
|---|---|---|---|---|
| Energy detector (no phase) | 0 | 3% | 20% | 17% |
| Dedispersion at the true DM + boxcar | 0 | 11% | 51% | 48% |
| Real CNN on I/Q | 293k | 17% | 70% | 65% |
| Complex CNN | 296k | 19% | 73% | 68% |
| Chirp bank (linear read-out) | 65 | 10% | 53% | 42% |
| Hybrid | 13k | 36% | 93% | 92% |
| Hybrid | 47k | 51% | 98% | 97% |
- About 3 dB more sensitive. At half the burst energy the 47k hybrid detects 51% of bursts against 19% for the large complex CNN: it reaches a given detection rate with roughly half the burst energy.
- It handles interference. On the two test events with the most interference it keeps 97–98% detection, while the generic CNNs reach at most 45% on the harder one.
- It generalises to new events. On the three test events never used during development it scores 97% against 68% for the large CNN.
These numbers are for synthetic bursts. The real question is what happens with real ones.
Ten real bursts, frozen in advance
We froze an evaluation on the real bursts of the ten events no model was trained on, with DMs from 113 to 1,395. Each model was trained twice, on the original Gaussian bursts and on a broader family with scattering tails, two-component bursts, partial band occupancy and spectral tilt, with no selection on these bursts. The test is offline: we slide each model over every good channel of a recording and ask whether the channel-summed score peaks where the burst is.
- The test has a ceiling. Dedispersion at each burst's catalogue DM localises 6 of the 10. The other four do not stand out in this single-channel search even with the right DM.
- Physics front ends reach that ceiling. The chirp bank and the hybrid localise 5–6 of 10, and on the bursts with DM above 1,300 they find 10 of 12 cases.
- Generic CNNs fall short at high DM. They localise 2–4 with Gaussian training and 4–5 with broad training, and find only 10 of 24 high-DM cases; every broad-trained CNN missed FRB20190111B (DM 1,337). This fits their receptive field of 7 ms, shorter than a high-DM burst's dispersion sweep within one channel.
- What this test cannot tell us. Both physics models reach the ceiling, so it cannot separate the hybrid from the 65-parameter chirp bank. The hybrid's large synthetic advantage still has to be shown on real bursts, with a more sensitive multi-channel search or many more events.
Streaming memory: the Vela phase-jump test
In Streaming is not memory we argued that a model that streams in constant memory does not necessarily remember. Here we tested memory directly on a pulsar. Vela emits a pulse every 89.4 ms, so predicting the next pulse requires remembering the phase.
We trained a small CNet streamer with Born attention and a fixed per-head decay, 114,688 complex weights, to predict the next token of a stream made from Parkes baseband: coherently dedispersed power in 1.17 ms tokens, so one pulse period is about 76 tokens. Then we cut tokens out of the stream mid-way: half a period, which breaks the pulse phase, or a full period, which keeps it.
- After a half-period cut, the next pulse costs 9.41 ± 0.35 nats, against 4.28 ± 0.12 after a full-period cut. The model was confidently expecting the pulse somewhere else.
- The effect needs history. With less than one period of history before the cut there is none; with 1.6 periods or more it is about +5.7 nats, in all 16 of 16 independent streams.
- It needs periodicity. When the stream is rebuilt from chunks of random length, which keeps pulse shapes and noise but destroys the period, the model's advantage on pulses largely disappears.
These results are consistent with the model tracking the pulsar's phase in its fixed-size state, for a 76-token period with pretraining on synthetic pulse trains. On synthetic data the memory extends to periods of 1,222 tokens with a period curriculum and slow decay; on real data at that period we have too few pulses to say.
Code
CNet, our complex-valued framework, is open source at github.com/crasmarum/CNet, including the new dedispersion layers (ChirpFilter and BoxcarMax, with their finite-difference and GPU tests) and the CNet detector example. The PyTorch experiment code for this paper will follow.
All of it, including what went against us, is in the paper.