常用的一维时间序列滤波方法

好久不写笔记了,平时经常要做滤波,今天把滤波方法总结一下,方便以后使用

首先滤波器基本都封装好了,没必要自己写,直接拿来用就行,但是不同场景下有不同的需要,我主要对一维时间序列做处理,今天先对一维时间序列常用的做一下分析,首先我们要分析清楚我们要处理的噪音是什么,它和我们想要的信号有什么区别

1、基于频率的差异做滤波

如果噪音的频率和我们想要的信号频率是可区分的,那么直接从频率上做滤波就行了。

1.1 比如明确知道噪音是50hz,那么-【fft】,然后去掉50hz对应的分量,反回去重构原来的信号就行

1.2 或者用【离散小波分解】,把信号分解成不同频段的分量,然后丢弃不想要的频段分量,重构原来的信号就行

1.3 再简单一些就是用【高通滤波,低通滤波,带通滤波】,我最常用的就是butterworth,不同情况用不同的滤波器,效果也略不同。

但是很多时候噪音和我们想要的信号之间,频率往往是overlap的,我们就要进一步做分析了。

2、对于一些有小毛刺的信号,希望变信号变平滑

2.1 在信号质量比较差的时候,我们往往采集的数据中有很多小毛刺,为了消除这种随机的误差,可以用【均值滤波】!用窗口内的均值来代替原始数据。具体均值公式又会影响处理效果,比如均值从多大窗口中取。需要根据实际情况进行实验才行哦。除了在窗口中计算普通的均值以外,还可以用去极值的均值,加权的均值等等。均值滤波一般窗口长度是偶数

2.2 除了用均值以外,当然还可以用中值啦!【中值滤波】中值滤波一般窗口长度是奇数。中值滤波处理小毛刺(传感器不稳定)效果很好。

2.3 除了小毛刺以外,往往还有一些大的随机噪音,我们可以对幅值添加限制。【限幅滤波】就是让采集的信号变化幅度不能太大。

 

3、一些特殊情况下的滤波

3.1 比较生理信号中的运动伪影去除,这就涉及更加复杂的滤波方法啦,运动的伪影与生理信号的频率范围往往是overlap的,频域上不好区分,影响又不是小毛刺这么简单,所以要具体问题具体分析

比如有的运动伪影本质上是造成了基线的改变,那么通过幅值的缩放可以减轻影响;有的信号是多通道信号,这就给我们提供了更多的信息,可以把问题转变为盲源分离(每个通道都是生理信号和噪音的叠加,只不过叠加方式有些区别);有的系统还可以外加新的传感器提供一路运动参考信号,利用自适应滤波就可以消除运动伪影噪音;还有的系统ICA,PCA, EMD一通招呼,把信号各种分解,然后把分量按照他们制定的规则重新组合重构;再有厉害的就开始提取各路特征,把每个尖尖都分析一下是噪音还是想要的信号,再去掉噪音。

 

目前想到了这么多,以后想起来再做补充吧,总之我们在用滤波的时候,先要考虑一下究竟信号和噪音有什么区别,找到区别才能把他们分离开。有时候滤波器相互结合一下也会带来神奇的效果。实践出真知!

 

 

 

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值