Skip to content
/ BPPPG Public
forked from akaza-00/BPPPG

Blood Pressure Estimation using PPG Signal Morphological Features

Notifications You must be signed in to change notification settings

nsbspl/BPPPG

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blood Pressure Estimation using PPG Signal Morphological Features

This repository contains the codes corresponding to study continous blood pressure estimation using PPG features.

Requirements

Please install the following Python (3.8) libraries:

  • hrv-analysis
  • biosppy
  • pyampd
  • scipy
  • mat73
  • sklearn
  • pandas
  • numpy
  • matplotlib
  • pickle

Usage

You can skip steps 1,2, and 3 and use the pre-extracted features.csv.

1-

  • Download MIMIC II dataset (BP, ECG, PPG) raw signals and save as MATLAB matrices in "data" folder. (similar to the matrices available on UCI BP dataset)

or,

  • Use the sample dataset provided in data folder and load it using the following code:
>>> import pickle
>>> with open('data_sample_BP_PPG.pkl', 'rb') as f:
...   [data] = pickle.load(f)

2- Run featureExtractor.py

3- Run CSVconcat.py to concat CSV feature files created by the previous step.

4- Run BPEstimation.py to fit and test machine learning based models.

Plots

The results of BP estimation using Random Forest model (10-fold cross validation, MIMIC II dataset):

Systolic BP: corr=0.79, MAE=11.12 mmHg, STD=9.96 mmHg

Diastolic BP: corr=0.78, MAE=4.06 mmHg, STD=3.95 mmHg

RegPlot_sys_RandomForest RegPlot_dia_RandomForest

Citing this work

Please use the following citation:

Hasanzadeh, Navid, Mohammad Mahdi Ahmadi, and Hoda Mohammadzade. "Blood pressure estimation using photoplethysmogram signal and its morphological features." IEEE Sensors Journal 20, no. 8 (2019): 4300-4310.

About

Blood Pressure Estimation using PPG Signal Morphological Features

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%