Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Fabry-Perot Cavities

Syracuse University

A Fabry-Perot two-mirror optical cavity is the fundamental building block of laser physics.
With it, we have built the first lasers and masers, created optical clocks and detected gravitational waves.

Here we will dive deeply into the basics of a Fabry-Perot.
We will come back to this formalism a dozen times throughout this course, and develop some matrix mechanics and other math required to understand it.

Source
%matplotlib widget
import numpy as np 
import matplotlib as mpl
import matplotlib.pyplot as plt
from ipywidgets import *

plt.style.use('dark_background')

fontsize = 14
mpl.rcParams.update(
    {
        "text.usetex": False,
        "figure.figsize": (9, 6),
        # "figure.autolayout": True,
        # "font.family": "serif",
        # "font.serif": "georgia",
        # 'mathtext.fontset': 'cm',
        "lines.linewidth": 1.5,
        "font.size": fontsize,
        "xtick.labelsize": fontsize,
        "ytick.labelsize": fontsize,
        "legend.fancybox": True,
        "legend.fontsize": fontsize,
        "legend.framealpha": 0.7,
        "legend.handletextpad": 0.5,
        "legend.labelspacing": 0.2,
        "legend.loc": "best",
        "axes.edgecolor": "#b0b0b0",
        "grid.color": "#707070",  # grid color"
        "xtick.color": "#b0b0b0",
        "ytick.color": "#b0b0b0",
        "savefig.dpi": 80,
        "pdf.compression": 9,
    }
)
Screenshot from 2026-01-05 11-46-24.png

Fabry-Perot illustration

A Fabry-Perot cavity is two mirrors aligned with some space LL between them.
The mirrors are labeled r1r_1 and r2r_2, which represents their amplitude reflectivity,
and t1t_1 and t2t_2 which are the amplitude transmission.
The amplitude coefficients are related to our more commonly reported power reflectivity RR and power transmission TT like

R=r2,T=t2\begin{align} R = |r|^2, \quad T = |t|^2 \end{align}

The red arrows represent electric fields, which act as nodes on a directed graph. The arrow direction illustrates the transitions on the graph.
We have one input above: EinE_\mathrm{in}, which represents the input laser.
EinE_\mathrm{in} represents all the field strength that will interact with the cavity.

EinE_\mathrm{in} will have two transitions: one to EcavE_\mathrm{cav}, and another to EreflE_\mathrm{refl}. These represent the intracavity field and the cavity reflected field. These will be influenced by the reflectivity of the mirrors, as we will see.

Note we have two outputs from our system: EreflE_\mathrm{refl} and EtransE_\mathrm{trans}.
EtransE_\mathrm{trans} represets the total cavity transmitted field.
Because power must be conserved, we can write the following:

Pin=PoutEin2=Erefl2+Etrans2\begin{align} P_\mathrm{in} &= P_\mathrm{out}\\ |E_\mathrm{in}|^2 &= |E_\mathrm{refl}|^2 + |E_\mathrm{trans}|^2 \end{align}

The above power conservation assumes no loss inside the Fabry-Perot cavity.

We will assume that our incident EinE_\mathrm{in} is a plane-wave, and we’ll find the plane-wave solutions to the Fabry-Perot cavity below.

1Scattering Matrices

Before we dive into the analysis of the Fabry Perot, we need to understand its parts. We will investigate the effect of mirrors and propogation distances on electric fields, and how these can be described with scattering matrices.

1.1General Scattering Matrix

Suppose we have two electric fields E1E_1 and E2E_2 incident on an general optical object M\boldsymbol{M}.
E1E_1 and E2E_2 are both electric field phasors with the same optical axis, frequency, and polarization, but opposite wavenumbers k1=k2\boldsymbol{k}_1 = -\boldsymbol{k}_2.

general_scattering_matrix.png

We can describe their interaction M\boldsymbol{M} like

Eout=MEin[E1E2]=[ABCD][E1E2]\begin{align} \vec{E}_\mathrm{out} &= \boldsymbol{M} \vec{E}_\mathrm{in}\\ \begin{bmatrix} E_1' \\ E_2' \end{bmatrix} &= \begin{bmatrix} A & B \\ C & D \end{bmatrix} \begin{bmatrix} E_1 \\ E_2 \end{bmatrix} \end{align}

The components AA and DD describe the action of the object M\boldsymbol{M} on the beam transmitted through the object:

E1=AE1E2=DE2E_1' = A E_1 \\ E_2' = D E_2

This can include phase changes, absorption, and transmission coefficients.
However, the object may partially or totally reflect the incident beams back along the optical axis. This is described by the BB and DD components.

In this manner, we have described a general 2×22 \times 2 scattering matrix for our beams travelling in two directions.
One can imagine that we can add many different bases to make an n×nn \times n scattering matrix, describing changes to the electric field frequencies, polarization, or direction.
The 2×22 \times 2 scattering matrix is good enough for our plane-wave Fabry-Perot solutions, as we’ll see below.

1.2Propogation Distance

First we describe a simple length propogation matrix over a distance LL.

In this case, E1E_1 travels an additional distance LL, accruing an extra phase delay ϕ=kL\phi = -k L.
Additionally, E2E_2 travels an additional distance L-L, but in the k-k direction, yielding the same positive phase accrued ϕ=(k)(L)=kL\phi = -(-k)(-L) = k L.
No exchange between E1E_1 and E2E_2 occurs, so we get the final *length propogating matrix$:

