Squeezer
SHG/OPO Notch

Setup

Needs["Controls`LinearControl`"]

$TextStyle={FontFamily->"Helvetica",FontSize->13};

plotopt=PlotStyle->{{Thickness [0.007], RGBColor [1,0,0]},
			    {Thickness [0.007], RGBColor [0,0,1]},
			    {Thickness [0.007], RGBColor [0.1,0.7,0.2]},
			    {Thickness [0.007], RGBColor [0.5,0.5,0.2]}};

par[r1_,r2_]:=(1/(1/r1+1/r2))

pole[f_,p_]:=(1/(1+I f/p))
zero[f_,p_]:=1+I f/p
pole[f_,p_,Q_]:=(1/(1+I(1/Q)(f/p)-(((f/p))^2)))
zero[f_,p_,Q_]:=1+I(1/Q)(f/p)-(((f/p))^2)

Target

BodePlotEx[zero[f,6,10]((pole[f,6])^2),{f,1,100},plotopt,BaseStyle->$TextStyle,XAxisLabel->"kHz"]

Notch Circuit

Equations

C3 is at the output to ground. 
Rdamp is in series with C2.

eq1=((vp-vin)/(1/(s C1)))+(vp/R3)==0
eq2=((vm-vin)/R1)+((vm-vo)/R2)==0
eq3=vm==vp
eq4=R3==R4
eq5=C1==C2
eq6=((vout-vo)/((1/(s C2))+Rdamp))+((vout-vin)/R4)+(vout/(1/(s C3)))==0
Solve[{eq1,eq2,eq3,eq4,eq5,eq6},vout,{vp,vm,R4,C2,vo}]
sol=Simplify[(vout/vin)/.%[[1]]]
Limit[sol,s->0]
Collect[Simplify[((Numerator[sol])/R1)/.Rdamp->0/.R2->R1-(R1/Q)/.C1->(1/(ω R3))],s]
zsol=Solve[((Numerator[sol])/R1)==0/.Rdamp->0/.R2->R1-(R1/Q)/.C1->(1/(ω R3)),s]//PowerExpand
Collect[Simplify[((Denominator[sol])/R1)/.Rdamp->0],s]
psol=Solve[Denominator[sol]==0/.Rdamp->0/.R3->(1/(ω C1)),s]

Parameters

prm={C1->10*^-9,R3->2.4*^3,R1-> 2.4*^3,R2->2.32*^3,C3->1.0*^-9,Rdamp->0}

sol/.prm  (* s polynominal *)
(1/(2π C1 R3))/.prm  (* frequency of zeroes and one of the poles *)
(R1/(R1-R2))/.prm  (* Q of zeroes *)
(C1/(C1+C3))/.prm  (* shift of one of the poles *)

{dB[#],Phase[#]}&[sol]/.prm/.s->2π I 1*^3f/.f->2

BodePlotEx[sol/.prm/.s->2π I 1*^3f,{f,1,100},plotopt,BaseStyle->$TextStyle,XAxisLabel->"kHz"]

BodePlotEx[sol/.prm/.s->2π I 1*^3f,{f,5,10},plotopt,BaseStyle->$TextStyle,XAxisLabel->"kHz"]

Damping

prm={C1->10*^-9,R3->2.4*^3,R1-> 2.4*^3,R2->2.32*^3,C3->0.1*^-9,Rdamp->2}

BodePlotEx[sol/.prm/.s->2π I 1*^3 f,{f,1,10},plotopt,BaseStyle->$TextStyle,XAxisLabel->"kHz"]

Solve[Numerator[sol]==0/.s->-2π f,f]/.prm (* zero frequencies *)
(Sqrt[(f/.%[[1]])(f/.%[[2]])])//Chop (* frequency *)
(1/(2 Sin[Arg[I f/.%%[[2]]]]))(* Q *) 
Solve[Denominator[sol]==0/.s->-2π f,f]/.prm (* pole frequencies *)

BodePlotEx[pole[f,0.001]zero[f,2]zero[f,0.5]pole[f,2]sol/.prm/.s->2π I 1*^3 f,{f,0.5,200},plotopt,BaseStyle->$TextStyle,XAxisLabel->"kHz"]

1+(R6/((1/(s CC))+R7))//Together
Solve[Numerator[%/.s->-2 π f]==0,f]
Solve[Denominator[%%/.s->-2 π f]==0,f]

Boost

prm2={R2->2.4*^3,R1->806,C->1*^-6}

boost=1+((par[R2,(1/(s C))])/R1)//Together
Solve[Numerator[boost]==0,s][[1]]
-(s/(2π))/.%/.prm2
Solve[Denominator[boost]==0,s][[1]]
-(s/(2π))/.%/.prm2

BodePlotEx[(boost/.prm2) (sol/.prm)/.s->2π I 1*^3 f,{f,.01,100},plotopt,BaseStyle->$TextStyle,XAxisLabel->"kHz"]