Skip to content

filters

CrossCorrelationFilter

Bases: SignalFilter

Preprocesses EGMs by removing harmonics (40Hz), baseline, and QRS- complex. Additionally, applies derivative, botteron filters, and normalize EGMs. If ECGs are added to the EGM signals, then a farfield filter will be applied using these ECGs and default ECG annotator properties.

fs = signals.fs instance-attribute

__init__(signals)

filter()

Preprocesses EGMs by removing harmonics (40Hz), baseline, and QRS- complex. Additionally, applies derivative, botteron filters, and normalize EGMs. If ECGs are added to the EGM signals, then a farfield filter will be applied using these ECGs and default ECG annotator properties.

pass_filter(pass_zero, cutoff, fs=1000, kaiser_beta=60, num_taps=20) staticmethod

Wrapper fucntion for bandpass and lowpass filters.

Derivative

Bases: SignalFilter

filter()

Differentiates signal(s) and returns the negative component.

Returns:

Type Description
ndarray[N, M - 1] or [M - 1]

Negative signal component.

Envelope

Bases: SignalFilter

tukey_alpha = signals.tukey_alpha instance-attribute

__init__(signals)

filter()

Create the envelope of the signal encompassing it from above

Returns:

Type Description
ndarray

np.ndarray[N, M] or [M,]: Envelope signals.

FarfieldFilter

Bases: SignalFilter

corr_threshold = signals.corr_threshold instance-attribute

offsets = signals.offsets instance-attribute

onsets = signals.onsets instance-attribute

peaks = signals.peaks instance-attribute

__init__(signals)

filter()

Remove QRS(T) complex from signals.

Returns:

Type Description
ndarray

np.ndarray[N, M]: Signals with removed QRS(T) complexes.

FiltFilt

Bases: SignalFilter

ff_a = signals.ff_a instance-attribute

ff_b = signals.ff_b instance-attribute

__init__(signals)

filter()

Apply a digital filter forward and backward to a signal. See scipy.signal.filtfilt for more details.

HermiteSplineNormalization

Bases: SignalFilter

fs = signals.fs instance-attribute

peaks_distance_scale = signals.peaks_distance_scale instance-attribute

__init__(signals)

filter()

Normalizes signal using Cubic Hermite Splines fitted to the amplitude bounds (maxima and minima) of the signal.

Distance between min and max peaks determined as fraction of the median frequency.

Returns:

Type Description
ndarray

np.ndarray: Normalized EGMs.

find_extended_peaks(signal, distance) staticmethod

Find peaks and add 0 and len(signal) - 1 as peaks without duplication

Parameters:

Name Type Description Default
signal ndarray[N]

Input signal.

required
distance float

Minimal distance between peaks.

required

Returns:

Name Type Description
tuple tuple[ndarray, ndarray]

Extended peaks and signal values at the peaks.

hermite_spline_bound(signal, distance) staticmethod

Find peaks and interpolate with CubicHermiteSpline

Parameters:

Name Type Description Default
signal ndarray[N]

Input signal.

required
distance float

Minimal distance between peaks.

required

Returns:

Type Description
ndarray

np.ndarray[N,]: Interpolated amplitudes.

lower_upper_bounds(distances)

Interpolates lower and upper bounds of the signal(s) using Cubic Hermit Spline.

Parameters:

Name Type Description Default
distances (ndarray[N], float)

Minimum distance between peaks.

required

Returns:

Type Description
tuple[ndarray, ndarray]

lower_bounds, upper_bounds (tuple): Lower and upper bounds of the signals.

MovingAverage

Bases: SignalFilter

averaging_mode = signals.averaging_mode instance-attribute

averaging_window_length = signals.averaging_window_length instance-attribute

__init__(signals)

filter()

Calculates moving average of a signal(s).

Returns:

Type Description
ndarray

np.ndarray[N, M] or [M,]: Averaged signal(s).

Normalization

Bases: SignalFilter

filter()

Divides signal or signals by their corresponding Euclidean norms.

Note

Signals with norm equal to 0 will be ignored.

Returns:

Type Description
ndarray

np.ndarray[N, M] or [M,]: Normalized signal(s).

RemoveBaseline

Bases: SignalFilter

averaging_window_length = signals.averaging_window_length instance-attribute

__init__(signals)

filter()

Subtracts static or wandering baseline from signal(s). Wandering baseline is removed using a moving average.

Returns:

Type Description
ndarray

np.ndarray[N, M] or [M,]: Signal(s) without baseline.

RemoveHarmonics

Bases: SignalFilter

fs = signals.fs instance-attribute

harmonic_frequency = signals.harmonic_frequency instance-attribute

quality_factor = signals.quality_factor instance-attribute

__init__(signals)

filter()

Remove all harmonics of a given frequency from signal(s) using notch filters.

Returns:

Type Description
ndarray

np.ndarray[N, M] or [M,]: Signal(s) with removed harmonics.

RoneyFilter

Bases: SignalFilter

Filter unipolar or bipolar EGMs according to doi.10.1007/s10439-016-1766-4 Adapted for simulated data (without powerline, QRST, baseline removal)

f_band = signals.f_band instance-attribute

f_low = signals.f_low instance-attribute

fs = signals.fs instance-attribute

unipolar = signals.unipolar instance-attribute

__init__(signals)

filter()

UpperThreshold

Bases: SignalFilter

threshold = signals.threshold instance-attribute

__init__(signals)

filter()

Wrapper function for applying threshold.