Introduction

Although the clinical significance of Accelerated Plethysmograph (APG) measurement has been well-investigated [14], there are still a lack of studies focusing on the automatic detection of a and b waves in APG signals. However, Matsuyama [5] attempted to determine which of the nine QRS algorithms of Friesen’s ECG algorithms [6] suit the detection of a waves in APG signals—this is because the morphology of the R peak in ECG signal is similar to the a wave in the APG signal. The detection rate was below 63% for all nine algorithms, even after modifying the thresholds with different values. Matsuyama [5] recommended that a new robust algorithm be developed for both APG and ECG signals. Therefore, our investigation herein is aimed at developing a robust algorithm to detect a waves in APG signals and to compare its performance with the prior nine a detection algorithms [5]. Up to the present there has been no attempt to detect b waves in APG signals; and therefore a new method for detecting the b wave is now introduced. To validate the robustness of the developed algorithms, noisy APG signals—measured at rest and after exercise—were tested.

Photoelectric plethysmography is the most commonly used method for pulse-wave analysis—it is also know as photoplethysmography (PTG/PPG) or digital volume pulse (DVP) analysis. In this paper, the acronym PPG will be used throughout, as recommended by [7]. Fingertip PPG mainly reflects the pulsatile volume changes in the finger arterioles, as shown in Figure 1. Application of the second derivative is typically applied to accentuate subtle changes in the PPG contour [1]. It is the second derivative of the PPG signal that is the APG, also known as SDPPG [7].

Figure 1
figure 1

Fingertip photoplethysmogram signal measurement [[8]]. (a) Fingertip photoplethysmogram. (b) Second derivative wave of photoplethysmogram. The photoplethysmogram waveform consists of one systolic wave and one diastolic wave, while the second derivative photoplethysmogram waveform consists of four systolic waves (a, b, c, and d waves) and one diastolic wave (e wave).

As depicted in Figure 1, the APG waveform comprises four systolic waves (a, b, c, and d waves) and one diastolic wave (e wave) [2]. In our study, the height of detected a and b waves was measured from the baseline—the values of a waves are positive (above the baseline), while the values of b waves are negative (under the baseline). The main focus of this study is to provide a robust detection algorithm for a and b that can be used in clinical studies, e.g., carotid distensibility and ageing [9].

Materials and methods

Ethics statement

There is one annotated APG database available at Charles Darwin University. The data were collected during rest (before exercise) and after one hour of exercise (walking) on a treadmill in the climate control chamber at Northern Territory Institution of Sport (Darwin, Australia). The speed of treadmill was set to 5 km/h with a one percent incline increment corresponding to the effort required to walk with 8 kg of webbing. The exercise was considered to be of moderate intensity, and the background of the entire project can be found in [5]. All subjects provided written informed consent before participation, which was approved by the Charles Darwin University Ethics Committee. The database is available upon request at Charles Darwin University: http://www.cdu.edu.au/ehse.

Data used

The PPGs of 27 healthy volunteers (males) with a mean ± SD age of 27 ± 6.9 were measured using a photoplethysmography device (Salus APG, Japan), with the sensor located at the cuticle of the second digit of the left hand, in which all subjects were included. Measurements were taken while the subject was at rest on a chair. The PPG data were collected at a sampling rate of 200 Hz and the duration of each recording was 20 seconds. The PPG recordings of 20 seconds are intentionally much shorter than is usual for ECG recordings to exclude motion artefacts and other noise [10]. This also serves as a preliminary test of feasibility, where the ease of shorter recording lengths is desirable in a clinical setting.

The annotations were carried out by only one PPG specialist, which is sufficient for this preliminary proof-of-concept study. The signals measured during rest, before exercise, contained a total of 584 heartbeats, whilst the PPG signals collected after one hour of exercise with a total of 885 heartbeats, and two hours of exercise with total of 956 heart beats; the background of the entire project can be found in [5]. For signal analysis and wave detection, MATLAB 2010b (The MathWorks, Inc., Natick, MA, USA) was used.