Eout=S(L)Ein[E1E2]=[eikL00eikL][E1E2]\begin{align} \vec{E}_\mathrm{out} &= \boldsymbol{S}(L) \vec{E}_\mathrm{in}\\ \begin{bmatrix} E_1' \\ E_2' \end{bmatrix} &= \begin{bmatrix} e^{-i k L} & 0 \\ 0 & e^{-i k L} \end{bmatrix} \begin{bmatrix} E_1 \\ E_2 \end{bmatrix} \end{align}
length_propogation_scattering_matrix.png

1.3Mirror Matrix

A mirror matrix defines our first non-trivial interaction between E1E_1 and E2E_2.
A reflection can occur at any interface between two materials with different indices of refraction n1n_1, n2n_2.

Our drawing indicates that E1E_1 is incident on the front surface of the mirror.
In other words, E1E_1 is traveling from a lower index of refraction n1n_1 to a higher one n2n_2. The reflectivity of the mirror rr causes some of the incident field to be reemitted back in the direction it came, toward E2E_2'.

Due to the Fresnel relations, E1E_1 incurs a phase flip, giving the full reflection coefficient to be E2=rE1E_2' = -r E_1.
If we add in the transmission tt of E2E_2 to E2E_2', we get the full expression for E2E_2'.
A similar process can be performed for E1E_1' as well, only this time we use +r+r because we are going from high index n2n_2 to low index n1n_1:

E1=tE1+rE2E2=rE1+tE2\begin{align} E_1' &= t E_1 + r E_2\\ E_2' &= -r E_1 + t E_2 \end{align}
Eout=M(r,t)Ein[E1E2]=[trrt][E1E2]\begin{align} \vec{E}_\mathrm{out} &= \boldsymbol{M}(r,t) \vec{E}_\mathrm{in}\\ \begin{bmatrix} E_1' \\ E_2' \end{bmatrix} &= \begin{bmatrix} t & r \\ -r & t \end{bmatrix} \begin{bmatrix} E_1 \\ E_2 \end{bmatrix} \end{align}
mirror_matrix.png
Solution to Exercise 1 #

Here is one option for the beamsplitter matrix.
Note that we label the front of the beamsplitter with a minus sign to help us put down correct Fresnel relations signs on our reflected signals.

beamsplitter_matrix.png
Solution to Exercise 2 #

Let the input phasors

E1=E1eiω0tE2=E2ei(ω0t+ϕ)E_1 = |E_1| e^{i \omega_0 t } \qquad E_2 = |E_2| e^{i (\omega_0 t + \phi) }

Then

Pin1=E12Pin2=E22\begin{align} P_\mathrm{in1} &= |E_1|^2\\ P_\mathrm{in2} &= |E_2|^2\\ \end{align}

Recalling

E1=tE1+rE2E2=rE1+tE2\begin{align} E_1' &= t E_1 + r E_2\\ E_2' &= -r E_1 + t E_2 \end{align}
Pout1=E12Pout1=tE1+rE22Pout1=(tE1+rE2)(tE1+rE2)Pout1=t2E12+r2E22+rt(E1E2+E1E2)Pout1=t2E12+r2E22+rtE1E2(eiω0tei(ω0t+ϕ)+eiω0tei(ω0t+ϕ))Pout1=t2E12+r2E22+rtE1E2(eiϕ+eiϕ)Pout1=t2E12+r2E22+2rtE1E2cos(ϕ)\begin{align} P_\mathrm{out1} &= |E_1'|^2 \\ P_\mathrm{out1} &= |t E_1 + r E_2|^2 \\ P_\mathrm{out1} &= (t E_1 + r E_2)(t E_1 + r E_2)^* \\ P_\mathrm{out1} &= t^2 |E_1|^2 + r^2 |E_2|^2 + r t (E_1 E_2^* + E_1^* E_2) \\ P_\mathrm{out1} &= t^2 |E_1|^2 + r^2 |E_2|^2 + r t |E_1| |E_2| (e^{i \omega_0 t} e^{-i (\omega_0 t + \phi)} + e^{-i \omega_0 t} e^{i (\omega_0 t + \phi)})\\ P_\mathrm{out1} &= t^2 |E_1|^2 + r^2 |E_2|^2 + r t |E_1| |E_2| (e^{-i \phi} + e^{i \phi}) \\ P_\mathrm{out1} &= t^2 |E_1|^2 + r^2 |E_2|^2 + 2 r t |E_1| |E_2| \cos(\phi) \end{align}

Similarly for Pout2P_\mathrm{out2}:

Pout2=E22Pout2=r2E12+t2E222rtE1E2cos(ϕ)\begin{align} P_\mathrm{out2} &= |E_2'|^2 \\ P_\mathrm{out2} &= r^2 |E_1|^2 + t^2 |E_2|^2 - 2 r t |E_1| |E_2| \cos(\phi) \end{align}

Then PoutP_\mathrm{out} yields

Pout=Pout1+Pout2Pout=t2E12+r2E22+2rtE1E2cos(ϕ)+r2E12+t2E222rtE1E2cos(ϕ)Pout=(t2+r2)E12+(t2+r2)E22Pout=(t2+r2)Pin1+(t2+r2)Pin2\begin{align} P_\mathrm{out} &= P_\mathrm{out1} + P_\mathrm{out2}\\ P_\mathrm{out} &= t^2 |E_1|^2 + r^2 |E_2|^2 + 2 r t |E_1| |E_2| \cos(\phi)\\ &+ r^2 |E_1|^2 + t^2 |E_2|^2 - 2 r t |E_1| |E_2| \cos(\phi)\\ P_\mathrm{out} &= (t^2 + r^2) |E_1|^2 + (t^2 + r^2) |E_2|^2 \\ P_\mathrm{out} &= (t^2 + r^2) P_\mathrm{in1} + (t^2 + r^2) P_\mathrm{in2} \\ \end{align}

So power incident on the mirror is conserved iff

