element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Design For A Cause 2021
  • Challenges & Projects
  • Design Challenges
  • Design For A Cause 2021
  • More
  • Cancel
Design For A Cause 2021
Blog Vital Care - 05 Respiration
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: sunnyiut
  • Date Created: 4 Jun 2021 12:45 PM Date Created
  • Views 3818 views
  • Likes 5 likes
  • Comments 1 comment
  • bioimpedance
  • design for a cause 2021
  • respiration
Related
Recommended

Vital Care - 05 Respiration

sunnyiut
sunnyiut
4 Jun 2021

Title: Vital Care

By: Md. Kamrul Hussain

Project Category: Design Challenge

Project Name: Design For A Cause 2021

Blog post: 06

 

Previous Blogs:

Blog No.

Title

01

Introduction

02.a

SpO2 basics [PPG]

02.bSpO2 [MAX30102]
03Temperature
04ECG - AD8232

 

"Respiration Monitoring is a highly informative indicator of physiological state (Braun 1990) and the most sensitive vital sign marker of clinical deterioration (Schein et al 1990, Goldhill et al 1999, Ridley 2005, Cretikos et al 2008). Continuous monitoring of Respiration Rate [RR] provides valuable information regarding patient health status in hospital (Royal College of Physicians 2012), home and community settings (Bonato 2010).

Only a small number of wearable sensors are capable of continuously measuring respiratory rate compared with other key physiological parameters, such as heart rate, temperature and blood oxygen saturation (Hao and Foster 2008)." - https://iopscience.iop.org/article/10.1088/0967-3334/37/4/610

 

In this blog I’ll share my experiment on respiration monitor mostly to find out the respiration rate. I have previously worked on respiration monitoring using Impedance measurement. I shared the outcome in the first part of this blog. Then I tried to get respiration info from Photoplethymography and ECG signal. I compared all this three method. At the end I put my verdict on which will be the better solution.

 

 

 

Impedance Pneumography [IP] :

image

 

Impedance pneumography is a technique for measuring instantaneous lung aeration changes (breathing) as changes in the thoracic electrical impedance through skin electrodes.

Bioimpedance analysis has been applied in the measurement of body composition and as a measurement tool in healthcare. In recent years, the clinical use of bioimpedance acquisition has gained significant interest in pneumology due to its applicability in the monitoring of variables related to pulmonary function like tidal volume distribution and respiratory rate. IP is a commonly used technique for monitoring respiratory rate.

This assessment is based on the fact that during breathing, the chest generates an impedance. During inspiration, the decrease in pleural pressionas result of inspiratory muscle contraction generates a negative intralveolar pressure, bellow atmospheric pressure, that finally moves air to the lung, expanding the thorax and inducing a decrease in tissue conductivity. Furthermore, the conductivity increases due to thoracic expansion. These changes produced during inspiration imply an increase in the electrical impedance relative to the basal impedance, which can be related to the changes in volume.

courtesy - Simple Wireless Impedance Pneumography System for Unobtrusive Sensing of Respiration

 

 

Basic principle –

The basic principle of this technique is pretty simple. A limited current at certain frequency is passed through the body and the impedance is calculated by measuring the voltage output across the surface. There are several techniques of measuring impedance ->

  • two electrode - bipolar
  • three electrode - tripolar
  • four electrode method - tetrapolar

 

Among them four electrode method is immune to contact impedance from the current injecting electrodes. Therefore, it gives better result and I am going to use it for my experiment.

 

image

Figure: bipolar (left) and tetrapolar (right) configuration

 

 

An alternating current of around 10KHz – 50 KHz is injected into the chest using surface electrodes. The current causes a potential difference that is measured between the electrodes.

The equivalent resistance = voltage in the receiving electrode(s) / the current applied to the tissue.

courtesy - Simple Wireless Impedance Pneumography System for Unobtrusive Sensing of Respiration

 

Depth and sensitivity -

 

For tetrapolar system, the sensitivity of the system depends on the distance between the electrodes.

imageimage

The concentrated blue area represents the maximum sensitive zone.

The depth of that zone, Dsenmax = distance between electrodes / 3

The lung surface is approximately 10 to 20 mm beneath the skin in the region of the medial scapular or midclavicular line.

 

Considering the depth of the maximum sensitive zone should be about 20mm -

The minimum electrode distance should be 20 * 3 = 60mm.

 

Safety Consideration -

Applying current to body implies several parameter to consider –

  • current intensity
  • pulse duration / exposure time
  • body impedance and
  • current frequency

Regardless of exposure time –

Safe allowable current = 1mA peak

Frequency 1kHz to 100 KHz

Regarding the frequency of the alternating current, if the current frequency increases it could decrease the risks of ventricular fibrillation. However, the risk of burns increases. I have used 10KHz.

 

Block Diagram of the Process -

image

 

 

Circuit Diagram for Tetra-polar Measurement -

 

Wave generator - Wein Bridge oscillator [sine wave up to 10KHz] 1 - 2 Vp-p

Current source - Howland Constant Current Source at 1mA

Voltage measuring circuit - AD620 Instrumentation amplifier from Analog Device with high CMRR

 

imageimage

Figure: LEFT - current source and Bio-amp circuit                                    RIGHT - rectifier and smoothing filter circuit

 

Further post processing of the signal is necessary like filtering and rectification to feed the output voltage into a microcontroller and calculate the impedance. The rectification can be done in hardware, whereas filtering and conditioning of the signal can be implemented in MCU.

 

OUTPUT -

I have used a DAQ software developed by Biomedical Physics and Technology Department, University of Dhaka to observe the Respiration / Pneumography curve.

image

 

Other Approaches -

