This repository contains MATLAB files for a biomedical engineereing design challenge focused on designing a wearable device for postpartum pregnant women in rural Georgia (U.S.). The device aims to measure vital signs, including heart raste and blood pressure.
- 'research1.m': MATLAB code analyzes PPG sensor data from wrist and finger, featuring machine learning toolbox in MATLAB functions for data cleaning, raw sensor plots, and Beats Per Minute (BPM) calculation. Linear regression identifies blood pressure trends, and residuals guide model accuracy assessment.
Figure 1: Provides a visual of signal values changing over time, aiding in physiological insights. BPM calculation offers quick heart rate assessment, with potential for refining BPM algorithms for enhanced accuracy.
Figures 2 and 3: Generate linear regression subplots for blood pressure trends. Residual analysis identifies model shortcomings, guiding an iterative refinement process for improved accuracy. Overall, these MATLAB files offer insights into cardiovascular activity, emphasizing the importance of iterative refinement for accurate health monitoring.
-
MATLAB (Cleaned Raw Wrist Data) Signal Value vs Time (Raw Data), Signal Value vs Time (Blood Pressure Trend), Residual Value vs Time (Residuals).png
-
MATLAB (Cleaned Raw Finger Data) Signal Value vs Time (Raw Data), Signal Value vs Time (Blood Pressure Trend), Residual Value vs Time (Residuals).png
-
MATLAB (Cleaned BPM Data) Signal Value vs Time (Raw Data), Signal Value vs Time (Blood Pressure Trend), Residual Value vs Time (Residuals).png
- 'statsapp10.m': This MATLAB script performs the following statistical analyses on the clean BPM dataset: Descriptive statistics: Mean, median, mode, variance, standard deviation, standard error, range, correlation coefficient, and linear regression coefficients. Two-sample t-test to assess the difference between the sample mean and hypothesized population mean (from the Apple Watch). Calculation of confidence intervals.
- MATLAB Finger Raw Data Output.png
- MATLAB Wrist Raw Data Output.png
- MATLAB Clean Finger BPM Data Output.png
- MATLAB Clean Wrist BPM Data Output.png
- 'ttestpval.m': This script executes a t-test to evaluate the significance of the observed sample mean compared to the assumed population mean. It calculates the T-Value, representing the standard errors between the sample mean and population mean, and the P-Value, indicating the probability of observing the given T-Value under the null hypothesis. This script provides insights into the characteristics of datasets, examining the reliability of sample statistics, detecting trends (e.g., blood pressure trends), and assessing the significance of data concerning specific population parameters. It underscores the significance of the t-test as a powerful tool for hypothesis testing and drawing meaningful conclusions from the dataset.
- 'aimodel.m': This MATLAB script performs machine learning toolbox applications in MATLAB by loading PPG data, applying a Butterworth bandpass filter, performing Z-score normalization, and aligning signals using cross-correlation. Afterwards, defines and trains an LSTM-based autoencoder for feature extraction and ABP waveform reconstruction. Furthermore, the script allows for visualizations of raw and filtered PPG signals, aligned MAP signals, and predicted continuous MAP waveforms to assess the model's performance. Moreover, loads new PPG data, filters and normalizes it, makes predictions using the trained LSTM autoencoder, and visualizes the actual and predicted MAP signals.