t2+r2=1\begin{align} \boxed{t^2 + r^2 = 1} \end{align}

This derivation is very dense, so we’ll unpack some important results here.

First, notice the importance of our Fresnel conditions giving r-r and +r+r coefficients of reflection. Power would not be conserved without it.

Second, the individual power terms Pout1P_\mathrm{out1} and Pout2P_\mathrm{out2} exhibit clear interference. Without adjusting any input power levels, I can switch the power coming out of the mirror from one side to the other by adjusting the relative phase ϕ\phi.

Equation (14) is an extremely important power conservation condition never achieved for real mirrors.
There is always some loss, either from direct absorption of the incident light, or scattering of light away from normal incidence by surface imperfections.

We call anything that causes our laser to lose power loss L\mathcal{L}, and this can be incorporated into Eq (14) via

T+R+L=1\begin{align} \boxed{T + R + \mathcal{L} = 1} \end{align}

where we have written T=t2T = t^2 and R+r2R + r^2 in terms of their more-commonly-used power coefficients.

To see a plot of Pout1P_\mathrm{out1} and Pout2P_\mathrm{out2} as a function of ϕ\phi, open the lower two Source and Output tabs.

Source
phis = np.linspace(-np.pi, np.pi, 1000)

rr = np.sqrt(0.5) # mirror amplitude reflection
tt = np.sqrt(0.5) # mirror amplitude transmission
p_in1 = 0.5 # watt
p_in2 = 0.5 # watt
p_out1 = tt**2 * p_in1 + rr**2 * p_in2 + 2 * rr * tt * np.sqrt(p_in1 * p_in2) * np.cos(phis)
p_out2 = rr**2 * p_in1 + tt**2 * p_in2 - 2 * rr * tt * np.sqrt(p_in1 * p_in2) * np.cos(phis)

fig, ax1 = plt.subplots(1)

ax1.plot(180/np.pi*phis, p_out1, label=r"P Out 1")
ax1.plot(180/np.pi*phis, p_out2, label=r"P Out 2")

ax1.grid()
ax1.set_title("Power Output from a Mirror versus Relative Input Phase")
ax1.set_xlabel(r"Input Relative Phase $\phi$ [degs]")
ax1.set_ylabel("Power $P$ [W]")
ax1.legend()
plt.show()
Output
Loading...

2Fabry Perot Solutions

fabry_perot.png

Using the matrices above, we are ready to assemble our Fabry-Perot interferometer.

First, we will go through and assemble a vector of our electric fields E\vec{E}:

E=[EinEcavEcav2EreflEtrans]\begin{align} \vec{E} &= \begin{bmatrix} E_\mathrm{in} \\ E_\mathrm{cav} \\ E_\mathrm{cav2} \\ E_\mathrm{refl} \\ E_\mathrm{trans} \end{bmatrix} \end{align}

We neglect any phase propogation other than inside the cavity length LL.\

Now we examine each element of our electric fields and write out a system of equations for each of them.
We pick out our source terms, EinE_\mathrm{in} in this case, and ignore them for the time being, as they have no relationship to the dynamics of the cavity itself, they only source the field for it.

Ecav=r1eikLEcav2+t1EinEcav2=r2eikLEcavErefl=t1eikLEcav2+r1EinEtrans=t2eikLEcav\begin{align} E_\mathrm{cav} &= -r_1 e^{-i k L} E_\mathrm{cav2} + t_1 E_\mathrm{in}\\ E_\mathrm{cav2} &= -r_2 e^{-i k L} E_\mathrm{cav} \\ E_\mathrm{refl} &= t_1 e^{-i k L} E_\mathrm{cav2} + r_1 E_\mathrm{in} \\ E_\mathrm{trans} &= t_2 e^{-i k L} E_\mathrm{cav} \end{align}

Hopefully, with some examination of the diagram, it can become clear where the above systems of equations came from. EcavE_\mathrm{cav} represents the electric field just coming off the input mirror inside the cavity heading toward the end mirror, while
Ecav2E_\mathrm{cav2} represents the same field for the end mirror, heading toward the input mirror.
EcavE_\mathrm{cav} is sourced by two fields:

  1. EinE_\mathrm{in} being transmitted through the input mirror t1t_1,

  2. Ecav2E_\mathrm{cav2} propogating the full cavity length LL, accruing ϕ=kL\phi = k L phase,
    then reflecting off the front of the input mirror, gaining the reflection coefficient r1-r_1

2.1Intracavity Field EcavE_\mathrm{cav}

Here we will solve the intracavity field EcavE_\mathrm{cav} directly from our equations above.
We can eliminate Ecav2E_\mathrm{cav2} from EcavE_\mathrm{cav} by subbing in the second equation above:

Ecav=r1eikLEcav2+t1EinEcav=r1eikL(r2eikLEcav)+t1EinEcav=r1r2ei2kLEcav+t1Ein\begin{align} E_\mathrm{cav} &= -r_1 e^{-i k L} E_\mathrm{cav2} + t_1 E_\mathrm{in}\\ E_\mathrm{cav} &= -r_1 e^{-i k L} (-r_2 e^{-i k L} E_\mathrm{cav}) + t_1 E_\mathrm{in}\\ E_\mathrm{cav} &= r_1 r_2 e^{-i 2 k L} E_\mathrm{cav} + t_1 E_\mathrm{in} \end{align}

which, by subtracting over EcavE_\mathrm{cav} and solving for it, yields

Ecav=t11r1r2ei2kLEin\begin{align} \boxed{ E_\mathrm{cav} = \dfrac{ t_1 }{ 1 - r_1 r_2 e^{-i 2 k L} } E_\mathrm{in} } \end{align}

