#include <KSFoundation.h>
Data Fields | |
KS_BASE | base |
KS_DESCRIPTION | description |
int | duration |
float | rbw |
FILTER_INFO | filt |
int * | pos |
LONG | override_R1 |
WF_PULSE * | echo |
KS_READ_RESAMPLER | resampler |
The KS_READ core sequence object is responsible for acquiring data in a certain time window using some receiver bandwidth [kHz]. Direct use of KS_READ applies to cases like MR spectroscopy where no gradients are involved during data acquisition. It can also be used together with a KS_WAVE to make arbitrary non-Cartesian readouts (as there is currently no composite object ready to handle non-Cartesian readouts).
The information necessary for an acquisition window is:
.rbw
- the desired receiver bandwidth / FOV in [kHz] (max: 250).duration
- the duration in [us]On calling ks_eval_read() in cveval()
the function will validate the desired rBW and round it to the nearest valid value. Also the duration will be rounded up to fit a whole number of samples in the acquisition window.
NOTE: Regardless of the order the KS_READ object is placed out in the @pg
section, its instance index is automatically sorted in time, like KS_TRAP and KS_WAVE. Hence, myacqwin.echo[0]
in the example below will always be the first acquisition window in time belonging to this KS_READ object. The number of instances of each KS_READ object in the sequence is given by .base.ngenerated
(on TGT) and .base.ninst
(on HOST). In scan(), use .base.ngenerated
instead of relying on other variables such as opnecho
when e.g. calling loaddab()
.
It is a requirement that there is a (sequence generating) function in the @pg
section (containing the ks_pg_read() call(s)) that can be run on both HOST and TGT. This function should be called exactly once in cveval()
(after ks_eval_read() and other ks_eval_***()
functions). ks_pg_read() will throw an error on TGT if this has not been done.
KS_BASE base |
Internal use
KS_DESCRIPTION description |
Descriptive string for the KS_READ object with maximum KS_DESCRIPTION_LENGTH characters
int duration |
Duration of the acquisition window in [us]
float rbw |
Receiver bandwidth per FOV in [kHz] (max: 250)
FILTER_INFO filt |
GE's standard filter structure (used in e.g. setfilter())
int* pos |
LONG override_R1 |
override the receive gain for this echo
WF_PULSE* echo |
N.B.: We need one WF_PULSE per instance so KS_WFINSTANCE is not needed for KS_READ
KS_READ_RESAMPLER resampler |
Used to retrieve resampling params