Training set

The PPG signals collected after 1 hour of exercise were used for training as they includes different shapes of PPG waveforms and noise. Moreover, it contained fast rhythm PPG signals, with a total of 885 heart beats, which had an impact on the detection accuracy.

Test set

PPG signals were measured at rest (before the exercise), with a total of 584 heart beats, and after 2 hours of exercise, with a total of 956 heart beats, were used for testing.

Methodology

We discuss and evaluate nine algorithms that are used by Matsuyma [5] to detect a waves in APG signals, and introduce a new algorithm that demonstrates greater robustness and accuracy for the a wave detection under conditions of heat stress. All of the algorithms we evaluate are advantageous in that they do not impose an extensive computational overhead that is often required in biosignal analysis.

In describing the algorithms for a wave detection in this article, note that X[ n] refers to the raw PPG signal; while S[ n] refers to the filtered X[ n] signal. Here, THR1, THR2, and THR3 refer to the the first, second, and third threshold, consequently.

Nine algorithms

  1. 1.

    AF1: This algorithm is based on the algorithm developed by Morizet-Mahoudeaux [11]. The algorithm examines the amplitudes and slopes of the APG signals, which form the distinctive feature of the a wave, exceed certain thresholds. The slope is the first derivative of the APG signal, S[ n]=X[ n+1]−X[ n−1], followed by three fixed thresholds. The optimal values of these thresholds are defined by Matsuyama [5] as follows: THR1=0.31 max(X[ n]), THR2=0.0001, and THR3=−0.001.

  2. 2.

    AF2: This algorithm is based on the algorithm developed by Fraden and Neuman [12]. The algorithm examines the amplitudes and the slopes of the APG signal. The optimal threshold values for the amplitudes and slopes (positive) are THR1=0.21 max(X[ n]) and THR2 = 0.75 [5]. The APG signal X[ n] is rectified. The absolute value of the APG signal is taken as X 1[ n]=|X[ n]|. This signal X 1[ n] is then modified using the amplitude threshold THR1 as follows: X 2[ n]=X 1[ n] if X 1[ n]>THR1 and X 2[ n]=THR1 if X 1[ n]<THR1. Then, the first derivative of X 2[ n], S[ n] is calculated as S[ n]=X 2[ n+1]−X 2[ n−1], followed by a threshold S[ n]>THR2.

  3. 3.

    AF3: This algorithm is based on Gustafson’s algorithm [13]. This algorithm not only examines the positive slopes but also the product of the slope and amplitude of the APG signal. The first derivative S[ n] is defined as S[ n]=X[ n+1]−X[ n−1], followed by an optimal threshold value THR1=62 [5].

  4. 4.

    FD1: The concept for this algorithm was taken from Menrad [14]. This algorithm examines the slopes of the APG signal. Menard defined the first derivative as follows: S[ n]=−2X[ n−2]−X[ n−1]+X[ n+1]+2X[ n+2], followed by an optimal slope threshold THR1=0.099 max(S[ n]).

  5. 5.

    FD2: This algorithm is based on the method developed by Holsinger [15]. The algorithm examines the slopes of the APG signal. The first derivative S[ n] is described as: S[ n]=X[ n+1]−X[ n−1]. The optimal threshold value for the positive slopes is: THR1=150 [5].

  6. 6.

    FS1: This algorithm is a simplified version of the technique presented by Balda [16]. The first and second derivatives of the APG signal are employed. The following absolute values of the first and second derivative of the APG signals are obtained by X 1[ n]=X[ n + 1]−X[ n − 1] and X 2[ n]=X[ n + 2]−2X[ n]+X[ n − 2]. The filtered PPG signal is calculated using these derivatives as follows: S[ n]=1.3X 1[ n]+1.1X 2[ n], followed by an optimal threshold value THR1=154.5 [5].

  7. 7.

    FS2: This algorithm adapts the QRS detection technique developed in 1983 by Ahlstrom and Tompkins [17]. This algorithm examines the first and second derivative of the APG signal. The rectified first derivative is calculated as X 1[ n]=a b s(X[ n+1]−X[ n−1]). The rectified first derivative is then smoothed as X 2[ n]=(X 1[ n−1]+2X 1[ n]+X 1[ n+1])/4. The absolute value of the second derivative is calculated as X 3[ n]=X[ n+2]−2X[ n]+X[ n−2]. The smoothed absolute values of the first derivative are added to the absolute values of second derivative as follows Y[ n]=X 2[ n]+X 3[ n], followed by two thresholds THR1=0.1 max(S[ n]) and THR2=0.8 max(S[ n]).

  8. 8.

    DF1: This algorithm is adapted from the one developed by Engelse and Zeelenberg [18]. The algorithm employs digital filters, such as a differentiator and a low-pass filter. A differentiator is applied to the APG signals X 1[ n]=X[ n]−X[ n−4], then passed through a digital lowpass filter S[ n]=X 1[ n]+4X 1[ n−1]+6X 1[ n−2]+4X 1[ n−3]+X 1[ n−4], followed by a threshold THR1=21.

  9. 9.

    DF2: This algorithm is based on Okada’s QRS detection algorithm [19]. The algorithm uses digital filters, such as a moving average filter and a low-pass filter. The first step is to smooth the APG signals with a three-point moving average filter X 1[ n]=X[ n−1]+2X[ n]+X[ n+1]. Then pass X 1 through a low-pass filter as follows X 2 [n]= k = n m n + m X 1 [k]/(2m+1), where m=3. The next step is squaring the difference between the input X 1[ n] and output X 2[ n] of the low-pass filter X 3=(X 1[ n]−X 2[ n])2, followed by a filtering step X 4 [n]= X 3 [n] k = n m n + m X 3 [ k ] 2 . A modification step is done as follows X 5[ n]=X 4[ n], if [ X 1[ n]−X 1[ nm] ][ X 1[ n]−X 1[ n+m] ]>THR1, otherwise X 5[ n]=0, where THR1=1. The last step is thresholding with THR2=0.006 max(X 5[ n]) [5].

Proposed method

In this study, a novel algorithm, adapted from the framework proposed by Elgendi for detecting systolic waves in PPG signals [20], for detecting QRS complexes in ECG signals [21, 22], and for detecting c, d, and e waves in APG signals [23], will be evaluated. The same approach will be used here to detect the a waves. The method consists of three main stages: pre-processing (bandpass filtering and squaring), feature extraction (generating potential blocks using two moving averages), and classification (thresholding). The structure of the algorithm is given in Figure 2.

Figure 2
figure 2

Flowchart of the knowledge-based a wave detection algorithm. The algorithm consists of three stages: pre-processing (bandpass filter, cancellation of b waves, and squaring), feature extraction (generating blocks of interest based on prior knowledge), and thresholding (based on prior knowledge).

Bandpass filter

A zero-phase second-order Butterworth filter, with bandpass 0.5–15 Hz based on a brute force search that will be discussed later in the Parameter optimization section, was implemented to remove the baseline wander and high frequencies that do not contribute to the a wave (cf. Figure 3). The output of the zero-phase Butterworth filter applied to the PPG signal—at rest and after exercise—produced a filtered signal S[ n], as shown in Figure 4. The code line of this step is line 2 in the pseudocode of the a detection algorithm (Algorithm 1), where F 1=0.5 Hz and F 2=15 Hz.

Figure 3
figure 3

Fourier transform of noisy PPG signals: (a) PPG signal and (b) Fourier transform (spectrum) of the PPG signal. The spectrum illustrates peaks at the fundamental frequency of 50 Hz, as well as the second and third harmonics at 100 Hz. The spectrum shows that the main energy of the PPG signal lies below 20 Hz.

