b a 和 sos 过滤器顺序在 filtfilt 的情况下不同?

b a and sos filter order different in case of filtfilt?

我知道使用 filtfilt(例如在 Python 中通过 scipy 或在 Matlab 中)我将双向应用过滤器。设置基于 4 阶滤波器的 b、a 参数将有效地产生 8 阶滤波器。

我相信使用 sos 输出创建相同的 4 阶滤波器并使用 sosfiltfilt 不会改变滤波器顺序并且应该产生 4 阶滤波器(而不是 8 阶)。对吗?

TLDR:在 sosfiltfilt 的情况下,前向后向过滤是否也像 filtfilt 一样将过滤顺序加倍?

使用forward-backward过滤,无论是b,a参数形式还是sos形式,与简单的forward filter相比,过滤的有效阶数翻了一番。这就是为什么 scipy.signal.sosfiltfilt 的示例将使用 sosfiltfilt 的四阶巴特沃斯滤波器与使用 sosfilt.

的八阶巴特沃斯滤波器进行比较的原因