Simulation of blood flow and velocity estimation
Monday, June 1, 15.00-17.00 in the
E-databar, build 308, room 101.
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
Read the section on flow simulation and the cross-correlation in the
Go through the different exercise points and write down suggestions for
your Matlab code.
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:
||Measured impulse response from a B-K Medical A/S transducer
||Sampling frequency (100 MHz)
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
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:
||2 MHz, linear array probe with 64 elements
|Pulse repetition frequency:
|Angle between flow and beam:
||4 cycles at 2 MHz
||16 bits samples
|Position of vessel center:
||60 mm from transducer surface
|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
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 cross-correlation estimator using the
function xcorr. It should take a number of RF lines, break them into segments,
cross-correlate 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