ncigt-fil
Functions
CINE processing functions

Functions

void calc_DC_for_b1 (short Nx, short N_acq, short Ny, short Nf, short fr1, short ncoils, KCOORD *kline_c, int *acq_record, COMPLEX *xkykz, COMPLEX *DC_xkykz)
 
void nonlin_cphase (SCAN_INFO hdr, int *hb_length, float *acq_timing, float systole_thr)
 
void puzzleout_cineacq (int *trig_rr, int *trig_seg, int *trig_slice, SCAN_INFO *hdr_ptr, KCOORD *kline_o, KCOORD *kline_e, int *hb_length, float *acq_timing)
 
void read_ecg_info (char **ecgfile, SCAN_INFO *hdr_ptr, int *trig_rr, int *trig_seg, int *trig_slice, int pass)
 
void retrosp_gating_interp (short ncoils, short Nf_intrp, short Nf, short N_lines, short Ny, short Nx, short k, short ky, float *cph_record, float *ph_recon, COMPLEX *current_line, COMPLEX *kcine)
 
void sort_rds_data (short *rawdata, int z, SCAN_INFO hdr, float *acq_timing, COMPLEX *kspace_data)
 

Detailed Description

Function Documentation

void calc_DC_for_b1 ( short  Nx,
short  N_acq,
short  Ny,
short  Nf,
short  fr1,
short  ncoils,
KCOORD *  kline_c,
int *  acq_record,
COMPLEX *  xkykz,
COMPLEX *  DC_xkykz 
)

Calculate the DC data to be used for self-calibration purposes.

Parameters
Nxnumber of points along readout
N_acqnumber of acquired phase encodes
Nyresolution along phase encode dimension
Nfnumber of temporal frames
fr1select whether the data should be considered as an odd (fr1=0) or even (fr1=1) temporal frame.
ncoilsnumber of coils
kline_ca list of the acquired k-space lines
xkykzinput data, size: Nx, N_acq, Nf, ncoils, Nz
DC_xkykzoutput coil sensitivity estimate, size: Nx,2*N_acq,1,ncoils
void nonlin_cphase ( SCAN_INFO  hdr,
int *  hb_length,
float *  acq_timing,
float  systole_thr 
)

Calculate cardiac phase, using a non-linear model whereby diastole data get stretched more than systole data, when accounting for arrythmia.

Parameters
hdrPointer to the structure with scan info.
hb_lengthLength of each RR interval, in units of TR (output).
acq_timingInfo regarding every single TR in the entire acquisition (0. ky,
  1. linear cardiac phase,
  2. slice, 3. frame number,
  3. order within segment, 5. heartbeat number, 6. index in sampling function, 7. non-linear cardiac phase).
systole_thrFraction of a (normal, or avera- ge) heartbeat considered to belong to systole.
void puzzleout_cineacq ( int *  trig_rr,
int *  trig_seg,
int *  trig_slice,
SCAN_INFO *  hdr_ptr,
KCOORD *  kline_o,
KCOORD *  kline_e,
int *  hb_length,
float *  acq_timing 
)

Figure out how the cine acqui- sition proceeded, based on the timing of the R waves, the sampling function, and scan parameters.

Parameters
trig_rrTiming of R-waves, in units of TR.
trig_segSegment being acquired in given RR.
trig_sliceSlice being acquired in given RR.
hdr_ptrPointer to the structure with scan info.
kline_oSampling function, odd time frames.
kline_eSampling function, odd time frames.
hb_lengthLength of each RR interval, in units of TR (output).
acq_timingInfo regarding every single TR in the entire acquisition (0. ky, 1. linear cardiac phase,
  1. slice, 3. frame number,
  2. order within segment, 5. heartbeat number, 6. index in sampling function, 7. non-linear cardiac phase).
void read_ecg_info ( char **  ecgfile,
SCAN_INFO *  hdr_ptr,
int *  trig_rr,
int *  trig_seg,
int *  trig_slice,
int  pass 
)

First pass at reading the file, with ECG info, generated by the psd.

Parameters
ecgfileName of the ECG info file.
hdr_ptrPointer to the structure where the info is to be stored.
trig_rrTiming of R-waves, in units of TR.
trig_segSegment being acquired in given RR.
trig_sliceSlice being acquired in given RR.
passFor pass = 1, just find how many entries there are. For pass = 2, actually read these entries and store in memory.
void retrosp_gating_interp ( short  ncoils,
short  Nf_intrp,
short  Nf,
short  N_lines,
short  Ny,
short  Nx,
short  k,
short  ky,
float *  cph_record,
float *  ph_recon,
COMPLEX *  current_line,
COMPLEX *  kcine 
)

Sort the data gathered by the raw data server.

Parameters
ncoilsNumber of receiver coils.
Nf_intrpSize time direction, after.
NfSize time direction, before.
N_linesNumber of ky-kz lines.
NySize y/ky direction.
NxSize in x/kx direction.
kIndex for current line.
kyky location for current line.
cph_recordRecord of cardiac phase.
ph_reconPhase values desired.
current_lineOne k-line worth of data.
kcineArray where to store result
void sort_rds_data ( short *  rawdata,
int  z,
SCAN_INFO  hdr,
float *  acq_timing,
COMPLEX *  kspace_data 
)

Sort the data gathered by the raw data server.

Parameters
rawdataRaw data from the raw data server, for all slices.
zSlice to be sorted out.
hdrScan info.
acq_timingInfo regarding every single TR in the entire acquisition (0. ky,
  1. linear cardiac phase, 2. slice,
  2. frame number, 4. order within segment, 5. heartbeat number,
  3. index in sampling function,
  4. non-linear cardiac phase).
kspace_dataSorted data, for desired slice.