A detector that works,
aimed at a sky
that did not answer
The machinery is sound and the sky said nothing. Both halves of that sentence are the result.
Listening for a bell you cannot hear
If you build a filter that can pull a known signal out of noise a thousand times fainter than itself, and then point it at the real sky and find nothing, what have you learned?
When two neutron stars spiral into each other, the last minutes of the fall ring spacetime like a struck bell — a chirp, rising in pitch and volume until they merge. By the time it reaches Earth it is far smaller than the detector's own noise. You cannot see it. You cannot plot it. There is nothing to look at.
So you don't look. You take a mathematical description of the chirp you expect, slide it along the data, and at every offset ask how well the two agree. Noise agrees with a chirp only by accident, and only weakly. A real signal agrees enormously. This is matched filtering, and its output is a single number that climbs when the template and the data line up.
The lab built one from scratch — numpy alone, no astronomy libraries — and tested it honestly, by hiding a chirp of known size inside real detector noise and asking the filter to find it without being told where. It did, in both detectors, recovering the hidden mass 24 times more precisely than the published error bar demands. The machinery works.
Then it looked at the real event. Nothing.
left · top, the clean chirp · middle, the same chirp buried in noise at your chosen amplitude · bottom, its spectrogram, where the rising sweep survives even when the waveform does not · right · the filter's output, in units of its own background scatter.
Start the amplitude high and the buried chirp is obvious in the middle strip. Drag it
down. The waveform vanishes from the eye well before the spike vanishes from the filter
— there is a wide range where you see nothing and the filter is still certain. Keep
going and the spike sinks into the band. You will find the detection threshold by hand.
Then flip to sky, and it is already below.
Now drag the template mass away from where the filter recovered it. The spike does not move; it collapses. A filter tuned to the wrong chirp is nearly as blind as no filter at all, which is why the real search is a grid of templates rather than one.
The masses the real sky returns are 1.141 and 1.146 M☉ against a published 1.186 M☉ — agreeing neither with each other nor with the catalogue, which is what a non-detection looks like from the inside. The whitening was validated before any of this was claimed: 0.987 and 0.998 against an ideal of 1, with kurtosis 3.0.
Two things did land, unlooked-for and real. The filter found a known instrumental glitch in the Livingston detector — a 209-sigma spike, a second before the merger — without being told to search for it, and gated it out. (The panel above carries a synthetic version of exactly that: turn the gate off and watch one instrumental artefact swamp the entire search.) And on a different event entirely it independently picked out the loudest instant in twenty-four seconds of data, in both detectors, with the two agreeing on the timing to seven milliseconds — inside the ten-millisecond light-travel time between the two observatories, which is the only window physics allows.
That earlier event, GW150914, is also why the target moved. Its ISCO frequency is 67 Hz, so an inspiral-only template is simply the wrong tool for it. GW170817 spends roughly 3,583 gravitational-wave cycles above 25 Hz, which is what makes it the right target for this template — and makes the null informative rather than merely disappointing.