Figure 4
figure 4

The proposed algorithm output for PPG measured at rest and after exercise.

Second derivative

To obtain the APG signals, the second derivative was applied to the filtered PPG in order to analyze the APG signals. Equations 1 and 2 represent a non-causal filter; the three-point centre derivative was created with a delay of only two samples.

S [n]= dS dt | t = nT = 1 2 T (S[n+1]S[n1]),
(1)
Z[n]= d S dt | t = nT = 1 2 T ( S [n+1] S [n1]),
(2)

where T is the sampling interval and equals the reciprocal of the sampling frequency and n is the number of data points. Figure 4 shows the second derivative of the filtered PPG signal measured at rest and after exercise. The code line of this step is line 3 in the pseudocode of the a detection algorithm (Algorithm 1).

Cancellation of b wave

At this stage, the a wave of the APG needs to be emphasized to distinguish it clearly for detection. This can be done by clipping the negative parts of the APG signal (Z[ n]=0, if Z[ n]<0). The code line of this step is line 4 in the pseudocode of the a detection algorithm (Algorithm 1).

Squaring

Squaring emphasizes the large differences resulting from the a wave, which suppress the small differences arising from the diastolic wave and noise, as shown in Figure 4. This step results in the output

y[n]=Z [ n ] 2 ,
(3)

which is important for improving the accuracy in distinguishing the a wave segment in APG signals. The code line of this step is line 5 in the pseudocode of the a detection algorithm (Algorithm 1).

Generating blocks of interest

Blocks of interest are generated using two event-related moving averages that demarcate the a wave and heartbeat areas. The particular method used to generate blocks of interest has been mathematically shown to detect systolic waves [20] and QRS complexes [21].

In this procedure, the first moving average (MApeak) is used to emphasize the a wave area, as the dotted signal shows in Figure 5, and is given by

MA peak [n]= 1 W 1 y [ n ( W 1 1 ) / 2 ] + + y [ n ] + + y [ n + ( W 1 1 ) / 2 ] ,
(4)
Figure 5
figure 5

Demonstrating the effectiveness of using two moving averages to detect a and b waves. (a) Two beats APG signal; (b) generating blocks of interest after using two moving averages: the dotted black line is the first moving average MApeak and the solid green line is the second moving average MAbeat; and (c) the detected a and b waves after applying the thresholds. Here, ‘red asterisk’ represents the detected a wave and ‘black plus sign’ represents the detected b wave by the proposed algorithm.

where W 1 represents the window size of the systolic-peak duration. The resulting value is rounded to the nearest odd integer. The exact value for W 1 of 175 ms is determined after a brute force search, which will be discussed later in the Parameter optimization section.

The second moving average (MAbeat) is used to emphasize the beat area to be used as a threshold for the first moving average, shown as a dashed signal in Figure 5, and is given by

MA beat [n]= 1 W 2 y [ n ( W 2 1 ) / 2 ] + + y [ n ] + + y [ n + ( W 2 1 ) / 2 ] ,
(5)

where W 2 represents a window size of approximately one beat duration. Its value is rounded to the nearest odd integer. The exact value for W 2 of 1000 ms is determined after a brute force search, which will be discussed later in the Parameter optimization section. The code lines of this step are lines 6–7 in the pseudocode of the a detection algorithm (Algorithm 1).

Thresholding

The equation that determines the offset level (α) is β z ̄ , where β = 0 based on a brute force search that will be discussed later in the Parameter optimization section, while z ̄ is the statistical mean of the squared filtered PPG signal. The first dynamic threshold value was calculated by shifting the MAbeat signal with an offset level α, as follows:

THR 1 = MA beat [n]+α.
(6)

