This is a follow-up to alog 45734.
It answers the question of how to set the DCPD input matrix, with some more background.
Basics:
- We can measure two numbers (ratios):
g = PD_A/PD_B coherent signal amplitude ratio (best done by looking at the PD_A/PD_B transfer function at low frequencies)
h = PD_A/PD_B shot noise signal amplitude ratio (by matching the amplitude spectra - a transfer function does not work here)
- These are directly related to the OMC BS splitting ratio 'bA/bB' and the sensing chain gain ratio between the two photo diodes, gA/gB via
g = gA/gB * bA/bB
h = gA/gB * sqrt(bA/bB)
in particular we have g/h = sqrt(bA/bB)
- I can write the photodiode signals as
PDA = g * s + h * nA
PDB = s + nB
or, rescaling PDA to match the shot noise level of PDB, PDA_ = PDA/h
PDA_ = g/h * s + nA
PDB_ = s + nB
Here s is the signal as seen by PDB, and nA and nB are realizations of shot noise, scaled such that <nA^2>=<nB^2> (i.e. same power spectral density).
They are independent, i.e. <nA*nB>=0.
- Since the two shot noise levels are equal and uncorrelated, we can now rotate the signal by any angle theta to maximize our readout SNR:
/ PDA~ \ / PDA_ \
| | = R | |
\ PDB~ / \ PDA_ /
or in vector notation:
x~ = R x_
Note that the shot noise levels in PDA~ and PDB~ remain uncorrelated and equal during this rotation.
Here R is the recular rotation matrix:
/ cos(theta) sin(theta) \
R = | |
\-sin(theta) cos(theta) /
- If we rotate all the signal into PDA~, PDA~ becomes DCPD_SUM, and PDB~ becomes DCPD_NULL. This is achieved for
theta = atan(h/g) = atan(sqrt(bB/bA))
- The matrix proposed in alog 45734 did exactly that, with
i) an additonal sign change for DCPD_NULL, i.e. DCPD_NULL = - PDA~
ii) rescaling the overall matrix gain to some aribitrary, traditional value set by A+B=2 (see alog 45734 for details, also the attached MATLAB file).
To be explicit, the alog 45734 matrix M is equal to
M = gain * diag([1,-1]) * R * diag([1/h,-1]);
- The cross-power CP between the two photodiodes can be calculated for any rotation angle theta:
With
/ 0 1/2 \
C = | |
\ 1/2 0 /
we get
CP = < PDA~ * PDB~ > = < transpose(x~) C x~ = transpose(x_) transpose(R) C R x_ >
or
/ -sin(2*theta) cos(2*theta) \
CP = < 1/2 transpose(x_) | | x >
\ cos(2*theta) sin(2*theta) /
or
CP = cos(2*theta) < PDA_ * PDB_ > + sin(2*theta)/2 * ( < PDB_^2 > - < PDA_^2 > )
There are now two ways to choose the theta for this cross-power calculations:
A) Stay in the original PDA_-PDB_ basis: theta=0deg
B) Optimize the SNR ratio in the cross-power: theta = theta_SUMNUL - 45deg
A) Guarantees that the cross-power measurement is independent of the measured gain-scaling - at least at high frequencies
(Low frequencies require loop gain corrections anyway).
B) This introduces a slight sensitivity to the measured shot noise ratio in the two diodes (sin(2*theta)/2 term).
But since the loop gain correction needs to be done in the SUM_NULL basis anyway, that is a bit of a mute point,
and should not matter for realistic OMC BS splitting ratios.
*****************************************************************
Bottom line:
If we follow the procedure from alog 45734, the cross-power estimator should work as advertised.
Practical suggestion:
The process will be less mysterious if we put the shot-noise-matching gain '1/h' up front in the PDA filter modules.
Then we can use a pure rotation matrix for the PDA_PDB to SUM_NULL matrix M.
Attached are two hand-drawn illustrations.
1) Illustrations for the discussion above
2) What would change form 1 when we use squeezing. If we know the squeeze factor the cross-correlator can be made to work in principle. But precise knowledge of the squeeze factor is needed.
Also attached is the MATLAB file for calculating the input matrix.