urx.receive_setup - moduleus/urx GitHub Wiki

Setup used to receive and sample data.

Parameters

Parameter Datatype Description
active_elements Array of Array of uint32 Indices of active probe.elements. The first dimension's index is the position of the RF-line in group_data.data, the second dimension stores the list of probe.elements indices contributing to the RF-line. The size of the first dimension indicates the number of acquired RF-lines. See notes.
modulation_frequency double Modulation frequency used in case of IQ-data, in [Hz]. Only used if group.data_type == IQ. Default NaN.
number_samples uint32 Number of samples per RF-line. All the RF-lines of a receive_setup contain the same number of samples.
probe Reference to probe probe used in reception, references the array acquisition.probes.
sampling_frequency double Sampling frequency, in [Hz]. Default NaN.
time_offset double Time delay between the event start and the acquisition of the first sample, in [s]. Default 0.
tgc_profile Array of double Analog TGC profile sampled at tgc_sampling_frequency, in [dB]. If the gain is constant during the receive, the array contains a single value. If not specified the array can be empty.
tgc_sampling_frequency double Sampling frequency of the TGC profile, in [Hz]. Must be defined if tgc_profile has more than one value.
transform transform Probe transformation in space, in reference to the initial probe attitude defined in probe.transform.

Notes

Active Elements

The field active_elements defines the relation between the active probe element in receive mode, and the storage of the RF-lines in group_data.raw_daw. The following examples illustrate the relationship.

Example 1

This example demonstrate a typical case where half of the RCA elements are used in receive:

receive_setup_ex1_0.drawio.svg

receive_setup : {
    active_elements: {{4}, {5}, {6}, {7}}
}

The active_elements field can be read as:

  • the RF-line 0 stores the contribution of probe_element 4
  • the RF line 1 stores the contribution of probe_element 5
  • ....

Example 2

In this example, the RF-line $RF_3$ record the contribution of probe element 5 and 6. This situation is typical is system with a receive multiplexer or a micro-beamformer circuit.

receive_setup_mapping<span data-escaped-char><span data-escaped-char><span data-escaped-char>_</span></span></span>.drawio.svg

receive_setup : {
    active_elements: {{3}, {1}, {4}, {5, 6}, {7}}
}

Time offset

The following diagram shows the receive_setup.time_offset signification. The time_offset is expressed in reference to the start of the event:

urx.receive_setup.timeoffset

Number of samples and sampling frequency

In a given receive_setup, every RF-line acquired contains the same number of samples, sampled at sampling_frequency and starting at time_offset after the start of the event.

The following diagram represents an example of receive_setup, the time scale is expressed in nano-seconds and $t=0$ correspond to the start of the event:

urx.receive_setup.samples

The example shows the receive_setup containing 10 data-samples (D0 to D9), sampled at 20MSPS (1 sample every 50ns).

receive_setup : {
    number_samples : 10,
    sampling_frequency : 20e6,
    time_offset : 500e-9
}

TGC : Time Gain Compensation

The TGC (Time Gain Compensation) record the increase of the receive-gain with time that compensates the attenuation of ultrasound energy with depth. The fields tgc_profile and tgc_sampling_frequency define the gain of the receive circuit versus time, in dB. The tgc_profile contains the gain that has already been applied to the data samples. The same TGC profile is applied to every RF-line of an event. The first value in in the array tgc_profile corresponds to time of the first data-sample of the receive_setup.

The following diagram shows an example of TGC. The tgc_sampling_frequency is 5MHz (200ns period). The interpolation/extrapolation of the TGC value between the samples is not defined by the standard.

urx.receive_setup.tgc

receive_setup : {
    number_samples : 20,
    sampling_frequency : 20e6,
    time_offset : 500e-9,
    tgc_sampling_frequency : 5.0e6,
    tgc_profile : [0, 10, 20, 30, 40]
}

Probe Transform

The receive_setup.transform behave similarly as the transmit_setup.transform.

See Also

event | group_data | probe | transmit_setup

⚠️ **GitHub.com Fallback** ⚠️