In this stage, the blocks of interest were generated by comparing the MApeak signal with THR1, in accordance with the lines 10–17 the code lines shown in the pseudocode of Algorithm 1. Many blocks of interest will be generated, some of which will contain the APG feature (a wave), while others will primarily contain noise. Therefore, the next step is to reject blocks that result from noise. Rejection is based on the anticipated systolic-peak width. In this paper, the undesired blocks are rejected using a threshold called THR2, which rejects the blocks that contain diastolic wave and noise. By applying the THR2 threshold, the accepted blocks will contain a waves only,

THR 2 = W 1 .
(7)

As discussed, the threshold THR2 corresponds to the anticipated a wave duration. If a block is wider than or equal to THR2, it is classified as an a wave. If not, it will be classified as noise. The last stage is to find the maximum absolute value within each block to detect the a wave; the code lines of this step are lines 19–26 in the pseudocode of the a detection algorithm (Algorithm 1). Consecutive a waves are shown in Figure 5 to demonstrate the idea of using two moving averages to generate blocks of interest. Not all the blocks contain potential a waves; some blocks are caused by noise and need to be eliminated. Blocks that are smaller than the expected width for the a wave duration are rejected. The rejected blocks are considered to be noisy blocks and the accepted blocks are considered to contain an a wave. The detected a waves are compared to the annotated a waves to determine whether they were detected correctly. The search range for the true a wave was fixed to ± 50 ms for all algorithms to ensure consistency of comparison.

Detection of b waves

Figure 6(a) shows the b wave as a global minimum in a subject with good circulation, while Figure 6(b) shows the d wave as a global minimum in a subject with poor circulation—blood flow becomes restricted to certain parts of the body such as the fingers [24]. However, in both cases, the b wave is the first minimum after the a wave. The b wave can therefore be detected by finding the local minimum, as follows:

( | APG ( a waves [ i ] + k ) | > | APG ( a waves [ i ] + k 1 | ) ) ( | APG ( a waves [ i ] + k ) | > | APG ( a waves [ i ] + k + 1 | ) ) ,
(8)
Figure 6
figure 6

Demonstrating the local minimum and global minimum of the b wave in the APG signa. (a) b wave is global minimum, (b) b wave is local minimum.

where APG is the second derivative of the PPG signal (calculated in line 3 in Algorithm 1), i is a counter for the detected a waves, k is the search interval for the b waves, and ∧ is logical AND operator. To reduce the computational complexity for finding b waves, the interval k has been set to vary from 8 ms to 136 ms.

Parameter optimization

Performance of a wave detection algorithms is typically evaluated using two statistical measures: sensitivity (SE) and positive predictivity (+P); whereas SE=TP/(TP+FN) and +P=TP/(TP+FP). Here, TP is the number of true positives (a wave detected as an a wave), FN is the number of false negatives (a wave has not been detected), and FP is the number of false positives (non-a wave detected as an a wave). The SE reported the percentage of true a waves that were correctly detected by the algorithm. The +P reports the percentage of the detected a waves that were true a waves. Similarly, the same statistical measures were used for evaluating the b waves.

The function of the a wave detector (cf. pseudocode of Algorithm 1) has five inputs: the PPG signal (PPGsignal), frequency band (F 1F 2), event-related durations W 1,W 2, and the offset (β). Any change in these parameters will affect the overall performance of the proposed algorithm. These parameters are interrelated and cannot be optimized in isolation. A rigorous optimization via brute-force search, over all parameters, was conducted (cf. Table 1). This is a time-consuming process, but it is required before making definitive claims. The data used in this training phase were the PPG signals measured at after 1 hour of exercise. Optimization of the beat detector’s spectral window for the lower frequency resulted in a value within 0.5–1 Hz with the higher frequency within 7–15 Hz. The window size of the first moving average (W 1) varied from 100 ms to 200 ms, whereas the window size of the second moving average (W 2) varied from 1000 ms to 1.250 s. The offset α was tested over the range 0–10% of the mean value of the squared filtered PPG signal. The QRS complex corresponds roughly to the systolic duration (a wave duration) in APG, which is 100±20 ms in healthy adults [25]. Interestingly, the algorithm uses an optimal value of W 1 (175 ms) corresponded to the a wave duration, and an optimal value of W 2 (1000 ms) for the heartbeat duration. It is clear from Table 1 that the optimal frequency range for the systolic detection algorithm over the database was 0.5–15 Hz. Moreover, the optimal values for the moving-average window sizes and offset are W 1=175 ms, W 2=1000 ms, and α=0. The systolic algorithm was adjusted with these optimal parameters. Then, the detector was tested on two PPG datasets (PPG measured at rest and after 2 hours of exercise) without any further adjustment.

