Code Monkey home page Code Monkey logo

Comments (1)

PGomes92 avatar PGomes92 commented on June 2, 2024

Hi @sunshineinsandiego,

thanks for using pyHRV. You have most likely already solved this issue but as I am picking up on this project again after a long break, I'd like to share here some input.

pyHRV is not designed for real-time signal processing, but rather for post-processing of acquired R-Peak-to-R-Peak Interval (RRI) series. Real-time processing could technically be achieved with some simple HRV parameter computations, but from my experience the heavier functions (e.g. frequency domain) are too slow to be useful in real-time processing.

Also, it is important to highlight that pyHRV runs any RRI series in bumpy array format and is not exclusive to OpenSignals files. The examples provided with OpenSignals are only available as it was the software I used to record signals and test pyHRV during my thesis. With this being said, allow to answer your questions below:

Which brings me to another question, is there any way to use the PyHRV functions on numpy arrays?
Yes, this is perfectly possible and there are a few examples available in the Quickstart guide using the time domain functions here:

https://github.com/PGomes92/pyhrv/tree/master/pyhrv

If you already have a RRI series (or NNI) in an numpy array, it's quite straightforward to use it with pyHRV as shown in the example below:

# Import packages
import numpy as np
import pyhrv.time_domain as td 

# Load NNI sample series
nni = np.load('./files/SampleNNISeries.npy')

# Compute SDNN
result = td.sdnn(nni)

# Access SDNN value using the key 'sdnn'
print(result['sdnn'])

Polar input Data
If the Polar monitor provides you a full ECG in mV, the data must first be processed to run with pyHRV as you need to extract the heart rate series our RRI/NNI series from the ECG first.

For this, you can generally follow the same tutorial that's available for OpenSignals input data:

import biosppy
import numpy as np
import pyhrv.tools as tools

# Load sample ECG signal 
signal = your_signal # <- this should be your ECG signal in mV

# Get R-Peak locations from ECG signal
rpeaks = biosppy.signals.ecg.ecg(signal, show=False)[2]

# Compute NNI
nni = tools.nn_intervals(rpeaks)

# Compute SDNN
result = td.sdnn(nni)

Hope this information is still useful for anyone who comes across this issue and feels free to let me know if you have any questions.

from pyhrv.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.