1. Introduction
Monitoring vital signs such as heart rate (HR) and respiratory rate (RR) provides critical insight into an individual’s health. These are considered primary vital signs that aid in detecting potential medical conditions. Some of these conditions include irregular heartbeats such as Tachycardia (increased HR) that may be caused by heart disorders, and Bradycardia (low HR) that could be caused by advanced heart diseases. Similarly, monitoring RR is important for diagnosing conditions such as sleep apnea [
1], pneumonia, heart failure, metabolic imbalances, and cardiac arrest. The traditional monitoring methods such as ECG monitors, which are considered the gold standard, are not practical for extended use because of patient discomfort. Recent advances in technology have made it possible to have continuous monitoring of these vital signs by using non-invasive techniques. These systems can help track vital signs and provide real-time data that is invaluable in both home and clinical settings. Some of these techniques rely on using wearable devices [
2,
3]. However, the users feel a certain discomfort or in some cases, do not prefer to wear them to sleep. Further, some elderly users may forget to charge their devices, which puts their health monitoring at significant risk.
To address these issues, contactless solutions have been gaining popularity recently. They use various sensing technologies such as infrared thermography, radar, and optical sensors to estimate vital signs. However, these technologies pose privacy concerns for users. Therefore, contactless sensors deployed under the bed that use the cardiac vibration for vital signs monitoring have been proposed as an alternative. These systems use ballistocardiography [
4] or geophone sensors [
5,
6,
7] to estimate vital signs with high accuracy. The vibration sensor is placed under the bed and detects mini-vibrations caused by the movement of heart and chest contractions.
However, the use of vibration-based sensors is a complex technique. The dynamics of the cardiorespiratory vibrations have not been explored in detail. Further, this technology is extremely sensitive to noise and can pick up any small vibration coming from the background due to human activity or other sources (electrical appliances etc.). Therefore, the extraction of cardiac signal and relevant features for vital signs estimation from the raw data is an extremely challenging process. Further, the clinical validation of such systems requires extensive testing and validation for extreme cases. The collection of real-world data for development and optimization of these systems is not straightforward due to data acquisition, security and integrity concerns, especially for certain subjects such as infants. Also, this emergent technology does not have any public datasets available, compared to the existing technologies. Therefore, having a testbed to study the cardiorespiratory dynamics and perform extensive evaluations would enable the development and validation of these systems, including extreme cases that may not be obtained in real collected datasets. This is especially significant for the detection of heart and lung abnormalities such as Atrial Fibrillation (AFib).
In this paper, we present SimDot, a cardiorespiratory testbed that can be used for development, testing and validation of contactless vital signs monitoring systems that use geophone-based sensors. Our testbed uses a voice coil motor as the cardiac vibration source. The motor is controlled by a Raspberry Pi with the help of a Digital to Analog (DAC) converter and a Power Amplifier. To collect the vibrations generated by this motor, a vibration-based sensor (geophone) is placed under the bed that can sense the vibrations generated due to heart and respiratory beats. The results show that our system generates a highly accurate signal, presenting strong correlation (
) with a large human dataset (75 people). The system is used to refine our existing vital signs monitoring algorithms that have been developed using the same human dataset, by increasing their robustness for higher ranges and extreme cases, with performance metrics showing Mean Absolute Error (MAE) less than 2 bpm for HR and RR. SimDot is low-cost and can be easily deployed in different environments. The proposed system is shown in
Figure 1.
The major contributions of our study are summarized below:
- 1.
We propose a cardiorespiratory testbed for development, testing and validation of geophone-based contactless vital signs monitoring systems.
- 2.
We use a single motor setup to generate heart and lung signals compared to the similar works that use separate modules.
- 3.
Our system facilitates validation of HR from 40 to 240 and RR from 8 to 40 beats per minute (bpm), and can be used to generate abnormal heartbeat data. The generated signal is highly accurate, showing strong correlation with real data (>0.85).
- 4.
The testbed is used to design and improve vital signs algorithms by increasing their robustness and making them work for these extreme ranges (compared to 120 bpm HR and 25 bpm RR previously).
The remainder of this article is organized as follows.
Section 2 presents the related works, covering vibration-based vital signs monitoring systems and cardiac simulator testbeds. In
Section 3, we present the material and methods that include the system design and vital signs monitoring algorithms. In
Section 4, we present the experimental setup and results, followed by conclusions in
Section 5.
2. Related Works
This section is divided into two parts. In the first part, we present a brief history of advances in vibration-based contactless vital signs monitoring systems. This is followed by a study of mechanical cardiac testbeds.
2.1. Vibration-Based Contactless Vital Signs Monitoring Systems
In recent years, contactless systems have gained more popularity due to their ease-of-use. These systems use vibration-based sensors for estimation of vital signs. Some of the techniques rely on ballistocardiography (BCG), seismocardiography (SCG) or geophone sensors for the monitoring of vital signs. The BCG-based systems record the vibration/movements of the heart as it pumps blood to shift the body’s center of gravity during the heart beating cycle. They consist primarily of accelerometer-based approaches. The sensor is usually placed on the body or has some mechanical contact with the body (under a bed or a chair).
Starr et al. [
8] performed the first study on body trembling caused by heart contraction. They constructed a mechanical table with a steel spring opposing its lateral motion. Afterwards, Mandelbaum et al. [
9] performed a study that showed that improvements in BCG signal consistency over time were indicative of a recovering heart. In a later study, Starr et al. [
10] observed that those subjects with hearts contracted with little force at the initial test later suffered from death and cardiac disability, chiefly coronary heart disease, in far greater numbers than those whose hearts contracted strongly. Several systems building on the same principle [
11,
12] have been developed since and enable the vital signs monitoring with high accuracy.
The seismocardiography (SCG)-based systems measure the vibration due to pressure within the body. They build on the same principles introduced by Starr et al. [
8]. Compared to the BCG-based approaches that study the measurement of whole-body recoil forces in response to cardiac ejection, the SCG-based systems observe the local chest surface measurement of cardiac-induced vibrations. These signals are caused by cardiac mechanical processes such as valve movement, blood flow, and muscle contraction. These systems are usually placed near the sternum of body. SCG signals are recorded using accelerometers placed at a single location on the chest wall. In recent years, several systems [
13,
14], have been developed that show the use of SCG for vital signs monitoring. However, the relationship between SCG waves and cardiac activity has not been fully understood.
Previous works have shown the use of the geophone sensor to accurately estimate vital signs. In these systems, the geophone sensor is placed under the bed or mattress and detects the heart vibration data. Jia et al. [
5] were one of the first to introduce such systems. In their study, they used Auto-Correlation Function (ACF) of the signal for HR estimation. They also showed that their system can estimate RR [
15] in a subsequent work. Clemente et al. [
16] showed that their system can estimate HR and RR by using a geophone sensor. Song et al. [
6] showed their system can achieve high accuracy for HR and RR estimation. However, similar to the SCG-based systems, the relation between the cardiac activity and geophone-based systems has not been fully understood. Further, these systems are developed using regular human data and may not generalize well for extreme cases/abnormalities. Therefore, we propose a simulator testbed to address these issues.
2.2. Mechanical Simulator Testbeds
The use of vital signs monitoring for clinical purposes requires extensive validation, especially for extreme cases/abnormalities that cannot be obtained during real-world data collection. Safitri et al. [
17] introduced a vital signs simulator capable of simulating ECG and Non-Invasive Blood Pressure (NIBP) parameters in a single device by using an Arduino board for control signal. This system operates on a 220V AC input voltage. They showed their system can achieve good accuracy with some errors at low HR. Their designed device was evaluated across various settings, including heart rates of 30, 60, 120, and 180 beats per minute (bpm). Narvaez et al. [
18] presented a vital signs simulator for calibration of medical equipments. Their system is able to simulate ECG pulse rate and waveform by using an Arduino microcontroller. Their system was tested at three different frequencies (60 bpm, 90 bpm and 120 bpm) and achieved good accuracy.
Setiawan et al. [
19] developed a system for implementation of heart rate using AD8232 and Arduino microcontrollers. Their research focused on enhancing the accuracy and efficiency of ECG data capture, contributing to advanced cardiac monitoring systems. Their system uses three essential ECG sensors interface with the AD8232, facilitating the acquisition of valuable analog ECG data. Ichimura et al. [
20] developed a simulator that enables medical trainees to measure heart rate and arterial oxygen saturation by pulse oximeter (SpO2), which is generated according to a mathematical cardiorespiratory model in response to resuscitation procedures.
Kadambi et al. [
21] introduced one of the first simulators for vibration-based systems. Their system proposes ballistic simulator for the BCG signals that uses separate motors to generate HR and RR signals. The heart module consists of a vibration motor which acts as an out-of-balance centrifuge, creating a vibration that is similar to the heartbeat. The lung module consists of a motor pump that circulates air and has a release valve. Thirion et al. [
22] introduced a mechanical emulator for validation of BCG data by using a two-motor setup. This system uses a microcontroller to generate a control signal for motor control. The cardiac and respiratory parts are handled by stepper motors. The cardiac signal is emulated through the stepper motor rotation while the breathing signal is emulated by the beam translation using an integrated lead screw.
Pinheiro et al. [
23] aimed to develop a model to study the vibrations generated by human heart activity. They developed a simulink model to test their mathematical model and validated against real data of healthy subjects acquired using the BCG sensing system mounted in an office chair and wheelchair.
However, there exist very few systems that have been developed for vibration-based sensors (especially geophone-based systems). Also, they have been validated using a limited amount of real data. To the best of our knowledge, there exists no simulator testbed system that has been validated on a large human dataset (75 subjects). Further, the existing vibration simulator systems use two motors for HR and RR effect, whereas we use only one motor setup.
3. Material and Methods
In this section, we describe the simulator testbed design and configuration including the cardiorespiratory signal generation process. Afterwards, we present a brief overview of the vital signs estimation algorithms.
3.1. Device Development and Configuration
The hardware design of our system is made up of several components. The main component that acts as the vibration source is a voice coil motor (60VC003). These motors are designed for applications needing only limited displacement and offer precise displacement control. Therefore, they are often used in medical ventilator machines. This motor was selected after extensive experiments and trials with other types of motors.
We use a Raspberry Pi to control the motion of this motor and simulate the cardiorespiratory signal. The control signal is generated from the GPIo pins of a Raspberry Pi (Raspberry Pi Ltd., Cambridge, UK). Afterwards, a 12-bit DAC board (MCP4725, Microchip Technology Inc., Chandler, AZ, USA) is used to convert the digital signal generated from Raspberry Pi to analog by using the I2C communication protocol. This is achieved by using the SDA and SCL pins of the Raspberry Pi. The GPIo pins of Raspberry Pi generate 5 V output that is mapped to 0–4096 levels of 12-bit DAC.
The power output from the Raspberry Pi is not sufficient to drive the motor which requires 24–36 V Operating Voltage. Therefore, a Power Amplifier (OPA541, Texas Instruments, Dallas, TX, USA), powered externally by two ±9 V batteries, is used to amplify the signal to the desired voltage level. The device configuration setup is shown in
Figure 1. The system architecture of this design is shown in
Figure 2. Next, we describe the sensor data simulation process.
3.2. Sensor Data Simulation
For the sensor data simulation, we have developed a Python-based framework that enables the generation of simulated signal from 40 to 240 bpm HR and 8 to 40 bpm RR. This framework uses the Adafruit Circuit Python library to manage the interface of Raspberry Pi and DAC board with the motor. Compared to the existing works that use separate motors to generate HR and RR effects, our framework facilitates the generation of both using a single-motor setup. The simulated signal generation is a multi-step process that is outlined below.
3.2.1. Heartbeat Signal Generation
We start off by experimenting with different types of waves as input to control the motor. For this purpose, sine waves, square waves, Daubechies wavelets, and symlets were tried. In our system, we use a positive cycle wave as an input signal to the motor to control the displacement. The reason behind this is that we need the motor to be hitting ground position to generate a good heartbeat effect. For higher frequencies, the motor is not able to keep up with a full cycle vibration in a short amount of time. The DAC board that we used in our study is 12-bit. For our signal generation, we use an amplitude of 256 as the motor will not hit ground position at higher frequencies due to speed constraints.
The experimental results showed that using a sine wave presents the most accurate representation of our required signal with highest correlation to real data. The signal output comparison for different input waves is presented in
Figure 3. Therefore, we select sine wave to control the operation of our motor. An example of the input signal with heart rate of 120 bpm and the corresponding output signal detected by the geophone sensor is shown in
Figure 4.
3.2.2. Respiration Effect Generation
The generation of the respiration effect from the same motor assembly is not an easy task. Most of the existing works use a separate motor to simulate this effect. However, to make our system compact, we generate the respiration effect from the same motor. This single-source design ensures perfect synchronization between vital signs and reduces mechanical complexity, facilitating the validation of arbitrary HR/RR combinations. We achieve this by modulating the input signal with an envelope that simulates the respiration effect, where the rising slope is proportional to the Respiration Rate (RR).
In real-world scenarios, the heart rate (HR) is often not an integer multiple of the respiratory rate (RR), meaning the number of heartbeats per respiratory cycle can vary slightly. To generate the respiration effect and generalize it to arbitrary combinations of HR and RR, we first create a pure respiratory signal in the form of a sawtooth wave. This sawtooth wave is then discretized at the positions where heartbeats occur. The discretized respiratory signal is multiplied with the heart rate signal, applying the respiratory effect to the heartbeats, resulting in a heartbeat signal modulated by respiration. The slope of the sawtooth wave reflects the intensity of respiration and the variation in heartbeat amplitude within a single respiratory cycle. Based on our experiments, we set the minimum value of the sawtooth wave to 0.95 and the maximum to 1.
Figure 5 shows the cardiorespiratory signal generated by our system.
3.3. Abnormal Heartbeat Generation
The ability to generate abnormal heartbeat such as arrhythmia and other heart rate abnormalities is one of the most important features of our system. In real data collection, it is an extremely difficult and time-consuming process to obtain this kind of data. Our system is able to generate abnormal heartbeat data that can be invaluable for future research. While natural heart rate variability (HRV) is a physiological norm, our system is specifically designed to simulate clinically significant abnormalities. This allows researchers to investigate specific cardiac diseases such as arrhythmia (including Atrial Fibrillation).
The process to generate abnormal heartbeats involves changing the speed of motor for each heartbeat. This change is user-controlled and can be adjusted to study the effects arising from abnormal heartbeat patterns. An example of simulated abnormal heartbeat that shows irregular patterns such as those observed in Atrial Fibrillation is shown in
Figure 6.
3.4. Algorithm Design
In this section, we present an overview of the vital signs estimation algorithms. These algorithms have been developed in earlier works [
6] and have been shown to work for HR ranges 48–120 bpm and RR ranges 8–25 bpm. Certain improvements to the algorithms are made in order to improve their performance and make them work for higher HR and RR ranges.
3.4.1. Heart Rate Estimation
The estimation of heart rate from the vibration signal is very complicated due to surrounding noise and subject movement. The HR estimation is a multi-step process outlined below:
Step 1: The first step in the vital signs estimation pipeline is data preprocessing. First, we use the z-score normalization to standardize the data. The geophone sensor we used in the study is very sensitive to noise and can pick up vibrations from background emanating from electrical appliances or people walking nearby. To filter out the signal, we use a bandpass filter with range 0.1–20 Hz as this range contains the heartbeat signal information. The low cut-off frequency is selected to remove DC wandering around 0 Hz while the high cut-off frequency essentially removes the high-frequency noise from appliances.
Step 2: For the estimation of heart rate, we use 10 s segments. Typically, the HR is estimated by counting the number of peaks in a signal. However, our signal may not have an accurate amount of peaks in each 10 s duration due to environmental noise. The envelope of the signal is obtained by using Hilbert Transform. This is done by creating an analytic signal and combining the original signal with its Hilbert Transform and calculating the magnitude of the analytic signal to find the envelope. This is given by the following equation:
where
is the real part and
is the imaginary part of the signal.
Step 3: Next, we use a two-stage moving average filter with a window length 10 followed by 3rd degree polynomial fitting to further smooth and enhance the envelope of the signal obtained in Equation (
1). Afterwards, the Auto-Correlation Function (ACF) of the signal is computed. The ACF of the signal gives important information about the periodicity of the signal. The lag-
k auto-correlation for
is defined as
where
is the average value of the signal. Here, the lag-
k represents the time shift (in samples) applied when computing the auto-correlation of the signal. In our implementation,
k is not a single fixed value, but is swept over a range of lags corresponding to physiologically plausible heart rate frequencies. The lag corresponding to the dominant ACF peak within the HR range (40–240 bpm) is selected to determine signal periodicity and quality.
Step 4: For accurate HR detection, we set a threshold for the dominant frequency component of ACF to lie between 0.6 and 4 Hz as this contains all the ranges for human HR. This method of using HR has already been proven to be more accurate than estimating the HR from peaks of the raw signal or envelopes. Finally, the HR is given by the following equation:
where
m is the mean interval of heartbeats and
is the sampling frequency (100 Hz).
3.4.2. Respiratory Rate Estimation
For estimation of RR, we use 50 s segments. The estimation of RR from this signal is very challenging as the RR signal is buried within noise and HR signals. Similar to HR, the RR estimation is a multi-step process summarized below:
Step 1: The geophone sensor generates an electrical signal proportional to the relative velocity between its internal seismic mass and the sensor housing, which corresponds to the velocity of the vibrating surface (body/chest) to which the sensor is coupled. We obtain the chest movement displacement by performing an integral operation on the signal. We can express the output of the geophone sensor as a function of velocity:
; here,
is the output from the geophone,
is the velocity, and
is a Gaussian error with mean
and variance
. By subtracting expectations from both sides, we obtain
, with
For RR estimation, we are not concerned with the amplitude of the signal and focus on the waveform. Therefore,
C can be treated as 1 in this case. This simplifies the relationship to
. We propose the following to unveil respiration rate:
Finally, substituting
and
with
and
, respectively, we get
where
is the displacement at time step
T.
Step 2: In the above equation, contains both the heartbeat and respiration displacements. To extract the respiration signal, we first isolate the low-frequency temporal component of , which predominantly captures the respiratory motion. This is achieved by computing the envelope of the signal (using Hilbert Transform) and transforming it to the frequency domain using the Fast Fourier Transform (FFT). The resulting spectrum is filtered between 0.1 and 2 Hz to suppress non-respiratory components. Finally, the inverse FFT is applied to obtain the respiration signal in the time domain.
Step 3: We count the peaks on the filtered signal and use the following equation to calculate RR.
Here,
P is the number of peaks and the signal duration of 50 s is used in this study.
5. Conclusions
In this study, we present SimDot, a simulator testbed for the development and validation of geophone-based contactless vital signs monitoring systems including extreme cases and abnormalities. These systems detect the micro-vibrations caused by the human heart and use the detected signal to estimate vital signs. In our proposed system, a voice coil motor acts as the cardiorespiratory vibration source. We also generate a respiration effect from this single motor, compared to other works that use a separate setup for this purpose. The results show that our system can generate a highly accurate signal from heart rate 40–240 bpm and respiration rate 8–40 bpm. Our system is also able to generate abnormal heartbeat data that is invaluable for the detection of certain heart disorders such as arrhythmia. The generated signal shows a strong correlation (0.85) compared to real human data. The simulated signal is used to develop and improve the vital signs monitoring algorithms with performance metrics showing accuracy (MAE less than 2). Our system is easy to install and will advance the validation of these systems and enable researchers to generate highly accurate data without relying on real data collection that is very cumbersome and time-consuming. In future, we aim to extend the scope of our system by validation on certain age groups (infants/kids, older adults) and explore arrhythmia detection by comparing with real data. We also aim to study other vital signs such as blood pressure. Finally, we intend to extend this system to validate other contactless systems that are based on other vibration-based sensors such as ballistocardiogram (BCG) and seismocardiograph (SCG).