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.