The Piezo-Electric Respiration (PZT) sensor is a popular entry-level respiration sensor applied in a variety of different applications in which respiration monitoring is required. See below how you can identify apnea phases using this sensor.
Introduction
Inducing apnea, for example by holding the breath, is required to stimulate certain responses from the body by alternating between normal breathing and apnea phases. This can be of interest if the goal is to induce stress to a subject to monitor their physiological reaction, which in this case, might be the body’s response to a restricted oxygen supply.
This post aims to present the use of the PZT sensor in such a context and to highlight the resulting change in sensor signals, which can be counter-intuitive regarding the expected outcome of the signal.
Step 1: Sensor Placement
The Respiration (PZT) sensor data can be acquired by placing the sensor according to one of the positions presented in the following illustration.

You can also find further information about the best sensor placement in the following article:
Step 2: Raw Data Acquisition
The sensor data presented in this post has been acquired at the a.i position in which the sensing unit of the respiration sensor has been placed at the center of the thorax. This sensor placement is less susceptible to motion artifacts induced due to arm movements compared to the lateral sensor positionings.
The sensor data has been acquired by following these breathing dynamics:
- Phase: Normal breathing without pre-defined breathing pattern (0:00min to 0:45min)
- Phase: Apnea after inspiration (0:45min to 1:00min)
- Phase: Normal breathing without pre-defined breathing pattern (1:00min to 1:30min)
- Phase: Apnea after expiration (1:30min to 1:45min)
The acquired raw data is presented in the following plot figure in which we can observe that the periodic signal components that are caused by the breathing dynamics during inspiration and expiration (more about this in the next steps).

Step 3: Closer Look on Respiration Sensor Data
In this acquired signal, we can observe that the periodic signal components that typical for respiration signals and caused by the breathing dynamics during inspiration and expiration, i.e. one respiration cycle, as the example highlighted in the plot figure below.

The duration of each cycle represents a breath-to-breath interval using which respiration data (e.g. breaths-per-minute) is commonly extracted.
In addition, the sensor data appears to revolve around a baseline line which, in this example, can be approximated by the mean of the signal as presented in the following plot figure.

The duration of each cycle represents a breath-to-breath interval using which respiration data (e.g. breaths-per-minute) is commonly extracted.
In addition, the sensor data appears to revolve around a baseline line which, in this example, can be approximated by the mean of the signal as presented in the following plot figure.
Step 4: Signal Filtering (Optional)
When working with raw data, it often appears that the data does not necessarily look as clean as the examples found in many textbooks.
In the case of respiration sensor data, this is often due to the fact that breathing mechanics are not perfectly smooth especially when changing from inspiration to expiration (e.g. seen at the peaks of the signal) or during apnea phases. In addition, when acquiring data under movement, motion artifacts can greatly distort the original sensor data and ‘hide’ the actual respiratory information we are seeking.
For this reason, in many cases – and we also strongly recommend it – it is important to apply signal filtering techniques to the sensor data in order so clean it from such artifacts and, therefore, avoid them to have an impact on the quality of the extracted signal statistics. An example on how a raw vs. filtered signal can look like is presented in the following plot figure.

Hint: If you’re looking for a toolbox to process your respiration signal in Python, you can try out the BioSPPy biosignal processing toolbox written in Python.
Step 5: Identifying Apnea Phases
As previously stated, the Respiration (PZT) sensor measures displacementsonly. This means that changes in the sensor signal do only occur if the sensor is stretched during inspiration (signal decreases) or relaxed during expiration (signal increases).
During apnea phases (here simulated by holding the breath), however, the signal returns to the previously identified baseline regardless if one holds the breath immediately after inspiration or after expiration.
Using this information, it is possible to identify apnea phases by monitoring sections of the signal in which the signal flattens near the baseline as highlighted in the following plot figure, where the signal returns to the baseline after inspiration during normal, uncontrolled breathing (first apnea phase), and here the signal returns to the baseline after expiration during normal, uncontrolled breathing (second apnea phase).
