【发布时间】:2017-12-30 17:18:22
【问题描述】:
我在将巴特沃斯高通滤波器应用于我的数据时遇到问题。我想为Bx 和By 矩阵打印过滤器。如您所见,我有正负值,
如何将
math.fabs()应用于Bx和By以仅获得正面 价值观?
对于我的高通滤波器,我有这些要求:
Fc = 2 赫兹
我想截断低于 100 pT 的值。
我当前代码的一部分是:
plt.ylabel('Pico Tesle [pT]')
plt.xlabel('Time [ms]')
plt.grid()
plt.plot(time[51:-14], Bx[51:-14], label='Canal 1', color='r', linewidth=0.1, linestyle="-")
plt.plot(time2[1:-14], By[1:-14], label='Canal 3', color='b', linewidth=0.1, linestyle="-")
plt.legend(loc='upper right', frameon=False, )
更新:我已使用此函数为 Bx 和 By 矩阵生成绝对值。
plt.subplot(413)
np.absolute(fft1)
plt.plot(time[51:-14], np.absolute(fft1), color='r', linewidth=0.1, linestyle='-')
plt.grid()
plt.subplot(414)
np.absolute(fft2)
plt.plot(time2[1:-14], np.absolute(fft2), color='b', linewidth=0.1, linestyle='-')
plt.grid()
因此,我收到的所有测量结果(这里是大气排放)都只有正值(pT - picoTesla)。第一个图显示运河 1,第二个图显示运河 3,第三个图显示两个运河(渠道)的组合。
【问题讨论】:
-
高通滤波器会降低低于截止频率的频率分量的幅度。由于您的数据显示了高于 2Hz 截止频率的变化,因此它们几乎不会受到高通滤波器的影响。您是否想使用低通滤波器?否则
numpy.clip(np.absolute(fft1),0,100)会限制幅度(但如果担心的话,这是一个有损操作)。 -
嗯,这是个好主意,但我不能承受任何数据丢失。更准确地说,我需要获得所有高于 100 pT 的测量值,也许我使用高通滤波器的想法毫无意义,但没有更好的想法出现在我的脑海中。
标签: python-2.7 signal-processing highpass-filter