[paco]
This morning, I spent some time restoring the jupyter notebook server running in allegra. This server was first set up by Anchal to be able to use the latest nds python API tools which is handy for the calibration stuff. The process to restore the environment was to run "source ~/bashrc.d/*" to restore some of the aliases, variables, paths, etc... that made the nds server work. I then ran ssh N f L localhost:8888:localhost:8888 controls@allegra from pianosa and carry on with the experiment.
[paco, hang, tega]
We started a notebook under /users/paco/20210906_XARM_Cal/XARM_Cal.ipynb on which the first part was doing the following;
 Set up list of excitations for C1:LSCXARM_EXC (for example three sine waveforms) using awg.py
 Make sure the arm is locked
 Read a reference time trace of the C1:LSCXARM_IN2 channel for some duration
 Start excitations (one by one at the moment, ramptime ~ 3 seconds, same duration as above)
 Get data for C1:LSCXARM_IN2 for an equal duration (raw data in Attachment #1)
 Generate the excitation sine and cosine waveforms using numpy and demodulate the raw timeseries using a 4th order lowpass filter with fc ~ 10 Hz
 Estimate the correct demod phase by computing arctan(Q / I) and rerunning the demodulation to dump the information into the I quadrature (Attachment #2).
 Plot the estimated ASD of all the quadratures (Attachment #3)
[paco, hang, tega]
Estimation of open loop gain:
 Grab data from the C1:LSCXARM_IN1 and C1:LSCXARM_IN2 test points
 Infer excitation from their differnce, i.e. C1:LSCXARM_EXC = C1:LSCXARM_IN2  C1:LSCXARM_IN1
 Compute the open loop gain as follows : G(f) = csd(EXC,IN1)/csd(EXC,IN2), where csd computes the cross spectra density of the input arguments
 For the uncertainty in G, dG, we repeat steps (1) to (3) with & without signal injection in the C1:LSCXARM_EXC channel. In the absence of signal injection, the signal in C1:LSCXARM_IN2 is of the form: Y_ref = Noise/(1G), whereas with nonzero signal injection, the signal in C1:LSCXARM_IN2 has the form: Y_cal = EXC/(1G) + Noise/(1G), so their ratio, Y_cal/Y_ref = EXC/Noise, gives the SNR, which we can then invert to give the uncertainty in our estimation of G, i.e dG = Y_ref/Y_cal.
 For the excitation at 53 Hz, our measurtement for the open loop gain comes out to about 5 dB whiich is consistent with previous measurement.
 We seem to have an SNR in excess of 100 at measurement time of 35 seconds and 1 count of amplitude which gives a relative uncertainty of G of 0.1%
 The analysis details are ongoing. Feedback is welcome.
