【问题标题】:Bandpass filter causing strange cutoffs in time domain带通滤波器在时域中导致奇怪的截止
【发布时间】:2020-08-11 14:24:55
【问题描述】:

我拥有的原始信号显示在图像的左侧,过滤后它看起来如右侧所示。 我正在使用具有通带 [0.05Hz 至 2Hz] 和 95 个抽头的汉明窗 FIR 滤波器。为此,我使用了来自 python 的 firwin:

hamming_coeffs = firwin(95, [0.05/f_nyquist, 2.0/f_nyquist], pass_zero=False) 

hamming = np.convolve(hamming_coeffs, signal, mode='full')

有人能解释一下为什么过滤后5秒和15秒信号突然下降吗?

感谢任何帮助。 谢谢。

【问题讨论】:

    标签: filtering signal-processing


    【解决方案1】:

    您的时间轴标记不正确。

    完全卷积的结果比原始信号长,因此第二张图应该显示 20 个单位加上初始信号前后的一些滤波器瞬态时间,可能从 -10.0 到 30.0 秒。过滤后的信号是中间缩小的部分。

    【讨论】:

      【解决方案2】:

      您的采样率是多少?启动和结束过滤瞬态将是

      transient_sec = (filt_len-1)/(sample_rate_hz)
      

      对于这个大型过滤器(95 个元素)来说,这可能是相当大的。使用mode='full'np.convolve() 参数,瞬变将完全显示,就像它们在这里一样。如果时间序列较长,它们的影响就不会那么明显了。

      可以使用mode='valid' 选项到np.convolve() 隐藏瞬变。

      【讨论】:

      • 这是有道理的。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 2019-02-23
      • 2023-04-10
      相关资源
      最近更新 更多