System Overview

The PPG signal is generated by an infrared LED and a photodetector, and to monitor the heart rate, a finger must be put between the LED and photodetector. The change of the blood volume with heartbeat causes the small changes in the current of photodetector and results in a series of periodic pulses. A plot of this signal against time is the PPG signal. There are mainly two types of ways to detect the PPG signal, the transmission type and the reflective type, as shown in the figure below.[2] In this project, we used a transmission type sensor: Nellcor-DS100A.

test_image
Two Types of PPG Signal Generator

The PPG signal generated by the sensor contains both AC and DC components.[3] The AC component is mainly caused by pulsatile changes in arterial blood volume, which is synchronous with the heartbeat and is the useful signal for our system. The DC component relates to the tissues and the average blood volume, and thus needs to be filtered out by a high-pass filter just before it feeds into the chip. Since AC component of the PPG signal is only a small portion of the whole signal, so an effective amplifer is needed to amplify the desired signal and extract the heart rate information from it. Therefore the main task of the chip is to amplify the signal and filter out the interruption noises caused by respiratory activity or motion artifacts.[1]



System Implementation

There are mainly five parts in our Heart Beats Rate Monitor system: the PPG signal generator, high-pass filters, low-pass filters, OTAs and the comparator. The output signal feeds into a microcontroller Arduino Uno Rev3, which counts and calculates the heart rate and display it on the LCD display. The system architecture is shown below.

test_image
System Architecture

The frequency spectrum of motion artifact (MA) corrupted PPG signal includes different frequency components: the pulsatile (cardiac) portion (0.5-4Hz) and its harmonics, respiratory activity (0.2-0.35Hz) and motion artifacts noise component (0.1 Hz and more)[1]. So we need high-pass filters (cut-off frequency is set to 0.5Hz) and low-pass filters (cut-off frequency is set to 4Hz) to filter out the interruptions. The two-stage amplifiers will amplify the small input signal (2mV peak to peak) to the amplitude that can be detected. Finally the amplified input signal goes into a hysteresis comparator to convert the analog input signal to digital output pulses, which have the same frequency as the heart rate. Then this signal feeds into the Arduino Uno board for signal processing and display the heart rate on the LCD screen.

Below is the detailed implementation of the whole heart rate monitor system.[5] The input signal first goes through a second order high-pass filter with cut-off frequency of 0.5 Hz, and eliminate the low frequency signal. Then the signal goes to the first stage amplifier, whose closed loop gain is set to 42 dB. A low-pass filter follows the amplifier with cut-off frequency of 4 Hz. After the first stage OTA, there is a potentiometer that can adjust the voltage gain. The signal then goes through another stage of amplifier with band-pass filter. Finally, the output signal of the second stage OTA feeds into a hysteresis comparator with the reference voltage set to 1.1V.

test_image
System Implementation

The system level simulation result is shown in the figure below. As expected, the heart rate signal is very small and the respiration have a huge influence on the signal. Clearly the heart rate monitor chip can filter out the unwanted information of the input PPG signal, amplify the useful heart rate information and generate the square wave which has the same frequency as the heartbeat. This digital signal is then fed into the microcontroller for signal processing to count and calculate the heart rate.

test_image
System Level Simulation


Back to top