Overplot the Numerical Relativity simulation waveform and the real extracted GW data

Hi!!..I am facing issues in plotting the real extracted GW signal and the NR signal from the SXS catalog together. I have seen that plot in most of the papers but I am facing issues in plotting it. Can anyone suggest an approach to tackle the problem?

Thanks in Advance!!!..

Hi @darsh

Thank you for the question. Can you provide some specifics? Can you give a pointer to the data set you are working with? Exactly what problem are you encountering?

Thank you.

Ok, So I will try to explain it to you with an example, lets take an example for the GW150914
I have extracted the gravitational wave signal using the code provided in the gwpy. Now, as we know the corresponding Numerical relativity signal for this event is SXS:BBH:0305. Now, I want to show the overlap of the real signal and NR signal.

There is one way to show using the matched filtering technique, but I am unable to understand the matched filtering code. It would be better if you could also provide me with a good source to understand that.

Also I had some doubts regarding the traditional techniques of interpolating the waveform templates. There are many kinds of time domain approximants available in the pycbc library, how to get to know the use and limitations of each of the approximants. Some of the examples are - “SEOBNRv4”, “SEOBNRv5ROM”, etc. How to know the difference between them, and how can I get to know which will best fit the particular events. What all information of the GW events are required to select the best fit of the data

Dear colleague,

I faced a similar problem and it had been haunting me for 1 year. My goal is to plot the real detector data and the match-filter waveform together. Currently I solved the problem by modifying the two reference codes:

  1. Waveforms PyCBC | Kaggle this website provides a simple code for match filtering. I like the way the parameters are specified, where I can get good intuition from basic signal processing.
  2. Complete_triple_event_analysis.ipynb: codes used in the master thesis of Justin Janquart. It provides a time-shifting method to align the simulated waveform and the real data based on the merger time found by match-filtering.

To overlap the real GW signal from GW150914 with the NR signal (SXS:BBH:0305), you can:

Extract the Real Signal by usein gwpy to load and preprocess the strain data (e.g., bandpass and whiten it). Identify the merger time from the peak of the signal.

Download the NR Signal grab the NR waveform from the SXS catalog and extract the strain data (h_plus and h_cross).

Shift the NR waveform in time so its merger matches the real signal’s merger. You can use cross-correlation or visual inspection for alignment. plot both signals on the same graph to compare them.

For matched filtering, it’s a technique detect a known signal in noisy data. So you’ll need to generate a template waveform (e.g., using SEOBNRv4 in pycbc), then compute the matched filter SNR. The peak in the SNR time series corresponds to the detection time. Otherwise you just apples to oranges.

For waveform approximants, they’re models for GW signals. For binary black holes, SEOBNRv4 or IMRPhenomD are good choices. ROMs like SEOBNRv5ROM are faster but less accurate. The best approximant depends on the system (e.g., black holes vs. neutron stars) and the signal phase (inspiral, merger, ringdown).

To choose the best template, you’ll need info like the component masses, spins, distance, inclination, and polarization angle of the binary system. PyCBC’s get_td_waveform function can generate templates based on these parameters.