Optical Lever Circuit Noise

Parameters

suboplev={
e->1.6*(10^(-19)),(*electron charge [C]*)
T->300,(*Temperature [K]*)
kB->1.38*(10^(-23)),(*Boltzmann constant [J/K]*)
Pin->1.*(10^(-3)),(*Input Laser Power [W]*)
SenPD->0.6,(*Sensitivity [A/W]*)
Ref->0.5,(*Mirror Reflectivity*)
R->100.*(10^3),(*Transimpedance Resistance [Ω]*)
RINR->1.*(10^(-2)),(*Laser Relative Intensity Noise Rejection Ratio*)
RIN->1.*(10^(-7)),(*Laser Relative Intensity Noise [/rtHz]*)
fcRIN->1.*(10^4),(*Laser RIN 1/f Cutoff frequency [Hz]*)
Vnn->2.*(10^(-9)),(*OP Amp Voltage Noise [V/rtHz]*)
fcVnn->2.3,(*OP Amp Voltage Noise 1/f Cutoff [Hz]*)
Inn->0.3*(10^(-12)),(*OP Amp Current Noise [A/rtHz]*)
fcInn->100.,(*OP Amp Current Noise 1/f Cutoff [Hz]*)
dLR->8*(10^(-3)),(*Linear Range of PSD [m]*)
L->4.(*Round Trip Length [m]*)
};

Calculation

AppendTo[suboplev,Idc->Pin*SenPD*(Ref^2)/.suboplev];Print[suboplev[[Length[suboplev]]]];

AppendTo[suboplev,Vdc->R*Idc/.suboplev];Print[suboplev[[Length[suboplev]]]];

Noise

shotnoise=Sqrt[2*e*Idc]*R/.suboplev

voltagenoise=Sqrt[4]*Vnn*Sqrt[1.+(fcVnn/f)]/.suboplev

currentnoise=Sqrt[4]*R*Inn*Sqrt[1.+(fcInn/f)]/.suboplev

thermalnoise=Sqrt[4]*Sqrt[4*kB*T*R]/.suboplev

relativeintensitynoise=RINR*RIN*R*Idc*Sqrt[1.+(fcRIN/f)]/.suboplev

totalnoise=Sqrt[(shotnoise^2)+(voltagenoise^2)+(currentnoise^2)+(thermalnoise^2)+(relativeintensitynoise^2)];

Plot

LogLogPlot[{totalnoise,shotnoise,voltagenoise,currentnoise,thermalnoise,relativeintensitynoise},{f,0.01,100},
Frame->True,GridLinesStyle->Dashed,ImageSize->500,PlotStyle->{{AbsoluteThickness[6],Black},{Thick,Red},{Thick,Blue},{Thick,Yellow},{Thick,Brown},{Thick,Cyan}},
PlotRange->{{(10^(-2)),(10^2)},{(10^(-9)),(10^(-3))}},
GridLines->{Flatten[Table[m*(10^n),{n,-2,2},{m,1,9}]],Table[(10^n),{n,-10,-3}]},
FrameTicks->{Table[{(10^n),Superscript[10,n]},{n,-2,2}],Table[{(10^n),Superscript[10,n]},{n,-10,-3}],None,None},
FrameLabel->{"Frequency [Hz]","Spectrum Density [V/rtHz]"},BaseStyle->{FontSize->14,Bold}]

Noise in Radian

conv=dLR/2/Vdc/(2*L)/.suboplev

rangerad=dLR/2/(2*L)/.suboplev;
Print["Linear Range: +/- "<>ToString[rangerad*(10^3)]<>" mrad"]

LogLogPlot[{totalnoise*conv,shotnoise*conv,voltagenoise*conv,currentnoise*conv,thermalnoise*conv,relativeintensitynoise*conv},{f,0.01,100},
Frame->True,GridLinesStyle->Dashed,ImageSize->500,PlotStyle->{{AbsoluteThickness[6],Black},{Thick,Red},{Thick,Blue},{Thick,Yellow},{Thick,Brown},{Thick,Cyan}},
PlotRange->{{(10^(-2)),(10^2)},{(10^(-13)),(10^(-8))}},
GridLines->{Flatten[Table[m*(10^n),{n,-2,2},{m,1,9}]],Table[(10^n),{n,-14,-7}]},
FrameTicks->{Table[{(10^n),Superscript[10,n]},{n,-2,2}],Table[{(10^n),Superscript[10,n]},{n,-14,-3}],None,None},
FrameLabel->{"Frequency [Hz]","Spectrum Density [rad/rtHz]"},BaseStyle->{FontSize->14,Bold}]

