я пробовал этот полосовой фильтр, он не работает должным образом
def BP_FILTER(raw_signal,Fs=125,alpha=5/6, beta=4, N=30*125):
"""
Args:
alpha - cuttoff frequency of start of pass band
beta - cuttoff frequency of end of pass band
Fs - frequency sample
N - samples for plot(optional) we don't have to use it
"""
f_signal=fft(raw_signal)
W,H=freqz(raw_signal,worN=raw_signal.size,fs=Fs)
W=np.array([np.sqrt(item.real**2+item.imag**2) for item in W])
filtered_signal=f_signal.copy()
filtered_signal[np.where(W<alpha)] = 0
filtered_signal[np.where(W>beta)] = 0
filtered_signal=ifft(filtered_signal)
low_frequencies=f_signal.copy()
low_frequencies[np.where(W>=alpha)] = 0
low_frequencies=ifft(low_frequencies)
high_frequencies=f_signal.copy()
high_frequencies[np.where(W<=beta)] = 0
high_frequencies=ifft(high_frequencies)
plt.subplot(311)
plt.title('low_frequencies')
plt.plot(low_frequencies[:N])
plt.subplot(312)
plt.title('high_frequencies')
plt.plot(high_frequencies[:N])
plt.subplot(313)
plt.title('PPG Component')
plt.plot(filtered_signal[:N])
#display the plots
plt.subplots_adjust(hspace=1)
plt.show()
return filtered_signal
Может кто-нибудь объяснить мне, как правильно использовать scipy.signal.freqz, потому что я все неправильно интерпретировал, я думаю