Table 1 A rigorous optimization over all parameters of the a wave detection algorithm: frequency band, W 1 , W 2 , and the offset β

Results and discussion

Based on the parameter optimization step, the value of α=0, which means there is no need for an offset to improve the detection rate, as it was required in detecting QRS in ECG signals [21] and systolic peaks in PPG signals [20]. This is perhaps because of the sharp clear peak (high amplitude) of the a wave compared to the other APG waves (c, d, and e waves).

The a wave detection algorithms were tested on 27 subjects, with the APG signals measured before exercise and after 2 hours of exercise; with a total of 54 recordings, as shown in Table 2. The main objective was to evaluate the robustness of the algorithms against the non-stationary effects, low SNR, and high heart rate exhibited after exercise in conditions of heat stress. Under normal conditions, analyzing stationary APG signals is straightforward; as a waves have similar amplitudes, the statistical characteristics of the signals (i.e., mean and standard deviation) do not change appreciably with time, and a simple threshold level can effectively detect a waves. Figures 7(a) and 8(a) represent the APG signals with stationarity effects for volunteer G2 (before exercise) and L3 (after 2 hours of exercise)—all a waves are almost straight-lined. By contrast, under stress, APG signals become non-stationary, which makes analysis difficult since the standard deviation changes with time—note that a wave amplitudes vary with time and simple level thresholds cannot optimally detect a waves. This has a negative effect on detection algorithm performance, which is clearly seen in Table 3 when the nine amplitude-dependent algorithms were applied to the APG signals. Moreover, Matsuyama [5] reported that none of the nine amplitude-dependent algorithms achieved acceptable a wave detection rates even after optimizing the threshold values. Most of these nine algorithms, such as AF2, AF3, FD1, FD2, DF1, and FS1, strictly followed the morphology of the QRS complex. However, it is clear that amplitude-dependent algorithms are not optimal methodologies for detecting a waves in APG signals under varying conditions.

Table 2 Performance of the proposed a wave detection algorithm on the testing dataset (APG signals measured at rest and after 2 hours of exercise)
Figure 7
figure 7

Detected a and b waves in APG signals at rest (before exercise). It contains (a) stationary signals, (b) non-stationary signals, (c) low amplitudes, and (d) irregular heart rhythm. Here, ‘red asterisk’ represents the detected a wave and ‘black plus sign’ represents the detected b wave by the proposed algorithm.

Figure 8
figure 8

Detected a and b waves in APG signals after 2 hours of exercise. It contains (a) stationary signals, (b) non-stationary signals, (c) low amplitudes, and (d) irregular heart rhythm. Here, ‘red asterisk’ represents the detected a wave and ‘black plus sign’ represents the detected b wave by the proposed algorithm.

Table 3 Comparison of different a wave detection performance on the testing dataset (APG signals measured at rest and after 2 hours of exercise)

The proposed algorithm scored the highest sensitivity and positive predictivity rates when compared to the nine algorithms. The proposed algorithm appears to be more robust against effects of post-exercise measurement non-stationarity. The results show that the proposed method was able to detect a waves correctly in non-stationary APG signals before exercise, as shown in Figure 7(b), and after 2 hours of exercise, as in Figure 8(b). Moreover, the proposed algorithm was also able to detect a waves correctly in low amplitude APG signals (small voltage), as shown in Figure 7(c), and after 2 hours of exercise, as in Figure 8(c). However, the algorithm did incur a few instances of failure, with exactly five FNs, as shown in Table 3. The cause of the failure was due to the sudden drop in amplitude of the a waves in heat-stressed APG signals (cf. Figure 9). The proposed method, however, handled varying amplitudes well compared to the other nine algorithms. In fact, it is clear that the proposed algorithm is more amplitude-independent and was able to detect the a waves in various voltage ranges.

