五点三次平滑+python实现

在处理工业数据时,由于噪声大且数据维度高,常采用平滑方法来减少干扰。本文介绍了五点三次平滑法,相较于平均法和样条函数法,它算法简单且效果良好。文中提供了Python实现的代码,适用于处理pd.Series类型的数据,可对数据框的列数据进行平滑处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在处理工业数据的时候,工业数据有数据颗粒细,噪声大,量大,随着测量点的增加,数据维度高,复杂性高,而且关联性强,不过这个关联性是相对的,因为有时候数据噪声较大,显示不出来这种关联性。

最近了解的五点三次平滑,在一个工业数据处理平台上有这个,就很疑惑为什么要用这个,搜了很多都是matlab写的代码,没有说明为什么用这个方法,就去知网搜了几篇论文,引用这些文献的解释:

“一般来说,在数据采集系统中采集到的数据往往叠加有噪声。噪声分为两种,一类为周期性的,一类为不规则的。前者代表为50 Hz 的工频干扰,后者代表为随机信号。”

“由于随机干扰的存在,使得随机信号绘成的曲线多呈折线状,这就表明采样数据中高频成分比较丰富。为了消除或减弱干扰的影响,提高曲线光滑度,需对采样数据进行平滑处理。常用的平滑处理方法有: 平均法、样条函数法和五点三次平滑法。平均法相对简单,滤波效果也差; 样条函数法利用样条插值逼近采样点的方法来实现平滑,算法多样,效果较好,但是,使用
该方法计算相对复杂,平滑幅度控制较差; 五点三次平滑法利用多项式最小二乘逼近来对采样点实行平滑滤波,算法简单,效果较好。”

其实在生产车间中,很多数据其实是模拟信号,这应该自动化控制中的信号数据。之前用的是平均法,现在可以考虑用五点三次平滑来做一下探索。

网上全都是MATLAB版本,然后也只看到一个C语言的版本,然后在这里写了一个python的,应该也是全网唯一。。。比较着急,先写了一个,数据于只能是pd.Series,可以对数据框的列数据进行操作。

def mean5_3(Series,m):
    n=len(Series)
    a=Series
    b=Series.copy()
    for i in range(m):   
        b[0] = (69*a[0] + 4*(a[1] + a[3]) - 6*a[2] - a[4]) /70
        b[1] = (2*(a[0] + a[4]) +27*a[1] + 12*a[2] - 8*a[3]) /35
        for j 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值