首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用Butterworth高通滤波器

应用Butterworth高通滤波器
EN

Stack Overflow用户
提问于 2017-12-30 17:18:22
回答 1查看 2.7K关注 0票数 1

我在把巴特沃斯高通滤波器应用到我的数据上有问题。我想打印BxBy矩阵的过滤器。正如你所看到的,我既有正反两方面的价值,

如何将math.fabs()应用到BxBy中,只得到正值?

对于高通滤波器,我有以下要求:

Fc =2赫兹

我想把值切到100 pT以下。

我当前代码的一部分是:

代码语言:javascript
复制
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矩阵生成绝对值。

代码语言:javascript
复制
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,第三幅图显示运河(渠道)组合。

不,我需要(我猜)使用高通滤波器来切断所有100 pT以下的测量值。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-01 12:43:08

我用这种方法解决了这个问题。

代码语言:javascript
复制
Wn = float(1)/HalfSampling
b, a = signal.butter(3, Wn, 'high', analog=False)
BxHPF = signal.filtfilt(b, a, Bxfft)
ByHPF = signal.filtfilt(b, a, Byfft)
plt.plot(BxTime, BxHPF, label='Canal 1', color='r', linewidth=0.5, linestyle="-")
plt.plot(ByTime, ByHPF, label='Canal 3', color='b', linewidth=0.5, linestyle="-")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48036168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档