以下代码是否使用 SciPy 正确实现了相位中性带通滤波器?
freq_fraction = FREQ / (SAMPLE_RATE/2)
sharpness = 0.1
filter_length=128
fir = sig.firwin(filter_length, [freq_fraction*(1-sharpness),freq_fraction*(1+sharpness)], pass_zero=False )
filtered = sig.lfilter( fir, 1, data_to_filter )
filtered = sig.lfilter( fir, 1,filtered[::-1] )[::-1]
该代码基于以下问题的答案:
它没有给出如何保持相位中性的最终代码清单。我假设这只是向前和向后运行过滤器的问题,但想要仔细检查。
另外,如果有更好/不同的方法(除了另一个问题中列出的 remez 和 firwin2 方法)我很想知道。