Below we have a magnitude and phase plot of the intracavity field as a function of the round-trip phase ϕ=2kL\phi = 2 k L.
We will often use the round-trip phase rather than cavity length or input laser frequency, as those are degenerate with one another.

2.2Transfer Function

A transfer function is a general measure of the linear relationship of one signal to another.
In this case, linear means that action at one frequency ω\omega in the input x(t) causes the action in the output y(t):

Y(ω)=H(ω)X(ω)Y(\omega) = H(\omega) X(\omega)

where X(ω)X(\omega), Y(ω)Y(\omega) are the Fourier transforms of the input and output signals x(t)x(t), y(t)y(t), and H(ω)H(\omega) is the transfer function between them.

A Bode plot is just the plot of the magnitude and phase of a function as frequency.
We can consider the below plot as a transfer function from the input EinE_\mathrm{in} to the output EcavE_\mathrm{cav} if we rewrite Eq. (19) as

EcavEin(ω)=t11r1r2ei2ωL/c\begin{align} \dfrac{E_\mathrm{cav}}{E_\mathrm{in}}(\omega) = \dfrac{ t_1 }{ 1 - r_1 r_2 e^{-i 2 \omega L / c} } \end{align}
def ecav_fp(phis, ein, trans1, trans2, loss1=0, loss2=0):
    """Calculates the intracavity field ecav for a Fabry-Perot cavity.
    phis: float
        Round-trip phase phi = 2 k L [radians]
    ein: float
        Input electric field amplitude [sqrt watts]
    trans1: float
        Input mirror power transmission T1
    loss1: float
        Input mirror loss L1
    loss2: float
        End mirror loss L2      
    """
    # Set up amplitude reflectivities
    t1 = np.sqrt(trans1)
    t2 = np.sqrt(trans2)
    r1 = np.sqrt(1 - loss1 - trans1)
    r2 = np.sqrt(1 - loss2 - trans2)
    
    ecav = ein * t1 / (1 - r1 * r2 * np.exp(-1j * phis))
    return ecav
# Define a cavity
phis2 = np.linspace(-3*np.pi, 3*np.pi, 10000)

# mirror power transmissions
trans1 = 0.25
trans2 = 0.25
loss1 = 0 # no loss for now
loss2 = 0
ein = 1 # rtWatts

# Calculate intracavity field
ecav = ecav_fp(phis2, ein, trans1, trans2, loss1, loss2)
# Make a Bode plot of the cavity transmission
fig2, (ax21, ax22) = plt.subplots(2, sharex=True)

ax21.plot(180/np.pi*phis2, np.abs(ecav), label="|Ecav|")
ax22.plot(180/np.pi*phis2, np.angle(ecav, deg=True), label=r"$\angle$ Ecav")

ax21.set_xticks(180*np.arange(-3,4))
ax21.grid()
ax21.set_title("Intracavity field vs Round-Trip Phase")
# ax21.set_xlabel(r"Input Relative Phase $\phi$ [degs]")
ax21.set_ylabel(r"$|E_\mathrm{cav}|$ [$\sqrt{W}$]")
ax21.legend()

ax22.grid()
# ax22.set_title("")
ax22.set_xlabel(r"Round Trip Phase $\phi = 2 k L$ [degs]")
ax22.set_ylabel(r"$\angle E_\mathrm{cav}$ [deg]")
ax22.legend()

plt.show()
Loading...

2.3Complex Lorentzian

Equation (19) has a very interesting form, as can be seen from the magnitude and phase plot above. There is a regular phasor ei2ωL/ce^{-i 2 \omega L / c} in the denominator. If we are very near resonance (ωc/(2L)\omega \approx c / (2 L)), then we can write

ei2ωL/c1+i2ωL/ce^{-i 2 \omega L / c} \approx 1 + i 2 \omega L / c

And our intracavity field becomes what is called a complex Lorentzian:

Ecav=t11r1r2(1+i2ωL/c)EinEcav=t11r1r2i2r1r2ωL/cEin\begin{align} E_\mathrm{cav} = \dfrac{ t_1 }{ 1 - r_1 r_2 (1 + i 2 \omega L / c) } E_\mathrm{in} \\ E_\mathrm{cav} = \dfrac{ t_1 }{ 1 - r_1 r_2 - i 2 r_1 r_2 \omega L / c } E_\mathrm{in} \end{align}

This is the form of many resonances, including optical cavities, but also atomic resonances in laser gain media

Source
fig3 = plt.figure()
ax3 = fig3.add_subplot()

phi0 = 0
phis3 = np.linspace(0, 2 * np.pi, 10000)

trans1 = 0.25
trans2 = 0.25 
ein = 1 # rtWatts

plot_ecav0 = ecav_fp(phi0, ein, trans1, trans2)
plot_ecav = ecav_fp(phis3, ein, trans1, trans2)

plot_real_ecav0 = np.real(plot_ecav0)
plot_imag_ecav0 = np.imag(plot_ecav0)
plot_real_ecav = np.real(plot_ecav)
plot_imag_ecav = np.imag(plot_ecav)

# line1, = ax3.plot([0, plot_real_ecav0], [0, plot_imag_ecav0], 'o-', label=r"$E_mathrm{cav}(\phi_0)$")
arc1, = ax3.plot(plot_real_ecav, plot_imag_ecav, label=r"$E_\mathrm{cav}$")

arrow1 = ax3.arrow(0, 0, plot_real_ecav0, plot_imag_ecav0, shape='full', color="#ff5500", lw=2, 
                  length_includes_head=True, head_width=.15, zorder=2, label=r"$E_\mathrm{cav}(\phi_0)$")

