对于我的一个 DSP 项目,我决定使用 python 来执行信号处理。虽然我是 python 新手,但我知道它是一种非常强大且用途广泛的语言。对于我的处理,我选择使用 Scipy 的信号库来执行信号处理,在那里我设计了一个模拟的巴特沃斯低通滤波器。当应用过滤器时,使用“signal.lfilter”命令,我收到以下错误:
"Traceback (most recent call last):
File "C:\Users\bessi\Desktop\crying.py", line 39, in <module>
f = signal.lfilter(b, a, data, axis = 0)
File "C:\Users\bessi\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\signal\signaltools.py", line 1397, in lfilter
return sigtools._linear_filter(b, a, x, axis)
ValueError: selected axis is out of range"
与滤波器的设计和应用相关的代码行如下,第一行是创建低通滤波器的行,而第二行是 lfilter 命令,是发生错误的地方(第 39 行) )
b, a = signal.butter(4, 21980, 'low', analog = True, output='ba')
f = signal.lfilter(b, a, data)
(数据是输入的采样信号。)
这个值错误让我整个晚上都感到困惑,因为它说我的轴参数无效。更让我困惑的是,函数的轴输入参数的默认值是“-1”,我最初并没有篡改。我尝试调整轴值,甚至尝试硬编码值,但是,同样的错误不断出现。希望有人可以提供一些建议/帮助。
lfilter 命令的链接:https ://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.lfilter.html#scipy.signal.lfilter
scipy 过滤器创建链接:https ://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.butter.html#scipy.signal.butter