Phonotonos

Through-skin ultrasonic sensing of blood flow velocity using commodity smartphones

Carotid blood-flow velocity Four Doppler indices fall out of this trace: AT, S/D, RI and PI. Clinicians read them for arterial narrowing and vascular resistance, central to detecting cardiovascular disease. Measuring them has always taken an ultrasound machine. We created this from a commodity smartphone.

ACM Artifacts Evaluated — Functional, version 1.1 badge
ACM Artifacts Available, version 1.1 badge

The paper above is the MobiSys ’26 system paper. A demonstration of the live Android and iOS application is currently under review at MobiCom ’26.

Abstract

Doppler blood-flow indices are central to detecting cardiovascular disease, the world's leading cause of death, yet the ultrasound machines that measure them are costly, bulky, and confined to clinics. Phonotonos turns an unmodified commodity smartphone into a through-skin ultrasonic Doppler sensor without any gel or extra hardware.

Placing the phone against the artery seals an air cavity that couples its speaker to tissue. A single-bin DFT phase pipeline with microphone-nonlinearity cancellation and speaker baseline-drift removal recovers the sub-0.1 rad phase shifts induced by blood flow, and a triple-modality loop pairs ultrasound with arterial sound to guide the user onto the artery using live audio and haptic cues, while the IMU rejects measurements spoiled by movement. The complete pipeline runs on both Android and iOS, sharing one native signal-processing core so the two platforms compute identical Doppler indices.

A user places the phone on their own carotid or wrist and, within seconds of locking onto the artery, watches a live blood-flow velocity waveform build on screen followed by a full four-index Doppler report after a fifteen-second steady hold.

AT311 ms

Acceleration time

How long the flow takes to climb from the start of the beat to its peak.

S/D3.73

Systolic–diastolic ratio

2typical4

Peak flow is about 3.7× the resting flow between beats.

RI0.73

Resistive index

0.55typical0.75

Typical for a carotid — blood keeps reaching the brain between beats.

PI1.12

Pulsatility index

1typical1.8

How much the flow swings across the beat, relative to its average.

Measured from the demonstration recording shown above, on an unmodified phone. Typical ranges are those the application itself reports.

Validation

Across 20 IRB-approved subjects and four phone models, these four indices agree with a medical Doppler device to 87.5% / 80.4% / 94.9% / 81.2%.

Demo Video

System Overview

The Phonotonos signal-processing pipeline in three stages — acquire, extract and validate, report — running from the phone's speaker, microphone and IMU through to the four Doppler indices.
An unmodified phone emits an inaudible tone; the returning echo is demodulated, cleaned, and turned into a blood-flow velocity waveform entirely on-device.
  1. Acoustic coupling

    Pressing the phone to skin seals a small air cavity that couples the speaker into tissue. This is what removes the need for gel or a probe.

  2. Single-bin DFT phase extraction

    A continuous inaudible tone is emitted, and the returning echo is demodulated at a single DFT bin — recovering the sub-0.1 rad phase shift imparted by moving blood.

  3. Nonlinearity cancellation and baseline removal

    An adaptive LMS filter with a virtual feedforward microphone suppresses the microphone's own nonlinear self-interference, and sparsity-based baseline estimation (BEADS) removes the speaker's thermal drift.

  4. Doppler indices

    Cardiac cycles are aligned foot-to-foot and ensemble-averaged before AT, S/D, RI and PI are computed. Averaging across beats markedly improves repeatability over single-beat estimates.

Reading the waveform

Every cycle carries the same signature: a near-vertical systolic upstroke as the heart ejects, the dicrotic notch cut into the descending limb at the moment the aortic valve snaps shut, then a long diastolic runoff that never quite reaches zero — because blood never stops moving toward the brain. The four indices above are simply measurements taken off this shape: how fast it rises, how high it peaks, and how far it falls between beats.

Finding an Artery You Cannot See

The hardest part of this system is not measuring blood flow. It is getting an untrained person to place a phone accurately on a target that is invisible, a few millimetres wide, and in a different spot on every body. Phonotonos solves this with a cross-modality timing check rather than signal strength alone.

Every heartbeat produces two independent, time-locked events: an S1 heart sound, captured as arterial sound, and a systolic peak in the Doppler blood-flow velocity. Over an artery, the delay between them — a pulse transit time — falls inside a narrow physiological window. Off the artery, the two modalities disagree. A lock is declared only once a majority of recent beats produce a valid pairing, which makes it far harder to fake than an amplitude threshold.

Feedback is deliberately staged. While searching, the phone pulses — faster as confidence builds — then beeps and double-buzzes the moment the artery is found. During the measurement itself all feedback goes silent: vibrating a phone that is resolving sub-0.1 rad phase shifts would inject the very motion artifact the system exists to reject. Motion is judged instead from the IMU across the hold, and a measurement corrupted by movement is refused, with a spoken prompt to try again.

The application while searching for the artery, with the placement meter climbing.

Searching

The application at the moment the artery is located, drawing the live blood-flow waveform.

Locked — hold 15 s

The application result screen, showing the averaged cardiac cycle and the four Doppler indices.

Result

At the Booth

The demonstration is fully interactive and runs entirely on-device — no laptop, no cloud, no network. A visitor picks up one of our phones, presses it to the side of their neck or the inside of their wrist, follows the cues, and holds still for fifteen seconds. Most people go from “phone on skin” to “my own carotid waveform on screen” in under a minute.

Things to try

  • Different arteries

    Compare the waveform at the carotid in the neck against the radial artery at the wrist.

  • Two operating systems

    The same measurement on Android and on iOS, both running one shared native signal-processing core.

  • Break it on purpose

    Place the phone deliberately off the artery, or move your hand during the hold, and watch the quality checks refuse the measurement and ask for a retry.

Everything fits on one table: a few pre-installed phones, alcohol wipes and disposable covers for hygiene between users, and a poster. No instrumentation, plumbing, or reference hardware is required. Participation is voluntary and consented.

Code and Data

The MATLAB implementation of the full pipeline — preprocessing, single-bin DFT phase estimation, signal-quality-based artery location, nonlinearity cancellation with a virtual feedforward microphone, BEADS baseline removal, and Doppler index computation — is available at github.com/Phonotonos/Phonotonos, together with an end-to-end runnable demo.

On the study data

Recordings collected from study participants cannot be shared under the terms of our IRB approval. A sample recording, made by one of the authors, is included in the repository so the pipeline can be run end to end.

BibTeX

@inproceedings{cao2026phonotonos,
  author    = {Cao, Shirui and Xiong, Jie and Gupta, Rishav and
               Lee, Sunghoon Ivan and Gummeson, Jeremy and Li, Dong},
  title     = {[Emerging Ideas] Phonotonos: Through-Skin Ultrasonic
               Blood Flow Sensing Using Smartphones},
  booktitle = {Proceedings of the 24th Annual International Conference on
               Mobile Systems, Applications and Services (MobiSys '26)},
  year      = {2026},
  pages     = {911--927},
  publisher = {ACM},
  doi       = {10.1145/3745756.3809246}
}

Acknowledgments

This work was supported in part by the University of Maryland Baltimore Institute for Clinical and Translational Research (ICTR) Accelerated Translational Incubator Pilot (ATIP) grant and the Google Research Scholar Award. This work was also supported in part by the National Science Foundation (NSF) under Grant No. 2230143, as well as by the Nanyang Technological University SUG-NAP program.

We thank our study participants, whose time made the validation possible.