ax3.set_xlabel("Real")
ax3.set_ylabel("Imaginary $i$")
ax3.set_xlim([-1, 5])
ax3.set_ylim([-3, 3])
ax3.grid()

ax3.set_title(r"Intracavity Phasor")

ax3.legend(bbox_to_anchor=(1.01, 0.6))
ax3.set_aspect('equal')
# plt.tight_layout()

def update_ecav(
    trans1_slider_value=trans1,
    trans2_slider_value=trans2,
    phi0_slider_value=phi0
):
    """
    Create an interactive intracavity field phasor plot
    """
    new_trans1 = trans1_slider_value
    new_trans2 = trans2_slider_value
    new_phi0 = phi0_slider_value
    
    new_plot_ecav = ecav_fp(phis, ein, new_trans1, new_trans2)
    new_plot_xxs = np.real(new_plot_ecav)
    new_plot_yys = np.imag(new_plot_ecav)
    
    new_plot_ecav0 = ecav_fp(new_phi0, ein, new_trans1, new_trans2)
    new_plot_xx0 = np.real(new_plot_ecav0)
    new_plot_yy0 = np.imag(new_plot_ecav0)
    
    new_xxs = new_plot_xxs
    new_yys = new_plot_yys

    arc1.set_xdata(new_xxs)
    arc1.set_ydata(new_yys)
    arrow1.set_data(x=0, y=0, dx=new_plot_xx0, dy=new_plot_yy0)
    
    fig3.canvas.draw_idle()
    return

# Create interactive widget
trans1_slider = FloatSlider(
    value=trans1,
    min=0,
    max=1,
    step=0.01,
    description="$T_1$:",
    continuous_update=True,  # Only update on release for better performance
    orientation='horizontal',
    readout=True,
    readout_format='.3f',
)
trans2_slider = FloatSlider(
    value=trans2,
    min=0,
    max=1,
    step=0.01,
    description="$T_2$:",
    continuous_update=True,  # Only update on release for better performance
    orientation='horizontal',
    readout=True,
    readout_format='.3f',
)
phi0_slider = FloatSlider(
    value=phi0,
    min=0,
    max=2*np.pi,
    step=0.01,
    description=r"$\phi_0$:",
    continuous_update=True,  # Only update on release for better performance
    orientation='horizontal',
    readout=True,
    readout_format='.3f',
)

interact(
    update_ecav, 
    trans1_slider_value=trans1_slider, 
    trans2_slider_value=trans2_slider,
    phi0_slider_value=phi0_slider,
)
plt.show()
Loading...
Loading...
Solution to Exercise 3 #
Ecav2=t1r2eikL1r1r2ei2kLEinErefl=r1r2(r12+t12)ei2kL1r1r2ei2kLEinEtrans=t1t2eikL1r1r2ei2kLEin\begin{align} E_\mathrm{cav2} &= \dfrac{- t_1 r_2 e^{-i k L}}{1 - r_1 r_2 e^{-i 2 k L}} E_\mathrm{in}\\ E_\mathrm{refl} &= \dfrac{r_1 - r_2 (r_1^2 + t_1^2) e^{-i 2 k L}}{1 - r_1 r_2 e^{-i 2 k L}} E_\mathrm{in}\\ E_\mathrm{trans} &= \dfrac{t_1 t_2 e^{-i k L}}{1 - r_1 r_2 e^{-i 2 k L}} E_\mathrm{in} \end{align}

All the denominators are the same. This is something we see in control theory, or any directed graph situation. The expression r1r2ei2kLr_1 r_2 e^{-i 2 k L} is the open loop gain, meaning that if we let a light ray experience only one round-trip of the cavity, it will be modified by that amount:

En+1=r1r2ei2kLEnE_\mathrm{n+1} = r_1 r_2 e^{-i 2 k L} E_\mathrm{n}

where nn is just the number of round-trips.

EreflE_\mathrm{refl} has a difference in the numerator, and can therefore be zero.
See the Cavity Coupling section for more on the importance of EreflE_\mathrm{refl}

2.4Resonance Condition

Equation (19) is our intracavity electric field.
It depends on our mirror reflectivities r1r_1 and r2r_2, and is physical so long as r1r2<1r_1 r_2 < 1, which must be true is power is conserved.
Interestingly, the intracavity power also depends on the cavity length LL and input laser wavenumber kk.

In fact, if we set LL equal to some special values such that ei2kL=1e^{-i 2 k L} = 1, then we get a massive buildup of constructive interference inside the cavity, and Eq. (19) becomes

Ecav=t11r1r2Ein\begin{align} \boxed{ E_\mathrm{cav} = \dfrac{t_1}{1 - r_1 r_2} E_\mathrm{in} } \end{align}

If the mirrors are extremely reflective such that r1r2=1ϵr_1 r_2 = 1 - \epsilon,
then we can get a huge resonant gain of the intracavity electric field.

Coming back to setting ei2kL=1e^{-i 2 k L} = 1, let’s solve this for LL:

ei2kL=12kL=2πnnZ22πλL=2πn\begin{align} e^{-i 2 k L} &= 1\\ 2 k L &= 2 \pi n \qquad \forall n \in \mathbb{Z}\\ 2 \dfrac{2 \pi}{\lambda} L &= 2 \pi n \end{align}

yielding the resonance condition:

L=λ2nnZ\begin{align} \boxed{ L = \dfrac{\lambda}{2} n \qquad \forall n \in \mathbb{Z} } \end{align}

The length of the cavity LL must be a half-integer of the laser wavelength λ\lambda for the cavity to achieve resonant buildup of the intracavity power.

2.5Free Spectral Range

It is also convenient to know the Fabry-Perot’s in terms of interogating it with plane waves of different frequencies.
The free spectral range, or FSR, defines the input frequencies ω\omega at which we achieve resonance.

