By Matthew R. Linford, Contributing Editor
The Gaussian-Lorentzian Sum, Product, and Convolution (Voigt) Functions Used in Peak Fitting XPS Narrow Scans, and an Introduction to the Impulse Function
I
n this column I’ll be talking about a nearly unavoidable, and certainly indispensible, part of X-ray photoelectron spectroscopy (XPS): peak fitting of narrow scans. Sherwood aptly observed that peak fitting in XPS is commonly practiced because forms of the same element in different oxidation states1 often yield signals that are separated by about as much as their line widths.1-2 Crist has observed that important decisions in the laboratory and in industry are regularly based on the results from peak fitting.3 I have found all of this to be true. The most widely used functions for fitting peaks in XPS narrow scans are based on Gaussian and Lorentzian functions, and three such functions are regularly considered for this purpose: the Voigt function, which is the convolution of a Gaussian function with a Lorentzian function (we considered convolution in the last column4), the Gauss-
ian-Lorentzian sum function (GLS), and the Gaussian-Lorentzian product (GLP) function. We’ll discuss these three functions in this article, and then move on to the impulse function, which I believe is an interesting piece of mathematics that any scientist or engineer should be familiar with.
Figure 1. Graph of the Gaussian function in Equation 1 with parameters h = 1, E = 0, and F = 1.
Figure 2. Graph of the Lorentzian function in Equation 2 with parameters h = 1, E = 0, and F = 1.
2
[email protected]
XPS Peak Fitting with Voigt and Gaussian-Lorentzian Sum and Product Functions In peak fitting an XPS narrow scan, one generally selects a baseline first followed by a series of peaks, where each peak will, in general, represent a single chemical state (oxidation state1) of an element. The most common functions chosen to represent symmetric XPS signals are the Voigt function, which is the convolution of a Gaussian function with a Lorentzian function, the
July 2014sVacuum Technology & Coating
Gaussian-Lorentzian sum function (GLS), and the Gaussian-Lorentzian product (GLP) function. We’ll discuss these functions here. Gaussian and Lorentzian functions play an important role in science. Their general mathematical forms are given in Equations 1 and 2, respectively. The general forms of these functions, including their sum and product functions, have previously appeared a number of times in the literature.5 (1)
G(x;F, E, h) = h * exp – 4ln2
(2)
L(x;F, E, h) =
(x-E) 2 F2
h 2 1+4 (x-E) F2
These functions are graphed in Figure 1 (the Gaussian) and Figure 2 (the Lorentzian) with the following parameters: h = 1 (the functions are given here a height of one), E = 0 (the functions are centered at the origin), and F = 1 (the functions have a width of one). Obviously, both functions are symmetric about the y-axis. They also have finite integrals and are localized – they do not have large tails or other components that extend out to a significant degree. The Gaussian curve is the classic ‘bell-shaped curve’. The Lorentzian is a little more peaked, i.e., a little narrower around its maximum, and it extends out a little more than the Gaussian on its sides, i.e., the Lorentzian has ‘wings’. Any serious physical scientist should know the difference between these two functions and be comfortable working with them. In the theory of X-ray photoelectron spectroscopy, natural line shapes are generally assumed to be Lorentzian. However, there are many reasons why this natural line shape will not be exactly observed. There will be some line width to the X-rays that excite the photoelectrons, e.g., they won’t be perfectly monochromatic. The photoelectrons then travel through a spectrometer that broadens the signal to some degree. The element in question within a sample may be in heterogeneous environment (disorder broadening), e.g., perhaps the material is a glass. The emission of photoelectrons may also be perturbed by vibrations in the material (phonon broadening), where this effect is temperature dependent. For a more detailed discussion of these topics, I recommend the fairly recent book by Briggs and Grant on Surface Analysis.5a
Figure 3. Graph of the slit function, S(x), with a slit width of 1.
6ACUUM4ECHNOLOGY#OATINGsJuly 2014
One can think of at least some of these broadening mechanisms as being convolutions of the natural, Lorentzian, line shape with other functions. In mathematics there is a rather amazing theorem called the Central Limit Theorem. This theorem states that if you repeatedly convolve a function with itself, or if you convolve a series of functions together, the resulting function will generally tend to become more and more Gaussian like. We’ll show the plausibility of the Central Limit Theorem here. Figure 3 shows an example of the slit function, S(x), that we defined in our previous article (see Equation 3).4 Recall that it can be viewed as the product of two unit step functions: (x) (see Equation 4). In particular, Figure 3 shows a slit function with a width of one (a = ½) produced by multiplying (½ - x) by (x + ½) (see Equation 5). (3) S(x) = 1 for x a 0 for x > a (4) (5)
UnitStep(x) = S(x)
a= 1 2
(x) =
1 for x 0 0 for x < 0
= (12 – x) (x + 12 ) =
1 for x 12 0 for x > 12
Now, interestingly, if we convolve S(x) with itself (S(x)*S(x)) we get the triangle function, T(x), that is shown in Figure 4. For those of you that were recently introduced to convolution, it would probably be a good exercise to perform this convolution to convince yourself that this is true. In any case, I think you’ll agree that the triangle function in Figure 4 resembles a Gaussian more than the rectangle function in Figure 3. (I admit that T(x) is a pretty crude approximation to a Gaussian, but at least it has some lines with nonzero slopes…) Notice also that the convolution of S(x) with itself led to a broader function, which is typical of convolution. That is, look at where S(x) in Figure 3 and T(x) in Figure 4 have nonzero values, i.e., emerge from the x-axis. Now, to continue this process, let’s convolve T(x) with itself. (In passing we observe that T(x)*T(x) = S(x)*S(x)*S(x)*S(x), which is the same as T(x)*S(x)*S(x).) In any case, T(x)*T(x) yields the function in Figure 5, which is starting to look quite Gaussian-like. Notice again that this function is broader than its
Figure 4. Convolution of the slit function, S(x), with a slit width of 1 in Equation 5, with itself (S(x)*S(x)) forming a triangle function, T(x).
www.vactechmag.com or www.vtcmag.com
3
of a Gaussian and a Lorentzian. As discussed in our previous article,4 the only problem with this approach is its complexity – the necessary convolution is computationally expensive. Accordingly, two simpler functions have been widely used as surrogates for the Voigt function. These are the Gaussian-Lorentzian sum (GLS) and Gaussian-Lorentzian product (GLP) functions. The GLS function has the following form: 2 + (6)GLS(x;F,E,m,h)=h*(1– m)exp –4ln2 (x-E) 2
F
Figure 5. Convolution of the triangle function with itself (T(x)*T(x)) forming a function that appears rather Gaussian-like.
predecessor (see Figure 4). And finally, note that the convolution of a Gaussian with a second Gaussian is yet an additional Gaussian, which will be broader than either of the original Gaussians. So all of this is to show the reasonableness of stating that when a set of photoelectrons, which may inherently have a Lorentzian line shape, is excited by X-rays that have some line width and shape, and also perturbed by both a spectrometer and the broadening mechanisms discussed above, we would expect the resulting signal to have at least some Gaussian character. Thus, it is common for the components of XPS narrow scans, especially when monochromatic sources are used, to be modeled as peaks with both Gaussian and Lorentzian character. The amount of Gaussian or Lorentzian character assigned to these peaks depends on the factors mentioned above. For example, it has been recommended that the C 1s signals from polymers be modeled as 100% Gaussians or 90:10 Gaussian:Lorentzian mixes.3 This seems reasonable. Polymers will often be in rather heterogeneous environments – polymer chains can often be approximated as random coils. So we have established that many of the component peaks of XPS narrow scans will be best defined/fit by peaks that have both Gaussian and Lorentzian character. The ‘purest’ way to handle this problem is to use a Voigt function, which is the convolution
Figure 6. Graph of the GLS function (Equation 6) with parameters h = 1, E = 0, and F = 1 for m = 0 (bottom, blue line), m = 0.5 (middle, red line), and m = 1 (top, yellow line).
4
[email protected]
h*m (x–E)2 1+4 F2
Notice that the first and second terms in this function are the Gaussian and Lorentzian functions in Equations 1 and 2, weighted by a mixing parameter, m. That is, for m = 0, Equation 6 reduces to Equation 1, a Gaussian, and for m = 1, Equation 6 reduces to Equation 2, a Lorentzian. Obviously, by varying m from 0 to 1 we obtain a series of functions that have more Gaussian or more Lorentzian character. It should also be clear that m could be a fitting parameter in an algorithm used to fit XPS narrow scans. Figure 6 shows the GLS function (Equation 6) for three values of m: m = 0 (the blue line), which again is a Gaussian, m = 1 (the green line), which is again a Lorentzian, and m = 0.5 (the red line), which runs more or less between the other two functions. Figure 7 goes a little further, zooming in on the region where the Gaussian and Lorentzian functions differ most for m = 0, 0.1, 0.3, 0.5, 0.7, and 1. It is clear that the GLS function varies in a reasonable way between a pure Gaussian and a pure Lorentzian function. Now let’s compare the GLS function to the GLP function. This latter function is defined in Equation 7. Clearly, from its name, we expect that we will be dealing with the product of a Gaussian function and a Lorentzian function, which is indeed the case. That is, m = 0 in Equation 7 results in a pure Gaussian (Equation 1), and m = 1 in Equation 7 yields a pure Lorentzian (Equation 2). (7) GLP(x;F,E,m,h) = h * exp – 4ln2(1-m) (x-E) * 2 2
F
1 1+4m
(x-E)2 F2
Figure 7. Graph of the GLS function (Equation 6) with parameters h = 1, E = 0, and F = 1 for (from bottom to top) m = 0, 0.1, 0.3, 0.5, 0.7, and 1.
July 2014sVacuum Technology & Coating
Figure 8. Graph of the GLP function (Equation 7) with parameters h = 1, E = 0, and F = 1 for m = 0 (bottom, blue line), m = 0.5 (middle, red line), and m = 1 (top, yellow line).
Figure 9. Graph of the GLP function (Equation 7) with parameters h = 1, E = 0, and F = 1 for, going from bottom to top, m = 0 (blue line), m = 0.5 (red line), m = 0.9 (yellow line), and m = 1 (green line).
So all of this sounds pretty good, and one might think at this point that the GLS and GLP functions would be more or less interchangeable. I you believe this, you may wish to continue reading. Figure 8 shows the GLP function for m = 0, m = 0.5, and m = 1. It is obvious here that while the m = 0.5 GLS function was approximately in the middle of the pure Gaussian and Lorentzian functions (see Figure 6), the m = 0.5 GLP function is only slightly different from the pure Gaussian function. Things just don’t look right here, which causes one to ask the question: Why would the m = 0.5 GLP function not look more like the m = 0.5 GLS function? Here’s the answer. Notice that the Gaussian function is rather well contained and goes to zero quite quickly. As a result, when one multiplies a Lorentzian by a Gaussian, the ‘wings’ of the Lorentzian are multiplied by values that are pretty close to zero and as a result they essentially disappear. Figure 9 further illustrates this issue. It shows a zoom in view of the m = 0.5 GLP function and also of the m = 0.9 GLP function. Here, the graph of the m = 0.9 GLP function reconfirms that the GLP function is a less than ideal representation of something intermediate between a pure Gaussian and a pure Lorentzian function, i.e., we’d expect that the m = 0.9 GLP function would not be significantly different from a pure Lorentzian, but the m = 0.9 GLP function in Figure 9 only extends about half way between the pure Gaussian and Lorentzian functions, and it does not appear to effectively represent the ‘tails’ of the Lorentzian. Around 1980,6 the GLP function was recommended in the literature for XPS narrow scan peak fitting. This suggestion appears to have been relatively influential. However, a more recent paper in 2007 by Hesse, Streubel, and Szargan5c was unable to verify the previous recommendation – in their analyses the GLS performed better than the GLP. Their study also had a rather pragmatic component it. They looked at the fitting functions (Voigt, GLS, and GLP) that are available in different XPS software packages. Unfortunately, not all of the functions are available in all of the programs, and one software package only had the GLP as an option. One must sometimes do the best one can with the tools available. Hesse and coworkers also plotted the GLS with m = 0.5, the GLP with m = 0.5, and a Voigt function
made by convolving Gaussian and a Lorentzian functions with equal widths. All three of these functions had equal widths of 2. I’ve reproduced this plot in Figure 10, albeit with the peaks shifted to the origin for consistency with the other peaks in the other figures shown herein. The Voigt function (yellow line) is the widest of the three functions. The red line just inside it is the GLS function. Obviously the GLS function approximates the Voigt function pretty well. The GLP function is represented by the blue line. It is less obvious that it is a good approximation to the Voigt function. I performed a citation search on the Hesse paper. While a number of groups have cited it as a reference to their choice of fitting functions for XPS narrow scans, I have not been able to find a study that contradicts their results or that further develops this topic, i.e., I assume here that anyone writing on the topic would cite the Hesse paper. In 2003, Neal Fairley also discussed this issue, noting, as did Hesse, the significant decrease of the Lorentzian’s tail when it is multiplied by a Gaussian.5a In summary, for the reasons outlined in this article, and also in the Hesse and Fairley documents, we similarly favor the GLS over the GLP for peak fitting XPS narrow scans.
6ACUUM4ECHNOLOGY#OATINGsJuly 2014
Figure 10. Graphs of the GLS function with m = 0.5 (red line), the GLP function with m = 0.5 (blue line), and the Voigt function (yellow line). All three functions have widths of 2 and are centered at the origin. The Voigt function here is the convolution of a Gaussian function with a width of 1.3 and a Lorentzian function with the same width.
www.vactechmag.com or www.vtcmag.com
5
The Impulse Function I wanted to take the rest of the space in this column here to discuss a function that is closely related to the topics covered here and in the previous column: the impulse function. I believe that the ideas behind this function are important for a physical scientist to understand well. The impulse function shows up when one studies convolution and also the Fourier transform – convolution and the Fourier transform are quite closely related. It is also shows up in surface and materials characterization, e.g., it helps one understand Fourier transform infrared spectroscopy (FTIR), which is a powerful materials characterization method. I used two examples of the impulse function in my first article earlier this year – in the description of some FTIR work I did as a graduate student and as a representation of a sharp AFM tip.7 The impulse function is also an important topic in physics – it can be used to represent point masses and point charges. I would hope that my students would be conversant in its mathematics and the ideas surrounding it. As might be expected, this function goes by more than one name. Many chemistry students encounter it for the first time when they study quantum mechanics as the ‘Dirac delta function’ or just the ‘delta function’, (x). We will also represent the impulse function as (x) in this article. The impulse function belongs to an unusual class of functions that exist only in a limit, and our description of it will begin with the definition of a function that we will call the rectangle function: (x).8 (x) is quite similar to the ‘slit’ function defined in Equation 3, but it will be, perhaps, easier for us to work with as we try to understand (x). (x) is defined as follows: (8)
!
0 for x >½ (x) = ½ for x = ½ 1 for x