Provides common corrections needed for EPI data.
More...
|
int | calc_vrgf_data_matrix (DATA_OBJ *vrgf, int input_res, int output_res, float time_attack, float time_flat, float time_decay, float time_sample_delay, float time_sampling_window) |
|
int | correct_rampsamp (DATA_OBJ *k, DATA_OBJ *vrgf, void *scratchbuf) |
|
int | ngc_apply_phase_shift (DATA_OBJ *k, DATA_OBJ *ramp, fil_fft_mngr *mngr, NGC_MEM *ngc_mem) |
|
int | ngc_compute_phase_shift (DATA_OBJ *ngc_even, DATA_OBJ *ngc_odd, DATA_OBJ *ramp, fil_fft_mngr *mngr, NGC_MEM *ngc_mem) |
|
int | ngc_mem_init (int *sz, int nEl, NGC_MEM *ngc_mem) |
|
int | ngc_mem_quit (NGC_MEM *ngc_mem) |
|
Provides common corrections needed for EPI data.
These functions include that ability to grid data acquired on EPI readout gradient ramps and to correct for offsets between even and odd EPI readout lines.
See also:
int calc_vrgf_data_matrix |
( |
DATA_OBJ * |
vrgf, |
|
|
int |
input_res, |
|
|
int |
output_res, |
|
|
float |
time_attack, |
|
|
float |
time_flat, |
|
|
float |
time_decay, |
|
|
float |
time_sample_delay, |
|
|
float |
time_sampling_window |
|
) |
| |
This function computes the matrix to regrid EPI data that is sampled on the readout gradient attack and decay slopes.
- Parameters
-
vrgf | the output regridding matrix |
input_res | number of input data on readout |
output_res | number of data points on the readout line after gridding |
time_attack | the 'ramp up' time for the gradient (in msec) |
time_flat | the 'flat top' time for the gradient (in msec) |
time_decay | the 'ramp down' time for the gradient (in msec) |
time_sample_delay | the time (in msec) between the start of the readout gradient and the start of the sampling window |
time_sampling_window | length of time (in msec) the sampling window is 'on' |
int correct_rampsamp |
( |
DATA_OBJ * |
k, |
|
|
DATA_OBJ * |
vrgf, |
|
|
void * |
scratchbuf |
|
) |
| |
a function to regrid EPI data sampled on gradient ramps, using the provided gridding object
- Parameters
-
k | the input ramp-sampled data (of type "fltc" or "dblc") |
vrgf | the ramp-sampling gridding matrix. Needs to be of type "fltr", with vrgf.sz[0] == k.sz[0] |
scratchbuf | A pointer to some workspace memory. Needs to be as large as the (dblc) input data memory size. If NULL, the temporary scratch space will be internally allocated. |
int ngc_apply_phase_shift |
( |
DATA_OBJ * |
k, |
|
|
DATA_OBJ * |
ramp, |
|
|
fil_fft_mngr * |
mngr, |
|
|
NGC_MEM * |
ngc_mem |
|
) |
| |
Applies a pre-estimated phase correction to correct the k-space shift between the odd/even lines of EPI data.
- Parameters
-
k | input k-space data, of size [Nx Ny Ncoil] |
ramp | input phase correction data, of length [ ncoil ] |
mngr | and FIL FFT manager |
ngc_mem | an pre-initialized NGC object to hold the memory buffers |
int ngc_compute_phase_shift |
( |
DATA_OBJ * |
ngc_even, |
|
|
DATA_OBJ * |
ngc_odd, |
|
|
DATA_OBJ * |
ramp, |
|
|
fil_fft_mngr * |
mngr, |
|
|
NGC_MEM * |
ngc_mem |
|
) |
| |
Computes the estimated shift (for each coil of data) based on cross-correlation between the input even and odd EPI readout lines.
Input data type can be either "dblc" of "fltc".
- Parameters
-
ngc_even | input set of even (+Gx) EPI phase reference lines. Should be 2D, with size [ Nx Ncoils ] |
ngc_odd | input set of odd (-Gx) EPI phase reference lines. Should be 2D, with size [ Nx Ncoils ] |
ramp | an object to store the output estimated phase correction for each coil. Should be a "fltr" object of length [Ncoils]. If ramp->data is set to NULL, data object will be initialized internally. |
mngr | an FIL FFT manager |
ngc_mem | an pre-initialized NGC object to hold the memory buffers |
int ngc_mem_init |
( |
int * |
sz, |
|
|
int |
nEl, |
|
|
NGC_MEM * |
ngc_mem |
|
) |
| |
Initializes the memory structures needed for Nyquist ghost correction when using the 3-line-at-start-of-echo-train method.
- Parameters
-
sz | a 2D int array holding the Nx and ncoil sizes of the data used to estimate the phase correction values |
nEl | the number of complex data value elements (Nx * Ny * ncoil) in the EPI data to be corrected |
ngc_mem | the NGC memory object to hold the initialized memory |
int ngc_mem_quit |
( |
NGC_MEM * |
ngc_mem | ) |
|