Starting with Eq. (28), we simply sub in λ=cν\lambda = \dfrac{c}{\nu} and solve:

ν=c2LnnZ\begin{align} \boxed{ \nu = \dfrac{c}{2 L} n \qquad \forall n \in \mathbb{Z} } \end{align}

We can see the different resonances in the spacing of intracavity field resonances. In the literature, like Siegman’s Lasers, sometimes the integer qq is used instead of nn to represent each resonant axial mode.

2.6Cavity Power Gain

We are often interested in using an optical cavity to enhance our laser power via the cavity’s optical gain GcavG_\mathrm{cav}. Higher gain can make our gravitational wave detectors more sensitive to

Here we calculate the power expression Pcav=Ecav2P_\mathrm{cav} = |E_\mathrm{cav}|^2:

Pcav=t121+r12r22r1r2(ei2kL+ei2kL)Ein2Pcav=T11+R1R22r1r2cos(2kL)Pin\begin{align} P_\mathrm{cav} &= \dfrac{ t_1^2 }{ 1 + r_1^2 r_2^2 - r_1 r_2 (e^{i 2 k L} + e^{-i 2 k L} ) } |E_\mathrm{in}|^2 \\ P_\mathrm{cav} &= \dfrac{ T_1 }{ 1 + R_1 R_2 - 2 r_1 r_2 \cos(2 k L) } P_\mathrm{in} \end{align}

The term modifying PinP_\mathrm{in} is sometimes called the cavity optical gain GcavG_\mathrm{cav}, and is usually assumed to be the max gain achieved when on resonance:

Pcav=T11+R1R22r1r2PinPcav=GcavPin\begin{align} P_\mathrm{cav} &= \dfrac{ T_1 }{ 1 + R_1 R_2 - 2 r_1 r_2 } P_\mathrm{in} \\ P_\mathrm{cav} &= G_\mathrm{cav} P_\mathrm{in} \end{align}

A field amplitude gain term gcavg_\mathrm{cav} is also sometimes used for EcavEin\dfrac{E_\mathrm{cav}}{E_\mathrm{in}}. This gives us the relationship Gcav=gcav2G_\mathrm{cav} = |g_\mathrm{cav}|^2.

2.7Linewidth

Now we want to analyze our Fabry-Perot cavity’s power buildup while on and slightly off resonance. The linewidth, or bandwidth, of a cavity is a very convenient measure of how much deviation in frequency is acceptable to still be considered “on-resonance”. This is also known as the Full-Width-Half-Maximum (FWHM) of the optical cavity ωFWHM\omega_\mathrm{FWHM}.

To find ωFWHM\omega_\mathrm{FWHM}, we use the gain power gain expression and
The linewidth calculation is left as an excercise below.

Solution to Exercise 4 #
ωFWHM=2cLarcsin(1r1r22r1r2)\omega_\mathrm{FWHM} = \dfrac{2 c}{L} \arcsin\left( \dfrac{1 - r_1 r_2}{2 \sqrt{r_1 r_2} } \right)

or, equivalently in units of Hz:

νFWHM=cLπarcsin(1r1r22r1r2)\nu_\mathrm{FWHM} = \dfrac{c}{L \pi} \arcsin\left( \dfrac{1 - r_1 r_2}{2 \sqrt{r_1 r_2} } \right)

2.8Cavity Finesse

The cavity finesse F\mathcal{F} refers to the fine-ness of the cavity resonances.
This term is a hold-over from the days of etalons, when the width of fringes made by a curved mirror were used to measure the finesse.

The cavity finesse is just the ratio of the cavity’s free spectral range and full-width-half-maximum:

F=FSRνFWHM\begin{align} \mathcal{F} = \dfrac{\mathrm{FSR}}{\nu_{\mathrm{FWHM}}} \end{align}

This ratio gives us the spacing between resonances over the width of those resonances.

2.9Cavity Pole and Storage Time

Here we invoke a critical concept from complex algebra to describe the cavity dynamics.
The pole of a transfer function is just the frequency where the denominator equals zero:

1r1r2ei2ωpL/c=0iωp=c2Llog(1r1r2)iνp=12πc2Llog(1r1r2)\begin{align} 1 &- r_1 r_2 e^{i 2 \omega_p L / c} = 0\\ \rightarrow i \omega_p &= \dfrac{c}{2 L} \log\left(\dfrac{1}{r_1 r_2}\right)\\ i \nu_p &= \dfrac{1}{2 \pi} \dfrac{c}{2 L} \log\left(\dfrac{1}{r_1 r_2}\right) \end{align}

This gives us a convenient way of defining how fast a cavity can respond to changes.
It can be shown that the Fabry-Perot acts as a low-pass filter, which resonates and transmits disturbances at frequencies below the cavity pole, but rejects disturbances above it. Equivalentally, the inverse of the pole is often called the storage time τstorage\tau_\mathrm{storage},

τstorage=1νp\begin{align} \tau_\mathrm{storage} = \dfrac{1}{\nu_p} \end{align}

The storage time represents how long it takes to fill the cavity with light to its steady state.
One homework 2 problem will ask us to compute the storage time via a geometric series.

In the high-finesse limit, the cavity pole equals half the full-width half-maximum:

νp12νFWHM\begin{align} \nu_p \approx \dfrac{1}{2} \nu_{FWHM} \end{align}

So the cavity pole ωp\omega_p is another convenient measure of the cavity bandwidth.

2.10Cavity Couplings

Finally, we discuss the Fabry-Perot cavity coupling in the context of the reflected electric field. The reflected electric field transfer function is written as

