Skip to content

litearc/slshim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slice-based dynamic shimming

written by Haisam Islam, collaboration with Christine Law

About

This is a demo that shows how to perform slice-based dynamic shimming with the static (amplitude is constant over the scan) and dynamic (amplitude can be quickly modulated) magnetic field gradients available on most MR scanners. These are:

  • static: xy, zy, zx, x^2-y^2, and z^2-(x^2+y^2)/2
  • dynamic: x, y, z, and df

The df shim is a frequency offset, and while technically not a shim, can be used to the same effect.

The dynamic shimming method consists of two steps. In the first, an axial B0 field map is used to mminimize the "total" off-resonance over the images slices (in the L2 sense). This step does not compute the through-slice gradients due to possible respiratory-induced B0 fluctuations between the slices. Thus, we use a separate sagittal map (1 slice) to account for the through-slice gradients.

The sagittal map is also used to set the frequency offsets, so if there is a discrepancy between the axial and sagittal maps, the "shimmed" axial map may look like there is a slight frequency offset in the slices. It's a matter of which map to trust to set the slice center frequencies - the axial or sagittal. This is not problematic in either case, however, since frequency offsets can be corrected for in the reconstruction.

The method also accounts for imperfections in the fields generated by the static second-order gradients. Ideally, these gradients would produce field distributions that match their mathematical expressions, e.g. the xy shim would produce a field that varies linearly with x times y. However, the actual field generates deviates slightly. The coil calibration procedure models each generated field using a basis and performs a matrix inversion to compute the gradient amplitudes necessary to actually generate the desired field most accurately (in the L2 sense).

Running the demo

This demo requires the MRIT library to be setup. Then, to run the demo, simply execute the script go.

About

Slice-based dynamic shimming for MRI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages