I'm trying to make sense of these noise curves in relation to the free running noise I measured earlier with the three corner hat (3CH). The free running frequency noise of the S laser as measured by the three corner hat (attachment 6 from elog 2740) should be the same as the estimate off the free running noise using the PDH error signal and normalizing out the loop suppression ('open loop estimate' in attachment 2 of elog 2775). Here's what I'm noticing:
- At low frequency (1 Hz - 100 Hz), the 3CH measurement shows the noise falling off like 1/f with a corner around 100 Hz. The PDH noise curve shows nearly flat noise or slightly increasing noise below 100 Hz, and is almost 10 MHz/rtHz compared to <10 kHz/rtHz on the 3CH. I'd expect the true free running laser noise to be closer to < 10 kHz/rtHz in this range.
- At mid frequency, (100 Hz - 10 kHz), the PDH error signal noise curve is either itself noisy or contains many features, and falls off like 1/f. The 3CH curve is featured, but nearly flat at several 100 Hz/rtHz. The resolution bandwidth for the PDH error signal noise curve in this band seems to not allow sufficient averaging.
- At high(ish) frequency (10 kHz - 100 kHz), both curves are nearly flat and with fewer features, but the noise measured by the PDH error signal is still 2 orders of magnitude larger than that measured by 3CH.
We should certainly try to resolve these discrepancies... perhaps we are seeing extra noise due to the electronics used for locking (the PDH measurement includes the LB box, analog RF electronics, a long DB9 cable to ADC that was observed to inject noise around 100 kHz only partially attenuated by our ferrite toroid, etc). There might also simply be a bug in the noise budget script, I'll check it out.
I agree that the more-than-1/f dependence in the transfer function from attachment 1 above seems fishy. It's above 10 kHz, so it can't be due to the influence of the temperature control loop.
Update:
I've moved Shruti's NoiseSpectra.ipynb script to the cryo_lab scripts repository, and pushed the version she uploaded earlier. I also added the data to cryo_lab/data/PDH/Noise with git lfs.
I found a couple bugs in the script, and made some modifications
- We needed to compensate for a 10 dB attenuator between the PDH error point and the LB box error monitor, but instead compensated for 5 dB (temporary mixup of watts vs volts). Resulted in a UGF around 68 kHz (instead of 100 kHz), and phase margin of 31 degrees (instead of 16 degrees)
- Defined some variables for the attenuation, frequencies, and open loop transfer function to avoid repeated references to the columns of the data file
- Bug in the dBmtoV function. Was telling me 0 dBm is 1e-6 Vrms, but it should be 0.224 Vrms.
![P[\mathrm{W}] = 1[\mathrm{W}] * 10^{(x[\mathrm{dBm}] - 30) / 10} \implies \mathrm{V_{rms}}=\sqrt{50[\mathrm{Ohm}]*1[\mathrm{W}] * 10^{(x[\mathrm{dBm}] - 30) / 10}}](https://latex.codecogs.com/gif.latex?P%5B%5Cmathrm%7BW%7D%5D%20%3D%201%5B%5Cmathrm%7BW%7D%5D%20*%2010%5E%7B%28x%5B%5Cmathrm%7BdBm%7D%5D%20-%2030%29%20/%2010%7D%20%5Cimplies%20%5Cmathrm%7BV_%7Brms%7D%7D%3D%5Csqrt%7B50%5B%5Cmathrm%7BOhm%7D%5D*1%5B%5Cmathrm%7BW%7D%5D%20*%2010%5E%7B%28x%5B%5Cmathrm%7BdBm%7D%5D%20-%2030%29%20/%2010%7D%7D)
- scipy.signal.freqs_zpk wants frequencies in rad/s, but the 'cavityPoleReverse' function was supplying them in Hz
- Also, to get the appropriate DC behavior of this transfer function (that is, the gain at DC should be our V-to-Hz calibration), we must scale the 'k' of zpk by the angular frequency of the pole (or rather 1 / the zero's angular frequency, since we actually want the inverse of the cavity pole). Otherwise, the pole (zero) frequency enters the DC gain in
- Relatedly, we are correcting for the cavity response by multiplying the noise spectrum in V/rtHz by a DC gain and a single real zero at the cavity pole... but shouldn't we instead model the cavity as a complex pole pair with some Q like the finesse, and apply the transfer function to power before going to V/rtHz? Maybe for a high finesse cavity these reduce to the same, but our cavity finesse is O(10) so this might matter near the cavity pole. I did not modify the script to use a pair of poles.
 
Following these modifications, the noise at 10 kHz - 100 kHz is closer to that measured by 3CH. The updated open loop transfer function and noise curves are attached. I'm not chasing after the remaining discrepancy yet, since we expect that the PDH error signal was saturating during the attached measurement (see Shruti's elog from today for what we're doing about that).
|