Diffraction

One can demonstrate diffraction patterns very easily with a helium-neon laser and a selection of fine pinholes, narrow slits, plastic gratings, and fine screens (of the type used to supportspecimens in an electron microscope). The patterns one produces on a distant screen in this way are known as Fraunhofer patterns. Patterns one produces with larger apertures on closer screens, known as Fresnel patterns, are usually demonstrated using microwaves.

One calculates diffraction patterns numerically by using Huygens' Principle. It states that each point on a wavefront may be regarded as a source of wavelets spreading out in all directions. Diffraction results from interference between wavelets originating from points on a wavefront that is restricted by an aperture or blocked by an obstruction. One calculates the pattern numerically by superimposing wavelets from an array of points distributed uniformly across the aperture. The superposition involves addition of vectors in the complex plane. Vectors of the same length with a constant small phase difference sum to give a resultant whose tip traces out the arc of a circle in the complex plane. When the first and last vectors in the sum are 180 degrees out of phase, the arc is a semicircle, and the resultant has its maximum length. A region of a wavefront that produces wavelets that superimpose in this manner at a point on the screen is known as a Fresnel Half-Period Zone. The general wavelet superposition algorithm is not concerned with zones, and makes no distinction between Fresnel and Fraunhofer diffraction, but the zone concept is useful for explaining the calculated patterns.

Fresnel Diffraction

The superposition algorithm deals mainly with phase differences, but it also takes account of factors that vary the amplitude. In order for Huygens' wavelets not to generate a reflected wave, the amplitude must include the obliquity factor (1+cos(q))/2, where q is the angle between the normal to the wavelet and the normal to the incident wave. It also includes a factor to deal with decrease in intensity with distance (inverse square for spherical waves, inverse first power for cylindrical waves). The algorithm is not difficult to write, but wavelets from the array of points in the aperture have to be superimposed at each point on the screen, so a lot of computation is involved.

Circular Aperture

For a circular aperture we need only calculate how the intensity varies as we move radially outward from the centre of the pattern. In the applet a plane wave is incident normally on a circular aperture of diameter d (96 pixels). The diffraction pattern is formed on a screen 10 d beyond the aperture. The screen is a square 2.5d on a side, and the geometric shadow the aperture is shown on it. The wavelength of the incident radiation can be varied between d/10 (9.6 pixels) and d/160 (0.6 pixels). The calculation uses a square array of wavelet sources spaced d/141 apart. The diffraction pattern is displayed on the left, and a plot of the intensity variation is shown on the right. The pattern is overexposed by a factor of two, so if you cut off the top half of the intensity plot you get a plot that corresponds with what you see in the pattern.

Java Source   BBC Basic Source   Liberty Basic Source   PostScript Source

As the wavelength decreases from d/10 to d/40, the pattern exhibits a central peak that gets progressively narrower. There is a major change in the pattern at a wavelength of d/80: the intensity goes to zero at the centre. This occurs because the path to the edge of the aperture is one wavelength longer than the path to the centre. In the language of Fresnel zones, at the centre of the pattern the aperture spans two half-period zones, and the wavelets from the second zone cancel out those from the first. As the wavelength decreases to d/120 and d/160, the aperture spans 3 then 4 half-period zones, the centre of the pattern goes to bright and then back to dark, and secondary maxima and minima appear.

There are a number of subtle points I must mention here (I suggest the casual reader skip ahead to the next section). The algorithm is perfectly general, but it does involve calculations of small differences in large quantities, so it works best in languages that run in double precision. I originally introduced PostScript in this section to show the problems that arise when you try to run the algorithm in single precision (the parameters in the present example were chosen to give valid results in PostScript). Recent versions of Java also have problems with the algorithm. Execution slows by a factor of 7 (compared with earlier Java versions) when trig functions with large arguments are encountered, (The variable r0 was introduced to solve this problem). The size of the wavelet source array is always a compromise between accuracy and speed. More importantly, the source array creates its own diffraction pattern. To stay clear of its effects, the path difference to a point on the screen from adjacent sources in the aperture needs to be an order of magnitude smaller than the wavelength. (Our example does not quite meet this requirement at the shortest wavelength).

Fraunhofer Diffraction

Circular Aperture

The Fraunhofer algorithm assumes the wavelets to be superimposed leave the aperture on parallel paths. The phase differences are calculated as wavelets leave the aperture and involve only small quantities. (The path difference is the dot product of a unit vector in the path direction with a vector giving the displacement between the sources in the aperture). The parallel path assumption does not impose a serious limitation. If the screen is not at a great distance, a lens will take incoming parallel rays and form a Fraunhofer pattern on a screen in its second focal plane.

In the applet, light from a helium-neon laser passes through a circular aperture 0.05 mm in diameter and falls on a screen 1000 mm away (125 mm when "z/8" is chosen). The screen is 240 mm square, and 1 pixel represents 1 mm on the screen. The wavelet sources are distributed either on a square grid with 41 points (21 points when "n/2" is chosen) along the diameter, or randomly across the aperture when "Rnd" is chosen (the random array has the name number of wavelet sources). For the square array, the pattern is calculated over one quadrant of the screen, and is overexposed 1000x. For the random array, the calculation extends over the full screen, and the overexposure is 500x.

