SpinCore Logo french.png   korean.png   russian.png   german.png   italian.png   port.png   espanol.png   japanese.png   Contact Us
Software Downloads

banner_left.jpg banner_right.jpg

  

SpinCore T1 Inversion-Recovery package for RadioProcessor and iSpin-NMR

Notice:

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.

Introduction:

The T1 Inversion-Recovery program is available in the RadioProcessor Example Programs.  The T1IR program performs a set of tests to calculate the T1 (spin-lattice) relaxation time of a given sample.  The program is made up of multiple scans.  Some are Inversion-Recovery scans, and others are Single Pulse NMR scans (if you let the program find the resonance frequency for you).  It then processes and displays the data using Gnuplot, a free plotting program.  For more information, please see the Gnuplot section below.  A sample Inversion-Recovery scan is shown below in Figure 1.

T1IR Timing
Figure 1: Inversion-Recovery pulse sequence.

The P2 pulse is a 180 degree pulse and the P1 pulse is a 90 degree pulse.  Different tau times are tested, and the program records the FID following the 90 pulse.  The T1 time is then calculated by plotting the strength of the FID for each tau value.  Then an exponential is fit to the data, and the T1 time is the time constant of the fitted exponential as seen below in Figure 2.

T1IR Example
Figure 2: Results for water with a T1 shortening agent.  T1 = 795 ms

The T1IR.exe program takes multiple command line parameters as seen below, and it outputs all of the data in multiple formats

T1IR Parameters:

The T1IR executable takes the following arguments as inputs in order:

SpectrometerFrequency - The spectrometer frequency in MHz
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




  • Home | Products | Design Services | Applications | Contact Us | Purchasing Info | About Us | Software Downloads

    © 2012 SpinCore Technologies, Inc.