TimeSeries.whiten() can easily introduce filter transients
Created by: alurban
While putting together the gwdetchar-omega
tool, I discovered that in many cases the default whitening scheme in GWPy can easily introduce filter transients in many channels. An example is shown below:
These data are from the Livingston calibration channel L1:CAL-PCALY_RX_PD_OUT_DQ
near the time of binary neutron star merger GW170817. This channel shows reflected laser light in the photon calibrator at the Y-end station, which we use to independently monitor the calibration lines. To make this plot I used the default whitening with fftlength=2
, overlap=1
. Clearly, there are filter transients that recur once per overlap (i.e. once per second) near 330 and 1087 Hz, which are the locations of two of the calibration lines.
As @andrew-lundgren pointed out in #358 (closed), this behavior is not ubiquitous but it is relatively common. I believe it can be remedied by allowing users to select an alternative whitening scheme that designs and uses an FIR filter, similar to the one in PyCBC, which is based on FINDCHIRP.
I have coded this up and will post a merge request momentarily.