qMRI mOOC · Chapter 5

B0 Mapping

Dual-echo mapping · Phase unwrapping · Multi-echo methods

📖 B0 Mapping

Why map B0?

Image reconstruction assumes a perfectly uniform B0. It never is.

A non-uniform B0 causes

  • Signal loss (T2*)
  • Geometric distortion (EPI)
  • Failed fat saturation
  • Broad MRS lines

A B0 map lets you

  • Shim the field
  • Unwarp EPI (FUGUE)
  • Mitigate T2* signal loss
  • Compute susceptibility, χ

Measured at 3 T, after shimming: one axial slice, dual-echo GRE.

What a B0 map shows

  • Per voxel: actual − expected field
  • Units: Hz, µT or ppm
$$\delta_{ppm} = \frac{\Delta f}{f_0}\,10^6 = \frac{\Delta B}{B_0}\,10^6$$
B01 ppm =
64 mT2.7 Hz0.064 µT
1.5 T64 Hz1.5 µT
3 T128 Hz3 µT
7 T298 Hz7 µT

A 3 T brain, field map in ppm. Menu: magnitude, phase, or the map in Hz or µT.

Where ΔB0 comes from

The scanner

  • Magnet imperfections: < 1 ppm, fixed by passive shimming
  • Slow drift from heating

The subject

  • Tissue magnetic susceptibility χ
$$\Delta B_z = B_0\,(\Delta\chi \otimes d)$$

The dipole kernel d (image space) and D (k-space, as used in QSM).

From χ to ΔB0, and back

If χ is known, ΔB0 is its convolution with the dipole kernel d. B0 maps simulated this way are useful for designing shim coils and evaluating shimming algorithms.

