Published online: 26.05.2019
Author: James M. Byrne
When I first started learning how to fit Mössbauer data, I blindly placed my trust in the fitting software, adding doublets and sextets whenever they seemed appropriate. However, I never stopped to think about what really makes up these specific line shapes. It took several years before I eventually decided to see if I could make more sense of these mysterious curves by drawing my own doublets and sextets in Excel. It turned out after a short period of troubleshooting that these lines were much easier to understand than I had first thought and I quickly realised it was even possible to fit them to raw data, first by guess work and then by using the solving tools in Excel. I now incorporate this strategy into my lectures because I think it provides students with a much better appreciation for the interpretation of the spectra when they can understand the fundamentals behind how the fitting actually works. The purpose of this page is to replicate this and provide a step by step guide to the fundamental aspects of data fitting.
Hopefully you already have heard a little bit about the theory of Mössbauer spectroscopy, so I will simply jump straight ahead and remind you of the fact that the characteristic Mössbauer spectrum is best described by a Lorentzian lineshape:
$$L(x) = I*{1\over \pi}{w/2 \over (x-x_0)^2+(w/2)^2}$$ Where \(I=\)intensity, \(x=\)velocity [mm/s], \(x_0 =\) centre of the curve, \(w =\) half width at half maximum
Based on just this simple equation, it is possible to create the classic singlets, doublets and sextets you should already be familiar with.
A good place to start is the singlet as it is the easiest and fastest type of lineshape you can create. If we create a figure using equation 1, you will see that x0 simply describes the center shift parameter. Let's see what I mean:
A singlet is nice and easy, but with the exception on of a few examples, most environmental samples have spectra which are characterised by doublets or sextets. Can you think how to change the Lorentzian equation so that we can plot a doublet? All you have to do is to plot two of them and add them together. So we can simply adjust the equation describing L(x) and introduce a left and right side.
$$L(x) = L(x)_L+L(x)_R=I*{1\over \pi}{w/2 \over (x-x_L)^2+(w/2)^2}+I*{1\over \pi}{w/2 \over (x-x_R)^2+(w/2)^2}$$ Where \(I=\)intensity, \(x=\)velocity [mm/s], \(x_0 =\) centre of the curve, \(w =\) half width at half maximum
Here you should notice that I have changed x0 to xL and xR for the left and right Lorentzians respectively. These terms now contain information that correspond to both center shift (CS) and quadrupole splitting (QS) parameters:$$x_L = CS-{QS\over 2}$$ $$x_R = CS+{QS\over 2}$$
This means we can rewrite equation (2), and factor out the intensity (I) of the curve :$$L(x) =I*\Bigg({{1\over \pi}{w/2 \over (x-CS-{QS\over 2})^2+(w/2)^2}+{1\over \pi}{w/2 \over (x-CS+{QS\over 2})^2+(w/2)^2}}\Bigg)$$
So let's try and plot this:You have now completed a very basic and crude way of fitting your Moessbauer data. This is of course not very scientific and we need a more robust method to analyse our data. There are many different approaches to doing this, but one common method is to use a regression based analysis where the difference between the "data" and the "fit" is minimized.
In your workbook, add a new column with the heading "least squares". Fill the cells in this column with (fit-data)^2. Now create a new cell which sums all of the values in the least squares column, i.e.:
$$R^2 = {\Sigma{(fit-data)}^2}$$
The general goal is to minimize R2, so try and adjust your hyperfine parameters again so that it is even lower. Normally, your fitting software will just try minimize this number by changing the hyperfine parameters. There is a method for doing this in Excel using a plugin called Solver. To install in Excel:
Download workbook - Doublet with real data
Now we will move onto the sextet, which is commonly observed when analysing crystalline iron oxides such as hematite, goethite or magnetite, or paramagnetic mineral phases below their blocking temperature. How do we create a sextet? We just need to add six Lorentzians together:
$$L(x) = L(x)_1+L(x)_2+L(x)_3+L(x)_4+L(x)_5+L(x)_6$$
I have not written out the details for each of the individual Lorentzians because it would be far too long here. However, in general we need to replace the x0 for each individual Lorentzian as follows:
\(Lorenzian\) | $$x_0$$ |
---|---|
\(1\) | $$0-(Bhf/B_c*D3/2)+IS+QS$$ |
\(2\) | $$0-(Bhf/B_c*D2/2)+IS-QS$$ |
\(3\) | $$0-(Bhf/B_c*D1/2)+IS-QS$$ |
\(4\) | $$0+(Bhf/B_c*D1/2)+IS-QS$$ |
\(5\) | $$0+(Bhf/B_c*D2/2)+IS-QS$$ |
\(6\) | $$0+(Bhf/B_c*D3/2)+IS+QS$$ |
Where \(B_c=32.95, D1 = 1.679, D2 = 6.1525\) and \(D3 = 10.625\).
You might notice that the above equation does not account for differences in the intensities of the individual peaks of a sextet. In general, these often follow the ratio of 3:2:1:1:2:3 for peaks 1-6 respectively. Therefore, lets update our equation to include these ratios:
$$L(x) = 3L(x)_1+2L(x)_2+L(x)_3+L(x)_4+2L(x)_5+3L(x)_6$$
Now we are ready to create a sextet:
Now we have a very basic spectrum for a sextet, but how can we use this to fit our data? First, we need to get some data. Either you have your own, or we can just work with some that already exists. Download the spectrum below:
I now challenge you to try and fit the data using the same approach described for the doublet. The principle is almost identical and through the use of the Solver function, you will be able to determine the identify of Unknown 2. If you get stuck, download the fully worked solution:
Download workbook - Sextet with real data
I hope that this brief tutorial has given you at least a very basic understanding of how Moessbauer data fitting works. There are of course much more complicated models which can be used, but the basic principles remain the same. Happy fitting!