Development of a High-Frequency Ultrasonic Imaging Platform

Amanda Virkus

Supervised by Drs. R. Martin Arthur and Jason W. Trobaugh
Department of Electrical and Systems Engineering
Washington University
in St. Louis
Spring 2006

Background

Hyperthermia is a treatment used to control the growth of cancerous tumors.  Current methods for determining temperature are invasive and thus the temperature of the tumor can only be established at a few discrete points.  In order to better treat tumors, a more complete temperature reading is necessary [1].  Ultrasound thermometry can provide complete and continuous temperature estimation.

 

Drs. R. Martin Arthur and Jason Trobaugh along with several of their past assistant researchers have been working on developing ultrasonic thermometry.  In the lab, tissue can be scanned at several temperatures using a pulser/receiver and a 7.5 MHz transducer to collect the ultrasonic echoes.  Thomas Simpson modified, updated, and improved the BASIC code that controls this experimental set-up (more information about this experimental set-up can be found on Thomas Simpson’s research page).

 

Ultrasound Thermometry Acquisition Experiment

After Thomas Simpson left the lab, his code remained unchanged until I joined the lab.  My first task was to review the code and determine everything that was required to run an experiment.  I was also in charge of documenting and commenting the code to imbed the user manual as well as improving the user interface so that every experimental variable could be altered without modifying the program.  Figure 1 shows the setup of the ultrasound thermometry acquisition experiment. 

Figure 1: Experimental Set-up.

 

The code to run this experiment is described below.

 

ulthacqs.m

This m-file controls the Ultrasound Thermometry Acquisition Experiment.  Figure 2 below depicts the hierarchy of the Matlab files.

Figure 2: Flow chart depicting the various files utilized in the ultrasound thermometry acquisition experiment.

 

In this experiment, a tissue sample is placed in a water bath.  The water bath is heated to a desired temperature.  The tissue is than scanned using an ultrasound transducer.  The temperature is changed and the tissue scanned again.  This process is repeated through a desired range of temperatures as the data are collected and saved.  In this script, the user is prompted to provide the desired temperature range and a header file that contains the required experimental parameters.  The function readHeader is then called.


readHeader.m
The header file is read and the values for the transducer center frequency, sample rate, tissue segment length and type, desired step size, among other parameters, are extracted.

 

The user is then prompted for the desired starting position of the transducer.  If this position does not coincide with the current position, posmotor.m is called.


posmotor.m
The stepper motor, to which the transducer is attached, is positioned at the desired starting location.

initscope.m
This subroutine opens the GPIB (IEEE 488) interface, and initializes the oscilloscope.  It sets the initial gain and can determine the sampling rate, based on the transducer center frequency, if the user desires.

 

Once all of these initializations are complete, the program then loops through the desired temperature range and calls several functions at each temperature in order to collect all of the desired data.

 
changeTemp.m
This function controls a ThermoHaake, a temperature controller that heats the water in the water bath and evenly circulates the water.  The ThermoHaake heats the water until the thermometer reads the desired temperature. 


scan.m
Once the water is heated to the desired temperature, the tissue is scanned.  The stepper motor moves in small increments across the length of the tissue specimen.  At each increment, an ultrasonic echo is captured using the pulser/receiver and the ultrasound transducer. 

 
posmotorfn.m
This subroutine is identical in function to the script posmotor.m.  The stepper motor is moved one increment forward to a new scan site so that the transducer can capture echoes across the entire length of the tissue to form a cohesive image.
 

getwfm.m
The waveform describing the ultrasonic echo is determined in this routine.

gain.m
This function adjusts the gain on the oscilloscope so that the maximum value of the echo is between full and half scale.  The gain value is recorded so that the data can be adjusted for the gain differences when creating an image.

 

After the tissue has been scanned at all of the desired temperatures, the data and all of the parameters are saved to a *.mat file.  Every piece of information necessary to the analysis of the experiment is saved in one file.  The analysis can then be performed at any time and no information will be lost or forgotten.

 

Imaging

After the array of 1-D ultrasound images has been experimentally determined, a 2-D image can be created depicting the tissue sample at a specific temperature.  The image below (Figure 3) is of a sample of pig muscle at a temperature of 37ºC.  This image was created by first adjusting each waveform by the appropriate gain value, then taking the Hilbert transform of each waveform and interpolating across the several 1-D images to produce a smooth picture.

 

 

Each experiment results in several images like this.  Most experiments are run for 20 or so different temperatures and the same tissue segment is scanned every time so that differences between the images can be determined.


Figure 3: A 35-MHz ultrasound image of pig muscle.

 

System Upgrades

This system has been upgraded many times to improve the quality of the images produced.  The upgrade that I worked on with Dr. Arthur was an upgrade from a 7.5MHz transducer to a 35MHz transducer.  A transducer with a higher center frequency allows you to collect more data per period of time which gives more details in the final image.  We had several problems during this upgrade and we spent a fair amount of time debugging.

 

Originally, when we analyzed the data gathered using the 35MHz transducer, it appeared that the transducer’s center frequency was actually around 12MHz.  However, this was eventually resolved.  Some captured waveforms and their fast Fourier transforms are displayed below in Figure 4.  The FFTs show that the center frequency of the transducer is actually around 30MHz.

 

The pulser/receiver was also upgraded to a Panametrics model 5900.  I attempted to program the new pulser/receiver to further automate the ultrasound experiment, but I found this almost impossible through a GPIB interface.  Even when following the exact instructions in the manual, I was unable to succeed!  It was later revealed that this product is notoriously difficult to program and we received no help from the company to remedy this situation!  Thus, it remains a manual part of the experimental process.

 

 

 

After I left the lab, the system was also updated to include an internal scope card.

 

 

 

Amanda Virkus

 

 

 

 

 

 

 

Figure 4: Analysis of the 35MHz transducer using a special-purpose fixture from W. David Richard (wdr).

 

 

 

 

 

References

[1] R. M. Arthur, J. W. Trobaugh, W. L. Straube and E. G. Moros, "Temperature Dependence of Ultrasonic Backscattered Energy in Motion-Compensated Images", IEEE Transactions on Ultrasonics, Ferroelectrics and Frequency Control, vol. 52, pp. 1644-1652, 2005.