User Stories

Microtech Develops and Tests Implantable Blood Pressure Sensor


Create and test an implantable blood pressure sensor


Use MATLAB to develop algorithms for generating and analyzing ultrasound waves, create standalone analysis software, and control lab equipment for automated testing


  • Development time halved
  • Hardware updates streamlined
  • Productivity increased by 20%

“Using MATLAB to develop both real-time ultrasound signal processing algorithms and automated measurement software eliminates the need for a dedicated C/C++ programmer as well as the risk of introducing bugs when the algorithm is rewritten.”

Dr. Yonathan Kozlovsky, Microtech
Microtech’s submillimeter sensor, dotting the “I” on a U.S. penny.

Blood pressure is usually measured with a pressure meter and an inflatable cuff placed around the arm. In some clinical scenarios, however, physicians need to measure blood pressure inside a vein or artery. Until recently, such measurements were difficult or impossible to obtain.

Engineers at Microtech have developed a solution for those clinical scenarios: a sub-millimeter implantable pressure sensor. Clinicians communicate with the sensor via a proprietary ultrasound system.

Microtech developed a MATLAB® algorithm that controls an ultrasound transducer to produce ultrasound waves and processes waves reflected by the sensor. By analyzing these reflected waves, the algorithm can calculate blood pressure in the region surrounding the sensor to within one millimeter of mercury (mmHg).

“MATLAB is the natural choice for developing our signal analysis algorithms; developing in C/C++ or another language would be much more difficult,” says Dr. Yonathan Kozlovsky, research and development physicist at Microtech. “MATLAB made it easy to use live data from a data acquisition board and other lab hardware without re-implementing the algorithms.”


To calculate blood pressure, the ultrasound system processes waves modulated by the resonant frequency of the sensor’s membrane. Microtech engineers needed to develop algorithms to process the reflected wave signals and use the results to calculate the blood pressure. They needed to incorporate these algorithms into an application that controls a function generator to produce the ultrasound waves via a transducer. The application receives the live reflected ultrasound waves using a data acquisition (DAQ) board sampling at 4 MHz. The company’s earliest signal processing algorithms were implemented in C/C++, but this code was difficult to maintain and improve, and it was not portable when the hardware was updated.

The team wanted to acquire and process live signals to automate the testing of the sensor and algorithms. Testing would involve regulating the temperature and pressure within testing chambers, and controlling other equipment in the lab.


Microtech engineers used MATLAB, Data Acquisition Toolbox™, and Instrument Control Toolbox™ to develop the ultrasound wave analysis application and control the automated test setup.

Working in MATLAB, they developed and debugged signal processing algorithms that compute the discrete Fourier transform of ultrasound waves, identify the resonant frequency of the sensor’s membrane, and calculate the blood pressure.

After debugging the algorithms in MATLAB using recorded data, the team used Data Acquisition Toolbox to connect to a National Instruments PCI-6115 DAQ board. This board linked to an ultrasound transducer, which receives and generates ultrasound waves.

After using the DAQ board to generate the signal for the transducer, the team switched to a Tabor Electronics TE 5300 arbitrary waveform generator, which they controlled using Instrument Control Toolbox.

In MATLAB, they developed a measurement application with an interface that displays live pressure measurements. The application saves measurements, analysis results, and test parameters to a database using Database Toolbox™. The team used MATLAB Compiler™ to create a standalone version of the application that was deployed in multiple measurement stations.

To control the pressure during lab tests, the team used a National Instruments USB-6221 DAQ board to actuate intake and outlet valves. They accessed the DAQ board from MATLAB using Data Acquisition Toolbox. The behavior of the sensor’s membrane is temperature-dependent. To control temperature they used MATLAB to connect to a heating element and thermometer via an RS-485 serial communication link.

They used MATLAB Compiler to develop a second standalone application that enables Microtech engineers who do not have MATLAB installed to perform sophisticated analysis of the measurements and compare them with measurements taken from a calibrated pressure transducer.

Microtech has conducted preclinical studies of the implantable sensor on mammals, and is preparing for clinical trials.


  • Development time halved. “Instead of explaining the algorithm to a programmer, having him implement it in C/C++, and then finding and fixing bugs introduced during the implementation, we completed the entire project in MATLAB,” says Kozlovsky. “Overall, I estimate the time saved with MATLAB as at least 50%.”

  • Hardware updates streamlined. “MATLAB made it easy to switch DAQ boards and begin using an arbitrary waveform generator for the ultrasound waves,” says Kozlovsky. “We can access each new piece of hardware in MATLAB using Instrument Control Toolbox or Data Acquisition Toolbox, which is much faster than delving into the specific drivers and software from the manufacturer.”

  • Productivity increased by 20%. “MATLAB and MATLAB Compiler enabled us to build and distribute sophisticated software that our engineers use to analyze and visualize test results,” notes Kozlovsky. “I can update the application with new features in a matter of days. Its easy-to-use interface increases productivity by about 20% compared with a spreadsheet.”