如何在 python 中创建带阻滤波器
How to create a bandstop filter in python
我有一个 .wav 音频文件,我想做的是过滤特定频率。噪声为 1000Hz,我想创建一个带阻滤波器来过滤 1000Hz 的噪声。
我对 python 很陌生,所以我不知道我做的是否正确。我想我做错了,但我不知道使用 signal.butter() 函数的正确方法是什么。
from scipy import signal
b,a = signal.butter(4, [999,1001], 'bandstop', sampling_rate, output='ba')
w, h = signal.freqz(b , a)
plt.plot(w, 20*np.log10(abs(h)))
它生成的图绝对不是带阻滤波器。
您正在寻找的是陷波滤波器。它在 scipy.signal 库中实现:https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.iirnotch.html
来自页面:
"A notch filter is a band-stop filter with a narrow bandwidth (high quality factor). It rejects a narrow frequency band and leaves the rest of the spectrum little changed."
我有一个 .wav 音频文件,我想做的是过滤特定频率。噪声为 1000Hz,我想创建一个带阻滤波器来过滤 1000Hz 的噪声。 我对 python 很陌生,所以我不知道我做的是否正确。我想我做错了,但我不知道使用 signal.butter() 函数的正确方法是什么。
from scipy import signal
b,a = signal.butter(4, [999,1001], 'bandstop', sampling_rate, output='ba')
w, h = signal.freqz(b , a)
plt.plot(w, 20*np.log10(abs(h)))
它生成的图绝对不是带阻滤波器。
您正在寻找的是陷波滤波器。它在 scipy.signal 库中实现:https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.iirnotch.html
来自页面: "A notch filter is a band-stop filter with a narrow bandwidth (high quality factor). It rejects a narrow frequency band and leaves the rest of the spectrum little changed."