Figure 9
figure 9

Instances of failure occurring with the proposed algorithm (subject: A1 after 2 hours of exercise). Here, ‘red asterisk’ represents the detected a wave and ‘black plus sign’ represents the detected b wave by the proposed algorithm. The purple pentagon represents a false negative for the a wave, while purple circle represents the false negative for the b wave. The green square represents the false positive of the b wave, which was the only false positive inccurred by the proposed b detection algorithm in the testing dataset.

The analysis of a regular heart rhythm is simple, as the a waves are repeated with an equally spaced pattern. This regularity helps the time-domain threshold methodologies to detect a waves successfully. The regular heart rhythm is called the normal sinus rhythm in APG signals [24], which means the rhythm is constant and the occurrence of the next beat is predictable. The proposed algorithm easily detects a waves correctly in APG signals with a regular heart rhythm, as shown in Figure 7(a,b,c). The sensation of an irregular heart rhythm is usually related to either premature beats or atrial fibrillation. The proposed algorithm also successfully detected the a waves with premature beats in both conditions at rest and after exercise, as shown in Figures 7(d) and 8(d).

As the detection of b waves depends on the detection of a waves, the performance of the b wave detection scored almost the same result as the a detection algorithm. Because the proposed b detection incurred only one instance of failure, which is a TP shown in Figure 9, the +P becomes 99.95%. This result reflects the robustness of the proposed b detection algorithm against noisy APG signals.

Limitations of the study and future work

One of the next steps regarding the results of this study is to examine the correlation of the a/b ratio—based on the accurately detected a and b waves—using APG signals with age, body mass index, and core temperature. Moreover, there is a need for developing an algorithm that detects the c, d, and e waves.

The proposed algorithm was only tested on normotensive young subjects. The physiology of the photoplethysmogram significantly changes according to health status. As such, the robustness of the proposed algorithm needs to be verified by a study in unhealthy subjects—to diagnose and monitor abnormalities such as arrhythmia, hypertension, diabetes and hyperlipidemia.

It is important to note that the number of PPG records (total of 27) used in the training was modest. A larger sample size and a more diverse data set are needed in order to generalize the findings of this study. Moreover, sampling the PPG signals at a higher rate (above 200 Hz) is required to capture the b waves with greater fidelity. The evaluation of a wave detection was challenging in this study because the number of annotated beats did not allow all possible morphologies found in APG signals under conditions of heat stress to be well represented. To our knowledge, there is no available APG database measured after heat stress that would allow a more thorough assessment and comparison of the tested algorithms.

Conclusion

For all nine QRS algorithms, the detection errors arose from a variety of factors including the existence of irregular heartbeats, low-amplitude peaks, and signals with non-stationary effects. The application of an event-related dual moving average would allow the accurate, computationally simple algorithm we propose to be used for real-time applications and the processing of large databases. A detection algorithm for a waves in APG signals measured after exercise has not been previously addressed in the literature, with the exception of the work of Matsuyama. However, it has been demonstrated that a robust algorithm can be developed for detecting a waves in APG signals collected in a noisy environment with high-frequency noise, low amplitude, non-stationary effects, irregular heartbeats, and high heart rates. The a wave detection algorithm was evaluated using 27 records, containing 1,540 heartbeats (584 heartbeats measured at rest and 956 heartbeats measured after 2 hours of exercise), with an overall sensitivity of 99.78%, and the positive predictivity was 100%, while the b detection algorithm scored an overall sensitivity of 99.78% and a positive predictivity of 99.95%.