我想濾除20 Hz - 20000 Hz以外的所有信號。我使用的是巴特沃斯濾波器:20hz-20000hz巴特沃斯濾波爆炸
from scipy.io import wavfile
from scipy import signal
import numpy
sr, x = wavfile.read('sweep.wav')
nyq = 0.5 * sr
b, a = signal.butter(5, [20.0/nyq, 20000.0/nyq], btype='band')
x = signal.lfilter(b, a, x)
x = numpy.float32(x)
x /= numpy.max(numpy.abs(x))
wavfile.write('b.wav', sr, x)
我注意到,它的工作原理與44.1 kHz的文件,但不具有96kHz WAV文件(demo file here)(它不是一個音頻I/O問題):輸出是空白(靜音)或爆炸(與其他一些輸入wav文件)。
1)是否有某件事使Butterworth濾波器不能用帶通[b1,b2]工作,其中b2 < 0.5?
2)更一般地說,你將如何做一個過濾,以保持與Python/scipy只有20 - 20000Hz?(沒有其他外部庫)
錯誤的堆棧。嘗試dsp.stackexchange.com。 – wwii
Scipy是一個外部庫。 – wwii