PIA-Group / BioSPPy

Biosignal Processing in Python
Other
569 stars 273 forks source link

Recovering index into original data from rpeaks array #95

Closed sunshineinsandiego closed 2 years ago

sunshineinsandiego commented 2 years ago

Hi - I'm trying to recover the indices corresponding to the identified R-peak locations in my raw_ecg_data. From the docs, it appears rpeaks is an array with the time locations of each R-peak in ms.

For example, if my `rpeaks' array looks like this:

rpeaks = [37, 142, 159, ..., 18752]

Then I assume the detected R-peaks occur 37ms, 142ms, 159ms...18752ms from the start of the signal.

If my sampling_rate is 100hz, then locating the R-peaks in my original data should be a simple as dividing the rpeaks array by 1/sampling_rate.

For this example, it would be:

rpeaks = [37, 142, 159, ..., 18752]
sampling_rate = 100
rpeak_indices = rpeaks / (1/sampling_rate)
rpeak_indices = [3700, 14200, 15900,...1875200] # R-peak locations in original raw_ecg_data

And I would be able to locate the actual value or amplitude for each R-peak in my raw_ecg_data as follows:

Rpeak_1 = raw_ecg_data[3700]
Rpeak_2 = raw_ecg_data[14200]
...
Rpeak_1 = raw_ecg_data[1875200]

Does this seem accurate? Thanks!

afonsocraposo commented 2 years ago

Hello @sunshineinsandiego ! Thank you for reaching out. The function ecg.ecg returns an array rpeaks, which corresponds to the indices of the R-peaks location. This means that you could obtain the actual value or amplitude for each R-peak in your raw_ecg_data simply by doing:

raw_ecg_data[rpeaks]

Did this answer your question?

sunshineinsandiego commented 2 years ago

Yes, got it! Thanks much!