Hjorth
Hjorth mobility and complexity: mean frequency, and distance from a sine.
Explore this node in the cookbook →
data
mobility
complexity
- Type name
signal:Hjorth- Plane
signal- Tags
analysis- Language
python- Tier
in-process- Bundle
complexity- Source
node-bundles/complexity/hjorth.py- Availability
- available
Slots
| Slot | Direction | Type | |
|---|---|---|---|
data | input | ARRAY | |
mobility | output | ARRAY | |
complexity | output | ARRAY |
Parameters
This node declares no parameters of its own.
Source
The current source of this node, as it stands in the goofi repository at node-bundles/complexity/hjorth.py.
"""Hjorth — mobility and complexity, the two derivative-based EEG descriptors, from antropy.
Mobility is the signal's mean frequency in units of the sample rate; complexity is how far its
shape is from a pure sine, which scores exactly 1. The last axis is time and is consumed; every
axis before it survives.
"""
import antropy
import numpy as np
import goofi
class Hjorth(goofi.Node):
"""Hjorth mobility and complexity: mean frequency, and distance from a sine."""
TAGS = ["analysis"]
INPUTS = {"data": goofi.InputSlot(goofi.DataType.ARRAY, required=True)}
OUTPUTS = {"mobility": goofi.DataType.ARRAY, "complexity": goofi.DataType.ARRAY}
def process(self, data):
mobility, complexity = antropy.hjorth_params(np.asarray(data.data, dtype=np.float64), axis=-1)
meta = data.drop_axis(-1)
return {
"mobility": (np.asarray(mobility, dtype=np.float32), meta),
"complexity": (np.asarray(complexity, dtype=np.float32), meta),
}