Extended phase graph
MRI sequence simulation technique
From Wikipedia, the free encyclopedia
In magnetic resonance imaging and nuclear magnetic resonance the extended phase graph (EPG) is a mathematical framework used to track how magnetization evolves in a voxel through a series of radiofrequency (RF) pulses and gradients. While traditional Bloch simulations track individual spins in the spatial domain, EPG operates in the Fourier domain.[2] The magnetization vectors along one dimension of a voxel are stored as Fourier coefficients. Each Fourier coefficient represents the weighting of a helix that twists along one dimension of the voxel with an integer number of twists. Performing a weighted sum of all the helices gives the magnetization vectors in the spatial domain. In this representation, a gradient along one dimension of the voxel that causes an integer number of twists simply shifts the index of each Fourier coefficient by that integer, making EPG very computationally efficient at modeling sequences with many RF pulses and gradients. EPG was first proposed by Jürgen Hennig to model multiecho sequences[2] and is now used to model magnetic resonance fingerprinting,[3] turbo spin echos,[4] and other sequences.[5]

Definition
In the Bloch equations, within a voxel each spin along the dimension can be described by a magnetization vector where every element is real valued.[6] But and can also be described by the complex number .[7] Using a similarity matrix we can convert between the real valued basis and the complex transverse magnetization basis:
where is the complex conjugate of . To perform a rotation on the complex magnetization vector due to an RF pulse with angle and phase , we first apply a change of basis with , then apply standard cartesian rotation matrices , ,[8] then another change of basis with :[9]
Where denotes the magnetization vector after the rotation. In the EPG representation we perform a Fourier decomposition of each element of the complex magnetization vector:[2]
If , , and when or . We can write the summations as being from to . We can also write the Fourier coefficients as a vector valued function:
RF pulses
When performing a rotation, because is constant across it can enter the sum:
It can be seen in the equation above that the rotation matrix can be applied directly to the Fourier coefficients to produce updated Fourier coefficients.[1]
Gradients
A gradient in the z dimension that creates one twist from to can be applied with the matrix:
This matrix is independent of so it can enter the Fourier sum:[10]
Looking at each element of :
Performing a substitution with for the first element we get:
If and the above summation is equal to:[11]
and it can be seen that . By the same logic . So gradients in the EPG formalism simply shift the indices of the Fourier coefficients.[12][1]
Relaxation
The relaxation and recovery matrices given by the Bloch equations for a real valued magnetization vector are:[7]
Substituting with :
and are commutative so . Also , so:
is a constant vector but we can still Fourier decompose it to where if else , so:[13]
So it can be seen that to apply a relaxation, you can multiply every Fourier coefficient with the relaxation matrix and then add the recovery vector to the 0th coefficient.[14]
Total signal in voxel
The total transverse signal in the voxel is obtained by integrating over :
so when is nonzero, is multiplied by zero and doesn't end up in the sum. If the inner integral is 1. So the total transverse signal in the voxel is just . By the same logic the total longitudinal signal is .[11]
Coefficient redundancy
It can be proven that :[13][15]
and so in practice only coefficients with are stored and if a gradient occurs that would shift a coefficient to having a negative index, instead that coefficient is conjugated and stored at a non-negative index.
Computation
In practice a discrete number of Fourier coefficients are tracked. A matrix can be set up with frequencies tracked like so:[14]
This matrix can be multiplied by the RF pulse rotation matrix , or multiplied by the relaxation matrix and then have added to the first column, to update the coefficients. A gradient that adds one twist along the z dimension will result in the first row being shifted right by one, and the second row being shifted left. Then can be set to .[16]