Illustrate synthetic transmit focusing for Alpinion data
by Ole Marius Hoel Rindal olemarius@olemarius.net
Last updated 15.05.2018
Contents
Setting up file path
clear all; close all; % data location url='http://ustb.no/datasets/'; % if not found downloaded from here local_path = [ustb_path(),'/data/']; % location of example data % Choose dataset filename='Alpinion_L3-8_FI_hypoechoic.uff'; % check if the file is available in the local path or downloads otherwise tools.download(filename, url, local_path);
Reading channel data from UFF file
channel_data=uff.read_object([local_path filename],'/channel_data');
channel_data.N_frames = 1;
UFF: reading channel_data [uff.channel_data] UFF: reading sequence [uff.wave] [====================] 100% Warning: You just deleted all frames except frames 1 to 1, I hope you meant to!
%Print info about the dataset
channel_data.print_authorship
Name: FI dataset of hypoechic cyst recorded on an Alpinion scanner with a L3-8 Probe from a CIRC General Purpose Ultrasound Phantom Reference: www.ultrasoundtoolbox.com Author(s): Ole Marius Hoel Rindal <olemarius@olemarius.net> Muyinatu Lediju Bell <mledijubell@jhu.edu> Version: 1.0.2
Define Scan
z_axis=linspace(0e-3,60e-3,750).'; x_axis=zeros(channel_data.N_waves,1); for n=1:channel_data.N_waves x_axis(n) = channel_data.sequence(n).source.x; end scan=uff.linear_scan('x_axis',x_axis,'z_axis',z_axis);
Delay the data with DAS
das = midprocess.das(); das.channel_data=channel_data; das.dimension = dimension.transmit(); das.scan=scan; das.transmit_apodization.window=uff.window.tukey25; das.transmit_apodization.f_number=4; das.receive_apodization.window=uff.window.tukey25; das.receive_apodization.f_number=3; b_data_RTB = das.go();
USTB MEX C beamformer...Completed in 1.75 seconds.
Estimate coherence on RTB data
cf = postprocess.coherence_factor() cf.dimension = dimension.receive; cf.input = b_data_RTB; cf_RTB = cf.go(); cf_RTB = cf.CF;
cf =
coherence_factor with properties:
CF: []
active_element_criterium: 0.1600
dimension: both
input: []
output: []
receive_apodization: []
transmit_apodization: []
name: 'Coherence Factor MATLAB'
reference: 'R. Mallart and M. Fink, Adaptive focusing in scattering media through sound-speed inhomogeneities: The van Cittert Zernike approach and focusing criterion, J. Acoust. Soc. Am., vol. 96, no. 6, pp. 3721-3732, 1994'
implemented_by: {1x2 cell}
version: 'v1.0.5'
Rerun the DAS with scanline transmit apodization
das.transmit_apodization.window=uff.window.scanline;
b_data_scanline = das.go();
% Estimate coherence on scanline delayed data
cf.input = b_data_scanline;
cf_scanline = cf.go();
cf_scanline = cf.CF;
USTB MEX C beamformer...Completed in 0.34 seconds.
cf_RTB.plot(subplot(121),'CF',[],['none']); colormap default; cf_scanline.plot(subplot(122),'CF',[],['none']); colormap default;
b data compare
cf_compare = uff.beamformed_data(cf_RTB); cf_compare.data(:,1,1,1) = cf_scanline.data; cf_compare.data(:,1,1,2) = cf_RTB.data; cf_compare.plot([],'CF',[],['none']);colormap default;