Optical Sensor of Magnetic Dynamics: A Balanced-Detection MOKE Magnetometer
Team Members
LI Junxiang E1127462@u.nus.edu
Patricia Breanne Tan SY pb.sy82@u.nus.edu
Idea
We will use a laser-based magneto-optical Kerr effect setup featuring a high-sensitivity differential photodiode array to measure the Kerr rotation angle induced by surface magnetism. This system serves as a versatile optical platform to investigate how external perturbations such as magnetic fields or radiation source alter the magnetic ordering of materials, allowing for the quantitative extraction of the magneto-optical coupling coefficients of various thin films.
Introduction
In 1875. physicist John Kerr discovered the Kerr Effect, a phenomenon wherein the refractive index of a material varies with the application of an electric field. The change in refractive index is described to be directly proportional to the square of the electric field, and may occur either from the initial application of an electric field (Kerr electro-optic effect) or from an electric field proceeding from an incident ray of light (Optical Kerr effect). In addition to these types of Kerr effect, a third exists: the magneto-optical Kerr effect, or MOKE.
In the MOKE, a magnetized surface causes reflected light beams to vary in its polarization and reflected intensity. We may describe this phenomenon with the use of Maxwell's equations from classical electromagnetic theory:

with the following corresponding boundary conditions:

We assume that no free charges or free currents exist at the interface between the two mediums: an ideal ferromagnetic medium with (Eqn. 1) and a homogeneous linear medium, following the diagram below. With the magnetization taken as a constant vector, Equation 1 describes the hysteresis loop of a the ferromagnetic medium, which is simply the sum of a permanent magnet and linear magnetic medium.

Depending on whether is along the polar, longitudinal, or transverse directions, the effects and rotation angles when linearly polarized plane waves (LPPW) of light will vary. The Kerr angle is the angle by which LPPW rotates after being incident on the sample, and is proportional to the dot product between light propagation and the magnetization . Consequently, the polar Kerr effect is seen most with light that is nearly perpendicularly incident on the material surface. This is also called S-polarization, where the incident electric field is nearly perpendicular to the surface while the incident magnetic field is nearly parallel. On the other hand, the longitudinal Kerr effect is most observed when light is nearly parallel to the material surface, or P-polarized, with the magnetic field perpendicular to the surface and the electric field nearly parallel.

Fundamentally, the MOKE may be used as a measure of how strongly a material is magnetized, with applications for the effect ranging from materials characterization to Kerr microscopy, where
Experimental Setup

We want to utilize a 658 nm HL6501 red light CW (continuous wavelength) laser (according to the datasheet). Then the laser beam passes through a ND filter to decrease its intensity the first time. Then it will go through a polarizer and a half-wave plate set to make it intensity continuously adjustable and be initially polarized to S polarized or P polarized. Then the incident laser light is focused on the sample by using a lens/objective. Then the reflected signal is detected by using a Wollaston prism as an analyzer to first, splits the incident signal light beam into two orthogonal, linearly polarized beams that diverge from each other. Then use two detectors (balanced detectors) to detect two orthogonal, linear polarized beam intensities. The small Kerr rotation of the polarization by the material's magnetic properties can be calculated by making a substract of two intensities read from the two detecters.


The figure illustrates our current Magneto-Optic Kerr Effect (MOKE) experimental setup. The light source is a 633 nm laser, which first passes through a quarter-wave plate to convert its polarization state to circularly polarized. A continuously variable circular neutral density (ND) filter was placed in the optical path for precise intensity control, followed by a series of irises to align and define the beam. Then the incident beam passes through a chopper whose frequency is set to 400 Hz and is connected to the lock-in amplifier (SR 860) as the external signal source to increase the signal-to-noise ratio. A polarizing beamsplitter (PBS) cube was then utilized to isolate pure s-polarized light, with the rejected p-polarized component absorbed by a beam block. The s-polarized beam was focused onto the sample using a lens with a focal length of 25 mm. Upon reflection, a D-shaped mirror directed the signal into a Glan-Taylor calcite polarizer featuring an extinction ratio of 100,000:1. The polarizer was initially set to a crossed-polarization state relative to the incident beam, calibrated without the sample present. Utilizing this high-extinction polarizer allows for the isolation and capture of the minute signal variations induced by the material's magnetization. Finally, the optical signal was measured by a silicon-based photodetector.

The sample imaging system utilizes a white LED source to provide uniform illumination. Light from the LED is collimated by lens L1 and directed toward the sample via two R:T=50:50 beam splitters(BS1, BS2). Lens L2 focuses the incident white light onto the sample surface. The resulting signal is back-propagated through the primary optical path and imaged onto a CCD camera using lens L3. The video for the usage of the image system on the sample in the following link. File:Moke sample image.mp4 Then the MOKE signal was measured under controllable permanent magnet and use a tightened gauss meter to measure the magnetic field Intensity on the surface of the Fe film:

