Introduction To Raman Spectroscopy Measurement Data Processing Using Igor Pro
Introduction To Raman Spectroscopy Measurement Data Processing Using Igor Pro
Getting started
I-1 Introduction to Igor Pro
I-2 Guided Tour of Igor Pro:
Guided Tour 1 – General Tour
Guided Tour 2 – Data Analysis
ii. Select a file to load in the window just appeared and click [Open] button.
iii. Fill in the name of wave about to load and click [Continue] button.
iv. While loading, information about data is displayed in the history area. If no error is
reported, the data is properly loaded as a named wave. You may find the loaded wave in
the data browser.
History area
Data browser
Loading from a single SPE file
i. In the menu, select [Data] -> [Load Waves] -> [Load SPE file].
ii. Select a file to load in the window just appeared and click [Open] button.
iii. Fill in the name of wave about to load and click [Continue] button.
iv. While loading, information about data is displayed in the history area. If no error is
reported, the data is properly loaded as a named wave. You may find the loaded wave in
the data browser.
Loaded data will be found in data browser
2-1
Display atomic emission spectrum of Ne or Hg lamps, etc.
Command:
Display NeLamp
Displayed spectrum.
2-2
Compare the measured spectrum with that in a reference and assign each observed line to
corresponding transition whose accurate wavelength is known. In the example, because lines below the
400th pixel are very weak, another spectrum with longer exposure time is measured (inset). Note that
the resulting calibration line may be reliable only in the region covered by lines that are taken into
account. Pick up as many lines from as wide area as possible for a better calibration.
By comparing with spectrum in the literature, assign each emission line and find accurate wavelength for it.
Spectra and tables in a literature. These are for 532-nm-excitation.
If you used different excitation wavelength, you need other region of spectra and tables.
(Raman spectroscopy by H. Hamaguchi (written in Japanese))
2-3
Make two 1D waves, named as wLinePix and wLineWL, whose numbers of elements as large as the
number of lines to take into account, and display them on a table. In this example, above-mentioned 20
lines are taken into account.
Command:
Make/N=20 wLinePix, wLineWL
Edit wLinePix, wLineWL
2-4
Zoom in on the first line and place cursors on the both left and right sides of line on the baseline and
perform fitting analysis with Gaussian function within the region between the cursors.
Cursors.
Select [Analysis] -> [Curve Fitting…] 2. Select wave to be analyzed 4. Click [Do It]
Or
Curve fit using command:
CurveFit/NTHR=0 gauss NeLamp[pcsr(A),pcsr(B)] /D
Corresponding wavelength is
2-6
Repeat 2-4 and 2-5 for all the other lines to take into account, and then, plot wLineWL vs. wLinePix. If
you find the plot is not smooth, your line assignment may be wrong.
Completed table.
2-7
Fit the plot with 3rd-order polynomial. The fitting result gives the wavelength calibration curve, which
connects CCD pixel indices and actual wavelengths in vacuum.
Curve fit using GUI:
2. Select [wLineWL]
3. Select [wLinePix]
Fitting result.
2-8
Duplicate one of measured spectrum data waves as wWavelength, and input wavelengths at each pixel
indices using fitted parameters just obtained above. Each fitted parameter is stored in a corresponding
row of automatically generated wave, w_coef (0th-term -> w_coef[0], 1st-term -> w_coef[1], and so on).
Command:
Duplicate NeLamp, wWavelength
wWavelength = w_coef[0] + w_coef[1]*p + w_coef[2]*p^2 + w_coef[3]*p^3
2-9
Duplicate the wave wWavelength as wRamanShift, and input Raman shifts calculated from the Raman
excitation wavelength (in vacuum) and wavelengths in wWavelength into wRamanShift. If the
excitation wavelength is not definite, fit the Rayleigh line with Gauss function and determine it. In this
example, suppose excitation wavelength was 532.22 nm.
Command:
Duplicate wWavelength, wRamanShift
wRamanShift = 1E7 * (1/(Excitation wavelength) - 1/wWavelength)
2-10
Plot Raman spectra data, e.g. wRamanSp versus wRamanShift. Because Raman spectrum is
conventionally plotted as wavenumber increases in a direction from right to left, switch the horizontal
axis direction accordingly. Make the axes labels; Raman shift / cm-1 for horizontal axis, Intensity /
counts for vertical.
Command:
Display wRamanSp, wRamanShift
SetAxis/A/R bottom
Label left "Intensity / counts"
Label bottom "Raman shift / cm¥¥S-1"
3Raman Shift Calibration using Indene
As mentioned above, it is useful to use indene as a standard for Raman shift calibration especially
when your Raman shift region of interest is limited within the “fingerprint region” and the excitation
wavelength has not been determined accurately or is variable with ambient condition. In contrast to
the calibration using atomic emission from Ne and Hg lamps for example, that using Raman bands of
indene directly assigns Raman shift value to each pixel index; not wavelengths but Raman shifts of
bands are plotted against pixel index, so that no further conversion of calibration curve is required.
3-1
Display Raman spectrum of indene.
Command:
Display indene
Displayed spectrum.
3-2
Compare the measured spectrum with that in a reference and assign each observed band whose
accurate Raman shift is known.
assign each band and find accurate Raman shift for it.
Raman shift
Reference
3-3
Make two 1D waves, named as wIndenePix and wIndeneRS, whose numbers of elements as large as the
number of bands to take into account, and display them on a table. In this example, 17 bands are taken
into account.
Command:
Make/N=17 wIndenePix, wIndeneRS
Edit wIndenePix, wIndeneRS
3-4
Zoom in on the first band and place cursors on the both left and right sides of the band on the baseline
and perform fitting analysis with Lorentzian function within the region between the cursors.
Target Raman band.
Cursors.
Or
Curve fit using command:
CurveFit/NTHR=0 lor indene[pcsr(A),pcsr(B)] /D
Corresponding wavelength is
3-6
Repeat 3-4 and 3-5 for all the other bands to take into account, and then, plot wIndeneRS vs.
wInenePix.
Completed table.
3-7
Fit the plot with 3rd-order polynomial. The fitting result gives the Raman shift calibration curve, which
directly connects CCD pixel indices and actual Raman shifts.
Curve fit using GUI:
2. Select [wIndeneRS]
3. Select [wIndenePix]
4. Click [Do It] 1. Select [Poly] and input [4] for Polynomial Terms.
3-8
Duplicate one of measured spectrum data waves as wRamanShift, and input Raman-shift values at
each pixel indices using fitted parameters just obtained above. Each fitted parameter is stored in a
corresponding row of automatically generated wave, w_coef (0th-term -> w_coef[0], 1st-term -> w_coef[1],
and so on).
Command:
Duplicate indene, wRamanShift
wWavelength = w_coef[0] + w_coef[1]*p + w_coef[2]*p^2 + w_coef[3]*p^3
3-9
Plot Raman spectra data, e.g. wRamanSp versus wRamanShift. Because Raman spectrum is
conventionally plotted as wavenumber increases in a direction from right to left, switch the horizontal
axis direction accordingly. Make the axes labels; Raman shift / cm-1 for horizontal axis, Intensity /
counts for vertical.
Command:
Display wRamanSp, wRamanShift
SetAxis/A/R bottom
Label left "Intensity / counts"
Label bottom "Raman shift / cm¥¥S-1"
4Intensity Calibration
Relative intensity of a raw Raman spectrum along Raman-shift axis is not reliable as it is because
every apparatus has specific non-flat sensitivity over spectral range, which mainly comes from
sensitivity of the CCD camera, diffraction efficiency of the grating and transmittance of a long-pass
edge filter dependent on wavelength. To compensate this variation in sensitivity, measured Raman
spectra must be divided by a sensitivity curve. A normalized white-lamp spectrum measured with the
same apparatus and supposed to be flat over the spectral range is usually used as a sensitivity curve.
This treatment is called intensity calibration.
Before intensity calibration is performed, a part of intensity which comes from non-photon origins
must be eliminated from an output of the CCD camera. Main contribution of this non-photon intensity
is from readout noise and dark current noise. The readout noise is generated while a CCD camera is
digitizing its charges, while the dark current noise is generated all the time and accumulated during an
exposure and hence develops with time. To eliminate contribution from those noises, a dark spectrum,
which is measured literally in the dark without excitation light and with the same exposure time as
Raman spectra are measured with, must be subtracted from every raw Raman spectrum. Subsequently,
the spectrum is divided by the sensitivity curve for intensity calibration.
4-1
Display the dark and white light spectra.
Command:
Display wDark
Display wWhiteLight
Readout noise
Dark spectrum
4-3
Duplicate the wave wWhiteLight as wSensCurve. Normalize wSensCurve with an arbitrary value. The
maximum or average value of the white light spectrum may be chosen for the normalization. Here, the
sensitivity curve is normalized with the maximum value.
Command:
Duplicate wWhiteLight, wSensCurve
wSensCurve /= WaveMax(wWhiteLight)