This app takes unfiltered PPG waveform as input and SQI table (Optional) and stores a single PPG segment. The developed MATLAB toolbox PPGFeat can automatically identify the fiducial points. The PPGFeat toolbox allows for the application of various preprocessing techniques, such as the use of a filter, smoothing, removing baseline drift, the possibility of calculating PPG derivatives and implementing algorithms for detecting and highlighting PPG fiducial points. The results can be used to generate more statistically accurate features for further analysis of the PPG signals.
The features table generated by the PPGFeat toolbox provides the fiducial points magnitude and time domain values of the PPG, VPG, and APG. A total of 30 features are generated, and include the magnitude features O, S, N, D, Min2, w, x, y, z, a, b, c, d, e, f, and time domain features O_t, S_t, N_t, D_t, Min2_t, w_t, x_t, y_t, z_t,a_t, b_t, c_t, d_t, e_t, and f_t.
PPGFeat: a novel MATLAB toolbox for extracting PPG fiducial points. Available from: https://www.researchgate.net/publication/371428211_PPGFeat_a_novel_MATLAB_toolbox_for_extracting_PPG_fiducial_points
PPGFeat has been designed using PPGBP data set, The PPGFeat toolbox is designed to support the user in performing various operations on PPG signals, including filtering, automatically extracting fiducial points, visualizing the fiducial points of the PPG, VPG, and APG, and generating a features table. The key features of the PPGFeat GUI are.
- Filter Frequency: The user is allowed to specify the sampling frequency (Fs) and the bandpass filter frequencies (FL for low-pass and FH for high-pass) for a Chebyshev Type II 4th-order filter with a 20 dB attenuation. This filter is applied to the raw PPG signal in order to obtain the filtered PPG signal.
- Data Loading: The user can load the raw PPG data of a subject in comma-separated values (.csv) file by using the “Load PPG” button. Additionally, the GUI allows the user to load the Ssqi and data index values of the PPG data using the “Load Ssqi” button. If the data index and Ssqi values are not available, the user can select the “Skip Ssqi” option. When developing PPGFeat, the raw PPG data consisted of 219 subjects with 2,100 data points for each subject, resulting in a matrix with the dimensions 219 x 2,100.
- Fiducial Point Extraction Process: After loading the data, the raw and filtered PPG waveforms are displayed. Using the filtered PPG, the PPGFeat toolbox locates the starting points of each segment from the PPG, which are displayed as “Min1″ and “Min2″ in the GUI. The user can change the selected PPG segment by altering the values in “Min1″ and “Min2″, and then plot the single PPG segment and their corresponding VPG, and APG segments by clicking the “Plot” button. The plots highlight the fiducial points of each waveform. If a fiducial point is incorrectly identified, the user can click the “Update” button to automatically correct the value and regenerate the plots. To examine the PPG waveform of the next subject, the user can press the “Next” button. The extracted fiducial points of the current subject will be automatically stored when clicking the “Next” button.
- Data Storage: After completing the fiducial point extraction process, the user can generate output files by clicking the “Generate output” button. These files include the filtered and zero-padded data of the PPG and APG segments, PPG segment locations (ID_min1_min2), presence of c and d points, a PPG features table listing the PPG, VPG, and APG fiducial points, filtered PPG waveforms and a MATLAB. mat file containing all generated output files.
Please see the video for your reference: https://www.linkedin.com/posts/saad-a-20973b22_ppg-matlab-signalprocessing-activity-7072980563766255616-mMOl?utm_source=share&utm_medium=member_desktop