Java Source   BBC Basic Source   Liberty Basic Source   PostScript Source

With the screen at 1000 mm from the aperture, the pattern from the square source array shows the expected cylindrical symmetry with a fine structure which is more pronounced when "n/2" is chosen. The first minimum in the pattern is sharply defined, and you can find the angle at which it occurs using a ruler. For a circular aperture, analytic calculations predict the radian measure of the angle will be 1.22 times the ratio of the wavelength to the diameter. I get reasonable agreement with this prediction. The pattern from the random array is quite different. Fraunhofer rings due to the aperture are still apparent at the centre (unless "z/8" is chosen), but elsewhere the pattern reflects the randomness of the source array. Clearly, the square grid is far better than the random array for generating the diffraction pattern of the aperture. One thing to note about the pattern from the random array is that it has a centre of symmetry. (This characteristic of Fraunhofer diffraction patterns is further illustrated in the next applet).

When the screen is at 125 mm from the aperture, it captures a wider angle view of the diffraction pattern. (This view could be captured at 1000 mm with a larger screen). We now see the diffraction pattern from the square array with the shape of the individual spots modulated by diffraction from the aperture. If we had increased the number of sources along the diameter to 81 instead of reducing it to 21, only the central maximum of the pattern from the array would have appeared on screen. More will be said about diffraction from source arrays in X-Ray Diffraction.

Triangular and Rectangular Apertures

In this applet the aperture is either an equilateral triangle with side .05 mm, a .05x.025 mm rectangle, or a .05 mm square. The triangle has its base horizontal, and wavelets originate from sources arranged like pool balls in a rack (with 50 sources along the base unless "n/2" is chosen). The calculation is carried out over the right half of the screen. The shape and orientation of the aperture is superimposed in white on the diffraction pattern, but does not define the boundary of the geometric shadow as it did for Fresnel patterns. (The geometric shadow is a mere pinprick at the centre of the Fraunhofer pattern). The Screen can be moved in from 1000 mm to 125 mm.

Java Source   BBC Basic Source   Liberty Basic Source   PostScript Source

When the centre of inversion of Fraunhofer patterns combines with the three-fold rotational symmetry of the aperture (and the array) it produces a pattern with a six-fold rotational symmetry (and hence no triangular shapes). (The same sort of symmetry considerations relate the moments of inertia of an equilateral triangular plate). When the screen is moved to 125 mm it captures a wider angle view of the diffraction pattern (as it did for the circular aperture).

The rectangular and square apertures offer the opportunity to introduce a much faster algorithm for generating Fraunhofer diffraction patterns. The apertures are illuminated by light from a helium-neon laser, the diffraction patterns are produced on a screen 1 m away, and 1 pixel represents 1 mm on the screen. The wavelet sources are arrayed on a 512x1024 grid for the rectangle and a 1024x1024 grid for the square. If we were to superimpose this many wavelets one by one it would take a very long time to generate the diffraction pattern, but with rectangular symmetry we don't need to superimpose them one by one. Once we have the result of superimposing wavelets from two sources, we can superimpose wavelets from a displaced set of two sources. Next we superimpose wavelets from a displaced set of four sources, and so on. When we have completed one row, we then go on to superimpose rows and sets of rows. For the square, instead of summing over 1024x1024=1,048,576 terms, we sum over only 20 terms terms. It takes 30 times as long to generate the pattern for the triangle where the sum extends over only 1275 terms. (Admittedly the triangle calculation uses 2-fold, not 4-fold symmetry of the screen). The fast algorithm is even more powerful when extended to three dimensions as it is in the section on x-ray diffraction. Progressive doubling lets one start with one atom and build up very rapidly to a macrocsopic crystal. Note that the rectangular shapes in the diffraction pattern are rotated 90 degrees with respect to the rectangular aperture - they are not fuzzy images of the aperture.

Diffraction Grating

The next applet shows how slits can be combined to form a diffraction grating, a device for determining the wavelengths present in a beam of light. Patterns are calculated for four different colors: red C (656.3 nm), yellow D (589 nm), green E (526.9 nm), and blue F (481.6 nm). The grating has n = 1, 3, or 5 slits of width w = 2 microns at a spacing of d = w, 2w, or 3w. The intensity pattern is viewed on a screen 1 m from the grating with 1 pixel representing 1 mm in the x direction. At a slit spacing of w the diffraction pattern is that of a slit of width nw. The analytic Fraunhofer expression for red C is shown in magenta on a line plot when d = 2w, n = 3 is selected. The slight difference between the magenta line and the red pattern is due to the fact that the numerical calculation includes an amplitude/obliquity factor. If it is commented out of the program, the difference disappears on the scale of the plot.

Java Source   Liberty Basic Source   BBC Basic Source   PostScript

X-Ray Diffraction

This section is currently being revised.

Back to Index