FTIR2.txt

PM-FTIR Spectra Normalization Procedure Normalizing polarization-modulation Fourier transform infrared (PM-FTIR) spectra entails removing the broad background PM curve and converting the differential reflectivity into absorbance units. The normalization procedure is given below in the form of macros for the Macintosh software program IGOR PRO (Wavemetric's, Inc.). For those not familiar with this program, it calls a list of data points a "wave," and a variable is clearly just a single value. Mathematical operations are carried out on these waves just as on a spreadsheet column, for example. Prior to running the normalization macros, the PM-FTIR spectra need to be loaded into waves within IGOR PRO. The spectra are saved as ASCII tables on the IBM compatible computer controlling the FTIR spectrometer. Then, they are easily loaded into IGOR PRO as "general text;" upon loading they are given wave names of wn?? and tr??. This nomenclature is necessary for the specific macros below which operate only on waves named wn?? and tr??, where the ?? denotes a suffix (e.g. aa, 01, etc.). At this point, the macro "setup" can be executed. Before running the actual calculation macro "cnc," a few variables need to be assigned numerical values. The first is the gain for the demodulation electronics (g). The other parameters (xtop, xbot, ytop, ybot, and dr) define the computer generated background PM curve (bg??). Initially, dr is set to 0, which makes this theory PM curve a quadratic; non-zero values of dr give small amounts of cubic character to this PM curve. Values are assigned to xtop and ytop by choosing a point at the vertex of the experimental PM curve in the PM-FTIR spectrum, which was plotted by the setup macro. Since the vertex is one of the points, only one other point is required to define the quadratic, and the x and y values of that point are assigned to xbot and ybot. Finally, the "cnc" macro can be executed to yield a normalized spectrum in absorbance units. Frequently, a better normalization (flatter baseline) is achieved by slightly varying the values of xtop, xbot, ytop, ybot, and dr. The computer generated background PM curve is plotted with the non-normalized spectrum, and so one can observe the quality of the fit. The macro "recrv" can be used to recalculate the background curve and look for improvements in the fit. Once satisfied, the "recnc" macro is used to recalculate the final normalized absorbance spectrum. Macro setup(suffix) String suffix,wn,tr,bg,no,absrb | creates strings Variable/G xtop,ytop,xbot,ybot,xdel,c,dr,g | creates variables wn="wn"+suffix | assigns wn as wn??, etc. tr="tr"+suffix | hereafter called $wn, etc. bg="bg"+suffix no="no"+suffix absrb="absrb"+suffix Duplicate $wn $bg,$no,$absrb | creates waves $bg, $no, $absrb DefaultFont "Helvetica" Display $tr vs $wn | plots $tr vs $wn PauseUpdate | SetAxis bottom 2000,950 | SetAxis left 55,116 | simply graphing parameters ShowInfo | ResumeUpdate | EndMacro Macro cnc(suffix) String suffix,wn,tr,bg,no,absrb Variable bl wn="wn"+suffix tr="tr"+suffix bg="bg"+suffix no="no"+suffix absrb="absrb"+suffix bl=(ytop/g/100) | bl, xdel, and c are intermediate values xdel = xbot - xtop | used in background curve ($bg) calc c = (ybot - ytop)/(xdel^2 + dr*xdel^3) $bg = ytop + c*($wn - xtop)^2 + c*dr*($wn - xtop)^3 | eqn. to generate $bg Append $bg vs $wn | displays $bg on same plot as spectrum $no = ($tr*ytop)/($bg*g*100) | $no=1-$no | $no is intermed. wave which ends up $no= bl +$no | equivalent to a transmittance spectrum $absrb = - log ($no) | and is then converted to $absrb Display $absrb vs $wn PauseUpdate | Modify lowTrip(left)=0.01,notation(left)=1 | Modify fSize=18 | SetAxis bottom 2000,9500 | simply graphing parameters Label bottom "\Z24Wavenumber" | Label left "\Z24Absorbance" | Textbox /A=LT/X=1/Y=1 "\Z18 " | ShowInfo | ResumeUpdate | EndMacro Macro recrv(suffix) | recalc $bg w/o extra stuff of cnc macro String suffix,wn,tr,bg,no,absrb Variable bl wn="wn"+suffix tr="tr"+suffix bg="bg"+suffix no="no"+suffix absrb="absrb"+suffix bl=(ytop/g/100) xdel = xbot - xtop c = (ybot - ytop)/(xdel^2 + dr*xdel^3) $bg = ytop + c*($wn - xtop)^2 + c*dr*($wn - xtop)^3 Endmacro Macro recnc(suffix) | renormalize after using recrv macro String suffix,wn,tr,bg,no,absrb Variable bl wn="wn"+suffix tr="tr"+suffix bg="bg"+suffix no="no"+suffix absrb="absrb"+suffix bl=(ytop/g/100) xdel = xbot - xtop c = (ybot - ytop)/(xdel^2 + dr*xdel^3) $bg = ytop + c*($wn - xtop)^2 + c*dr*($wn - xtop)^3 $no = ($tr*ytop)/($bg*g*100) $no=1-$no $no= bl +$no $absrb = - log ($no) EndMacro