The output of Impedance Pneumograph seems to be fine, and the advantage of this approach is that we can get all the exhale-inhale points of the Pneumograph. But the analog front end circuit is complex for a wearable device and it needs tight-fitting band to place the electrodes around the thorax.. Furthermore my target is to get a simple Pneumograph with exhale - inhale peaks only for the respiration rate calculation. Therefore, I would like to consider other approach like respiration derived from Photoplethysmography and ECG signal. Physiological mechanisms cause both signals to be modulated by respiration. Three types of modulation can be observed, as shown in the figure below -

baseline wander (BW),

amplitude modulation (AM), and

frequency modulation (FM)

Respiration Rate - RR can be estimated from these signals without encumbering the subject with extra sensors.

image

Idealised respiratory modulations of the PPG (left) and ECG (right). From top: no modulation, baseline wander (BW), amplitude modulation (AM), and frequency modulation (FM).

courtesy - https://iopscience.iop.org/article/10.1088/0967-3334/37/4/610

Respiration signal can be achieved by applying filter for baseline wander or feature-based extraction for AM and FM modulation -

image

courtesy - https://iopscience.iop.org/article/10.1088/0967-3334/37/4/610

 

 

Respiration from PPG [Photoplethysmogram]

 

I have used MAX30102 to measure SPO2 using Arduino NANO 33 IOT board. The RED and IR PPG signal can be used to get respiratory signal. My blog regarding measuring SpO2 can be found here - SpO2 [MAX30102]

imageimage

Respiratory-induced variations in the PPG:

RIAV  - is the change in pulse strength.

RIIV - is the variation of perfusion baseline.

RIFV - is a synchronization of the heart beat with the RR.

https://www.researchgate.net/figure/Respiratory-induced-variations-in-the-PPG-RIAV-is-the-change-in-pulse-strength-RIIV-…

 

In my design I would like to implement moving average filters to detect RIIV. This will give me a Filter-based respiratory signal.

imageimage

Figure: the baseline wander can be observed in both IR [left] and Red [right] PPG signal acquired from MAX30102 module

 

I have applied two simple moving average filters on IR PPG to find out the respiratory signal. The Orange and Grey plots are the filter-based respiratory [RIIV] signals with filter coefficients of 0.1 and 0.01 respectively -

imageimage

Figure: RIIV - filtered respiratory signal from IR PPG for normal breathing [LEFT] and forced / deep breathing [RIGHT]

 

Code Snippets -

#include <Ewma.h>
#include <EwmaT.h>
Ewma adcFilter2(0.1);
Ewma adcFilter1(0.05); 


//#include <KickFiltersRT.h>
     
//-------------other codes------------
//-------------------------------------
//PPG to RESPIRATION code snippet:

     redBuffer[i] = particleSensor.getRed();
      irBuffer[i] = particleSensor.getIR();
      particleSensor.nextSample(); //We're finished with this sample so move to next sample


      //send samples and calculation result to terminal program through UART
      //Serial.print(F("RED= "));
      //Serial.print(redBuffer[i], DEC);
      //Serial.print('\t');
      
      Serial.print(F("IR= "));
      Serial.print(irBuffer[i], DEC);
      Serial.print('\t');


      float filtered1 = adcFilter1.filter(irBuffer[i]);
      float filtered2 = adcFilter2.filter(filtered1);


      Serial.print(F("filtered1= "));
      Serial.print(filtered1);
      Serial.print('\t');
      
      Serial.print(F("filtered2= "));
      Serial.println(filtered2);

 

 

Respiration from ECG

 

My third approach will be the EDR (ECG-Derived Respiration) technique which is based on the observation that the amplitude of the R-peak reflects the respiratory signal of exhale and inhale points. This happens due to the relatively constant mean impedance of ~500 Ω, which varies depending on the position of the electrodes and the subject’s skin characteristics.

I have used AD8232 single LEAD ECG module to get the ECG signal with an Arduino MKR WiFi 1010 board in this project. My blog regarding that can be found here - ECG - AD8232.

Now - when I performed the signal conditioning using notch, low pass and high pass filter, the output signal clearly showed the variation of R-peak amplitude due to respiration. This variation becomes more significantly visible when the derivatives and squaring function amplifies the QRS peak. The following figures show the filtered outputs which can derive the respiratory signal -

imageimage

 

 

Comparison of PPG and ECG to derive Respiratory Signal -

The ECG plots are much stable than PPG. As the PPG signal is taken from the finger tip or the wrist, any sudden movement deflects the signal and hence the derived respiratory signal is also attenuated. Moreover, the ECG derived respiratory signal seems better on Arduino IOT cloud dashboard too. It sends data at 1 second period. I have a respiration rate of around 15 to 20 per minute. So, it takes about 3 to 4 seconds for one respiratory cycle. -

image

Figure - PPG derived respiration curve on Cloud dashboard

 

image

Figure - ECG derived respiration curve on Cloud dashboard

 

Conclusion -

It would be better if I could implement the impedance based respiration monitor in this project. It gives all the points during exhale and inhale. But due to the time constrain and complexity of the circuit to make it wearable, I have to move on with PPG or ECG derived respiratory signal. And my choice will be ECG, as it performs better for wearable device.

However, instead of the AD8232 module, similar chips with built-in respiratory signal acquisition system like ADS129xR from Texas Instruments or ADAS100 from Analog Devices Inc. can be used too. I'll keep that for future experiment.

  • Sign in to reply

Top Comments

  • neilk
    neilk over 4 years ago +1
    Very impressive analysis. Thanks for sharing. Neil
  • neilk
    neilk over 4 years ago

    Very impressive analysis. Thanks for sharing.

     

    Neil

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube