python信号滤波scipy.signal.filtfilt() (即对数组的滤波)

项目中,需要处理途中信号,首先做的工作时对其过滤掉一些噪声,保留大于阈值的部分,这时候需要用到了高通滤波。下面详细介绍:
在这里插入图片描述
这是上图放大后的样子

滤波器构造函数(仅介绍Butterworth滤波器)

scipy.signal.butter(N, Wn, btype=‘low’, analog=False, output=‘ba’)
输入参数
…N:滤波器的阶数
…Wn: 归一化截止频率。
…公式:Wn=2*截止频率/采样频率。
…btype : 滤波器类型{‘lowpass’, ‘highpass’, ‘bandpass’, ‘bandstop’},
…output : 输出类型{‘ba’, ‘zpk’, ‘sos’},
输出参数
…b,a : 滤波器的分子(b)和分母(a)多项式系数向量。 即:output=‘ba’
…z,p,k : 滤波器传递函数的零点、极点和系统增益. 即:output= ‘zpk’
…sos : 滤波器的二阶截面表示。 即:output= ‘sos’

1高通滤波

我这里假设采样频率为数组的长度,信号本身最大的频率为3.5,要滤除-0.005以下部分,即截至频率为0.005,则归一化截止频率为wn=2*0.005/len(data)

from scipy import signal
b, a = signal.butter(6, 0.02, 'highpass')
filtedData = signal.filtfilt(b, a, data)  #data为要过滤的信号
  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值