GWOSC gravitational-wave analysis pipeline with matched filtering and stability metrics

I am sharing a reproducible visualization from a GWOSC-based analysis pipeline applied to public LIGO data (GW150914).

The workflow includes:

  • bandpass filtering (30–300 Hz)
  • PSD-based whitening
  • Tukey-window conditioning to reduce spectral leakage
  • matched-filter detection using a simplified chirp template
  • peak-based inter-detector timing estimation (H1–L1)
  • a post-processing stability metric (ORAC-H) applied to the SNR field

The attached figure shows:

  1. conditioned strain data for H1 and L1
  2. matched-filter SNR evolution
  3. stability response (ORAC-H) across the event window

The goal is to keep the pipeline fully reproducible using public GWOSC data while exploring stability-based diagnostics as an additional analysis layer beyond standard detection outputs.

I would appreciate feedback on:

  • alignment with standard GWTC analysis practices
  • best practices for conditioning and whitening order
  • potential improvements for matched-filter robustness in noisy segments

This is intended as an open technical discussion rather than a claim of new detection methodology.

Hi! Thank you for sharing this.

You can see some examples of data conditioning and matched filtering in the tutorials, here:

These use pyCBC, which is open source code. In some cases, you may want to look at the source code for details about how these steps are applied.

Hi Jonah,

Thank you so much for the pointers and the resources!

I actually just dove deep into PyCBC following these exact principles and successfully built a multi-detector pipeline for GW170817. I applied the necessary data conditioning steps (highpass filtering, resampling, PSD estimation) and ran a matched filter using the TaylorF2 approximant across both H1 and L1 strain data.

I’m attaching the combined Network SNR plot below — the signal clearly emerges from the background noise with a massive peak right at the merger time. The individual H1 and L1 matched filter outputs are consistent as well.

The Open Data Workshop tutorials and the PyCBC source code are indeed incredible resources. Thanks again for pointing me in the right direction!

Best regards, Kretski

(attachments)

1 Like