EreflEin(ϕ)=r1r2(r12+t12)eiϕ1r1r2eiϕEreflEin(0)=r1r21r1r2\begin{align} \dfrac{ E_\mathrm{refl} }{ E_\mathrm{in} }(\phi) &= \dfrac{ r_1 - r_2 (r_1^2 + t_1^2) e^{-i \phi} }{ 1 - r_1 r_2 e^{-i \phi} }\\ \dfrac{ E_\mathrm{refl} }{ E_\mathrm{in} }(0) &= \dfrac{ r_1 - r_2 }{ 1 - r_1 r_2 } \end{align}

where the round-trip phase ϕ=2kL\phi = 2 k L was set to zero, putting us on resonance, and the input mirror made lossless, allowing r12+t12=1r_1^2 + t_1^2 = 1.

Equation (38) illustrates an important relationship between r1r_1 and r2r_2.
If r1=r2r_1 = r_2, we get exactly zero reflected light coming from the Fabry-Perot.
This is known as critical coupling.

With critical coupling, we achieve perfect destructive interference from our two contributing fields at the reflected field:
EinE_\mathrm{in} and Ecav2E_\mathrm{cav2} both contribute equal quantities to EreflE_\mathrm{refl}, but completely out of phase.
Additionally, because Erefl=0E_\mathrm{refl} = 0, then PtransP_\mathrm{trans} accounts for all of the input power: Pin=PtransP_\mathrm{in} = P_\mathrm{trans}.
Thus, by aligning and resonating a laser between two mirrors, we can pass the laser fully through two mirrors

Similarly, we have the unequal conditions:

  1. Overcoupled: r1<r2r_1 < r_2

  2. Undercoupled: r1>r2r_1 > r_2

We will find that overcoupled cavities promote high power in the cavity, and are therefore used in gravitational wave detectors.
One HW2 problem reviews this. Overcoupled cavities do exhibit a right-hand-plane zero, which is occasionally problematic due to the loss of phase the RHP zero imposes on the reflected Fabry-Perot light.

def erefl_fp(phis, ein, trans1, trans2, loss1=0, loss2=0):
    """Calculates the reflected field Erefl for a Fabry-Perot cavity.
    phis: float
        Round-trip phase phi = 2 k L [radians]
    ein: float
        Input electric field amplitude [sqrt watts]
    trans1: float
        Input mirror power transmission T1
    loss1: float
        Input mirror loss L1
    loss2: float
        End mirror loss L2      
    """
    # Set up amplitude reflectivities
    t1 = np.sqrt(trans1)
    t2 = np.sqrt(trans2)
    r1 = np.sqrt(1 - loss1 - trans1)
    r2 = np.sqrt(1 - loss2 - trans2)
    
    erefl = ein * (r1 - (r1**2 + t1**2) * r2 * np.exp(-1j * phis)) / (1 - r1 * r2 * np.exp(-1j * phis))
    return erefl
Source
fig4, ax4 = plt.subplots(1)

phi0 = 0
phis3 = np.linspace(0, 2 * np.pi, 10000)

trans1 = 0.25
trans2s = [0.10, 0.25, 0.50]
labels = ["Over", "Critical", "Under"]

ein = 1 # rtWatts

for ii, trans2, label in zip(range(len(trans2s)), trans2s, labels):
    plot_erefl0 = erefl_fp(phi0, ein, trans1, trans2)
    plot_erefl = erefl_fp(phis3, ein, trans1, trans2)
    
    plot_real_erefl0 = np.real(plot_erefl0)
    plot_imag_erefl0 = np.imag(plot_erefl0)
    plot_real_erefl = np.real(plot_erefl)
    plot_imag_erefl = np.imag(plot_erefl)
    
    # line1, = ax3.plot([0, plot_real_erefl0], [0, plot_imag_erefl0], 'o-', label=r"$E_mathrm{cav}(\phi_0)$")
    arc1, = ax4.plot(plot_real_erefl, plot_imag_erefl, label=label)
    
    arrow1 = ax4.arrow(0, 0, plot_real_erefl0, plot_imag_erefl0, shape='full', color=arc1.get_color(), lw=2, 
                      length_includes_head=True, head_width=.03, zorder=2)

ax4.set_xlabel("Real")
ax4.set_ylabel("Imaginary $i$")
ax4.set_xlim([-1, 1])
ax4.set_ylim([-1, 1])
ax4.grid()

ax4.set_title("Fabry Perot Reflected Field Phasor\nArrows Point to Value at Resonance " + r"$\phi = 0$")

ax4.legend(bbox_to_anchor=(1.01, 0.6),title="Coupling\n")
ax4.set_aspect('equal')
plt.show()
Loading...

3Adjacency Matrix

Next I’d like to introduce a very general method of solving any optical system. This method is employed by interferometer simulation software such as Finesse3, but is also useful for any systems of equations solver, including

An adjacency matrix is a very general concept in computer science for representing a graph, either directed or undirected.
In our case, we can use an adjacency matrix to represent our Fabry-Perot, or any optical system, as well as calculate the transfer functions relating any electric field to any other electric field (i.e. any node of the graph to any other node).

3.1Fabry Perot as Directed Graph

First, we can break down our Fabry Perot system of equations into optical nodes and transfer matrices.
All the electric fields become nodes in our graph, while all the transitions becomes arrows indicating direction of influence.

The graph breakdown looks like the below diagram:

fabry_perot_as_directed_graph.png

3.2Markov Matrix Representation

If we are interested in the steady-state solution of these fields, i.e. that all of the electric fields En+1=En\mathbf{E}_{n+1} = \mathbf{E}_{n} we can employ a classic method of solving the relationship between all nodes in the graph: Markov Matrix inversion.

