Skip to content
/ DREAM Public

The DREAM toolbox is a free open source acoustic field simulation and processing tool

License

GPL-2.0, GPL-2.0 licenses found

Licenses found

GPL-2.0
LICENSE
GPL-2.0
COPYING
Notifications You must be signed in to change notification settings

frli8848/DREAM

Repository files navigation

Introduction

The DREAM (Discrete REpresentation Array Modeling) toolbox is a free open source toolbox for simulating acoustic fields radiated from common ultrasonic transducer types and arbitrarily complicated ultrasonic transducers arrays. The DREAM toolbox enables analysis of beam-steering, beam-focusing, and apodization for wideband (pulse) excitation both in near and far fields.

The DREAM toolbox can be used to, for example, simulate and evaluate array designs, evaluate imaging methods etc. An example is shown in Figure 1 below where the wavefield of an (undersampled) 32 element linear array has been simulated.

Figure 1. Simulated wavefield snapshot for a 32 element linear array.

The toolbox consists of a set of routines for computing (discrete) spatial impulse responses (SIRs) for various single-element transducer geometries as well as multi-element transducer arrays. Based on linear systems theory, these SIR functions can then be convolved with the transducer's electrical impulse response to obtain the acoustic field at an observation point. By using the DREAM toolbox one can simulate ultrasonic measurement systems for many configurations including phased arrays and measurements performed in lossy media.

The DREAM toolbox uses a numerical procedure based on based on the discrete representation (DR) computational concept [[1],[2]] which is a method based on the general approach of the spatial impulse responses [[3],[4]].

The DREAM Toolbox can be used using:

  • Matlab and Octave,
  • Python (experimental),
  • Julia (experimental, only tested on Linux),

Features

  • Computes spatial impulse responses (SIRs) directly in a discrete form,
  • Support for many common transducer and array types,
  • Support for parallel processing using threads (and on the GPU on select functions),
  • Compute SIRs for lossy media,
  • Accelerated delay-and-sum (DAS) synthetic aperture imaging beamforming (SAFT, TFM and row-column adressed [RCA] array DAS).

User Manual

There is a PDF version of the user manual for each release available here:

https://github.com/frli8848/DREAM/releases

Look under Assets for the corresponding release.

Functions

Function Description MATLAB Octave Python Julia
dreamline Strip/line transducer Yes Yes Yes Yes
dreamrect Rectangular transducer Yes Yes (*) Yes Yes
dreamrect_f Focused rectangular transducer Yes Yes Yes Yes
dreamcirc Circular transducer Yes Yes (*) Yes Yes
dreamcirc_f Focused circular transducer Yes Yes Yes Yes
dreamsphere Spherical concave/convex transducer (defocused/defocused) Yes Yes Yes Yes
dreamcylind Cylindrical concave/convex transducer (focused/defocused) Yes Yes Yes Yes
dream_arr_rect Array with rectangular elements Yes Yes Yes Yes
dream_arr_circ Array with circular elements Yes Yes Yes Yes
dream_arr_cylind Array with cylindrical concave/convex elements (focused/defocused) Yes Yes Yes Yes
dream_arr_annu Annular array Yes Yes Yes Yes

Table 1. DR-based transducer functions.

Function Description MATLAB Octave Python Julia
rect_sir time-continous (analytic) rectangual ransducer Yes Yes (*) N/A N/A
circ_sir time-continous (analytic) circular ransducer Yes Yes N/A N/A
scirc_sir sampled time-continous (analytic) circular transducer Yes Yes N/A N/A

Table 2. Analytic transducer functions.

Function Description MATLAB Octave Python Julia
conv_p threaded one dimensional convolution Yes Yes N/A N/A
fftconv_p threaded one dimensional FFT based convolutions Yes Yes N/A N/A
fftconv_ola threaded one dimensional FFT based convolutions using overlap-and-add Yes Yes N/A N/A
sum_fftconv threaded sum of one dimensional FFT based convolutions Yes Yes N/A N/A
das threaded delay-and-sum (DAS) beamforming (SAFT, TFM, and RCA) Yes (*) Yes (*) N/A N/A
das_uni (OpenCL only) DAS beamforming using uniform grids (SAFT, TFM, and RCA) Yes (*) Yes (*) N/A N/A

Table 3. Threaded (parallel) signal processing algorithms.

(*) Experimental GPU support (OpenCL).

See also known issues here.

References

[1] B.Piwakowski and B. Delannoy. "Method for Computing Spatial Pulse Response: Time-domain Approach", Journal of the Acoustical Society of America, vol. 86, no. 6, pp. 2422--32, Dec. 1989.

[2] B. Piwakowski and K. Sbai. "A New Approach to Calculate the Field Radiated from Arbitrarily Structured Transducer Arrays", IEEE Transactions on Ultrasonics, Ferroelectrics and Frequency Control, vol. 46, no. 2, pp. 422--40, March 1999.

[3] G. E. Tupholme, "Generation of acoustic pulses by baffled plane pistons", Mathematika, vol 16, pp. 209--224, 1969.

[4] P.R. Stepanishen. "Transient radiation from pistons in an infinite planar baffle", Journal of the Acoustical Society of America, vol 49, pp. 1629--38, 1971.

Installation

See the installation instructions here.

About

The DREAM toolbox is a free open source acoustic field simulation and processing tool

Resources

License

GPL-2.0, GPL-2.0 licenses found

Licenses found

GPL-2.0
LICENSE
GPL-2.0
COPYING

Stars

Watchers

Forks

Packages

No packages published