Mossbauer Data

Data and Calculations

After the setup is ready, test it out by taking a test run of about 10,000 counts. You should see two similar histograms and a somewhat irregular triangle wave on the LabVIEW front panel. With so few counts, however, seeing noticeable absorption peaks (dips) may not be possible with fewer than several hundred thousand samples. Make sure that the files save to the expected place, and that the resulting Excel data forms another similar histogram. When you are confident that the apparatus and program works, and have collected lots (millions!) of samples on an extended data run, here are some thoughts for analyzing the data.

PART 1: Origin Basics

The LabVIEW program writes data to an Excel spreadsheet periodically, and writes ALL the data collected during a run to a spreadsheet at the conclusion of the run. Using this last data file eliminates the need to manually sum up all the sections of data taken during a lengthy run.

Origin is a powerful and commonly used piece of software for peak fitting. In this experiment, we will use Origin to extract the locations and widths of the peaks observed in the Mossbauer spectra. The following is tutorial of how to use Origin to identify the peak locations - I recommend that you try the following on a data set from the Fe foil, since these data are usually easiest to work with and can generally be fit without using filtering or other techniques. Open a new Origin project, and create several additional columns. Copy-and-paste the data (omitting all the thousands of trailing zeros, but leaving the leading zeros in!) from your final Excel spreadsheet into the program into column B, and be sure to put the corresponding channel numbers into column A so that your x-axis will be properly labeled. You can do this by right-clicking on column A -> 'Set Column Values' -> 'Row Numbers.' If you plot your new Origin data, it should look something like this:

You should notice two things:

  • 1. There are erratic sections of data at both the very beginning and the very end of the spectrum. We don't want these.

  • 2. There is a significant quadratic trend to the data! This is a result of a slightly distorted triangle wave used by the Mossbauer driver (and is more or less unavoidable) and needs to be removed too.

First, trim away the erratic ends of the data by deleting or masking just enough points on either end, as shown below.