Optical Lever Circuit Noise Single Bounce

Parameters

suboplev={
e->1.6*(10^(-19)),(*electron charge [C]*)
T->300,(*Temperature [K]*)
kB->1.38*(10^(-23)),(*Boltzmann constant [J/K]*)
Pin->1.*(10^(-3)),(*Input Laser Power [W]*)
SenPD->0.6,(*Sensitivity [A/W]*)
Ref->0.5,(*Mirror Reflectivity*)
R->50.*(10^3),(*Transimpedance Resistance [Ω]*)
RINR->1.*(10^(-2)),(*Laser Relative Intensity Noise Rejection Ratio*)
RIN->1.*(10^(-7)),(*Laser Relative Intensity Noise [/rtHz]*)
fcRIN->1.*(10^4),(*Laser RIN 1/f Cutoff frequency [Hz]*)
Vnn->2.*(10^(-9)),(*OP Amp Voltage Noise [V/rtHz]*)
fcVnn->2.3,(*OP Amp Voltage Noise 1/f Cutoff [Hz]*)
Inn->0.3*(10^(-12)),(*OP Amp Current Noise [A/rtHz]*)
fcInn->100.,(*OP Amp Current Noise 1/f Cutoff [Hz]*)
dLR->8*(10^(-3)),(*Linear Range of PSD [m]*)
L->2.(*Arm Total Length [m]*)
};

Calculation

AppendTo[suboplev,Idc->Pin*SenPD*Ref/.suboplev];Print[suboplev[[Length[suboplev]]]];

AppendTo[suboplev,Vdc->R*Idc/.suboplev];Print[suboplev[[Length[suboplev]]]];

Noise

shotnoise=Sqrt[2*e*Idc]*R/.suboplev

voltagenoise=Sqrt[4]*Vnn*Sqrt[1.+(fcVnn/f)]/.suboplev

currentnoise=Sqrt[4]*R*Inn*Sqrt[1.+(fcInn/f)]/.suboplev

thermalnoise=Sqrt[4]*Sqrt[4*kB*T*R]/.suboplev

relativeintensitynoise=RINR*RIN*R*Idc*Sqrt[1.+(fcRIN/f)]/.suboplev

totalnoise=Sqrt[(shotnoise^2)+(voltagenoise^2)+(currentnoise^2)+(thermalnoise^2)+(relativeintensitynoise^2)];

Plot

LogLogPlot[{totalnoise,shotnoise,voltagenoise,currentnoise,thermalnoise,relativeintensitynoise},{f,0.01,100},
Frame->True,GridLinesStyle->Dashed,ImageSize->500,PlotStyle->{{AbsoluteThickness[6],Black},{Thick,Red},{Thick,Blue},{Thick,Yellow},{Thick,Brown},{Thick,Cyan}},
PlotRange->{{(10^(-2)),(10^2)},{(10^(-10)),(10^(-3))}},
GridLines->{Flatten[Table[m*(10^n),{n,-2,2},{m,1,9}]],Table[(10^n),{n,-10,-3}]},
FrameTicks->{Table[{(10^n),Superscript[10,n]},{n,-2,2}],Table[{(10^n),Superscript[10,n]},{n,-10,-3}],None,None},
FrameLabel->{"Frequency [Hz]","Spectrum Density [V/rtHz]"},BaseStyle->{FontSize->14,Bold}]

Noise in Radian

conv=dLR/2/Vdc/(L)/.suboplev

rangerad=dLR/2/(L)/.suboplev;
Print["Linear Range: +/- "<>ToString[rangerad*(10^3)]<>" mrad"]

LogLogPlot[{totalnoise*conv,shotnoise*conv,voltagenoise*conv,currentnoise*conv,thermalnoise*conv,relativeintensitynoise*conv},{f,0.01,100},
Frame->True,GridLinesStyle->Dashed,ImageSize->500,PlotStyle->{{AbsoluteThickness[6],Black},{Thick,Red},{Thick,Blue},{Thick,Yellow},{Thick,Brown},{Thick,Cyan}},
PlotRange->{{(10^(-2)),(10^2)},{(10^(-13)),(10^(-6))}},
GridLines->{Flatten[Table[m*(10^n),{n,-2,2},{m,1,9}]],Table[(10^n),{n,-14,-6}]},
FrameTicks->{Table[{(10^n),Superscript[10,n]},{n,-2,2}],Table[{(10^n),Superscript[10,n]},{n,-14,-3}],None,None},
FrameLabel->{"Frequency [Hz]","Spectrum Density [rad/rtHz]"},BaseStyle->{FontSize->14,Bold}]