传感数据分析——小波滤波

传感数据分析——小波滤波

文章目录

  • 传感数据分析——小波滤波
  • 前言
  • 一、运行环境
  • 二、Python实现
  • 总结


前言

小波滤波算法是一种基于小波变换的滤波方法,其核心思想是将信号分解成不同的频率成分,然后对每个频率成分进行独立的处理。小波滤波器的设计和应用是小波分析的一个重要领域,它与传统的滤波方法相比,具有独特的优势。
在具体的实施过程中,小波滤波的基本策略通常包括以下步骤:首先,将信号变换到小波域;接着,将信号的小波变换与噪声的小波变换分离;最后,丢弃噪声的变换系数,由剩余的变换系数做逆变换得到去噪信号。
此外,小波变换的滤波器组实现,如Mallat算法,也是小波滤波的重要技术之一。该算法主要是通过卷积计算得到的,更具有一般性。
需要注意的是,阈值函数在小波阈值去噪算法中起着关键的作用,由于其阈值函数有着众多的改进方式和改进空间,因此在实际使用中有着广泛的适用性和良好的灵活性。
本文将调用PyWavelets库实现对一维传感数据的小波滤波方法。


本文正文内容

一、运行环境

系统: Windows 10 / Ubuntu 20.04
编程语言: Python 3.8
文本编译器: Vscode
所需库:matplotlib >= 2.2.2 , numpy >= 1.19.5, PyWavelets >= 1.4.1

二、Python实现

代码如下(示例):

# @copyright all reseved
# @author: Persist_Zhang
import numpy as np
import pywt
import matplotlib.pyplot as pltdef plot_wavelet_filter(data, filtered_data):"""绘制小波滤波前后的对比图:param data: 输入的一维数据:param filtered_data: 滤波后的数据"""plt.figure(figsize=(10, 9))plt.plot(data, label='Original Data')plt.plot(filtered_data, label='Wavelet Filtered Data')plt.title('Curve of Data')plt.legend()plt.savefig("./figure/Wavelet_Filtering.png")plt.show()def wavelet_filter(data, wavelet='db4', level=1):"""使用小波滤波算法对一维数据进行滤波:param data: 输入的一维数据:param wavelet: 使用的小波类型,默认为'db4':param level: 分解层数,默认为1:return: 滤波后的数据"""# 将数据进行小波分解coeffs = pywt.wavedec(data, wavelet, level=level)# 设置阈值,小于阈值的系数置为0threshold = np.median(np.abs(coeffs[-level])) / 0.6745for i in range(1, len(coeffs)):coeffs[i] = pywt.threshold(coeffs[i], threshold, mode='soft')# 对滤波后的系数进行逆变换,得到滤波后的数据filtered_data = pywt.waverec(coeffs, wavelet)return filtered_dataif __name__ == '__main__':# 示例data = np.random.randn(100)filtered_data = wavelet_filter(data)plot_wavelet_filter(data, filtered_data)

结果图
在这里插入图片描述

