我有一个包含 256 个数据元素的列表。我想使用椭圆过滤器过滤这些数据。import matplotlib.pyplot as pltfrom scipy.signal import *import numpy as npdef elliptical_bandpass(): Fs=256 lowcut=5 highcut=30 order=5 Rp = 0.5; # Passband Ripple (dB) Rs = 30; # Stopband Ripple (dB) nyq = Fs/2 #Nyquist frequency wp = lowcut / nyq ws = highcut / nyq当我运行它时,我看到滤波器设计和系数是正确的,但我使用 lfilter 时出错文件“C:\Users\gtec\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\signal\signaltools.py”,第 1354 行,在 lfilter 中返回 sigtools._linear_filter(b, a, x,axis) SystemError: 返回 NULL 没有设置错误以前我使用的是 python2.7,它执行时没有任何错误。现在我使用的是 Python3.7.0
1 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
问题是这c3
是一个字符串列表。 lfilter
期望一个数值序列。它不会自动将字符串转换为数字,因此您必须在调用lfilter
.
做类似的事情
c3 = [float(t) for t in c3]
在传递c3
到lfilter
.
更好的是回顾一下您c3
在“真实”代码中的实际创建方式(假设问题中的代码是一个简化示例)。在创建时将字符串转换为数字是有意义的c3
。
添加回答
举报
0/150
提交
取消