Skip to content

parmanac/ppg-sqi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

PPG-SQI

matlab library for ppg signal quality assesment This project aims to compute Signal Quality Indices (SQIs) for photoplethysmogram (PPG) signals collected at 100Hz. The SQIs are calculated based on definitions provided in the relevant literature to assess the quality of PPG signals, which are crucial for accurate physiological measurements.

Project Structure

The project is organized as follows:

ppg_quality_assessment
├── src
│   ├── compute_sqi.m          % Script to compute SQIs for raw PPG signals
│   ├── utils                   % Directory containing utility functions for SQI calculations
│   │   ├── perfusion_sqi.m     % Function to calculate perfusion SQI
│   │   ├── skewness_sqi.m      % Function to compute skewness SQI
│   │   ├── kurtosis_sqi.m      % Function to calculate kurtosis SQI
│   │   ├── entropy_sqi.m       % Function to compute entropy SQI
│   │   ├── relative_power_sqi.m % Function to calculate relative power SQI
│   │   ├── zero_crossing_sqi.m  % Function to compute zero-crossing SQI
│   │   ├── non_stationarity_sqi.m % Function to assess non-stationarity SQI
│   │   └── matching_systolic_sqi.m % Function to calculate matching systolic SQI
│   └── main.m                  % Main entry point for the project
├── data
│   ├── raw                     % Directory for raw PPG signal data files
│   └── processed               % Directory for processed PPG data files
├── results
│   └── tables                  % Directory for saving resulting tables with computed SQIs
└── README.md                   % Documentation for the project

Installation

To run this project, ensure you have MATLAB installed. Clone or download the repository to your local machine.

Usage

  1. Place your raw PPG signal data files in the data/raw directory.
  2. Open the main.m script in MATLAB.
  3. Run the main.m script to process the PPG data and compute the SQIs.
  4. The results will be saved in the results/tables directory.

Features

The following Signal Quality Indices (SQIs) are computed:

  • Perfusion SQI: Assesses the ratio of pulsatile blood flow to static blood in peripheral tissue.
  • Perfusion Index SQI: Calculates the ratio of AC to DC component of the PPG signal.
  • Skewness SQI: Measures the asymmetry of the signal distribution.
  • Kurtosis SQI: Evaluates the "tailedness" of the signal distribution.
  • Entropy SQI: Quantifies the complexity or unpredictability of the PPG signal.
  • Shannon Entropy SQI: Measures information content using Shannon's definition of entropy.
  • Approximate Entropy SQI: Quantifies the unpredictability of time series data.
  • Spectral Entropy SQI: Measures the entropy of the power spectrum distribution.
  • Relative Power SQI: Evaluates the power distribution of the signal across different frequency bands.
  • Band Power SQI: Calculates power in different frequency bands (total, low, high).
  • Power Ratio SQI: Computes the ratio of high to low frequency power.
  • Dominant Frequency SQI: Identifies the frequency with maximum power and its magnitude.
  • Zero-Crossing SQI: Counts the number of times the signal crosses the zero line.
  • Non-Stationarity SQI: Assesses how the statistical properties of the signal change over time.
  • Matching Systolic SQI: Evaluates the accuracy of detected systolic waves in the PPG signal.
  • SNR SQI: Calculates the Signal-to-Noise Ratio in decibels.
  • Autocorrelation SQI: Measures the self-similarity of the signal at different time lags.
  • Template Matching SQI: Compares signal pulses to template shapes.
  • Hjorth Parameters SQI: Calculates activity, mobility, and complexity parameters.
  • Statistical SQI: Includes Mean Absolute Deviation, Variance, and Coefficient of Variation.

Contributing

Contributions to improve the project are welcome. Please submit a pull request or open an issue for discussion.

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.

About

matlab library for ppg signal quality assesment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages