-
Notifications
You must be signed in to change notification settings - Fork 4
Using PulseAnalyse
This page provides an overview of how to use PulseAnalyse.
You will need three items to run PulseAnalyse:
- A Matlab ® installation
- The PulseAnalyse code
- Some data to analyse (such as the example data)
PulseAnalyse can be used to analyse either a single pulse wave, or a pulsatile signal containing multiple pulse waves.
The input data, S, should be prepared as a structure with the following fields:
- S.v : a vector of signal amplitudes (either a single pulse wave starting at the pulse onset, or a pulsatile signal containing several pulse waves)
- S.fs : the sampling frequency (in Hz)
- S.ht : (optional) the subject's height (in metres)
At its simplest, PulseAnalyse can be called using
[pw_inds,fid_pts] = PulseAnalyse(S);
This will calculate the pulse wave indices (pw_inds) and provide the amplitudes and timings of the fiducial points (fid_pts) on the pulse wave (or pulsatile signal) provided by S. You can quickly get started with an example pulse wave by following the Analysing a single pulse wave example.
PulseAnalyse returns the following outputs:
-
pw_inds: A structure containing the calculated pulse wave indices. For instance, pw_inds.AI.v is the value of the augmentation index (AI). If the input S contains several pulses, then pw_inds.AI.v is the median AI value, and pw_inds.AI.raw is a vector of raw values for each pulse.
-
fid_pts: A structure containing:
- fid_pts.ind: the indices of the fiducial points
- fid_pts.amp: the ampltiudes of the fiducial points
- fid_pts.amp_norm: the amplitudes of the fiducial points (when the pulse wave is normalised to occupy a range of 0 to 1)
- fid_pts.t: the times of the fiducial points (relative to pulse wave onsets)
For instance, fid_pts.ind.dic provides the indices of the dicrotic notch(es).
-
pulses: A structure containing information on the pulses:
- pulses.peaks - the indices of systolic peaks
- pulses.onsets - the indices of pulse onsets (i.e. beginning of systole)
- pulses.quality - a logical indicating the signal quality of each pulse (true indicates high quality)
-
sigs: A structure containing the following signals:
- sigs.orig - the original signal
- sigs.filt - a filtered signal (if the filtering option is enabled)
- sigs.first_d - first derivative
- sigs.second_d - second derivative
- sigs.third_d - third derivative
For instance, this full set of outputs is returned when running
[pw_inds,fid_pts,pulses,sigs] = PulseAnalyse(S);
A range of options (listed below) can be specified to adjust the analysis conducted by PulseAnalyse. For instance, whereas the first example can be run using the following command with no options specified:
PulseAnalyse([])
,
this could be modified to specify to only plot the pulse wave, and not its derivatives, using:
options.plot_pw_only = 1; PulseAnalyse([], options)
Option | Default | Definition |
---|---|---|
do_plot | 1 | A logical (1 or 0) indicating whether or not to make plots |
exclude_low_quality_data | 1 | A logical indicating whether or not to exclude low quality pulse waves from the calculation of median values of pulse wave indices |
plot_third_deriv | 0 | A logical indicating whether or not to plot the third derivative |
close_figures | 1 | A logical indicating whether or not to close all Matlab figures before running the analysis |
do_filter | 1 | A logical indicating whether or not to filter pulse waves prior to analysis |
save_folder | '' | A string containing the path of a directory in which to save plots |
save_file | '' | A string containing the filename under which to save plots (without an extension) |
beat_detector | 'IMS' | The type of beat detector to use when analysing a prolonged recording of multiple pulse waves. Definitions: IMS - incremental merge segmentation algorithm (implemented by M.A.F Pimentel as part of the RRest toolbox). |
verbose | 0 | A logical indicating whether or not to provide text outputs for any warnings |
plot_areas | 0 | A logical indicating whether or not to plot the systolic and diastolic areas on the pulse wave |
plot_pw_only | 0 | A logical indicating whether or not to plot only the pulse wave and not its derivatives |
normalise_pw | 1 | A logical indicating whether or not to normalise the pulse wave to occupy a range of 0 to 1 |
Part of the wider PulseAnalyse Project