Simulation of blood flow and velocity estimation
Monday, June 1, 15.0017.00 in the
Edatabar, build 308, room 101.
Purpose:
The purpose of this exercise is to make ultrasound RF data from flowing blood
for a fixed velocity and to use this in estimation of the velocity for simulated
data.
Preparation:
Read the section on flow simulation and the crosscorrelation in the
course notes.
Go through the different exercise points and write down suggestions for
your Matlab code.
Exercise:

Use the 1D convolution model for the received
RF signal. The model is given by:
y(t) = p(t) * s(t)
where y(t) is the received signal, p(t) is the ultrasound pulse and
s(t) is the white, Gaussian scattering signal from the blood.
The basic ultrasound pulse is read from a file. Go to CampusNet
to the folder exercises and download the ultrasound pulse data file pulse.mat.
Place the datafile in your directory for the course.
Load the data into Matlab and look at the variables by writing whos.
The following variables are found in the file:
Variable name 
Content 
Unit 
pulse 
Measured impulse response from a BK Medical A/S transducer 
v 
fs 
Sampling frequency (100 MHz) 
Hz 
Read the data into Matlab and plot the pulse with the correct time
axis and plot the spectrum of the pulse. What is it's center frequency?

Make a single received signal from a blood vessel with a diameter of 10
mm. Assume that the scattering is random, Gaussian, and white, and that there
are only scatterers in the vessel. The angle between the ultrasound beam and
the vessel is 45 degrees. Plot the signal with the correct time
axis.

Make 100 received signals for fprf=5 kHz, vz=0.15 m/s, c=1500 m/s
for a plug flow. Plot the signal for one given depth as a function of time.
What is the frequency for this signal and why?

Download the simulated RF signal from the CampusNet directory. The
file name is: fem_rf.mat and put them in the course directory. The data is from the femoral
artery and the simulation parameters are:
Transducer: 
2 MHz, linear array probe with 64 elements 
Pulse repetition frequency: 
5 kHz 
Angle between flow and beam: 
55 degrees 
Ultrasound pulse: 
4 cycles at 2 MHz 
Sampling frequency: 
10 MHz 
Resolution: 
16 bits samples 
Position of vessel center: 
60 mm from transducer surface 
Vessel radius: 
2 mm 
Depth of first sample point: 
54 mm from transducer surface 
Depth of last sample point: 
70 mm from transducer surface 
The Matlab variable data contains the RF data. One column contains
the received RF signal for one pulse emission. The matrix, thus, contains
5000 columns for one second of RF data. This datafile only contains 300 lines
taken at the start of the cardiac cycle. The complete data file can be found
in fem_rf_original.mat
Make the same type of plots for this data as in point 3. Use the spectrum
to determine the frequency and thereby velocity for different depths in the vessel.

Make a function that implements the crosscorrelation estimator using the
function xcorr. It should take a number of RF lines, break them into segments,
crosscorrelate and average the correlations, and find the time shift between lines.
Calculate the velocity from this. Try it out on your simulated data and on the data
from the femoral artery. Experiment with the length of the lines and the number
of lines.
