In week one, we measured the profile of the laser and found it to be Gaussian to a good approximation. However, we don’t have any model for how the profile changes as the beam propagates and we will work to improve our model. Also, we will apply automation to more rapidly take data. The full set of learning goals includes:
Light is a propagating oscillation of the electromagnetic field. The general principles which govern electromagnetic waves are Maxwell’s equations. From these general relations, a vector wave equation can be derived.
\[ \nabla^2\vec{E}=\mu_0\epsilon_0 \frac{\partial^2\vec{E}}{\partial t^2}\text{.}\](1)
One of the simplest solutions is that of a plane wave propagating in the \(\hat{z}\) direction:
\[\vec{E}(x,y,z,t)=E_x\hat{x}cos(kz-\omega t+\phi_x)+E_y\hat{y}cos(kz-\omega t+\phi_y)\text{.}\quad\quad\](2)
But as the measurements from the first week showed, our laser beams are commonly well approximated by a beam shape with a Gaussian intensity profile. Apparently, since these Gaussian profile beams exist, they must be solutions of the wave equation. The next section will discuss how we derive the Gaussian beam electric field, and give a few key results.
One important thing to note about the beam output from most lasers is that the width of the beam changes very slowly compared to the wavelength of light. Assume a complex solution, where the beam is propagating in the \(\hat{z}\)-direction, with the electric field polarization in the \(\hat{x}\)-direction:
\[\vec{E}(x,y,z,t)=\hat{x}A(x,y,z)e^{kz-\omega t}\text{.}\](3)
The basic idea is that the spatial pattern of the beam, described by the function \(A(x,y,z)\), does not change much over a wavelength. In the case of the He-Ne laser output, the function \(A(x,y,z)\) is a Gaussian profile that changes its width as a function of \(z\). If we substitute the trial solution in Equation 3 into the wave equation in Equation 1 we get
\[\hat{x} \left[ \left(\frac{\partial^2A}{\partial x^2} +\frac{\partial^2A}{\partial y^2} +\frac{\partial^2A}{\partial z^2} \right) +2ik\frac{\partial A}{\partial z} - k^2A \right]e^{i(kz-\omega t)}=\hat{x}\mu_0\epsilon_oA(-\omega^2)e^{i(kz-\omega t)}\text{.}\quad\quad\](4)
This can be simplified recognizing that \(k^2=\omega^2/c^2=\mu_0\epsilon_0\omega^2\), where the speed of light is related to the permeability and permittivity of free space by \(c=(\mu_0\epsilon_0)^{-1/2}\). Also, the \(\hat{x}e^{i(kz-\omega t)}\) term is common to both sides and can be dropped, which results in
\[\left(\frac{\partial^2A}{\partial x^2} +\frac{\partial^2A}{\partial y^2} +\frac{\partial^2A}{\partial z^2} \right) +2ik\frac{\partial A}{\partial z}=0\text{.}\quad\quad\](5)
So far, we have made no approximation to the solution or the wave equation, but now we apply the assumption that \(\partial{A}(x,y,z)/\partial{z}\) changes slowly over a wavelength \(\lambda = 2\pi /k\), so we neglect the term
\[\left| \frac{\partial^2A}{\partial z^2} \right| \ll \left|2k\frac{\partial A}{\partial z}\right|\text{.}\](6)
Finally, we get the paraxial wave equation,
\[\frac{\partial^2A}{\partial x^2} +\frac{\partial^2A}{\partial y^2} +\frac{\partial^2A}{\partial z^2}=0\text{.}\](7)
One set of solutions to the paraxial wave equation are Gauss-Hermite beams, which have an intensity profiles like those shown in Figure 1. These are the same solutions as for the quantum simple harmonic oscillator, a topic that could be further explored as a final project.
The simplest of these solutions is the Gaussian beam, which has an electric field given by
\[\vec{E}(x,y,z,t) = \vec{E}_0\frac{w_0}{w(z)}exp\left(-\frac{x^2+y^2}{w^2(z)}\right)exp\left(ik\frac{x^2+y^2}{2R(z)}\right)e^{-i\zeta(z)}e^{i(kz-\omega t)}\text{,}\quad\quad\](8)
where \(\vec{E_0}\) is a time-independent vector (orthogonal to propagation direction \(\hat{z}\)) whose magnitude denotes the amplitude of the laser’s electric field and the direction denotes the direction of polarization. The beam radius \(w(z)\)is given by
\[w(z)=w_0\sqrt{1+\left(\frac{\lambda z}{\pi w_0^2}\right)^2}\text{.}\](9)
\(R(z)\),the radius of curvature of the wavefront, is given by
\[R(z)=z\left(1+\left(\frac{\pi w_0^2}{\lambda z}\right)^2\right)\text{,}\](10)
and the Gouy phase is given by
\[\zeta(z)=arctan\frac{\pi w_0^2}{\lambda z}\text{.}\](11)
The remarkable thing about all these equations is that only two parameters need to be specified to give the whole beam profile: the wavelength \(\lambda\) and the beam waist \(w_0\), which is the narrowest point in the beam profile. There is a more general set of Hermite Gaussian modes which are shown in Figure 1. The laser cavity typically produces the (0,0) mode shown in the upper left corner, but an optical cavity can also be used to create these other modes – a topic that can be explored in the final projects.
In the first week of the lab, we assumed the intensity profile of the Gaussian beam was given by \(I(x,y)=I_{max}e^{-2(x^2+y^2)/w^2}\). The equation for the electric field of the Gaussian Beam in Equation 8 looks substantially more complicated.
The Gaussian beam equations given in Equations 8 11 assume the beam comes to its narrowest width (called the beam waist, \(w_0\)) at \(z=0\).
Before we begin this week’s lab, reflect on your experience from week one (and perhaps refer to your lab notebook entry to help guide your memory).
In the next step, you will use LabVIEW and your NI USB-6009 data acquisition device to automate the procedure for measuring the width of the laser beam. You can do this with your own laptop or with the laptops in the lab.
In order to set up your measurement automation you will need to create a LabVIEW VI that performs the automated data taking (moving the translation stage, recording the position, recording the voltage from the photodiode, repeat). Instructions can be found in the Appendix 5.
The Gaussian beam model of light is useful because it often describes the beam of light created by lasers. This section will test the validity of the model for our He-Ne laser beam. Also, the effect of a lens on a Gaussian beam will be tested, and the Gaussian beam model will be compared with predictions from the simpler ray theory. Lastly, the Gaussian beam theory can be used to describe the minimum possible focus size for a beam and a lens.
There is a straight-forward reason that a He-Ne laser should produce a Gaussian beam. The laser light builds up between two mirrors, and the electromagnetic mode that best matches the shape of the mirrors is the Gaussian beam.
Pick a non-compound lens (not the fancy camera lenses) with focal length in the range 100-200 mm and assemble it in a lens mount with a retaining ring (see Figure 2). Recall that it’s very important that you do not handle optical components (lenses, mirrors, polarizers, wave plates, beam splitters, etc.) with your bare hands. The oils on your skin can damage the optics and degrade the light in your experiment. Always handle these components while using latex/nitrile gloves or finger cots.
Design and carry out an experiment to quantitatively answer the questions below. Consider carefully where to put the lens. Your data for this section can be used in the next section.
One of the simplest ways to model the effect of a lens is the thin lens equation, which is based on a ray model of light (see Figure 3).
\[ \frac{1}{S_1}+\frac{1}{S_2}=\frac{1}{f}\]
If you are using your own laptop, you will likely need to download additional device drivers for LabVIEW (the software should already be installed on the lab computers). You should download the APT software here in order to get the MGMotor library used below (you should install the 32-bit software for 64-bit Windows if you have the 32-bit version of LabVIEW installed, and the 64-bit software for 64-bit Windows if you have the 64-bit version of LabVIEW installed). Once you have done this, follow the next steps:
This should connect the motor correctly, but to verify, open APT User. This will open a LabVIEW VI with a motor control on the front panel. This motor control should have your serial number in the top right corner and should also have “STAGE: ZST225(B)”. Clicking the arrow pointing up and arrow pointing down should move the motor in either direction. If none of this is seen when you open APT User, the motor was not set up correctly and you should disconnect the USB and power supply from the motor and start again at Step 1.
To understand how to automate the data taking process using LabVIEW, consider what you do while taking data by hand. The process includes: moving the razor (stage), reading the position, reading the photodiode voltage, repeat. In order to automate this process, two pieces of equipment are used: the motor to move the stage and the NI-DAQ to read the voltage.
The first step in data taking is moving the razor. To automate this, we need to use the motor cube. To connect the cube to LabVIEW, follow these steps:
ActiveX Container
(Under the “.NET & ActiveX” tab)ActiveX Container > Insert ActiveX Object ... > MGMotor Control
MG17Motor
in the block diagram > Create > Property for MG17MotorLib… > HWSerialNum
HWSerialNum > Change to Write
MG17Motor
reference out to the reference in of HWSerialNum
. This allows us to tell the LabVIEW to look for the motor cube with your serial number (i.e. your cube).HWSerialNum
HWSerialNum
. This control allows you to input your motor’s serial number easily on the front panel in case you change cubes.MG17Motor
in block diagram > Create > Method for MG17MotorLib… > StartCtrl
HWSerialNum
node to reference in of StartCtrl
.MG17Motor
in block diagram > Create > Method for MG17MotorLib… > SetJogStepSize
StartCtrl
to reference in of SetJogStepSize
.SetJogStepSize
StartCtrl
to reference in of SetJogStepSize
.SetJogStepSize
MG17Motor
icon in block diagram > Create > Method for MG17MotorLib… > SetJogVelParams
HWSerialNum
to reference in of this block.SetJogVelParam
.SetJogVelParam
.SetJogVelParam
.The next step involves the action that we want the motor to execute, as well as the data taking process:
In order to separate the ‘action’ part of the LabVIEW from the ‘initialization’, first add a Flat Sequence Structure
in the block diagram under the Structures
tab.
Flat Sequence Structure
to include everything in the block diagram so far (the initialization part).Flat Sequence Structure
and select Add Frame After
. The second frame in this sequence loop will contain all the action of moving the motor and taking the data.The data taking process has one key feature that should be addressed at this point, the “repeat” part (Move razor, take data, repeat). In order to make our LabVIEW repeat this process:
While Loop
(from the Structures
tab) inside the second frame of the Sequence.Stop
button to the front panel and, in the block diagram, wire the stop button to the red stop circle in the corner of the While Loop
. This loop will execute its contents repeatedly while the loop has a Boolean “true” value. Once the LabVIEW is running, pressing this stop button on the front panel will stop the While Loop from continuing.We need to put our other actions inside this While Loop
. We want these actions to be performed in a sequence, so inside the While Loop
, add another Flat Sequence Structure
(we will refer to this loop as sequence #2).
Inside the first frame of sequence #2, we want the razor to move one Jog Step.
MG17Motor > Create > Method for MG17MotorLib… > MoveJog
and place inside 1st frame of sequence #2.SetJogStep
node to reference in of MoveJog
.The next step in the data taking process to wait some amount of time to ensure we do not read the photodiode voltage while the razor is moving.
Wait
function (under the Timing
tab) to the 2nd frame of sequence #2.Wait
function. This allows you to change the wait time from the front panel.At this point we need to introduce the NI-DAQ. First, find a working DAQ. Plug it into the computer via the USB. Wire the BNC output from the photodiode into the +/- analog inputs of the DAQ labeled AI0.
Measurement I/O >: NI-DAQmx > DAQ Assist
.Acquire Signal > Analog Input > Voltage > Channels ai0
.In the 4th frame of sequence #2 select File I/O > Write to Measurement File
A window should open for properties of this node, if it does not then right click the Write to Measurement File icon and select “Properties”.
Now we need to feed our data into this icon so it knows what to write to file. The data that we want should be in the form (position, voltage).
Express > Sig. Manip. > Merge Signals
.This merged signal will output to the Write to File node and we want the position value in the upper input of Merge Signals and the voltage value in lower input.
DAQ-Assist
icon in frame 3 to the lower input of the Merge Signals
operator.DAQ-Assist
to it in the 3rd frame of sequence #2 in the block diagram. This provides a real-time check of the photodiode voltage from the front panel.We want to know the position of the stage. Right click MG17Motor > Create > Method for MG17MotorLib… > GetPosition
and place the icon in the 3rd frame of sequence #2.
MoveJog
to the reference in of GetPosition
.Create > Indicator
to give us a real-time indicator of the position.Create > Local variable
.Change to read
and wire it to the input of pfPosition.Merge Signals
operator.Now the data is in the form (position, voltage) and the merged signal should be wired into the Signals input of the Write to File
node.
And with that, the LabVIEW setup is complete!
At this point, take a step back and take a look at the big picture of the LabVIEW and how it operates. There are many different approaches to automating this specific process and there is always more than one way to approach any problem. In this case what we did was we broke up the LabVIEW into 2 major parts; the initialization and the action. To initialize, we said “look for a motor with this serial number, start controlling it and set its jog step size to be this size.” With that done, we move to the action part. The While Loop says “continue doing this until I press the stop button” and what we are telling it to do is; move the razer, wait for it to stop moving, read the photodiode voltage and combine it with the position measurement, and finally write the data to a file. Once it executes that process the While Loop starts it all over again.
Some tips on how to actually use the LabVIEW.
The final LabVIEW requires you to input the serial number, step size, and wait time on the front panel. With those values in place, running the LabVIEW and selecting the file save location are all that needs to be done to start the process. To stop, press the stop button and it will cut off the While Loop and end the process.
For more details on how LabVIEW and Thorlabs products interact, you can look this user guide.