CHM 598 - Determine the Self-Diffusion of Acetone Using PFG-SE

Analysis of Pulse Field Gradient - Spin Echo NMR Data

Prof. Yarger - Methods in Magnetic Resonance

Hands-On part to Lecture #23

(The examples are done on a Intel Mac, Os X system. Red is my input. Blue is the computers responce. Black is a comment)


In class, we discussed the basics of using gradients to measure translational mobility within a sample. The Stejskal-Tanner pulsed field gradient spin echo sequence is one of the simplest methods for determining the diffusion coefficient of a liquid [J. Chem. Phys. 42, 288 (1965)]. The pulse sequence is:

Phase cycling can be included to remove spectrometer artifacts. The second half of the echo is indicated by dots, as it is this part of the echo (i.e., starting at t = 2tau) that is digitzed and used as the FID. The files on this page are 1H NMR spectra of acetone at 25C using the above illustrated pulse sequence. The PFG-SE NMR data (spectra) were taken at several gradient strengths. In particular, we took data at gradients of 2, 4, 6, 8, 10, 12, 14, 16, and 18 %. The real and imaginary FID and spectra can be downloaded here (FID Data / Spectral Data). This data was taken on a 400 MHz Bruker NMR. The sample was acetone in a 5mm glass NMR tube. These percent gradients can be converted to an absolute gradient strength using the following calibration:

% Gradient Calculated Gradient (Telsa/meter)
2 0.01
5 0.026
7 0.034
10 0.049

By increasing the gradient strength, the peak intensity of acetone decreases because of self-diffusion of acetone in the gradient. The equation that describes this phenomenon was introduced by Stejskal and Tanner [J. Chem. Phys. 42, 288 (1965)]:

Where S is the signal intensity, gamma is the magnetogyric ratio, D is the diffusion coefficient, small delta is the duration of the gradient pulse (10 ms), big delta is the time between the two gradient pulses (21 ms), and g is the magnetic-field gradient strength. The magnetogyric ratio is a constant and can be found in NMR tables of nuclei. By extracting the peak area at various magnetic field gradient strengths, you can use the above equation and a linear least squared fitting routine to extract the diffusion coefficient, D. To calculate the viscosity, one only needs to apply the Stokes-Einstein equation to the determined diffusion coefficient.

In the figure below, a representative spectrum (A and B) and free induction decay - FID (C) is presented. This comes directly from spectrum6.dat on the web site. Figure1A shows the full real spectral intensity plotted as a function of points and figure 1B is just a blow-up of the peak region. Both the real and imaginary parts of the FID are plotted in figure 1C. The original data was zero-filled to give 16k points in the spectrum.

An outline of steps needed take these spectra and calculate the diffusion coefficient and viscosity of acetone at room temperature from the provided NMR data is given below:

General Questions:

Okay, lets get started. I would advise using previous lessons to remind you how to process NMR data using Matlab..... but I will get you started:

First, logon one of the iMac computers (as Chemistry 598)

(username and password)

Start up and xterm: Applications > Utilities > X11 > xterm

It also helps to customize the xterm so you can cut and paste into the xterm. I recommend the following .Xdefaults file. (.Xdefaults). Specifically, you need to add some Meta key functions to make the xterm behave more like the standard Terminal window (Xdefault ascii text file):

Store all data in a directory named NMR (/Users/chm598/Desktop/NMR)

Now, lets start Matlab (and if you are using my .Xdefaults it will look like):

chm598$ cd /Applications/MATLAB73/bin

chm598$ ./matlab -nojvm

Now this xterm window should be a Matlab workspace:

>> cd /Users/chm598/Desktop/NMR

ASSUMING you have downloaded the data, un-zipped the archive file (PFGSE_Acetone_FIDs.zip) and have it in your current working directory (pwd..... which should be /Users/chm598/Desktop/NMR):

>> load fid2r.data

Now continue this process to load all the data into Matlab (load fid2i.data, load fid4r.data, load fid4i.data, etc.....).

Next, convert these separate real and imaginary data sets into a complex data set variable (fid2c, fid4c, etc...)

>> fid2c=fid2r+fid2i*i;

Now continue this process to make all fids a complex data set. Next you can FT the complex data sets. For example,

>> spec2=fftshift(fft(conj(fid2c)));

Now you just need to phase the data. The general concept of zero and first order phase about a pivot point is illustrated in the following Matlab script: phspec

Once you have the original FID data plotted as spectra, you can now determine the signal intensity. Assuming the linewidths are all the same, you can just find the data maximum (spec2max=max(spec2);), or you can numerically integrate each peak, or you can fit each peak to an analytical function (i.e., a Lorentzian peak).

Okay, you can take it from here.... Below, I show a few plots in matlab that you should be reproducing on the way to determining the Self-Diffusion Coefficient of Acetone:

You should calculate a self-diffusion coefficient for acetone that is in the 5x10-9 m2/sec range.