Simulation of blood flow and velocity estimation
Friday, May 24, 15.00-17.00 on the top floor in build 349, room 205.
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 cross-correlation 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 the SharePoint and
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 B-K 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 SharePoint directory: exercises/exercise_4_velocity_estimation. 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 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
of lines.
Solution:
The solution can now be found in the SharePoint.
|