This software is provided
'as-is', without any express or implied warranty. There are known
errors that will intermittently cause this program to crash, although
they are rare and will generally not affect the its functionality.
SpectralWidth
- The spectral width in kHz
P1_Time - The duration of the 90 degree pulse
in us
P2_Time - The duration of the 180 degree pulse
in us
ringdown_time - The time between the pulses
and signal acquisition in us
P2_phase - The phase of the 180 degree pulse
in us
P1_phase - The phase of the 90 degree pulse in
us
tau_min - The minimum tau value to be tested
in ms (not used if auto_tau_range=1)
tau_max - The maximum tau value to be tested
in ms (not used if auto_tau_range=1)
tau_steps - The number of tau values to test.
step_distribution - Value for adjusting the
distribution of taus from tau_min to tau_max (see Automating Parameters
section below)
points - Number of points acquired for each
inversion recovery scan
average - Number of points to average for each
inversion recovery scan to get the peak value for each tau
scans - Number of inversion recovery scans to
run for each tau
blanking_bit - Bit used to control the
amplifier blanking (example: 0b00000001 is blanking bit 0, 0b00000010
is blanking bit 1)
blanking_delay - The amount of time to
de-blank the amplifier before sending excitation pulses.
FName - File name prefix to be used for each
file outputted by the T1IR program
BypassFIR - Bypass the FIR filter
adcFrequency - Frequency of the ADC in MHz
repetition_delay - The delay between scans in
seconds
res_auto - Specifies if and how often the
resonance frequency is checked and adjusted (see Automating Parameters
section below)
res_SW - Spectral width in kHz used for
resonance finding scans
res_repetition_delay - Repetition delay in
seconds used for resonance finding scans
res_num_points - Number of points used for
each scan in resonance finding scans
res_num_scans - How many scans to run when
detecting the resonance frequency
auto_tau_range - Specifies if the tau range
will be determined automatically (see Automating Parameters section
below)
auto_tau_range_seed - Seed tau value used for
automatic tau range determination (see Automating Parameters section
below)
correct_dc_offset - Specifies if DC components
caused by acquisition filters or amplifiers are automatically removed
(see Automating Parameters section below)
auto_phasing - Specifies if the output data
will be automatically phased (see Automating Parameters section below)
Automating Parameters:
There are multiple parameters for the T1IR program that will automate
different tasks. Here is a description of them and what they
control:
res_auto - automatic resonance frequency
finder
- If res_auto = 0, then there will be no changes to
the spectrometer frequency, and there will be only inversion recovery
scans performed.
- If res_auto = 1, before the inversion recovery
scans are performed, a single pulse NMR program will perform a scan
according to the res_ parameters as seen above. The resonance
frequency will then be set according the test scan, and another scan
will be performed to show the user that the scan was successful.
The results of this scan is shown in the OnResonance.fid file created
in the same directory as T1IR.
- If res_auto = 2, The initial resonance frequency
test is performed as stated for res_auto = 1, but also a resonance
frequency test is performed before each inversion recovery test.
This keeps the program on resonance throughout the entire experiment.
auto_tau_range - automatic range
adjuster for the tau values
- If auto_tau_range = 0, then the program tests
tau_count different values for tau between tau_min and tau_max linearly
(unless step_distribution > 1.0, see below).
- If auto_tau_range = 1, then the program uses scans
for three different tau values to make an estimate for T1. It
then sets tau_min = 0.5 ms and tau_max = 4 * the T1 estimate and
continues the test with those values.
- The first tau tested is 0.5 ms.
- The second tau tested is auto_tau_range_seed
(usually 200 ms).
- If the results from the second tau are within an
acceptable range, then the T1 time is estimated here, and the third
scan is for tau = the T1 estimate.
- If the results from the second tau were too high
or too low, a third tau is tested to find an estimate for T1.
- Once a T1 estimate is obtained, the scan
continues between 0.5 ms and 4 * the T1 estimate using a repetition
delay of 5 * the T1 estimate.
step_distribution - automatic tau
distributor between tau_min and tau_max (this has no effect if
auto_tau_range = 1)
- This function is disabled on the batch file
- If step_distribution <= 1, then the taus are
distributed linearly between tau_min and tau_max.
- If step_distribution > 1, then the taus are
distributed logarithmically between tau_min and tau_max according to
the magnitude of step_distribution.
- correct_dc_offset - corrects for errors in dc offset
due to acquisition filters and amplifiers.
- If correct_dc_offset = 0, there is no change to the
acquired data.
- If correct_dc_offset = 1, then the last 1/4 of
points in the real and imaginary channels are averaged to find the
dc_offset. Then that amount is subtracted from both the real and
imaginary to correct for the offset.
- auto_phasing - automatically phases the output data
- If auto_phasing = 0, then there is no change to the
acquired data.
- If auto_phasing = 1, then the phase of the data is
determined by the phase of the first point, and the sign of the data is
determined by the phase of the first result (preferably from tau = 0.5
ms) compared to the current scan's phase.
- The phase for the first tau (0.5 ms normally) is
stored as your reference phase, and that scan is phased to have a
negative sign (meaning the real part is negative and imaginary part is
zero).
- For each following scan:
- If the difference between the reference phase
and the current scan's phase is less than 180 degrees, then the current
scan's sign is negative when phasing (real is negative and imaginary is
zero).
- If the difference between the reference phase
and the current scan's phase is greater than 180 degrees, then the
current scan's sign is positive when phasing (real is positive and
imaginary is zero).
T1IR Output Files:
The T1IR.exe file produces many output files. They all use FName
as their prefix.
The
types
of
output files are shown below:
- FName_tau#.fid - Felix output from the inversion
recovery test
- FName_tau#.txt - ASCII output from the inversion
recovery test
- FName_test#.fid - Stores the output of the
SinglepulseNMR scans to test the resonance frequency
- FName_final.txt - Stores the tau value and the
magnitude of the resulting FID along with the spectrometer frequency
for each tau value
- FName_plot.gp - A Gnuplot script to plot the data
with a fitted exponential. This script outputs the following
files:
- FName_output.jpg - The Inversion-Recovery plot
- FName_T1.txt - The T1 time saved in a text file
Gnuplot Information:
T1IR uses the program gnuplot to create the output graphs that show the
final data. Gnuplot is a multi-platform plotting program that is
freely distributed at
gnuplot's
website. Windows binary downloads can be found at
Source Forge.
We
tested
the
T1IR program with version 4.4.2 of gnuplot, but newer
versions should be compatible with the gnuplot script generated by our
software. The T1IR batch file calls the gnuplot program to
process and display the data, so for that to work correctly, you need
to specify the location of gnuplot.exe in the variable
gnuplot_path
within the batch file. Normal locations are C:\Program
Files\gnuplot\binary or C:\gnuplot\binary, but yours may be different
depending on where you installed Gnuplot.
T1IR Testing Tips:
- Calculate your 90 degree pulse width and your 180
degree pulse width using our MATLAB package or the Pulse-Width Finder. You
will notice that if your repetition delay is too short, your sinusoidal
curve produced by this pulse width test will have a much faster rise
time than fall time. Increase your repetition delay until you see
equal rise and fall times, and use this repetition delay in preliminary
T1IR tests.
- Use the T1IR's automatic resonance function to set
the resonance frequency before each scan. Check your
OnResonance.fid file to make sure that it found the resonance frequency
correctly. You can check the *.fid files for each scan to see
that they stayed on resonance throughout the entire experiment.
Resonance frequency data is stored along with the peak data and the tau
times in the file "<FName>_final.txt" (where <FName> is the
file name provided for the program).
- Use a low spectral width to reduce noise.
- You don't need to collect lots of points. 128
is sufficient if using a small enough spectral frequency.
Download
The T1IR Package is available as part of the RadioProcessor
Examples.
T1IR.exe
(32-bit)
T1IR.exe
(64-bit)
T1IR.bat
Source code:T1IR.c,
T1IR.h