Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
sampling_rate : int, float, optional
Sampling frequency (Hz).
nfreqs : int, optional
Number of frequency points to compute.
ax : axis, optional
Plot Axis to use.
Returns
-------
fig : Figure
Figure object.
"""
# compute frequency response
freqs, resp = st._filter_resp(b, a,
sampling_rate=sampling_rate,
nfreqs=nfreqs)
# plot
if ax is None:
fig = plt.figure()
ax = fig.add_subplot(111)
else:
fig = ax.figure
# amplitude
pwr = 20. * np.log10(np.abs(resp))
ax.semilogx(freqs, pwr, 'b', linewidth=MAJOR_LW)
ax.set_ylabel('Amplitude (dB)', color='b')
ax.set_xlabel('Frequency (Hz)')
v200ms = int(0.2 * sampling_rate)
v1200ms = int(1.2 * sampling_rate)
M_th = 0.4 # paper is 0.6
# Pre-processing
# 1. Moving averaging filter for power-line interference suppression:
# averages samples in one period of the powerline
# interference frequency with a first zero at this frequency.
b = np.ones(int(0.02 * sampling_rate)) / 50.
a = [1]
X = ss.filtfilt(b, a, signal)
# 2. Moving averaging of samples in 28 ms interval for electromyogram
# noise suppression a filter with first zero at about 35 Hz.
b = np.ones(int(sampling_rate / 35.)) / 35.
X = ss.filtfilt(b, a, X)
X, _, _ = st.filter_signal(signal=X,
ftype='butter',
band='lowpass',
order=7,
frequency=40.,
sampling_rate=sampling_rate)
X, _, _ = st.filter_signal(signal=X,
ftype='butter',
band='highpass',
order=7,
frequency=9.,
sampling_rate=sampling_rate)
k, Y, L = 1, [], len(X)
for n in range(k + 1, L - k):
Y.append(X[n] ** 2 - X[n - k] * X[n + k])
Y = np.array(Y)