Skip to content

Repository files navigation

Decoding Multi-Line Transmission: Encoded vs Unencoded

Decode simultaneous focused beams creating a multi-line transmit (MLT) sequence using Retrospective Encoding for Conventional Ultrasound Sequences (REFoCUS) synthetic aperture method into the "complete data set". The spatiotemporal encoded-MLT with synthetic aperture-based decoding substantially suppresses crosstalk artifacts inherent to MLT imaging, enhances spatial coherence, and achieving image quality comparable to conventional single-line transmission (SLT), while maintaining the benefits of increased frame rate.

This code is based on the algorithm proposed in:

Eshkalak, N. J., Cassidy, C., Jone, P., Bottenus, N. "Phase Linear Encoding in Multi-Line Transmit Imaging: Towards Crosstalk Artifact Removal." Ultrasonics (2026) (https://doi.org/10.1016/j.ultras.2026.108180)

Sample results

Output of the sample code:

REFoCUS Beamforming

The code

This repository provides a MATLAB implementation of the decoding method. There have been four different scenarios (imaging sequences) considered for acquiring the cardiac data:

  1. Single-line transmission (SLT)
  2. Multi-line transmission (MLT): unencoded
  3. Multi-line transmission (MLT): polarity-encoded
  4. Multi-line transmission (MLT): delay-encoded

This code uses a simplified diverging wave beamformer for the purposes of replicating Fig. 8(a).

MAT file

All the provided MAT files are saved in Matlab v7.3 format. The data have been acquired using the Verasonics Vantage research scanner together with a P4-2v phased array transducer. The data represents the specific frame picked to replicate the results in Fig. 8(a) of the paper, which shows the parasternal long axis (PLAX) view of the heart.

Cardiac_data_acq_params.mat is the file that includes all the acquisition parameters.

  • acq_params - Acquisition parameters
    • c - Speed of sound
    • fs - Sampling frequency (Hz)
    • rx_pos - Array element locations (x,y,z) (meters)
    • t0 - Sample index of the first data point (negative indicates that recording started before transmission was finished)
    • samples - Number of axial samples in the data set
    • theta - Beam steering angles (degrees)
    • apex - Axial distance behind the array for the steered beams (meters)
    • n_mlt - Number of simultaneous MLT beams within each transmission
    • n_beams - Total number of steered beams

Cardiac_data_slt.mat contains the RF data and transmit delays for SLT sequence.

  • rf_slt - RF channel data corresponding to the SLT sequence (samples x receive channels x transmit events)
  • tx_delays_slt - The applied transmit delays for SLT sequence (transmit events x elements)

Cardiac_data_mlt.mat contains the RF data and transmit delays for MLT sequence without encoding.

  • rf_mlt - RF channel data corresponding to the MLT sequence without any encoding schemes (unencoded) (samples x receive channels x transmit events)
  • tx_delays_mlt - The applied transmit delays for MLT sequence without any encoding schemes/unencoded (transmit events x elements x number of MLT beams)

Cardiac_data_mlt_polarity_enc.mat contains the RF data, transmit delays, and the encoding matrix (weights) for MLT sequence with polarity encoding.

  • rf_mlt_polarity_enc - RF channel data corresponding to the MLT sequence in the presence of polarity encoding as explained in the paper (samples x receive channels x transmit events)
  • tx_delays_mlt_polarity_enc - The applied transmit delays for MLT sequence in the presence of polarity encoding (same as "tx_delays_mlt") (transmit events x elements x number of MLT beams)
  • W_decode - The encoding/decoding matrix (based on the Hadamard matrix explained in the paper) used for MLT sequence in the presence of polarity encoding (transmit events x elements x number of MLT beams)

Cardiac_data_mlt_delay_enc.mat contains the RF data, transmit delays, and the encoding matrix (time delays) for MLT sequence with delay encoding.

  • rf_mlt_delay_enc - RF channel data corresponding to the MLT sequence in the presence of delay encoding as explained in the paper (samples x receive channels x transmit events)
  • tx_delays_mlt_init - The initial applied transmit delays for MLT sequence prior to encoding (same as "tx_delays_mlt") (transmit events x elements x number of MLT beams)
  • encoding_delays - The delay encoding matrix used for MLT sequence in the presence of delay encoding (transmit events x elements x number of MLT beams)

MATLAB

refocus_decode.m is implemented to decode the channel data into the complete data set (multistatic data set) in the frequency domain, using Tikhonov Regularization for H matrix inversion.

See decoding_encoded_MLT.m for an example of how to use the code with the provided sample cardiac data.

About

Use REFoCUS to decode and beamform polarity and delay encoded multiline transmit imaging

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages