Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 巴特沃斯滤波器-输出x(-1)?_Python_Filter_Scipy_Signals - Fatal编程技术网

Python 巴特沃斯滤波器-输出x(-1)?

Python 巴特沃斯滤波器-输出x(-1)?,python,filter,scipy,signals,Python,Filter,Scipy,Signals,我正在尝试应用巴特沃斯过滤器,正如在这个伟大的回答。然而,当我从那里使用函数时,结果似乎是错误的(x(-1)): 怎么了?(我想这是错的?) 没什么不对的。你看到的是IIR滤波器产生的正常相移 如果相移不可接受,一种选择是改变这条线路: y = lfilter(b, a, data) 到 并将filtfilt添加到从scipy.signal导入的名称中。应用同一滤波器两次,一次向前,一次向后,因此相移“取消”。如果使用filtfilt,则可以降低过滤器的顺序,因为您要应用它两次 另一种选择是

我正在尝试应用巴特沃斯过滤器,正如在这个伟大的回答。然而,当我从那里使用函数时,结果似乎是错误的(x(-1)):

怎么了?(我想这是错的?)


没什么不对的。你看到的是IIR滤波器产生的正常相移

如果相移不可接受,一种选择是改变这条线路:

y = lfilter(b, a, data)

并将
filtfilt
添加到从
scipy.signal
导入的名称中。应用同一滤波器两次,一次向前,一次向后,因此相移“取消”。如果使用
filtfilt
,则可以降低过滤器的顺序,因为您要应用它两次


另一种选择是使用FIR滤波器而不是IIR滤波器。有关过滤器性能的问题最好在dsp.stackexchange.com上询问。

你好,沃伦,非常感谢您的快速回复!这是有道理的,似乎我需要进一步研究它们是如何工作的。当filtfilt和order=3时,滤波后的信号看起来同相,但移位并重新缩放(平均值
y = lfilter(b, a, data)
y = filtfilt(b, a, data)