Python简单实现数据降噪、滤波处理_滢泷版

由于项目需要对数据进行降噪滤波处理,又要尽可能保证变化特征不失真。
我在网上搜索了一下Python的方库,没找到。
我安装了scipy 之后找不到spline方法,也就知道怎么用了。
顺便说一下, 本人不算是很专业Python编程员,只是看过马哥的公开课 Python基础入门 就开始应对项目了。 所以对于高级库 完全是用到了才去搜索 有没有、怎么用。

在这种情况下,只能自己解决了。所以就简单实现了一下,效果不错(个人感觉)就贴出来万一有人瞧得上就看一眼吧

实现原理

利用前一帧和后一帧的值来校准当前帧的值
就是 第10帧的输出值 等于 第九帧和第11帧的平均值 再跟第10帧的值求平均
简单一次的处理效果很差,所以需要叠加处理多次,具体需要多少次要看想要的效果。

代码示例

方法和变量名称取得是在随意,请莫见怪。需要时自己美化修改就好

'''
假定待处理数据中有三个元素 x、y、z 代码就是如下写法,可根据具需要加减
n 是指定需要做几层处理 传入正整数即可,最少处理一层
xyzls 是每层处理用来寄存原值的列表集合
ax、ay、az 是传入当前待处理的值
'''
def ddenoise(xyzls, ax, ay, az, n):#直接进行滤波处理拿到结果bx = sum([xyzls[0][-2][0], ax, xyzls[0][-1][0], xyzls[0][-1][0]]) / 4by = sum([xyzls[0][-2][1], ay, xyzls[0][-1][1], xyzls[0][-1][1]]) / 4bz = sum([xyzls[0][-2][2], az, xyzls[0][-1][2], xyzls[0][-1][2]]) / 4#本次计算完成更新寄存队列xyz = [ax, ay, az]xyzls[0].pop(0)xyzls[0].append(xyz)#定义输出内容outl = [bx, by, bz]n -= 1if 0 < n:  #判断是否需要再次处理#叠加处理,切片生成新的寄存器集合,然后自我调用xyzls2 = xyzls[1:]outl = ddenoise(xyzls2, bx, by, bz, n)return outl'''
下面演示 待处理数据是csv格式时,怎么使用上面的方法
假定CSV文件首行是 首部标注,第一列是横向坐标
'''
#定义一个方法用来初始化环境和调用方法处理数据,输入需要 以行为元素的 数据列表 ,和处理深度数
def csv_denoise(in_csv, n):#防止输入格式和值不合规,进行简单加工n = int(n)if 1 > n:n = 1#开始准备寄存队列等环境处理bx = int(in_csv[0].split(',')[1])by = int(in_csv[0].split(',')[2])bz = int(in_csv[0].split(',')[3])names = locals()xyzls = []for i in range(n):in_csv.append(in_csv[-1]) #此方法输出结果会滞后一帧/每层,所以需要扩充数据长度names['xyzl%s' % i] = [[bx, by, bz], [bx, by, bz]]    #准备每层的初始寄存数据xyzls.append(names['xyzl%s' % i]) #打包寄存队列到集合方便传递调用prnu = n   #为了去除前期的无效输出,保证输入跟输出的长度一样t1 = 0 #为了同时对其输出第一列内容做准备for s1 in in_csv:ax = int(s1.split(',')[1])ay = int(s1.split(',')[2])az = int(s1.split(',')[3])bx, by, bz = ddenoise(xyzls, ax, ay, az, n)if 0 >= prnu:  #为了去除前期的无效输出,保证输入跟输出的长度一样print(in_csv[t1].split(',')[0], bx, by, bz)t1 += 1      #为了同时对其输出第一列内容同步else:prnu -= 1 #为了去除前期的无效输出,保证输入跟输出的长度一样if __name__ == '__main__':import ospath = 'csv_dir'filename = 'test.csv'filepath = os.path.join(path, filename)f = open(filepath, 'r')ocsv = f.readlines()[1:]   #读取csv文件,去除首行f.close()csv_denoise(ocsv, 7)   #由于本次演示结果输出直接打印显示数值,所以不用接收返回值

效果展示

处理壹层效果展示

处理四层效果展示

处理七层效果展示

处理三十层效果展示

谢谢观看。如有幸有人需要转发或借鉴 请注明原文链接

Python简单实现数据降噪滤波处理_滢泷版相关推荐

  1. python写入excel表格数据绘制图表_(原创)xlsxwriter,python excel 写入数据\图表等操作_图表操作(二)...

    前面分享了使用xlsxwriter创建excel和写入数据GUC:(原创)xlsxwriter,python excel 写入数据\图表等操作_创建.写入(一)​zhuanlan.zhihu.com ...

  2. 复习Java第一个项目学生信息管理系统 04(权限管理和动态挂菜单功能) python简单爬数据实例Java面试题三次握手和四次挥手生活【记录一个咸鱼大学生三个月的奋进生活】016

    记录一个咸鱼大学生三个月的奋进生活016 复习Java(学生信息管理系统04权限管理和动态挂菜单功能) 改写MainFrame的构造方法 新增LoginFrame的验证登录是否成功的代码 新增Logi ...

  3. 用python玩转数据第一周答案_用Python玩转数据_答案

    用Python玩转数据_答案 答案: 更多相关问题 求由参数方程所确定的函数y=y(x)的二阶导数 已知数列的通项公式,则取最小值时=,此时=. (本小题满分10分)已知是等差数列,其中](1)求的通 ...

  4. 用python玩转数据第四周答案_用Python玩转数据_答案公众号

    用Python玩转数据_答案公众号 更多相关问题 隧道式一次发酵设备投资很少().隔音符号一般加在哪些字母开头的拼音上?隧道洞口工程包括石方开挖.洞口防护与排水工程.洞门建筑的制作.安装.明洞工程.( ...

  5. 用python玩转数据第四周答案_大学mooc用Python玩转数据答案搜题公众号

    大学mooc用Python玩转数据答案搜题公众号 更多相关问题 不寐多梦,易于惊醒,胆怯心悸,气短倦怠,小便清长,舌淡,脉弦细.治疗主方为 "以痛为腧"这一名词首载于 先指出&qu ...

  6. python gui界面设置数据储存在哪里_我整理的一些常用Python库!让你快速记住这些库的用法!建议收藏...

    Python的一大特色是其丰富的模块,基本上只要你能想到的常见的开发需求,都能找到别人已经实现的库直接使用,或者相关工具或则框架来辅助实现.但这对于新人来说也是一个问题:这么多库,我要从哪里学起?怎样 ...

  7. python金融大数据分析师工资待遇_三年工作经验大佬带你解读 Python金融大数据分析...

    内容提要: Python凭借其简单.易读.可扩展性以及拥有巨大而活跃的科学计算社区,在需要分析.处理大量数据的金融行业得到了广泛而迅速的应用,并且成为该行业开发核心应用的首选编程语言.本书提供了使用P ...

  8. python类的数据成员和成员方法_静态方法和类成员方法(Python)

    静态方法和成员方法分别在创建时分别被装入Staticmethod 类型和 Classmethod类型的对象中.静态方法的定义没有 self参数,且能够被类本身直接调用,类方法在定义时需要名为 cls的 ...

  9. python爬虫的数据如何解决乱码_写爬虫时如何解决网页乱码问题

    实战讲解,文章较长,对爬虫比较熟悉的浏览翻看章节 2.3 获取新闻文本内容. 写爬虫时经常对网址发起请求,结果返回的html数据除了标签能看懂,其他的全部是乱码.大家如果对爬虫感兴趣,请耐心阅读本文, ...

最新文章

  1. GitHub怎样fork别人代码到自己仓库并进行贡献
  2. 李飞飞团队最新研究 :「四步」AI方案助老人抵抗新冠肺炎,联合学习降低个人隐私风险
  3. HDU2019 数列有序
  4. 《Accelerated C++中文版》--- 读书笔记
  5. idea war包和jar包区别 以及用maven如何打包
  6. Git 学习笔记--git 查看某个文件的修改历史
  7. Redis的常见实际应用,不仅仅是缓存(转)
  8. mysql innodb monitor_mysql:innodb monitor(show engine innodb status)探秘
  9. openlayers5之view缩放定位
  10. 计算机科学导论有关论文,计算机科学导论论文
  11. 金蝶Cloud取物料最后一次采购入库价格
  12. 世纪互联评测至强5500 总结云平台经验
  13. 歌剧《猫》的经典唱段《memory》中英文对照
  14. 基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种
  15. 软件界面交互式设计注意事项
  16. 給windowsXP穿上Linux Ubuntu的漂亮馬甲
  17. 码字 层映射 预编码的概念总结
  18. LIMIT 10000,10会发生什么?
  19. 【机器学习实验五】基于多分类线性SVM实现简易人机猜拳游戏
  20. C:\KEIL\C51\intrins.h包含不正确的路径。Keil 头文件路径错误

热门文章

  1. 移动OA助力企业提高合同管理水平
  2. Android 超简单音乐播放器(十)歌词的实现
  3. el-select多选全选
  4. 简报 | 俄罗斯下议院计划年底通过加密货币监管法案
  5. java飞机场模拟程序_java 飞机大战 小游戏源码
  6. 第一范式(1NF)、第二范式(2NF)和第三范式(3NF)
  7. 5G射频IC产业商机无限
  8. 华为onu 调为交换机_华为MA5626配置成普通交换机的完整方法
  9. 【产业互联网周报】网易悄然上架网易会议App;阿里推出阿里云网盘App;腾讯云会展发布 “1+3易服务”体系...
  10. 最新《网易云课堂Java入门课程》