$$\textcolor{#CC79A7}{\Delta B_0(\mathbf{r})}\,[\text{ppm}] = \textcolor{#009E73}{\int} \textcolor{#0072B2}{\Delta\chi(\mathbf{r}')}\, \textcolor{#D55E00}{d(\mathbf{r}-\mathbf{r}')}\, \textcolor{#009E73}{\mathrm{d}^3\mathbf{r}'}$$

\(\textcolor{#0072B2}{\Delta\chi(\mathbf{r}')}\)

\(\textcolor{#D55E00}{d(\mathbf{r})}\)

B0 ↑ · ◯ the r′ summed

\(\textcolor{#D55E00}{d(\mathbf{r}-\mathbf{r}')}\) on \(\textcolor{#0072B2}{\Delta\chi(\mathbf{r}')}\)

→

\(\textcolor{#0072B2}{\Delta\chi(\mathbf{r}')}\,\textcolor{#D55E00}{d(\mathbf{r}-\mathbf{r}')}\)

\(\textcolor{#009E73}{\int\!\cdot\;\mathrm{d}^3\mathbf{r}'}\)

\(\textcolor{#009E73}{\displaystyle\sum_{\mathbf{r}'}}\)→

\(\textcolor{#CC79A7}{\Delta B_0(\mathbf{r})}\)

r: the voxel where ΔB0 is computed, which moves across the map. r′: every voxel of Δχ, which the sum runs over.

In practice the convolution is computed in k-space, as a multiplication: \(\Delta B_0 = \mathcal{F}^{-1}\{D \cdot \mathcal{F}\{\Delta\chi\}\}\) (Marques & Bowtell, Concepts Magn Reson B 2005;25B:65–78).

Quantitative Susceptibility Mapping (QSM) asks the inverse question: from ΔB0 (the phase), compute χ, which tells us about the tissue.

We come back to it on slides 19–20 (unwrapping and multi-echo mapping for QSM), and in the T2 lecture, slide 26.

Air–tissue interfaces dominate

  • Air (+χ) next to tissue (−χ): largest offsets
  • ΔB0 scales with B0 (here 7 T)
  • Every subject needs its own shim

Menu: cylinders or brain. χ (left), field (middle), field with the slow background removed (right).

* This is the ΔB0 map used in QSM to compute χ.

ΔB0 effect 1:
dephasing

  • Different frequencies in a voxel → phases spread → faster decay
  • Demodulating at the wrong frequency → oscillations
$$\frac{1}{T_2^{*}} = \frac{1}{T_2} + \frac{1}{T_2'}$$

Menu: one, two or many frequencies (isochromats).

t = 0.000 s

ΔB0 effect 2: wrong frequency, wrong place

  • Frequency encodes position: off-resonance shifts voxels
  • Errors build up along the readout: EPI is worst
  • Also: slice shifts, failed fat sat

Red: a 0.1 mT/m parasitic gradient (0.25 % of the 40 mT/m encoding gradients).

How to measure ΔB0: phase changes linearly with time

$$\phi(\mathbf r,t) = \phi_0(\mathbf r) + \gamma\,\Delta B_0(\mathbf r)\,t$$
  • Slope = γΔB0: the field map
  • φ0 (coil, RF) is unknown → at least two echoes

Play; the menu switches between laboratory and rotating frame. In the rotating frame the on-resonance spin (blue) stands still.

B0 mapping technique: dual echo method

The phase of an MRI pixel at TE is:

$$\phi(TE) = \phi_0 + \gamma\,\Delta B_0\,TE$$

where φ0 is the initial phase after the excitation pulse, and is independent of TE.

$$\Delta B_0 = \frac{\phi(TE_2) - \phi(TE_1)}{\gamma\,\Delta TE}$$
  • Complex difference keeps Δφ in [−π, π): \(\angle\big(e^{i\phi_2}\,e^{-i\phi_1}\big)\)

A cylinder at one constant frequency offset.

From the scanner: DICOM typically stores phase as unsigned integers (e.g. 0 to 4095) with a rescale slope and intercept (e.g. 2 and −4096). Depending on how you read it, you get one of two ranges, both spanning [−π, π):
0 to 4095: \(\phi = \dfrac{2\pi}{4096}\,\text{value} - \pi\) −4096 to 4094: \(\phi = \dfrac{\pi}{4096}\,\text{value}\)

Data ranges differ by vendor, converter and reader, so check yours. It caught us too: qMRLab/mooc-data#1 ↗

Phase at longer echo times

  • Measured phase lives in [−π, π)
  • Sharp jumps are phase wraps
  • Longer TE → more wraps

Phase images come from real and imaginary data: ∠ = atan2(imag, real)

B0 mapping technique: dual echo in the brain

  • Each echo has wraps
  • The difference often removes them…
  • …not always: large offsets (sinuses) leave residual wraps

qMRLab mOOC dataset: qMRLab/mooc-data ↗

QSM consensus dataset (Chan et al., CC BY 4.0): Zenodo ↗

Choosing the echo times

  • Phase noise: \(\sigma_{\phi} = 1/\mathrm{SNR}_{mag}\) → short TE1
  • Longer ΔTE: more precise field
  • Shorter ΔTE: fewer wraps
  • Fat and water in phase at 3 T: ΔTE ≈ 2.34 ms
  • GRE, monopolar readouts, high bandwidth (not EPI)

No wraps in Δφ if

$$\Delta TE < \frac{1}{2\,\Delta f_{max}}$$
B0
Max ΔB01.0 ppm
Δfmax128 Hz
ΔTEmax3.91 ms

Phase wrapping

  • We measure phase modulo 2π
  • True phase = measured + 2πn: find n

Two families

  • Temporal: across echoes
  • Spatial: across neighbouring voxels

Wrapped phase (blue) and true phase (red) along one line.

Temporal unwrapping

  • Assume the phase changes by < π between echoes
  • Add or remove 2π where it jumps
  • Fit a line: slope = γΔB0

One voxel at four echo times: measured (blue), unwrapped (red), linear fit (green).

Spatial unwrapping

  • Neighbours vary smoothly: region growing from a seed
  • The seed sets the answer: solutions differ by 2nπ

Drag the divider: wrapped phase (left), the three possible unwrapped solutions (right).

Unwrapping in 2D

  • Needs one connected region, and noise masked out
  • Pick n so the mean phase in the ROI is ≈ 0 (after shimming)
  • Δφ maps unwrap more reliably than single echoes

Simulated wrapped (left) and unwrapped (right) phase. More wraps = more inhomogeneity.

Phase singularities

  • Two paths from A to B cross a different number of wraps
  • No unwrapper can give one right answer
  • Cause: poor coil combination

Fix the coil combination, not the unwrapper

Phase unwrapping software

ToolApproachNotes
PRELUDESpatial, region growingRobust to noise; slow
SEGUESpatial, like PRELUDEMuch faster
BEST PATHSpatial 3D, quality-guidedUnwraps high-quality regions first
ROMEOSpatial + temporalFast; beats PRELUDE and BEST PATH with noise
UMPIRETemporal, ≥ 3 uneven echoesHandles ΔTE beyond π; noise-sensitive
LaplacianSpatial, globalRobust but inaccurate: fine for QSM, not for shimming or qMRI

Multi-echo data: unwrap by fitting the slope

  • Unwrap each echo spatially, then across echoes
  • Fit a line through all echoes
  • A 2π offset moves the line, not its slope

More echoes → more accurate maps (QSM, shimming)

Two unwrapped solutions of three echoes, exactly 2π apart.

Multi-echo data: choosing echo times

  • TE1, TE2 close: no wraps, a first field estimate
  • It predicts the wraps of a late TE3
  • Refit with all three: more precise
  • Late echoes have less SNR: weight by magnitude

Shimming and real-time mapping

Shimming

  • A B0 map tells us the field to cancel
  • Currents in coils make known field patterns: 0th order (f0), 1st order (X, Y, Z), 2nd order (Z², ZX, ZY, X²−Y², XY)
  • Choose the currents that make the field most uniform, over a volume or a slice (i.e. minimizing the spatial SD of the field)

Real-time (breathing)

  • A map in much less than a breath
  • 2D, slice by slice: each slice has its own time
  • Dual-echo GRE, minimum TR and TEs (EPI is fast, but distorted)

shimming-toolbox.org ↗ Shimming Toolbox NeuroPoly

Key takeaways

  1. ΔB0 grows with B0 and is dominated by air–tissue interfaces
  2. Phase grows linearly with TE: φ = φ0 + γΔB0t, so two echoes at least
  3. ΔTE trades precision against wraps: no wraps if ΔTE < 1/(2Δfmax)
  4. Unwrapping (temporal or spatial) leaves a 2nπ ambiguity; singularities cannot be unwrapped
  5. More echoes: fit the slope; a close echo pair helps unwrap a late echo