Skip to content

How it Works

Peter Charlton edited this page Nov 11, 2019 · 22 revisions

This page describes the technical details of how the PulseAnalyse tool works.

How it Works

PulseAnalyse performs several steps to analyse arterial pulse waves, as follows. Click on the links to find out more about each step.

  1. Setup

  2. Beat Detection

  3. Signal Quality Assessment

  4. Filtering

  5. Calibration

  6. Transforming to a Central Pressure Signal

  7. Calculate Average Pulse Wave

  8. Calculate Derivatives

  9. Identify Fiducial Points

  10. Calculate Pulse Wave Indices

  11. Make plots

Further details on each of these steps are now provided.

Setup

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

Beat Detection

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:

Input signal is a single pulse wave

The beat onset and end are simply the first and last point on the input signal.

Input signal contains multiple pulse waves

In this case, individual beats are detected by:

Signal Quality Assessment

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.

Filtering

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)

Calibration

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.

Transforming to a Central Pressure Signal

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.

Calculate Average Pulse Wave

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).

Calculate Derivatives

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.

Identify Fiducial Points

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)

Calculate Pulse Wave Indices

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.

Make plots