Next, we take the nodes of the graph and form them into a Markov state vector En\mathbf{E}_{n},

En=[EinEcavEcav2EreflEtrans]nT\begin{align} \mathbf{E}_{n} = \begin{bmatrix} E_\mathrm{in} & E_\mathrm{cav} & E_\mathrm{cav2} & E_\mathrm{refl} & E_\mathrm{trans} \end{bmatrix}^T_{n} \end{align}

where n=tτrtn = \dfrac{t}{\tau_{rt}} is a discrete time variable representing how many round-trips have occurred.
We use this notation for simplicity in relating to graph traversal, but recognize that nn and tt are exchangable for discrete and continuous representation.

Then, we use the graph to construct the adjacency matrix A\mathbf{A}:

En+1=AEn [EinEcavEcav2EreflEtrans]n+1=[00000t10r1eiϕ000r2eiϕ000r10t1eiϕ000t2eiϕ000][EinEcavEcav2EreflEtrans]n\begin{align} \begin{array}{cccc} \mathbf{E}_{n+1} & = & \mathbf{A} &\mathbf{E}_{n} \\~\\ \begin{bmatrix} E_\mathrm{in} \\ E_\mathrm{cav} \\ E_\mathrm{cav2} \\ E_\mathrm{refl} \\ E_\mathrm{trans} \end{bmatrix}_{n+1} &=& \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ t_1 & 0 & -r_1 e^{-i \phi} & 0 & 0 \\ 0 & -r_2 e^{-i \phi} & 0 & 0 & 0 \\ r_1 & 0 & t_1 e^{-i \phi} & 0 & 0 \\ 0 & t_2 e^{-i \phi} & 0 & 0 & 0 \end{bmatrix} &\begin{bmatrix} E_\mathrm{in} \\ E_\mathrm{cav} \\ E_\mathrm{cav2} \\ E_\mathrm{refl} \\ E_\mathrm{trans} \end{bmatrix}_{n} \end{array} \end{align}

Note that we recover our Fabry-Perot system of equations (Eqs. (17)) if we multiply out this relation.

Second, using the steady state condition En+1=En\mathbf{E}_{n+1} = \mathbf{E}_{n}, we can rearrange the above to give

(IA)E=0\begin{align} (\mathbf{I} - \mathbf{A}) \mathbf{E} = 0 \end{align}

where I\mathbf{I} is the identity matrix. We can solve for the transfer functions from each field to every other field by inverting the (IA)(\mathbf{I} - \mathbf{A}) matrix:

(IA)1=[10000t11r1r2e2iϕ11r1r2e2iϕr1eiϕ1r1r2e2iϕ00r2t1eiϕ1r1r2e2iϕr2eiϕ1r1r2e2iϕ11r1r2e2iϕ00r1(r12+t12)r2e2iϕ1r1r2e2iϕr2t1e2iϕ1r1r2e2iϕt1eiϕ1r1r2e2iϕ10t1t2eiϕ1r1r2e2iϕt2eiϕ1r1r2e2iϕe2iϕr1t21r1r2e2iϕ01]\begin{align} (\mathbf{I} - \mathbf{A})^{-1} = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 \\[1em] \dfrac{t_1}{1 - r_1 r_2 e^{-2i\phi}} & \dfrac{1}{1 - r_1 r_2 e^{-2i\phi}} & -\dfrac{r_1 e^{-i\phi}}{1 - r_1 r_2 e^{-2i\phi}} & 0 & 0 \\[1em] -\dfrac{ r_2 t_1 e^{-i\phi}}{1 - r_1 r_2 e^{-2i\phi}} & -\dfrac{ r_2 e^{-i\phi}}{1 - r_1 r_2 e^{-2i\phi}} & \dfrac{1}{1 - r_1 r_2 e^{-2i\phi}} & 0 & 0 \\[1em] \dfrac{r_1 - (r_1^2 + t_1^2) r_2 e^{-2i\phi}}{1 - r_1 r_2 e^{-2i\phi}} & -\dfrac{ r_2 t_1 e^{-2i\phi}}{1 - r_1 r_2 e^{-2i\phi}} & \dfrac{ t_1 e^{-i\phi}}{1 - r_1 r_2 e^{-2i\phi}} & 1 & 0 \\[1em] \dfrac{ t_1 t_2 e^{-i\phi}}{1 - r_1 r_2 e^{-2i\phi}} & \dfrac{ t_2 e^{-i\phi}}{1 - r_1 r_2 e^{-2i\phi}} & -\dfrac{e^{-2i\phi} r_1 t_2}{1 - r_1 r_2 e^{-2i\phi}} & 0 & 1 \end{bmatrix} \end{align}

The first column of the inverted matrix represents the well-known Fabry-P'erot transfer functions from the input field EinE_\mathrm{in} to all other fields of the cavity.
For example, the classic resonant gain equation EcavEin\dfrac{E_\mathrm{cav}}{E_\mathrm{in}} is the matrix element in the second row, first column:

EcavEin(ϕ)=t11r1r2e2iϕ\begin{align} \dfrac{E_\mathrm{cav}}{E_\mathrm{in}}(\phi) = \dfrac{t_1}{1 - r_1 r_2 e^{-2i\phi}} \end{align}

The second and third columns are the transfer functions from EcavE_\mathrm{cav} and Ecav2E_\mathrm{cav2} to all other fields.
These are typically not required, but will be important when explicitly calculating the PDH signals in later sections.

The fourth and fifth columns are for the cavity reflected and transmitted fields.
They are mostly zeros because they are sink fields, i.e. those fields strictly exit the interferometer.
Similarly, the first rwo for the input field EinE_\mathrm{in} is mostly zeros for the source field.