Next, the quadratic effect needs to be determined, so that it can be subtracted out. Since we have so many data points, and since the peaks will obviously pull down the quadratic effect in the middle region, examine only the areas to the right and left of the peaks. (In the graph shown, we've hidden the peak data entirely, but you can simply 'mask' the data using the masking function. Masked data appears in red.) To have Origin perform a quadratic fit, go to Analysis -> Fitting -> Polynomial Fit -> Open Dialogue. A correct fit should look something like below; also be sure to examine the residual plot for any evidence that you included too much peak region in the range.

The polynomial fit spreadsheet will provide values for the coefficients and intercept of the quadratic fit. If you take these values back to your Excel spreadsheet (or use the "Set Column Value" function inside Origin), you can use them to subtract the quadratic effect from your original data. It is recommended that you continue to propagate errors as you do so, using statistical error for the original count rate data and the uncertainties provided for each parameter of the quadratic fit, adding in quadrature as appropriate. Paste these values into a column in Origin. The resulting data should still contain all of the necessary information about the peak locations, but should not be subject to a quadratic background trend. Now, we can use Origin's peak fitting utilities to fit the six peaks that should be visible in the spectrum.

The peaks in a Mossbauer spectrum are represented by Lorentzian distributions. Since six peaks should be observable, a multiple peak fit (Analysis -> Peaks and Baseline -> Multiple Peak Fit -> Open Dialogue) should be used. Be sure to select the 'Lorentz' option from the drop-down tab. You will be prompted to help Origin locate the six peaks. When finished, the resulting fit should look something like the one below. The multiple peak fit spreadsheet should provide all the important fit parameters like peak center (xc) and peak width (W) along with their uncertainties, for each peak. Note!! Use 'Instrumental' error instead of the default setting of 'Use each value's range.' Choose 'Open NLFit' after selecting the peak locations -> 'Settings' -> 'Data Selection.' Under 'Weights,' expand 'Range,' then expand 'y,' then expand 'Weight.' Finally, select the column you would like Origin to reference for uncertainty values - the column of propagated errors you pasted in earlier. If Origin can only locate four or five of the absorption peaks, sometimes it is helpful to mask more of the data on either end of the spectrum.

Helpful Features in Origin

Especially for samples with a poor signal to noise ratio, sometimes the simple process described above will not result in an appropriate fit. Either the fit will not converge, or the six 'peaks' will not correspond to the obvious absorption peaks. Fortunately, much can be done in Origin to extract meaningful peak fits. Examine the attached Origin project in the Final Analysis section to see how filtering can be applied.

Try low-pass filtering - One issue that can occur is when the absorption peaks are obscured by noise or by issues with binning the data. In these instances, the random (or non-random, in the case of binning issues) high/low fluctuations of the data somewhat resemble peaks and make it difficult for Origin to identify the true peaks. Try performing a low-pass filtering of the data using a filter of around 30 to 60 channels wide. (Use the automatic preview to see how this changes the way the spectrum appears.) Go to 'Analysis' -> 'Signal Processing' -> 'Smooth' -> 'Open Dialogue,' and select automatic preview near the bottom of the window that appears, then adjust the 'Points of window' option to see what happens. If the filtering operation gives a result in which the absorption peaks are easier to identify, you can experiment with doing your multiple peak fit directly with the filtering results.

Try bounding one or more peak fitting parameters - If by eye you can distinguish the expected absorption peaks, another option you can pursue is bounding the fit parameters. The peak centers are the most obvious parameter to bound; start with one peak center and proceed from there. Be warned: making your bounds too tight or worse, accidentally bounding away from the correct value, will probably cause the fit to diverge.

Raw data for (non-stoichiometric!) Fe3O4 is shown below. Note the lack of doublet peaks!

Data for stoichiometric Fe304 is below (top: original unmodified data; bottom: data after processing and fitting). Note doublet peaks. Data on the bottom spectrum was processed by making a quadratic background subtraction, smoothing over 35 channels, and then performing a multiple peak fit with nine Lorentzians.

Here's a typical resulting spectrum from Fe2O3:

PART 2: Final Analysis

After you have located the peak centers and their appropriate uncertainties with Origin for each substance you have studied, you can turn this data into your values for the various Mossbauer parameters. Below is a link to a spreadsheet where all of these calculations (and the standard propagation of uncertainties) have been made for Fe foil, Fe2O3 and Fe3O4. Also shown on the spreadsheet is a table of accepted values and uncertainties of the various Mossbauer parameters for these samples.

Thus far, the x-axis has remained in 'bins' or channel #'s which are fairly meaningless, physically. Instead, we should relate the x-axis values to velocity, and from there to gamma ray (photon) energy. The standard method of doing this is to examine the spectrum of your Fe calibration foil (1 mm steel foil, such as the data set from above). It is well-documented that a standard steel foil of this type produces a spectrum that displays no isomer shift, and no quadrupole splitting. Additionally, the separation between the outermost left peak and the outermost right peak is accurately known to represents a 10.657 mm/s change in velocity. By using your peak fit results, you can easily determine how many channels are between the outermost peaks' centers by subtracting 'xc peak 1' from 'xc peak 6.'. Dividing 10.657 mm/s by this number will tell you how many mm/s one channel represents. In the attached spreadsheet, this is done under "Bin Calibration." The same bin calibration values from the Fe foil page have been pasted into the Fe2O3 and Fe3O4 pages too.

Now we need to use our results for the peak centers to extract values for the various Mossbauer parameters: the isomer shift delta, the quadrupole splitting epsilon, and the Zeeman splitting energies g0 and g1. Here is an informative graphic as to how these parameters relate to the transition energies:

(Note: In the equations and diagram, "delta" indicates the isomer shift, and epsilon denotes quadrupole splitting.)

In the lower system of six equations on the right-hand side, the solutions (delta E's) represent transition energies. The Zeeman splitting parameters (called delta0 and delta1 in the graphic, and called g0 and g1 in the spreadsheet) are easy to find. Subtracting the peak 3 center from the peak 5 center gives delta0. Subtracting the peak 4 center from the peak 5 center gives delta1. Multiply each parameter by the mm/s value represented by each channel for a result you can compare to literature.

Next, calculate the isomer shift by subtracting peak center 5 from peak center 6. Subtract the value you obtained for g1 (in channels!) from the difference. Divide that result by two, and convert from channels to mm/s. Additionally, subtract peak center 1 from peak center 2. Again, subtract g1. Divide by negative two and convert to channels. Propagate errors along the way, and take the weighted average of these two values.

Lastly, find the isomer shift. In the analysis of the iron calibration foil, we haven't calculated the isomer shift because we can assume that the isomer shift of an iron (steel) foil is zero. We have then calculated by weighted average the center of the iron foil spectrum (by examining the center between peak 6 and peak 1, peak 5 and peak 2, and peak 4 and peak 3). This value for the "true" center will be the value we reference when analyzing the isomer shift of other compounds (which we DO expect to have an isomer shift).

Be aware also of the fact that literature provided values for Mossbauer parameters come with standard deviations, some relatively large. Therefore, we've included a calculation of an "adjusted standard deviation," which adds the uncertainties on "our" value and on the accepted value in quadrature.

The "Combing" Effect

If you plot your data in Excel on a column graph of some sort, one idiosyncracy that your data may exhibit is an effect called "combing." This will appear like a fine comb-tooth pattern superimposed on your regular spectrum. See the images below for clarity; the top image is a graph of constant noise generated by sampling a triangle wave, and the bottom image is an Fe2O3 spectrum.

In order to study this effect, the DAQ was disconnected from the Mossbauer setup. Instead, two function generators were used - one generated a square wave that acted as a trigger, and the second generated a triangle wave that mimicked the Mossbauer drive signal that would otherwise be connected to the input channel (the frequencies of these signals were not integer multiples of each other, to avoid obvious harmonics). By sampling the triangle wave, we expect that all values will be sampled approximately an equal number of times, resulting in random noise. When the resulting data was plotted in Excel, the combing effect was still visible to the naked eye, so an FFT in Origin was performed. Below left is an Origin scatterplot of the raw triangle noise data, and at right is the result of the (no filter) FFT performed in Origin.

For comparison, I've applied Origin's "smoothing" function and then performed an FFT on the smoothed data. Below is data that has been smoothed (Savitsky-Golay) over 5 and 35 window points, respectively.

In the un-smoothed data and the smoothed-over-5-window-points data, a notable spike in the FFT is observable. The x-axis units on the FFT appear to be 1/number of data points, and the number of data points should correspond to the number of bins/channels. Zooming in on a section of the raw noise data FFT (the frequency section - we can disregard the "phase" component on top) shows that this spike occurs at about 0.052 x-axis units. 1/0.052 shows us that the frequency in question involves about 19 channels. Interestingly, if we take a look at any section of the noise data (plotted either in Excel as a column graph or in Origin with vertical drop lines) (and squint a little), we can pick out the combing effect. For example, shown below is a section of the noise data (where the x-axis is in bins, shifted, and the y-axis shows the number of counts). We are looking at a 332-bin slice of the entire spectrum. 332 bins / 19 bins => we should see about 17 combing peaks - and we do.

Interpretation of results? One way or another, the combing effect hasn't proven to be detrimental to Origin's ability to identify the Mossbauer peaks or accurately calculate the various Mossbauer parameters.

Next, Notes and Quirks