Acquisition Engine

Acquisition Engine: the part of the program that collects the signal traces measured during the pulse sequence, applies the post acquisition processing to them and distributes the result to the experiment data streams, to the Scope window and to the data file.

The Acquisition Engine runs on the server side, next to the Main Engine. The main engine drives the experiment, the acquisition engine owns the data: every transient that a detection device delivers passes through it before it becomes a point (or a trace) of the experiment data set.

Before a run starts, the acquisition engine allocates one buffer that holds all data acquired within a single pass of the pulse sequence. The buffer is organized in three dimensions:

Dimension

Meaning

Trace

The number of points of a single transient, given by the trace parameter of the signal axis.

Trigger

One entry per unique acquisition trigger of the sequence, i.e. per detect statement position in the PPL Script. Traces belonging to different triggers are kept apart until they are distributed.

Stream

One entry per transient detection channel. Channels are paired: the even stream carries the in-phase (I) component and the following odd stream the quadrature (Q) component of the same detection channel.

Devices write into this buffer one trigger at a time, as their data arrive. When all channels of the sequence pass have been collected, the acquisition engine processes the complete buffer at once, so that stages which need both quadrature components (Fourier transform, mixer, filters, phase rotation, magnitude) can work on the I and Q traces together.

The processing chain applied to the buffer is described on the Post Acquisition Processing page; it is configured per experiment from the signal row of the Experiment Editor. Two of its properties are a consequence of how the acquisition engine works:

Property

Description

Phase cycling

Independently of the optional Phase stage, the acquisition engine rotates every trace by the phase that the detect statement assigned to its trigger. This is the rotation that implements phase cycling, and it is always applied. The Phase stage adds a further constant angle on top of it.

Abscissa

Stages may change the meaning of the trace abscissa. After a Fourier transform the dwell time is replaced by the frequency increment and the axis unit changes from s to Hz; the new dwell time and unit are propagated to the destination stream, so plots and stored data are labelled accordingly.

The last stage may also change the length of the data. All stages up to and including Absolute preserve the trace, whereas Integration, Peak-to-peak and RMS – one of them at a time – reduce it to one value per trigger. This is the difference between the transient and the integrated signal axis types, and

Introduced in version 3.8.10

the processing settings decide it: the signal axis is the integrated kind whenever one of the three reductions is on and the transient kind otherwise. The axis type follows every change of the settings, so the two cannot disagree.

After processing, the engine copies the traces to their destinations. The layout computed by the Virtual Machine from the detect statements tells it, for every (stream, trigger) pair, which experiment data stream receives the data, at which position and with which coefficient; this is how several triggers are accumulated into one point, and how phase cycles are added or subtracted. Decision streams used by the decision mechanism are filled from the same buffer.

Two further consumers are served in the same step. The Scope window receives a copy of the traces of the channels it has armed; its raw/processed setting selects whether that copy is taken before or after the processing chain, which is what makes it possible to compare the two. If the experiment stores the transient directly (a stream axis), the processed trace is additionally handed to the file writer that appends it to the data file while the run continues.

Data that do not come from a transient device – readings of slow devices, such as a field controller or a power meter – bypass the buffer and the processing chain and are written straight to their destination stream.

See also

Main Engine, Virtual Machine, Post Acquisition Processing, Scope Window, Experiment Axis Types