BMODE B-mode image
BMODE creates B-mode images from I/Q signals.
Contents
Syntax
BMODE(IQ,DR) converts the I/Q signals (in IQ) to 8-bit log-compressed ultrasound images with a dynamic range DR (in dB). IQ is a complex whose real (imaginary) part contains the inphase (quadrature) component.
BMODE(IQ) uses DR = 40 dB;
Example: Speckle tracking in B-mode images
This example shows how to obtain the motion field of a rotating disk insonified with plane waves.
A rotating disk (diameter of 2 cm) was insonified by a series of 32 unsteered plane waves with a Verasonics scanner, and a linear transducer, at a PRF (pulse repetition frequency) of 10 kHz. The RF signals were downsampled at 4/3 (5 MHz) = 6.66 MHz. The properties of the linear array were:
- 128 elements
- center frequency = 5 MHz
- pitch = 0.298 mm
Download the experimental RF data. The 3-D array RF contains 128 columns (as the transducer contained 128 elements), and its length is 32 in the third dimension (as 32 plane waves were transmitted).
load('PWI_disk.mat')
The structure param contains some experimental properties that are required for the following steps.
disp('''param'' is a structure whose fields are:')
disp(param)
'param' is a structure whose fields are: fs: 6.6667e+06 pitch: 2.9800e-04 fc: 5000000 c: 1480 t0: 9.9500e-06 PRF: 10000 width: 2.6200e-04 Nelements: 128 TXdelay: [1×128 double] bandwidth: 15
Demodulate the RF signals with RF2IQ.
IQ = rf2iq(RF,param);
Create a 2.5-cm-by-2.5-cm image grid.
dx = 1e-4; % grid x-step (in m) dz = 1e-4; % grid z-step (in m) [x,z] = meshgrid(-1.25e-2:dx:1.25e-2,1e-2:dz:3.5e-2);
Create a Delay-And-Sum DAS matrix with DASMTX.
param.fnumber = []; % an f-number will be determined by DASMTX M = dasmtx(1i*size(IQ),x,z,param,'nearest');
Beamform the I/Q signals.
IQb = M*reshape(IQ,[],32); IQb = reshape(IQb,[size(x) 32]);
Create the B-mode images with BMODE.
I = bmode(IQb,30);
Display the first ultrasound image.
image(x(1,:)*100,z(:,1)*100,I(:,:,1)) c = colorbar; c.YTick = [0 255]; c.YTickLabel = {'-30 dB','0 dB'}; colormap gray title('The 1^{st} B-mode image') ylabel('[cm]') axis equal tight ij set(gca,'XColor','none','box','off')

Create an ROI.
param.ROI = median(I,3)>64;
Track the speckles with SPTRACK.
param.winsize = [32 32; 24 24; 16 16]; % size of the subwindows param.iminc = 4; % image increment [Di,Dj,id,jd] = sptrack(I,param);
Display the motion field.
image(I(:,:,1)) colormap gray hold on h = quiver(jd,id,Dj,Di,3,'r'); set(h,'LineWidth',1) hold off title('Motion field (in pix) by speckle tracking') axis equal off ij

See also
About the author
Damien Garcia, Eng., Ph.D. INSERM researcher Creatis, University of Lyon, France
websites: BioméCardio, MUST
Date modified