-
Notifications
You must be signed in to change notification settings - Fork 4
How it Works
This page describes the technical details of how the PulseAnalyse tool works.
PulseAnalyse performs several steps to analyse arterial pulse waves, as follows. Click on the links to find out more about each step.
Further details on each of these steps are now provided.
The most notable step taken during the setup is to determine whether a single pulse wave, or multiple pulse waves, have been provided as an input. If the duration of the input signal is less than 2.5 seconds, then it is assumed that it contains a single pulse wave. If it is more than 2.5 seconds, then it is assumed that it contains multiple pulse waves.
Input Signal Duration | Assumed nature of signal |
---|---|
≤ 2.5 secs | single pulse wave |
> 2.5 secs | multiple pulse waves |
This step detects individual beats (i.e. pulse waves) within the signal. It also identifies the point of maximum amplitude within each pulse wave (i.e. the pulse wave peaks). The process differs depending on whether the input signal contains a single, or multiple, pulse waves:
The beat onset and end are simply the first and last point on the input signal.
In this case, individual beats are detected by:
- Filtering the signal to eliminate frequencies outside of 0.2 - 35 Hz.
- Detecting beats using the incremental merge segmentation algorithm (implemented by M.A.F Pimentel as part of the RRest toolbox).
Next, signal quality is assessed using an adaptation of the algorithm presented in ref. This algorithm determines the quality of the signal by assessing the consistency of pulse wave shapes. It assigns either high or low quality to each beat.
optional: performed if up.options.do_filter
is 1.
This filters the signal to eliminate:
- high frequency content above approximately 17.5 Hz.
- low frequency content below approximately 0.2 Hz. (In the case of a single pulse wave, low frequency content is removed by subtracting the baseline - a straight line between the pulse wave onset and the pulse wave end).
(the filter characteristics are specified by up.filtering.fiducial_points.elim_low_freqs
)
The filtering can result in slight changes to the locations of the pulse onsets. Therefore, new locations are obtained by adjusting the old locations to the locations of the minimum pulse wave values with 0.05 s of the old locations. (the tolerance is specified by up.paramSet.onset_tol
)
optional: performed if up.options.calibrate_pw
is 1.
This calibrates a pressure signal using reference blood pressure (BP) values. Two approaches can be taken:
- Provide reference systolic and diastolic (SBP and DBP) values: each pulse wave is scaled and offset to occupy the range between the reference SBP and DBP.
- Provide reference mean and diastolic (MAP and DBP) values: each pulse wave is scaled and offset to have the MAP and DBP values.
The reference values should be provided using two of: options.calib_sbp
, options.calib_dbp
, and options.calib_map
.
optional: performed if up.options.tran_func
is 1.
This transforms a peripheral pressure signal into an estimate of a central pressure signal. Brachial, radial and carotid pressure signals can be transformed into an estimated central (aortic) signal. Since different transfer functions are used for each peripheral pressure signal site, the site of the input signal must be specified using options.sig_type
as one of:
- Brachial:
options.sig_type = 'brachABP'
(uses the transfer function reported in ref. - Radial:
options.sig_type = 'radiaABP'
(uses the transfer function reported in ref. - Carotid:
options.sig_type = 'carotABP'
(uses the transfer function reported in ref.
Only the shapes of the pulse waves are changed, and not their timings.
optional: performed if up.options.calc_average_pw
is 1.
This calculates a single, average, pulse wave from all of the pulse waves in a recording. Pulse waves are aligned by the point of maximum upslope. An average pulse wave is calculated as the average shape of high quality pulse waves (with duration equal to the median pulse wave duration).
The remainder of the analysis is performed using this single, average pulse wave (and the locations of pulse onsets and peaks are adjusted accordingly).
The first, second and third derivatives of the pulse wave(s) are calculated using 9-point Savitzky-Golay filtering, using the coefficients provided in ref.
The fiducial points listed here are identified on each pulse wave.
The following values are provided for each fiducial point:
- The index of the fiducial point in the signal.
- The amplitude of the pulse wave (or, if appropriate, one of its derivatives) at this fiducial point
- The normalised amplitude (which is the above amplitude, divided by the trough-peak amplitude of the pulse wave)
- The timing of the fiducial point (time since this pulse wave's onset)
The pulse wave indices listed here are calculated. The values provided are the raw values (i.e. the values for each pulse wave in the input signal), and the median values derived from high quality pulse waves.
Part of the wider PulseAnalyse Project