class.transmit_setup - moduleus/urx GitHub Wiki

Transmit_setup

Transmit event (active probe elements, waves, excitations, etc.).

Parameters

UAC URX Parameter Datatype Description
active_elements Array of Array of uint32 Indices of active probe.elements in transmit (start at index 0). The index of the first dimension correponds to the index in excitations. The second dimension stores the list of probe.elements indices subject to the excitation.
Stored as a vector of vector of uint32.
delays Array of double Delays between the start of the transmit_setup and the begining of each excitation, in [s]. The n-th element of the array corresponds to the delay of the n-th excitation in excitations.
excitations Array of references to excitation List the excitation used to transmit the wave.
Stored as a vector of weak pointers from field excitations of acquisition.
hw_config hw_config Hardware configuration of the transmit_setup.
Stored as a raw objet.
probe Reference to probe Reference to the probe within the array of probes in acquisition.
Stored as a weak pointer from field probes of acquisition.
time_offset double Time from the start of the event to the start of the transmit_setup, in [s]. Default 0.
probe_transform transform Probe transform in reference to the initial probe attitude defined in probe.transform.
Stored as a raw objet.
wave wave Description of the wave.
Stored as a raw objet.

Notes

Time offset

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

transmit_setup.time_offset

Probe transform

The transmit_setup.transform field defines the spatial transform of the ultrasound probe used for the transmit. The transmit_setup.transform is added to the initial transform of the probe defined by probe.transform:

  • Let $T_1$ be the initial probe transform defined by probe.transform in world reference frame.
  • Let $T_2$ be the transmit setup transform defined by transmit_setup.transform in probe reference frame.
  • The global transform, in the world reference frame, is $T_g = T_1 \circ T_2$

The following diagram represents an example of a transmit_setup.transform applied to a probe. $(X_0, Y_0, Z_0)$ is the world frame of reference, $(X_1,Y_1,Z_1)$ is the probe frame of reference after it's initial transform set by probe.transform, and $(X_2, Y_2, Z_2)$ is the probe frame of reference during the transmit_setup:

probe_transform.drawio.svg{width="450"}

probe.transform : {
    rotation : {-pi/2, 0, pi/2}, 
    translation:{-2, 0, 3}
}

transmit_setup.transform : {
    rotation : {0, 0, 0}, 
    translation:{0, -3, 0}
}

Delays, Excitations and Active Elements

The purpose of the fields excitations, delays and active_elements is to handle cases where:

  • the active elements used in transmit change between events
  • any multiplexing scheme
  • probe element subject to multiple excitation (ex: biasing + excitation)

Example 1 - LA

The following example shows a linear array transmitting a plane-wave on 5 elements. Note that element 2 and 6 are transmitting a different excitation than elements 3, 4 and 5:

diagram.transmit_setup_mapping.svg.drawio.svg{width="40%" height="auto"}

The fields excitations, delays and active_elements share the same indexing:

transmit_setup : {
    excitations :     {  ex0,   ex1,   ex1,   ex1,    ex0},
    delays :          {20e-9, 40e-9, 60e-9, 80e-9, 100e-9},
    active_elements : {  {2},   {3},   {4},   {5},     {6}}
}

The structure can be read as:

  • "The excitation ex0 is delayed 20ns and applied on probe element {2}"
  • "The excitation ex1 is delayed 40ns and applied on probe element {3}"
  • ...

Example 2 - CMUT RCA

The following example illustrates the use of the channel_mapping with CMUT RCA:

channel_mapping_rca.drawio.svg{width="70%" height="auto"}

transmit_setup : {
    excitations :     {   ex0,   ex1,   ex1},
    delays :          { 10e-9, 40e-9, 60e-9},
    active_elements : {{2, 3},   {2},    {3}}
}

Delays and Excitation

The array delays defines the time delay between the start of the transmit_setup and the start of the excitation. The index in delays is the same as the index in excitations. The following diagram shows an example for a focused wave:

transmit_setup.delay

transmit_setup: {
    excitations :    { ex0, ex1, ex1, ex1, ex0},
    delays :         {   8,  15,  19,  13,   6},
    active_elements : {{ 0}, {1}, {2}, {3}, {4}}
}

See Also

event | excitation | hw_config | probe | transform | wave

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