Beamformation Toolbox

Building synthetic aperture image

The development of a point spread function of a synthetic transmit aperture image as a function of adding transmit events.

Many years ago I wrote a toolbox for beamforming ultrasound data in Matlab. The original access was given at my old home page at the Technical University of Denmark.


Synthetic Aperture Image

50 dB Synthetic Aperture Image

This is a toolbox for Matlab written in C for beamformation of ultrasound data. It is extremely fast and supports all of the standard beamformation methods as well as monostatic, bistatic and polystatic synthetic aperture focusing. The beamformation can be either line, all lines in parallel.
Several types of focusing are supported:(a) fixed focus, (b) several focal zones, (c) dynamic focusing, (d) pixel-based focusing. The delays can be also set manually. The interface follows the widely used program Field II.

It has the ability to import transducer definitions from Field II. The program is used for the fast simulations of ultrasound images. Examples for the use of the program are given in a sub directory.
The program is accompanied by a User’s Guide in PDF.


The source code of the program and some pre-compiled DLLs can be found on BitBucket:


You must have set your Matlab to compile mex files. For Windows I have used last Visual Studio 2008. It has been some time since I have compiled the program in Linux, so it may take a little bit of tweaking, but I do not know it.

I have provided a simple script in the main directory that you can call from within Matlab:

>> mex_beamform

User Guide


I have been asked on a number of occasions for the Beamformation Toolbox. One useful thing is the example of how to create synthetic aperture images.

The first time we ever published something using it was in 2000:
J A Jensen, S I Nikolov, Fast simulation of ultrasound images Proc. IEEE Ultrason. Symp., p. 1721-1724, 2000

7 thoughts on “Beamformation Toolbox

  1. Hi Svetoslav,

    This is a rookie question and I am sorry for bothering you with it. For some reason I am not able to run the bft_init, as the function “bft” is not defined according to the matlab. I also cant find it on the toolbox. I appreciate if you guide me through.

    Thanks in advance

    • To use the BFT in Matlab, there are two conditions that must be met

      • BFT must be added to the Matlab path (addpath() command)
      • BFT must be compiled for the Matlab version you are running

      To compile the BFT, you can run the script mex_beamform(). If mex_beamform fails, the most probable cause is that you either do not have a C/C++ compiler, or you have not set up the mex() command in Matlab, which searches for a compiler. Consult the Matlab documentation about how to do that. I have compiled the toolbox with gcc and with microsoft’s compiler.

    • I have been using it in 64 bit Matlab. The last time I did that was in version 2011.
      In the last 3 years I am using exclusively Python instead of Matlab, and I do not know if the toolbox compiles to the latest versions of Matlab.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s