Transforms & Segmentation¶
Compute the power spectral density of an ECG lead |
|
Compute the single-sided FFT magnitude spectrum |
|
Segment individual heartbeats around R-peaks |
|
Compute the ensemble-averaged heartbeat (template) |
fftreturns a single-sided amplitude spectrum: a sinusoid of amplitude A reads A, and the DC (and even-length Nyquist) bins are not doubled.power_spectrumsupportsmethod="welch"(default) andmethod="periodogram". Any other value raisesValueError.fftandpower_spectrumrefuse empty input and NaN or Inf samples.segment_beatsandaverage_beatdetect R-peaks with the default method ofdetect_r_peaks()whenpeaksis not given. Peaks must be integer indices (whole-number floats are accepted).average_beatraisesValueErrorwhen no complete beat is available, instead of returning a flat template.
- ecgdatakit.processing.power_spectrum(lead, method='welch', nperseg=None, *, fs=None)[source]¶
Compute the power spectral density of an ECG lead.
- Parameters:
lead (
Lead|NDArray[double]) – Input ECG lead or raw signal array.method (
str) –"welch"(default) for Welch’s averaged periodogram, or"periodogram"for a single periodogram of the whole signal.nperseg (
int|None) – Segment length for Welch’s method. Defaults tomin(256, len(samples)). Not used by"periodogram".fs (
int|None) – Sample rate in Hz. Required when lead is a numpy array.
- Returns:
(frequencies, power)arrays.- Return type:
- ecgdatakit.processing.fft(lead, *, fs=None)[source]¶
Compute the single-sided FFT amplitude spectrum.
Bins are scaled so a sinusoid of amplitude A reads A: interior bins are doubled, the DC bin (and the Nyquist bin for an even length) are not.
- ecgdatakit.processing.segment_beats(lead, peaks=None, before=0.2, after=0.4, *, fs=None)[source]¶
Segment individual heartbeats around R-peaks.
- Parameters:
lead (
Lead|NDArray[double]) – Input ECG lead or raw signal array.peaks (
NDArray[int_] |None) – R-peak sample indices (integers, or whole-number floats). Detected withdetect_r_peaks()and its default method ifNone.before (
float) – Seconds before R-peak to include (default 0.2).after (
float) – Seconds after R-peak to include (default 0.4).fs (
int|None) – Sample rate in Hz. Required when lead is a numpy array.
- Returns:
One Lead per beat, labelled
"{label}_beat_{i}". Beats whose window runs past either end of the signal are skipped.- Return type:
- ecgdatakit.processing.average_beat(lead, peaks=None, before=0.2, after=0.4, *, fs=None)[source]¶
Compute the ensemble-averaged heartbeat (template).
- Parameters:
lead (
Lead|NDArray[double]) – Input ECG lead or raw signal array.peaks (
NDArray[int_] |None) – R-peak sample indices. Detected withdetect_r_peaks()and its default method ifNone.before (
float) – Seconds before R-peak (default 0.2).after (
float) – Seconds after R-peak (default 0.4).fs (
int|None) – Sample rate in Hz. Required when lead is a numpy array.
- Returns:
Averaged beat labelled
"{label}_avg".- Return type:
- Raises:
ValueError – If no complete beat is available to average.