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

Hi Jonah,

Following your feedback I completed the ORAC-NT analysis and wrote it up as a preprint, now published on Zenodo:

DOI: 10.5281/zenodo.19935461

Key results (no template, no matched filter):
• GW150914: RMS peak at t = +0.010 s from merger ✓
• GW170817: ORAC H peak at t = −0.260 s from merger ✓

The paper honestly acknowledges the FAR limitation you raised. ORAC-NT is framed as a complementary statistic, not a standalone detector.

I would be very grateful for an arXiv gr-qc endorsement — you just log into your arXiv account and enter code AYD7IS. It takes about 30 seconds.

Best regards,
Dimitar Kretski

Hi,

Following the earlier discussion on the GWOSC pipeline thread,
I have extended the ORAC-NT analysis to the ET-MDC1 dataset
(Regimbau & Suresh, PRD 2026).

Template-free results on ET-MDC1:

  • BBH SNR=588: detected at t=-0.037s (no template)
  • BBH SNR=306: detected via RMS channel

Kurtosis calibration establishes K_thr=20 for ET data.
Preprint v4 on Zenodo (record 19938023).

Feedback welcome.

Dimitar Kretski