In today’s world of spectroscopy many amateurs go directly to linear array or camera spectrographs and tend to forget about the monochromator design thinking that they are relics of the past. Monochromators are, actually, very important and many great achievements were made using these. They were among the first tools of the spectroscopists but are still quite useful today. This is why I decided to make a post about monochromator. I will also take the occasion to built this monochromator based on a prism design rather than on a diffraction grating for several reasons.
First, prism does not suffer from orders overlaps that you will experience with diffraction grating. With a prism, the wavelength 400 nm and 800 nm are always well separated. With a diffraction grating, the 2nd order of 400 nm overlaps with the 1st order of 800 nm. This means that you either have to restrict your wavelength range (e.g. from 350 nm to 700 nm, from 450 nm to 900 nm…) or you have to implement an order separation technique. Commercial high-end spectrographs does this by applying a linear variable high-pass coating on top of their CCD sensor. In the amateur world, we have nothing like that available and so it makes the order separation technique much more difficult to achieve.
Second, prism have better overall efficiency than diffraction gratings when used on broad ranges (such as the 400…2300 nm of the tungsten light source that we are using here). Diffraction gratings are not bad but are often designed for smaller wavelength ranges or you have to accept a big drop of efficiency at some wavelengths.
All these put together, it makes prism very convenient for broadband setups like a UV-VIS-NIR spectrometer. However, prisms have much smaller dispersion power than diffraction gratings and the only way to get a decent lateral shift is by using a very large focal length which is, as we covered [»] previously, a very bad way to achieve a good light throughput. Nonetheless, monochromators do not require to have as high dispersion as spectrograph and my top-notch advise is to build yours using a prism.
A photography of the setup is given in Figure 1. Clockwise from the top-left corner you can see a tungsten lamp source with a 50 µm slit and a 50 mm doublet lens, a prism, another 50 mm doublet lens and a 50 µm fiber connected to my [»] Science-Surplus spectrograph. I am using the spectrograph here as a comparison tool but normally you would take the fiber to do whatever you want.
The setup of Figure 1 is schematised in Figure 2 (orientation inverted when compared to Figure 1). At the right hand-side, you have the halogen lamp light source with a diffuser screen that generates a broad light spectrum from about 400 nm to 2.3 µm. The spectrum is non-homogeneous in intensity and it is very weak in the blue region as well as in the far NIR side but has plenty of yellow and red colour as well as quite some short NIR wavelength (near 1 µm). In the results, I have normalized all the intensities so do not be surprise if you see different intensities when replicating the setup. I have also use a collimated slit just as in typical spectrograph. Here I am using a 50 µm slit with a 50 mm doublet achromat lens. The light is then sent to a prism with an angle of about 70° relative to the prism surface normal. This input beam experience refraction inside the prism and each wavelength exits with a slightly different output angle. At exit, a 50 mm doublet achromat focalise the beam of light and re-image the input slit onto a 50 µm pinhole or a 50 µm fiber (depending on what you would like to do next).
The operating principle is close to the one of a spectrograph except that we only keep the centre of the image by placing the pinhole at the place of the CCD/CMOS sensor. Therefore, we collect only one colour (hence the name “mono-chromator”). To change the wavelength range that we select, we have to turn the prism such that we change the incidence angle. To do that, I am using a PR01/M precision rotation stage that has a micrometre screw which rotates the stage by 2.4’ (0.04°) for every tick marks. If you would like to automatize the setup, you can replace the manual stage by a motorised one. Just pay attention that you need to be able to make very small and repeatable displacements. Note that a nice subsequent advantage of only keeping the centre of the image is that the image is almost aberration-free, which helps in collecting the light properly and to achieve a good bandwidth for the output.
Note also that even if the incidence angle between the input beam and the prism change as we rotate it, the deviation angle between the input and exit beams does not change and is about 58° in this setup. It is not easy to control this angle very accurately when working with a breaboard mounting plate so the best is to built the setup and calibrate it once all the elements are in place.
Finally, I would like to make a brief note about why I am using a slit at entrance and not a pinhole. Technically speaking, this setup is confocal which means that, in theory, we could put a pinhole at entrance and re-image the input pinhole onto the exit pinhole. In practice however, as you rotate the prism, the slit image may shift slightly up or down depending on the mechanical tolerance and the exact alignment of your prism. By using a 1 mm height slit, we are sure that we always have the exit pinhole filled with light even if the image of the slit slightly shifts up or down. But because we use a slit and not a pinhole, we first have to align the slit vertically compared to the prism axis. To do that, you can put a long focal length lens (200 mm or more) and use a light source with several monochromatic lines, such as a fluorescent lamp. Try to make the slit looks as vertical as possible and only then put the final pinhole and light source.
Let’s look at how the prism select our wavelength range now. This is based on how light is refracted inside the prism. The situation is illustrated in Figure 3 and the developments were taken from the book “Optics” by Hecht.
A light ray enters the prism of apex angle α with incidence angle θi,1 relative to the prism normal surface. The beam is refracted to an angle θt,1 through Snell’s law
where n1 is the refraction index from air and n2 is the refraction index of the prism for the wavelength λ of the ray. Hecht makes the approximation that the refraction index of air is unity for all wavelengths or that the prism refractive index is expressed relative to air.
The refracted ray hits the second surface of the prism with angle θi,2 where it is again refracted to the exit angle θt,2. From Figure 3, we see that θi,2=α-θt,1. After some mathematical rearrangements, we get the expression for the deviation:
By keeping the deviation angle δ constant, we can therefore select a wavelength λ by changing only the incidence angle θi,1. I would like to mention that this is a choice I made for the setup presented here because I felt it was more straightforward to implement. Some monochromator designs keep the prism orientation constant and rotate the lens and exit slit orientation around the prism centre.
The setup working principle was verified experientially using the setup of Figure 1 by rotating the prism by 5 ticks marks (1 tick is 2.4’) and recording the output spectrum using the Science-Surplus spectrograph. The results are presented in Figure 4 and are limited to the range 400…650 nm due to the spectrograph limitations.
The centre wavelength was computed from the prism angle relative to the initial position and compared to the theoretical value computed for a deviation of 58°. The results are presented in Figure 5 and show a trend that respect the theoretical expectations although there is a gap of about 50 nm for some wavelengths. This deviation may be due to a slightly different deviation angle or by an effect of the air refraction index which was neglected in the theoretical approach. I have not pushed the simulations farter as I was happy with the results which confirms that the modelling approach was correct.
The wavelength sensitivity can be directly interpreted from Figure 5 by differentiating the results and is presented in Figure 6. The wavelength sensitivity shows how the centre wavelength shifts for every tick of the rotation stage. If you are using a motorised stage, it represents the smallest repeatable angular steps that you can make.
Finally, it is important to understand that a monochromator does not select a single wavelength but a wavelength range. Because we are accepting all the lights rays that passes through the output pinhole, it means that we will inevitably accept wavelengths that are slightly off the wavelength of interest (what we call the centre wavelength). This is why in Figure 4 we measured spectra that had some wavelength spread.
To reduce the spread, you can use a smaller pinhole or a longer focal length. But be careful however that you should always design a monochromator whose bandwidth is in excess to the wavelength sensitivity. Indeed, if you have a very precise monochromator that has a 0.01 nm bandwidth but has a wavelength sensitivity of only 1 nm, how would you go from, say, 500 nm to 500.5 nm because you want to study an absorption band at 500.5 nm for instance? The fact is that, you cannot because you can only go from 500 nm to 501 nm since your smallest angular step only does a 1 nm and not a 0.5 nm. Also, what if you want to have a complete spectrum and not just discrete tiny part of a spectrum? The only way to do that is to open your output pinhole to get a larger bandwidth such as to cover from 499.5 nm to 500.5 nm and from 500.5 nm to 501.5 nm and so on. And if you really need to have a 0.01 nm bandwidth, you will have to find a rotation stage that have much smaller step angle.
Below you will find a Matlab program that you can use to design your monochromator design. It is currently designed for F2, 60°, prism but you can adapt it to other design very easily.
% init clear all, close all, clc % parameters slit_width_um = 50; focal_length_mm = 50; angular_resolution = 2.4 / 60; dev_target = deg2rad(60); prism_angle = deg2rad(60); wavelength_min_nm = 400; wavelength_max_nm = 675; n_index = @(x) (F2(x)); % for reporting results = ; figure(1) hold on drawnow % scan all input angles angular_target = 0.001 * slit_width_um / (1e3 * focal_length_mm); for angle_in=deg2rad(78.6):deg2rad(angular_resolution):deg2rad(82.64) % find wavelength such that deviation is constant w1 = wavelength_min_nm; w3 = wavelength_max_nm; dev1 = prism_deviation(angle_in, prism_angle, n_index(w1)); dev3 = prism_deviation(angle_in, prism_angle, n_index(w3)); dev2 = 0; if imag(dev1) ~= 0 || imag(dev3) ~= 0 continue end while abs(dev_target - dev2) > angular_target % mid point w2 = 0.5 * (w1 + w3); dev2 = prism_deviation(angle_in, prism_angle, n_index(w2)); % check crossing if (dev1 - dev_target) * (dev2 - dev_target) < 0 w3 = w2; dev3 = dev2; elseif (dev2 - dev_target) * (dev3 - dev_target) < 0 w1 = w2; dev1 = dev2; else break end end if imag(dev2) ~= 0 continue end if (w2 < wavelength_min_nm) || (w2 > wavelength_max_nm) continue end % report plot(rad2deg(angle_in), w2, '.', 'Color', 'black') drawnow results = [results; rad2deg(angle_in), w2]; end % for reporting figure(4) title('Band-Pass') xlabel('Wavelength (nm)') ylabel('Wavelength Delta (nm)') hold on drawnow % find resolution for each wavelength for i=1:length(results(:,2)) % get current wavelength angle_curr = deg2rad(results(i,1)); w_curr = results(i,2); % get current deviation dev_curr = prism_deviation(angle_curr, prism_angle, n_index(w_curr)); % find wavelength such that deviation is equal to the angular % acceptance angular_acceptance = 0.5 * slit_width_um / (1e3 * focal_length_mm); range = ; for w=wavelength_min_nm:0.01:wavelength_max_nm dev = prism_deviation(angle_curr, prism_angle, n_index(w)); if abs(dev - dev_curr) <= angular_acceptance range = [range; w]; end end if length(range) == 0 continue end % display %plot(angle_curr, max(range(:)) - min(range(:)), '.', 'Color', 'black') plot(w_curr, max(range(:)) - min(range(:)), '.', 'Color', 'black') drawnow results(i,3) = max(range(:)) - min(range(:)); end results(1:end-1,4) = abs(diff(results(:,2))); figure(2) plot(results(1:end-1,1), abs(diff(results(:,2)))) title('sensitivity') xlabel('Prism Axis (deg°)') ylabel('Wavelength Delta (nm)') drawnow figure(3) plot(results(1:end-1,2), abs(diff(results(:,2)))) title('sensitivity') xlabel('Wavelength (nm)') ylabel('Wavelength Delta (nm)') drawnow figure(5) hold on plot(results(1:end-1,2), 2 * abs(diff(results(:,2)))) plot(results(1:end-1,2), results(1:end-1,3)) title('sensitivity margin') xlabel('Wavelength (nm))') ylabel('Wavelength Delta (nm)') drawnow function dev = prism_deviation(angle_in, prism_angle, ref_index) dev = angle_in + asin(sin(prism_angle) * sqrt(ref_index^2 - (sin(angle_in)).^2) - sin(angle_in) * cos(prism_angle)) - prism_angle; end function n = F2(wavelength_nm) l = wavelength_nm * 1e-3; n = sqrt(1 + (1.34533359 * l.^2 / (l.^2 - 0.00997743871)) + (0.209073176 * l.^2 / (l.^2 - 0.0470450767)) + (0.937357162 * l.^2 / (l.^2 - 111.886764))); end function n = F2(wavelength_nm) l = wavelength_nm * 1e-3; n = sqrt(1 + (1.34533359 * l.^2 / (l.^2 - 0.00997743871)) + (0.209073176 * l.^2 / (l.^2 - 0.0470450767)) + (0.937357162 * l.^2 / (l.^2 - 111.886764))); end
Last but not least, you may have noted that in this setup I have been using doublet achromat lenses and that I said that monochromators are great to generate monochromatic light on a very large range of wavelengths, typically 400 nm to 2.3 µm using a halogen light source such as the one used here. However, you may recall from my [»] previous post on optical aberrations that doublet achromats are optimized for a given wavelength range and that the focal shift deteriorates outside of that range. That is absolutely true and prism monochromators setups designs should not rely on stock lenses because that simply kills all of its advantages in regards to grating-based spectrographs. A much better way is to substitute lenses by off-axis parabolic mirrors which are wavelength insensitive. However, they are much more difficult to align and I reserve this for another post! So, stay tuned for updates :)[⇈] Top of Page
You may also like: