written by Haisam Islam, collaboration with Christine Law
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
, andz^2-(x^2+y^2)/2
- dynamic:
x
,y
,z
, anddf
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).
This demo requires the MRIT library to be
setup. Then, to run the demo, simply execute the script go
.