The figures below
are of a CPMG experiment conducted on household cooking oil using a
10.8 MHz permanent magnet.
Figure
3 below shows the pulse sequence used by the RadioProcessor to
perform this experiment. Each vertical line is a new
instruction, and the names of the delays used are shown with arrows.
The CPMG package includes an executable that will accept command line parameters which can be used to specify
the
values of each of the pulse program parameters.
BOARD_NUMBER - Should be set to zero
unless multiple SpinCore boards are connected to the computer. If
multiple boards are connected to the computer, BOARD_NUMBER should
correspond to the number of the board. (Note SpinCore boards are
enumerated beginning with 0. All PCI boards are enumerated before
USB boards).
SPECTROMETER_FREQUENCY
(MHz) -
The
spectrometer
frequency can
be between 0.0 and 100.0 MHz and should be set exactly on resonance.
SPECTRAL_WIDTH
(kHz) -
The
desired
baseband spectral width must be less than 10,000 kHz and can be as
small
as 0.072 kHz for certain designs.. This value is equal to the number of
points captured per millisecond. Narrower spectral width values
can improve the apparent signal-to-noise ratio of the acquired
data.
P2_TIME (us) - The pulse length of
the initial 90 degree pulse must be greater than or equal to 0.065
us.. This should be set exactly to the 90 degree pulse of the
system being used.
RINGDOWN_TIME
(us) - Ringdown
time (or dead time)
after the 90
degree
pulse. This value is specific to the probe and
preamplifiers being used in the system and must be greater than or
equal to 0.065
us.
P2_PHASE (degrees)- Phase of 90
degree pulse. This value should be adjusted to
achieve maximum amplitude for the receivers real channel.
P1_PHASE (degrees)
- Phase of 180 degree pulses should be
offset by +90 degrees from the P2_phase value.
TAU (us) - 2*tau is the time
between 180 degree pulses
NUMBER_OF_POINTS_PER_ECHO
- Number of points to capture at the top of each echo.
Set to 0 to do
a continuous scan (see Figure. 1)
NUMBER_OF_ECHOES
- Number of
echoes to produce.
NUMBER_OF_SCANS
- Number of times to repeat the scan (and average the
data)
FILENAME
- Filename to store data to. The CPMG.exe program
will generte Felix (.fid) and ASCII (.txt) output files.
BYPASS_FIR
- A 1 bypasses the signal around the FIR filter, or 0 to
use it. In general the FIR filter should be bypassed. See
the RadioProcessor manual for details.
ADC_FREQUENCY
(MHz) - The
Internal clock
frequency of the
board. This value should always be 75 MHz unless a custom design
with a different ADC frequency is being used.
REPETITION_DELAY
(s) -
Time
to allow
sample to relax after each scan.
AMPLITUDE
- The transmitter output amplitude scaling factor. This
value should be between 0.0 and 1.0. Note that the scaling factor
is not linear.
BLANK_BIT
- Number of the TTL output bit on the RadioProcessor to use as a
blanking signal for the power amplifier.
BLANK_DELAY (ms)
- The amount of time to assert the blanking signal bit before sending
the excitation signal so that the power amplifier may warm up.
DEBUG - Set to 1 to generate SpinAPI
debug output, otherwise, set to 0.
There are a few
parameters in Figure 3 not specified on the command line. These are
calculated as:
P1_time:
2*
P2_time (us).
This is the time for the 180 degree pulse and is automatically
calculated as twice the 90 degree pulse length.
top_time: The top time is equal to the
NUMBER_OF_POINTS_PER_ECHO divided by the SPECTRAL_WIDTH (kHz) times
1000.
P2_after1: tau
-
top_time/2
P2_after2: tau
+
top_time/2
echo_loop:
This corresponds to the three instruction loop used to
repeat multiple echoes. The
echo_loop pattern
is repeated
NUMBER_OF_ECHOES times.
Tips for acquiring CPMG Data
Several suggestions for acquiring CPMG data are listed below:
- Start with a simple single-pulse NMR experiment. Find
the resonance frequency and adjust the transmitter output phase to
achieve the largest received signal amplitude for the real channel (the
imaginary channel amplitude should be approximately zero).
- Find the 90 degree pulse length and verify that the
180 degree pulse length is twice that of the 90 degree pulse length.
- Copy the relevant parameters from the single-pulse
NMR experiment over to the CPMG program. The relevant parameters are:
- SPECTROMETER_FREQUENCY
- SPECTRAL_WIDTH
- P2_TIME (This will be the 90 degree pulse time from
the single-pulse test)
- RINGDOWN_TIME (Also known as transient time or dead
time)
- P2_PHASE (This will be the transmitter output phase
from the single-pulse test. Add 90 degrees to get the P1_PHASE.)
- ADC_FREQUENCY
- REPETITION_DELAY
- AMPLITUDE
- Estimate the TAU time. This should be approximately
equal to the time it takes for your single-pulse test FID to decay to
zero.
- Run the CPMG test initially with
NUMBER_OF_POINTS_PER_ECHO equal to zero and NUMBER_OF_ECHOES equal to
one. Make sure your SPECTROMETER_FREQUENCY is set to resonance. You
should see the inital FID from the 90 degree pulse time, followed by a
large spike (the 180 degree pulse), and then an echo. When scaled
correctly, the FID from the 90 degree pulse should look nearly
identical to the signal acquired using the single-pulse NMR test.
- Adjust the TAU and SPECTRAL_WIDTH parameters as
necessary to produce the desired echo.
- After setting all of the above parameters you can
adjust the NUMBER_OF_ECHOES to produce more echoes, and the
NUMBER_OF_POINTS_PER_ECHO to only acquire the echo tops.
- Use the amplifier blanking feature of the CPMG
program. This will prevent unnecessary use of power and creation of
heat. Be aware that if the blanking delay is longer than the time
between acquisition and the P1 pulse, the program will leave the power
amplifier on for the entire duration of a scan.
Here are a few other tips:
- Narrowing the SPECTRAL_WIDTH parameter may improve
the apparent signal-to-noise ratio. Keep in mind that reducing the
spectral width will reduce the number of points sampled per echo which
may require you to reduce the NUMBER_OF_POINTS_PER_ECHO parameter.
- Try running multiple scans to perform signal
averaging. This should also improve the signal-to-noise ratio. If the
magnetice field drifts quickly you will need to use a small
REPETITION_DELAY and be sure to set the SPECTROMETER_FREQUENCY to the
resonance frequency shorlty before running the experiment.