0

我在 python 中使用这个过滤器:

def bandpass_firwin(ntaps, lowcut, highcut, fs, window='hamming'):
    nyq = 0.5 * fs
    taps = firwin(ntaps, [lowcut, highcut], nyq=nyq, pass_zero=False,
                  window=window, scale=False)

我的 ntaps=128; 低切 = 0.7 ; 高切 = 4 ; fs = 61

我过滤了我的信号,它有 610 个以 61 Hz 采样的样本(所以它是 10 秒长)。

当我查看已被此带通滤波器过滤的信号频谱时,我看到:

在此处输入图像描述

该频谱的峰值为 0.61 Hz。这不在 0.7 到 4 Hz 的范围内。

这怎么可能 ?& 我该如何预防?

4

1 回答 1

0

您的过滤器并不神奇 - 带宽存在固有限制。如果您确实需要紧密截止,请尝试使用更多抽头。

但是,您使用的抽头越多,您就越需要考虑边缘效应以及如何处理它们(因为边缘假设越来越深入到数据块中)。也许您想要在边缘平滑滚动?还是数据的镜像和重复?也许你可以完全忽略它......

卷积的另一种技术是通过简单地乘以所需频谱直接在频域中进行滤波。这强加了您的信号重复的边缘假设,尽管您可以通过扩展您认为合适的信号来改变这一点。如果您想知道等效 FIR 滤波器的支持情况,请获取窗口的 IFFT,您可以看到时间块的开头将涂抹到开头的程度。

于 2013-05-03T09:34:01.517 回答