I have verified the self-consistency of the three different methods of obtaining the gyro noise spectrum, which are:
(NOTE: what I mean is that these are three ways to obtain a noise spectrum with a given gyro signal, in this case the feedback signal to the AOM VCO). Below is a plot showing that the three results overlap quite nicely, with the only difference being a little less smooth a curve at low frequency for the analog measurement.
I'm not sure what was giving me trouble yesterday, but I am now clearly able to get a sensible result with option (3), which is integrated in the new noise budget generation scheme. Below is an output I just generated using a current spectrum. I have made the following aesthetic modifications that Koji suggested:
I have more-or-less finished a rough first draft of the automatic gyro noise budget MATLAB code. The rough architecture is:
In addition to this, there are two functions named "pdh1437" and "pdh2215" which contain analytical expressions for the two respective filters. They take as arguments 1) a frequency vector and 2) the appropriate box's gain setting and return a vector of the transfer function sampled at these frequencies. These are used wherever a spectrum needs to be multiplied or divided by the PDH gain.
The file in (2) takes the OLTF in each direction and divides by the correctly sampled PDH gain and actuator gain to obtain the optical response in V/Hz. This is used to calibrate voltage spectra into (rad/s)/rHz.
(1) is separate so that we can choose whether to pull the gyro noise from the frames or upload our own (e.g. an analog measurement), and there will be a single file that runs everything in one fell swoop.
Below is a sample output. In this case, I have used our analog measurement of the gyro noise from last week as I am still working out the kinks in the NDS method (for some reason, they don't come out quite the same). Obviously, this is still somewhat barebones and we will need to add in more noise sources as they come to us. The good thing is that---at long last---we will be able to simply press a button every time we want an up-to-date noise budget. If we make a change to the setup, it is simply a matter of dropping the new data into the "data" directory and re-running.