Double Slit

Double Slit

The classical double slit experiment is performed by passing a beam of light through two closely spaced slits in a plate. The far-field interference pattern is then observed on a screen and it shows a series of bright and dark interference fringes.

The interference pattern arises from the path difference created by the seperation between the two beams. The difference in path length for a seperation of a is $$m\lambda = a \sin(\theta)$$

For two infinitely narrow slits, the observed intensity pattern would be sinusoidal with intensity (amplitude) ranging from zero to four times the intensity of the light passing through one of the original slits. In practice, slits always have a finite size and this results in the diffraction pattern of a single slit modulating the interference pattern of the double slit. This modulation depends on the size of the individual slits.

This simulation replicates this experiment for two slits each with a width of 25μm. The slit separation and the wavelength of the illuminating light can both be varied. Some questions to consider are

Separation a (μm):
Wavelength λ (nm):
x (mm):
y (mm):
I (a.u.):

Open this simulation in a separate window.

Tim McIntyre
2016

Code Samples

Matlab
% Parameters (SI units)
L = 1;                  % Distance to observation plane       
a = 400e-6;             % Slit separation
b = 40e-6;              % Slit width
N = 2;                  % Number of slits
wavelength = 540e-9;    % Wavelength

% Observation plane lateral distances
points = 1000;
xmin = -5E-3;
xmax = 5e-3;
x = linspace(xmin,xmax,points);

% Calculate intensity
theta = atan(x/L);
beta = pi*b*sin(theta)/wavelength;
alfa = pi*a*sin(theta)/wavelength;
I = (sin(beta)./beta).^2.*(sin(N*alfa)./sin(alfa)).^2/N^2;

% Plot result
plot(x*1E3,I);
axis([xmin*1E3 xmax*1E3 0 1]);
xlabel('Distance (mm)');
ylabel('Intensity (a.u.)');
Python
from pylab import *

# Parameters (SI units)
L = 1                       # Distance to observation plane       
a = 400e-6                  # Slit separation
b = 40e-6                   # Slit width
N = 2                       # Number of slits
wavelength = 540e-9         # Wavelength

# Observation plane lateral distances
points = 1000
xmin = -5e-3
xmax = 5e-3
x = linspace(xmin,xmax,points)

# Calculate intensity
theta = arctan(x/L)
beta = pi*b*sin(theta)/wavelength
alfa = pi*a*sin(theta)/wavelength
I = (sin(beta)/beta)**2*(sin(N*alfa)/sin(alfa))**2/N**2

# Plot result
plot(x*1e3,I)
xlim(xmin*1e3,xmax*1e3)
xlabel('Distance (mm)')
ylabel('Intensity (a.u.)')
show()