【发布时间】:2013-05-03 09:09:18
【问题描述】:
我在 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 的范围内。
这怎么可能? & 我该如何预防?
【问题讨论】:
-
我无法重现您的结果。使用您的代码,我得到了一个非常好的带通滤波器。你是如何生成这个情节的?
-
哦,这是您过滤后的数据。
-
是的,它已经被卷积了。 taps_hamming = bandpass_firwin(ntaps, 0.7, 4, fs=fs) Ynew3 = np.convolve(Ynew2, taps_hamming, "same")
-
光谱在过滤之前是什么样子的?如果您查看我对其他问题 (stackoverflow.com/questions/16301569/bandpass-filter-in-python/…) 的回答中的图表,您会发现 0.61 Hz 处的增益约为 0.4。
-
也许图片的长度是两倍,你会得到两倍的答案。
标签: python numpy scipy signal-processing