[Gabriele, Elenna, Jamie]
We used the NonSENS linear subtraction code to fit filters for the HAM1 to CHARD_P feedforward. We are using all four L4C signals (RX, RY, X, Z) and we could obtain a significant improvement bewteen 10 and 30 Hz. See first plot.
Filters are loaded in the FF_X, FF_Z, FF_RX, FF_RY filter banks (see second plot).
Note that the filters obtained by training on older data (November 12) are different from those obtained with today's data. The old filter did not provide optimal subtraction.
We left the filter loaded, but the main FF switch off.
There are several technical details that we had to figure out:
The python code is attached as a jupyter notebook (renamed to .txt to attach it). You'll need to pull the latest version of nonsens from git.ligo.org. The code in the notebook should be enough to retrain when needed.
In general it's not possible to directly convert offline-trained noise subtraction or feedforward to the online case when there are loops involved. One would need to take care of the closed loop response of the loop acting on the target signal, for example by measuring it seprately and using it as part of the "shaping" filter in training.
In the CHRAD_P case, the goal was to achieve noise subtraction at frequencies above 10 Hz, where the loop effect is neglegible, due to the aggressive cutoff in the control flter.
I tested HAM1 FF for CHARD P in nominal low noise again and it works to reduce the noise in CHARD (see plot 1), however there is no appreciable difference in DARM when the FF is on or off. I did an on/off test to determine this: plot 2.
Interesting observation at LLO that the delay between models is not what was expected.