Skip to content

Respiratory Signal Extraction

Peter Charlton edited this page Mar 9, 2016 · 6 revisions

The first fundamental stage of the RR algorithms is 'Extraction of Respiratory Signals', in which a time series dominated by respiratory modulation is extracted from the original physiological signal. For example, in this figure respiratory signals extracted from the ECG (upper plot) and PPG (lower plot) are shown alongside breaths (dots):

Extraction of respiratory signals

Techniques for extraction of respiratory signals have been categorised into one of two methods: filter-based extraction, and feature-based extraction. Filter-based extraction includes techniques such as band-pass filtering to eliminate non-respiratory frequencies, and wavelet decomposition. Feature-based extraction consists of extracting a measurement, such as pulse wave amplitude, from each cardiac cycle. Feature-based extraction is performed using several components, as shown below:

The processes for extraction of respiratory signals

Specify the approaches for extraction of respiratory signals:

Any number of the following approaches, consisting of signal and respiratory signal extraction method, can be specified under the 'Algorithms' section in the setup_universal_params.m script:

up.al.options.extract_resp_sig = {'ekg_filt', 'ppg_filt', 'ekg_feat', 'ppg_feat',};

Further details on the methods for extraction of respiratory signals are provided in this publication.

Specify the components for feature-based extraction of respiratory signals:

If you choose to include the feature-based method for extraction of respiratory signals then the components contained within this method are specified as:

  1. Elimination of very high frequencies (EHF);

  2. Beat detection: PPG pulse peak or R-spike detection (PDt or RDt);

  3. Fiducial point identification (FPt);

  4. Extraction of Feature Measurements (FMe);

  5. Re-sampling at a regular sampling frequency (RS);

  6. Elimination of very low frequencies (ELF).

These are specified for each signal using the following: up.al.sub_components.ppg_feat = {'EHF', 'PDt', 'FPt', 'FMe', 'RS', 'ELF'};

up.al.sub_components.ekg_feat = {'EHF', 'RDt', 'FPt', 'FMe', 'RS', 'ELF'};

It is recommended that these are left alone. Further details on the components for feature-based extraction of respiratory signals are provided in this publication.

Specify the interchangeable technique(s) to be used for each component of feature-based extraction of respiratory signals:

Now that the components of feature-based extraction have been specified, you can specify which technique(s) you would like to use for each component. If you specify multiple techniques for any component, then the code will run all possible combinations of the specified techniques. At least one techniques should be specified for each of the following components:

Beat detection

One PPG Pulse peak detector has been implemented: the Incremental-Merge Segmentation algorithm presented in this publication.

up.al.options.PDt = {'IMS'};

One ECG Beat detector has been used with the toolbox: the rpeakdetect.m function written by Prof G. Clifford, which is available here.

up.al.options.RDt = {'GC'};

Feature Measurement

Several techniques for measurement of features in ECG and/or PPG signals have been implemented. A brief description of each technique is provided in this publication. Use the following to specify all implemented techniques:

up.al.options.FMe = {'am', 'fm', 'bw', 'bwm', 'pk', 'on', 'qrsW', 'qrsA', 'pca', 'pulW'};

The techniques are as follows:

  1. Amplitude Modulation (am , ref)

  2. Frequency Modulation (fm , ref)

  3. Baseline Wander (bw , ref)

  4. Mean Baseline Wander (bwm , ref)

  5. Peak Amplitude (pk , ref)

  6. Trough Amplitude (on , ref)

  7. QRS duration (qrsW , ref)

  8. QRS area (qrsA , ref)

  9. Principle Component Analysis (pca , ref): note that for this the freely available toolbox written by the LS-SVMlab, here, was used.

  10. PPG Pulse Width (pulW , ref)

Re-sampling

Next the irregularly-sampled feature-based respiratory signals are resampled at a constant sampling rate using linear, interpolation, cubic spline interpolation, or Berger's method. These techniques can be optionally followed by band-pass filtering if desired, by adding B to the end of the name. The possible options are:

up.al.options.RS = {'lin', 'linB', 'cub', 'cubB', 'brg', 'brgB'};

Specify the interchangeable techniques for filter-based extraction of respiratory signals:

Similarly, the techniques to be used for filter-based extraction of respiratory signals must be specified. A brief description of each technique is provided in this publication. Use the following to specify all implemented techniques for use on both ECG and PPG signals:

up.al.options.ekg_filt = {'Wfm', 'Wam', 'CCF', 'BFi'};

up.al.options.ppg_filt = {'Wfm', 'Wam', 'CCF', 'BFi'};

The techniques are as follows:

  1. Band-pass filtering (BFi , ref)

  2. Filtering using the centred-correntropy function (CCF , ref)

  3. Wavelet extraction of frequency modulation (Wfm , ref)

  4. Wavelet extraction of amplitude modulation (Wam , ref)