Python scipy.signal.filter返回nan值
我试图设计一个带阻滤波器,但由于滤波器输出中的nan值,它无法给我一个有效的(wav文件)输出 输入是几秒钟长的简单语音剪辑Python scipy.signal.filter返回nan值,python,filter,wav,nan,Python,Filter,Wav,Nan,我试图设计一个带阻滤波器,但由于滤波器输出中的nan值,它无法给我一个有效的(wav文件)输出 输入是几秒钟长的简单语音剪辑 def bandstop(x, f1, f2): fs, samples = wavfile.read(x) N = 6 # filter order rs = 60 # stop band minimum attenuation b, a = signal.cheby2(N, rs, [2 * f1 / fs, 2 * f2 / fs
def bandstop(x, f1, f2):
fs, samples = wavfile.read(x)
N = 6 # filter order
rs = 60 # stop band minimum attenuation
b, a = signal.cheby2(N, rs, [2 * f1 / fs, 2 * f2 / fs], btype='bandstop')
xfiltered = signal.filtfilt(b, a, samples) # applying filter
wavfile.write("xfiltered.wav", fs, xfiltered) # returns unreadable file?
我正在用一个简单的
print xfiltered
以查找nan值。有什么解决方案吗?它返回什么?强制打开时拒绝打开/包含0个值的.wav文件,在wav转换前打印“xfiltered”时,我只有“[nan nan…,nan nan nan]”,
f1
,f2
,的值是多少,fs
?f1=500 f2=5000,尽管我计划在这一切正常后玩这些游戏。如果在ints上使用Python2,则fs为48000。因此,如果f1,f2,fs=500500048000
,那么[2*f1/fs,2*f2/fs]
将等于[0,0]
。在执行除法之前,确保将输入转换为浮点数(例如,fs=48000.0
足够)。