Q-transform of simulated waveform is sensitive to discontinuities

Dear colleagues,

I applied the q-transform using TimeSeries.q_transform() in gwpy of pure noises, mixed noises and templates, and pure templates. Pure noises were obtained from TimeSeries.fetch_open_data() in gwpy, and the templates were generated by get_td_waveform(approximant="SEOBNRv4") in pycbc.waveform. I mixed the template with pure noise segment by scaling the template with “peak SNR” and directly adding to the noise. “Peak SNR” is calcuated as the ratio between the maximum strain amplitude of template and that of the noise segment. As a new user, I can only post one figure, and sorry for the bad resolution.

Fig. 1 shows the q-transform plots (q-plots) of different peak SNRs. The relative values between these peak SNRs are 0.1 : 1 : 10. Sorry for the overlapped x ticks in the first column. As peak SNR increases, there’s no obvious difference in time series, however the energy amplitudes (scales of the color bar) in the q-plots increase significantly. This may indicate that the q-transform is sensitive to discontinuities. The more the template was discontinuosly added, the larger the energy amplitude becomes. Also, the waveform does not look like a gravitational wave chirp but more like a glitch.

Since the template behaves unexpectedly in q-plots, I further enlarge the amplitude of the template to see what if the q-plot of pure template. It turned out the the chirp can be seen if the template dominantes, as shown in Fig. 2. However the energy explodes again as the template becomes more apparent. We may not get the correct energy amplitude information using q-transform.

In the case with very few noises, not only the amplitudes explode but the chirp gradually becomes a glitch-like structure. Fig. 3. shows the q-plots of some exaggerated peak SNRs. It seems that q-transform cannot handle such kind of ""clean signals.

While q-transform failed to give the proper information, TimeSeries.spectrogram() plot the correct trend with reasonable energy amplitudes, regardless of the resolution which is related to the algorithm of the two methods. Fig. 4. shows the comparison between q-plot and spectrogram.

According to this reference, q-transform gets the optmal descripion of the waveform. However it doesn’t work on the code. I would like to ask what is the problem of using q-transform?

I’ll be in the workshop on 4/19 and 4/20, and I’ll be very grateful for both online or in person discussions.

Hi @yidelee

Thank you for your question. It looks like the plots are working OK. Note, the “Energy” is a signal energy, which should scale as the square of the SNR.

So, for example, in the first row of figures, the SNR scale goes from 1 to 10. This is an increase in SNR of 10X, which gives and increase of the energy scale of 100x. This seems consistent with what I see in the figures.

If you are worried about how the signal appears in the q-transform plot, you can experiment with different plot parameters. For example, if it looks like some of the waveform is “missing”, you can lower the maximum value of the color scale so that lower energy parts of the signal are visible. In the first row, if you expected a chirp, you might try “zooming in” with a smaller time range to see if that helps.

Good luck!

@jonah Thank you very much for your reply! The exploding energy now seems to be reasonalbe, but I still have some concerns about the energies in Fig. 3. In Fig. 3, all peaks in time series were fixed to be 1 and only the relative amplitudes between waveform and noise were manipulated. I expected that the since the time seires is dominated by the waveform, the energies should be very similar. However the energies still increased drastically. I’ve asked Dr. Lupin Lin about this in the workshop, and he suggested me to control the q range instead of using the default one. I’ll try more on it.