The controllable permanent magnet was set obliquely back towards the sample, by adjusting its distance from the sample and see the read from the Gauss meter at the same time, we can select different magnetic fields.
Methods
MOKE theory
The permittivity of a magnetic material can be expressed as: Then the permittivity tensor can be simplified as:
From electrodynamics, we have: , then we combine it with Faraday's law and Ampère's law: Assuming the incident laser beam is a plane wave, then: Therefore, Combining our previous equations yields: Solving this equation, we obtain: Then, by substituting the simplified permittivity tensor, we have: For non-trivial solutions, the determinant of the coefficients must vanish: Solving this characteristic equation yields . Substituting these eigenvalues back into the linear equations gives: It is clear that the refractive indices for left- and right-circularly polarized light are different. Next, we define the reflection coefficients for and : Using these defined coefficients, we rewrite the reflected components for and : This can be rearranged into the following form: In matrix form, this is expressed as: For incident light that is linearly polarized along the x-axis: Evaluating the matrix multiplication gives: We can then determine the small polarization change by defining the complex Kerr rotation angle: Finally, we obtain the final expression:
Measuring Method
As shown in the following figure, in our setup we use analyzer offset method.

In order to use slightly offset angle from analyzer to measure the Kerr rotation, we suppose that . Then we can write the intensity read by the detector which and Then the differential intensity read by the detector can be written as: Then we have: For our configuration, the intensity at analyzer offset gives: The two measurements and correspond to the analyzer at and from the crossed position. Substituting the previous equation: Flipping the sign of flips the sign of the term, but is unchanged. Now compute sum and difference: Divided with each other: So eventually the experiment procedure is find the extension place of the analyzer, then measure the intensity of and to calculate its Kerr angle.
Results
Our measurements utilized Fe film and Si film(as a reference) to detect the Kerr angle. The ultimate goal is to measure the hysteresis loop of the Fe film, as Fe served as a good ferromagnetic material. Firstly, We measured the Fe film and the Si to test our system is working or not under specific magnetic field adding by a permanent magnet. The following is the result of the measuring for Si and Fe film testing:
| Material | I₊ (mV) | I₋ (mV) | Kerr Angle |
|---|---|---|---|
| Si(111) | 0.4694 | 0.4469 | 0.6428 mrad |
| Fe | 0.4627 | 0.5455 | 1.91 mrad |
As there shows clearly Kerr Angle between Fe film(should have magnetism) and Si film(shouldn't have magnetism), we supposed that our system is successfully working. Then we measured the Fe film at adjustable magnetic field. The following figure shows the MOKE signal at positive and negative magnetic field:
Conclusion and Discussion
Reference
1. McCord, J. Progress in magnetic domain observation by advanced magneto-optical microscopy. J. Phys. D: Appl. Phys. 48, 333001 (2015).
2. Erskine J L, Stern E A. Magneto-optic Kerr effects in gadolinium[J]. Physical Review B, 1973, 8(3): 1239
Appendix
Code for Reading Data from SR860 Lock-in Amplifier
from srsinst.sr860 import SR860
import time
import numpy as np
# Connect
lockin = SR860('visa', 'USB0::0xB506::0x2000::006011::INSTR')
# Configure for external reference (chopper)
lockin.ref.reference_source = 'external'
lockin.signal.input = 'A'
lockin.signal.sensitivity = 30e-3 # 30 mV
lockin.signal.time_constant = 100e-3 # 100 ms
# Check detected frequency
print(f"Detected frequency: {lockin.data.value['ext. freq.']:.2f} Hz")
# Wait for signal to stabilize
time.sleep(0.5)
# Auto phase
lockin.ref.auto_phase()
print(f"Auto phase done. Phase = {lockin.ref.phase:.4f} deg")
# Wait for lock-in to settle after auto phase (5 time constants)
time.sleep(5 * 0.1)
# Collect 50 points
N = 50
X_arr = np.zeros(N)
Y_arr = np.zeros(N)
R_arr = np.zeros(N)
theta_arr = np.zeros(N)
print(f"\nCollecting {N} points...")
for i in range(N):
X_arr[i] = lockin.data.value['X']
Y_arr[i] = lockin.data.value['Y']
R_arr[i] = lockin.data.value['R']
theta_arr[i] = lockin.data.value['Theta']
time.sleep(0.1)
if (i+1) % 10 == 0:
print(f" {i+1}/{N} points collected")
# Average
X_mean = np.mean(X_arr)
Y_mean = np.mean(Y_arr)
R_mean = np.mean(R_arr)
theta_mean = np.mean(theta_arr)
X_std = np.std(X_arr)
Y_std = np.std(Y_arr)
R_std = np.std(R_arr)
print(f"\n--- Averaged Results ({N} points) ---")
print(f"X = {X_mean*1e3:.4f} ± {X_std*1e3:.4f} mV")
print(f"Y = {Y_mean*1e3:.4f} ± {Y_std*1e3:.4f} mV")
print(f"R = {R_mean*1e3:.4f} ± {R_std*1e3:.4f} mV")
print(f"Theta = {theta_mean:.4f} deg")