Как создать полосовой фильтр в Python - PullRequest
0 голосов
/ 23 января 2019

У меня есть аудиофайл .wav, и я хочу отфильтровать определенную частоту.Шум на частоте 1000 Гц, и я хочу создать полосовой фильтр для фильтрации шума на частоте 1000 Гц.Я новичок в 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)))

график, который он сгенерировал, определенно не является полосовым фильтром.

1 Ответ

0 голосов
/ 23 января 2019

То, что вы ищете, это режекторный фильтр. Это реализовано в библиотеке scipy.signal: https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.iirnotch.html

со страницы: «Узкополосный фильтр - это полосовой фильтр с узкой полосой пропускания (фактор высокого качества). Он отклоняет узкую полосу частот и оставляет остальную часть спектра немного измененной».

...