在这个例子中,我们没有对阈值、小波类型和分解层数进行修改。如果需要进一步优化滤波效果,可以尝试调整这些参数。例如,可以尝试使用不同的小波类型(如’haar’、'sym5’等),或者增加分解层数。
如:

# 生成信号
t = np.linspace(0, 1, num=2048)
signal = np.sin(2*np.pi*50*t) + np.sin(2*np.pi*120*t)
# 使用不同的小波类型进行信号分解
wavelet_types = ['db1', 'db2', 'db3', 'db4', 'db5', 'db6', 'db7', 'db8', 'sym2', 'sym3', 'sym4', 'sym5', 'sym6', 'sym7', 'sym8']
for wavelet in wavelet_types:# 信号分解coeffs = pywt.wavedec(signal, wavelet, level=3)# 重构信号reconstructed_signal = pywt.waverec(coeffs, wavelet)

总结

以上就是本文关于传感信号分析中小波滤波的使用,全部代码见上,还望多多收藏点赞,后续将会更新与分享更多传感数据处理的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/605778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第12课 实现桌面与摄像头叠加

在上一节,我们实现了桌面捕获功能,并成功把桌面图像和麦克风声音发送给对方。在实际应用中,有时候会需要把桌面与摄像头图像叠加在一起发送,这节课我们就来看下如何实现这一功能。 1.备份与修改 备份demo11并修改demo11为demo12…

安达发|基于APS排程系统的PDM功能

APS系统(Advanced Planning and Scheduling,先进计划与排程)是一种基于APS系统(Advanced Planning and Scheduling,先进计划与排程)是一种基于供应链管理和生产管理的综合性软件系统。它通过整合企业内外部…

在anaconda中安装pytorch的GPU版本

本文前提: 1.你已经下载好了anaconda,最好是新建一个虚拟环境来安装pytorch的GPU版本,并且设置了国内镜像源; 2.了解自己电脑对应的cuda版本,可通过nvidia-smi,并下载好了cuda。 安装pytorch的GPU版本 到官网中https…

微信公众号-订阅通知

第一步: 公众号需要实名认证,完成以后! 设置-开发里找到基本配置: 开发者ID(AppID):xxxxxxxxxxxxxxxxxxxxxxxxx 开发者密码(AppSecret):xxxxxxxxxxxxxxxxxxxxxxxxx 白名单IP也要填写上你的服务器IP哦! 第二步&am…

聊天Demo

文章目录 参考链接使用前端界面消息窗口平滑滚动至底部vue使用watch监听vuex中的变量变化 参考链接 vue.js实现带表情评论功能前后端实现(仿B站评论) vue.js实现带表情评论仿bilibili(滚动加载效果) vue.js支持表情输入 vue.js表…

使用Scrapy框架和代理IP进行大规模数据爬取

目录 一、前言 二、Scrapy框架简介 三、代理IP介绍 四、使用Scrapy框架进行数据爬取 1. 创建Scrapy项目 2. 创建爬虫 3. 编写爬虫代码 4. 运行爬虫 五、使用代理IP进行数据爬取 1. 安装依赖库 2. 配置代理IP和User-Agent 3. 修改爬虫代码 4. 运行爬虫 六、总结 一…

【AI视野·今日Sound 声学论文速览 第四十二期】Fri, 5 Jan 2024

AI视野今日CS.Sound 声学论文速览 Fri, 5 Jan 2024 Totally 10 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers PosCUDA: Position based Convolution for Unlearnable Audio Datasets Authors Vignesh Gokul, Shlomo Dubnov深度学习模型需要大量干净的…

【算法Hot100系列】合并两个有序链表

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

前端nginx配置指南

前端项目发布后,有些接口需要在服务器配置反向代理,资源配置gzip压缩,配置跨域允许访问等 配置文件模块概览 配置示例 反向代理 反向代理是Nginx的核心功能之一,是指客户端发送请求到代理服务器,代理服务器再将请求…

数据结构-怀化学院期末题(321)

图的广度优先搜索 题目描述: 图的广度优先搜索类似于树的按层次遍历,即从某个结点开始,先访问该结点,然后访问该结点的所有邻接点,再依次访问各邻接点的邻接点。如此进行下去,直到所有的结点都访问为止。在…

OpenHarmony沙箱文件

一.前言 1.前景提要 DevEcoStudio版本:DevEco Studio 3.1 Release SDK版本:3.2.2.5 API版本:9 2.概念 在openharmony文件管理模块中,按文件所有者分类分为应用文件和用户文件和系统文件。 1)沙箱文件。也叫做应…

Jmeter扩展函数?年薪50W+的测试大佬教你怎么玩

很多同学,都问我:“老师,我的 jmeter 里面,怎么没有 MD5 函数,base64 函数也没有,我是不是用了假的 jmeter?” 哈哈哈,不是的。jmeter 的函数,有自带函数和扩展函数两大…

等价类划分法

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢软件测试面试题分享: 1000道软件测试面试题及答案📢软件测试实战项目分享: 纯接口项目-完…

<HarmonyOS第一课>1~10课后习题汇总

HarmonyOS第一课 <HarmonyOS主题课>1~3课后习题汇总 1运行Hello World 判断题 main_pages.json存放页面page路径配置信息。(正确)DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。(正确) 单选题…

二叉树-遍历-单独精讲

遍历:遍历每个元素。 寻常遍历root只会指一次。 而二叉树遍历每个元素则会指三次。 中序遍历-节点的中序 void traveres(TreeNode* root){if(!root)return;traveres(root->left);cout << root->val << endl;traveres(root->right);}中序遍历亦叫节点的中…

Python 自学(六) 之函数

目录 1. python函数的基本结构 P168 2. python函数的可变参数(不定长) *parameter P169 3. python函数的返回值(单个或多个) P173 4. python的匿名函数 lambda P177 1. python函数的基本结构 P168 2. python函数的可变参数(不定…

一文读懂「Attention」注意力机制

前言:Self-Attention是 Transformer 的重点,因此需要详细了解一下 Self-Attention 的内部逻辑。 一、什么是注意力机制? Attention(注意力)机制如果浅层的理解,核心逻辑就是「从关注全部到关注重点」。 Attention 机制很像人类看图片的逻辑,当我们看一张图片的时候,我…

服务器操作系统介绍

1、基本概念 OS ( operating system&#xff0c;操作系统)是管理计算机硬件与软件资源的计算机程序&#xff0c;同时也是计算机系统的内核与基石。 操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作…

SD-WAN是如何工作的?

SD-WAN软件定义的广域网&#xff0c;其目的是帮助企业组建更为灵活和高效的网络框架。它与传统的广域网相比&#xff0c;具备更快的网络加速能力&#xff0c;更强的安全性和更便捷的使用方式。因此&#xff0c;随着企业在数字化转型的过程中&#xff0c;企业组网需求的不断提升…

用Postman实现接口自动化测试

postman使用 开发中经常用postman来测试接口&#xff0c;一个简单的注册接口用postman测试&#xff1a; 接口正常工作只是最基本的要求&#xff0c;经常要评估接口性能&#xff0c;进行压力测试。 同时&#xff0c;在这我为大家准备了一份软件测试视频教程&#xff08;含面试…