Skip to content

Commit 1d1d479

Browse files
committed
Add rudementary test for MDNFilter
1 parent eed6b56 commit 1d1d479

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

tests/test_mdn_filter.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import numpy as np
2+
import scipy as sp
3+
4+
from eitprocessing.filters.mdn import MDNFilter
5+
6+
SAMPLE_FREQUENCY = 20
7+
MINUTE = 60
8+
9+
10+
def test_mdn_working():
11+
n_samples = 10000
12+
heart_rate = 70 / MINUTE
13+
respiratory_rate = 12 / MINUTE
14+
15+
signal = np.random.normal(2.0, 1.0, n_samples)
16+
17+
mdn_filter = MDNFilter(sample_frequency=SAMPLE_FREQUENCY, heart_rate=heart_rate, respiratory_rate=respiratory_rate)
18+
filtered_signal = mdn_filter.apply_filter(signal)
19+
20+
f, Pxx = sp.signal.welch(signal, fs=SAMPLE_FREQUENCY)
21+
filtered_f, filtered_Pxx = sp.signal.welch(filtered_signal, fs=SAMPLE_FREQUENCY)
22+
23+
current_frequency_center = heart_rate
24+
while current_frequency_center < mdn_filter.noise_frequency_limit:
25+
notch_distance = mdn_filter.notch_distance
26+
frequency_band = (f > current_frequency_center - notch_distance) & (
27+
f < current_frequency_center + notch_distance
28+
)
29+
mean_power = np.mean(Pxx[frequency_band])
30+
31+
filtered_mean_power = np.mean(filtered_Pxx[frequency_band])
32+
33+
assert filtered_mean_power < mean_power
34+
35+
current_frequency_center += heart_rate

0 commit comments

Comments
 (0)