信号的小波包能量谱计算(以轴承振动信号为例,Python环境)

小波分析是近30年来发展起来的数学分支,是Fourier分析划时代发展的结果,由法国工程师Morlet首先提出,后广泛应用于信号处理、图像处理与分析、地震勘探、故障诊断、自动控制等领域,小波就是小的波形,所谓“小”是指它具有衰减性,“波”则是指它的波动性,其振幅为正负相间的振荡形式。小波分析的基本思想依然沿承了Fourier变换,就是将信号在一系列基函数张成的空间上进行投影。

Fourier变换选择无限长的三角函数作为基函数,这个三角函数会伸缩、平移:当基函数收缩时对应信号的高频部分,伸张时对应信号的低频部分。某些尺度下,基函数会与信号相乘得到一个很大的值,表示二者有高度的相关性,这一相关性就体现了信号包含该频率的成分的多少。但是,对于非平稳过程,Fourier变换有局限性。它只能获取一段信号总体上包含哪些频率的成分,但无法确定各成分出现的时刻,即Fourier变换在时域上无任何分辨能力。而平稳信号大多是人为制造出来的,自然界中的大量信号基本都是非平稳的,因此,小波变换应运而生。

小波变换将无限长的三角函数换成了有限长的、具有衰减性的小波基函数,这样既能够获取频域信息,也可以获取时域信息。优于Fourier分析的是,它在时域和频域同时具有良好的局部化性质。小波分析是一个时间和频率的局域变换,因而能有效地从信号中提取信息,通过伸缩和平移等运算功能对信号进行多尺度细化分析。工程设备或结构运行中难免会发生损伤,当损伤发生时将导致结构响应表现出非平稳和非线性的特征,而这些特征又与结构损伤状态密切相关。小波分析在结构损伤识别中的应用比较常见的有:(1)基于小波系数的损伤识别;(2)基于小波频带能量的损伤识别;(3)小波方法与其他方法联合应用。

在一个机械系统中,利用频率成分复杂的信号作为激励信号作用于机械系统时,这些复杂的频率成分的输出表现,会因为机械系统的损伤而发生变 化。一般情况下,机械损伤部分会对某些频率产生抑制作用,同样会对某些频率发挥增强作用。所以, 激励信号作用于有损伤机械系统的输出与作用于正常机械系统的输出相比,其相同频带内含有的能量是有区别的,这种区别表现为它会使一些频带内的信号能量或减少或增强,因此,可以通过分析信号的能量变化而判断机械系统损伤情况,其他的系统都与此类似。

首先导入相关模块(需要提前安装pywt模块,pip install pywt)

import scipy.io as scio  #导入scio包
import numpy as np
import matplotlib.pyplot as plt
import os
from sklearn import preprocessing
import pywt
import pywt.data
import pandas as pd

读取数据函数

def DataAcquision(file_Path):
    
    data = scio.loadmat(file_path)  
    data_key_list = list(data.keys()) 
    accl_key = data_key_list[3]  
    accl_data = data[accl_key].flatten()  
    return accl_data

file_path = '1730_12k_0.007-InnerRace.mat'  #文件夹路径
data_arr = DataAcquision(file_path)  # 加载数据
#选取db1小波,扩展模式选择symmetric,最大分解层数为3
wp = pywt.WaveletPacket(data=data_arr, wavelet='db1',mode='symmetric',maxlevel=3) 

绘制轴承内圈故障时域波形

plt.figure(figsize=(12,3))
plt.plot(data_arr)

绘制轴承内圈故障振动信号每一层小波分解时域图

绘制轴承正常工况振动信号每一层小波分解时域图

绘制轴承内圈故障振动信号小波包分解能量谱

绘制轴承正常工况振动信号小波包分解能量谱

完整代码:信号的小波包能量谱计算(以轴承振动信号为例,Python环境)

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

备忘录导出的HTML文档转换MarkDown尝试记录

备忘录导出的HTML文档转换MarkDown尝试记录 1. pandoc命令行2. HTML转换MARKDOWN3. MD导入CSDN记录过长报错及压缩尝试参考 本地备忘录写了些旅游攻略,想做个纪念,导出为长图片ok,导出为HTML,也可以。但是导出图片是base64格式的&…

2、事件修饰符、双向绑定、style样式使用、v-for循环遍历、v-if 和 v-show

一、事件修饰符 1、.stop 阻止冒泡事件 给谁加了阻止冒泡事件&#xff0c;谁下面的盒子就不会执行了 <div id"app"><div class"parent" click"log3"><div class"child" click"log2"><button click.…

厨师上门服务小程序开发与运营指南

随着移动互联网的普及&#xff0c;各种生活服务类APP应运而生。厨师上门服务小程序作为一种新型的服务模式&#xff0c;为用户提供了便捷、个性化的餐饮服务。本文将为您介绍厨师上门服务小程序的开发与运营方法&#xff0c;帮助您快速搭建起一款实用的小程序。 一、小程序开发…

MyEclipse打开文件跳转到notepad打开问题

问题描述 windows系统打开README.md文件&#xff0c;每次都需要右键选择notepad打开&#xff0c;感觉很麻烦&#xff0c;然后就把README.md文件打开方式默认选择了notepad&#xff0c;这样每次双击就能打开&#xff0c;感觉很方便。 然后某天使用MyEclipse时&#xff0c;双击RE…

Linux系统——硬件命令

目录 一.网卡带宽 1.查看网卡速率——ethtool 网卡名 2.查看mac地址——ethtool -P 网卡名 二、内存相关 1.显示系统中内存使用情况——free -h 2.显示内存模块的详细信息——dmidecode -t memory 三、CPU相关 1.查看CPU架构信息——lscpu 2.性能模式 四、其他硬件命…

网络:DHCP 协议简介

文章目录 1. 前言2. DHCP 协议简介2.1 DHCP 客户端广播 DHCPDISCOVER 消息2.2 DHCP 服务器回复 DHCPOFFER 消息2.3 DHCP 客户端广播 DHCPREQUEST 消息2.4 DHCP 服务器回复 DHCPACK 消息2.5 剩余的工作 3. 参考资料 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&…

h5增强表单---数据列表和属性

h5增强表单---数据列表 下拉列表 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</ti…

Echarts功能记录

基础配置 工具箱toolbox 对应功能 案例中使用到的第三方脚本

力扣450 删除二叉搜索树中的节点 Java版本

文章目录 题目描述思路代码 题目描述 给定一个二叉搜索树的根节点 root 和一个值 key&#xff0c;删除二叉搜索树中的 key 对应的节点&#xff0c;并保证二叉搜索树的性质不变。返回二叉搜索树&#xff08;有可能被更新&#xff09;的根节点的引用。 一般来说&#xff0c;删除…

学生如何帮老师撰写审稿意见

开头先介绍这篇文章做了什么&#xff0c;达到了什么样的目的、有什么创新点、应用&#xff0c;然后第一段最后一句写上&#xff0c;如果你进行了如下补充&#xff0c;明确表达了相关内容等&#xff0c;就能够接收你的文章&#xff08;在我们暂时不想接收他的文章的情况下&#…

JetPack之ViewModel

目录 一、简介1.1 优点1.2 生命周期 二、使用2.1 ViewModel保证数据稳定性demo2.2 ViewModel中如何传递上下文Context 三、注意点 一、简介 ViewModel 组件用于管理界面相关的数据&#xff0c;并且在配置更改&#xff08;如屏幕旋转&#xff09;时保持数据的一致性。ViewModel…

不可变集合及Stream流

若希望某个数据是不可修改的&#xff0c;就可以考虑使用不可变集合&#xff0c;以提高安全性&#xff1b;&#xff08;JKD9之后才有&#xff09; List不可变集合&#xff1a; public static void main(String[] args) {/*创建不可变的List集合"张三", "李四&q…

快速修复找不到msvcp140.dll,无法继续执行此代码问题

在电脑使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“无法找到msvcp140.dll”的错误。那么&#xff0c;msvcp140.dll究竟是什么呢&#xff1f;它为什么会出现这样的错误呢&#xff1f;通过查阅资料和自己的实践经验&#xff0c;我对msvcp140.dll…

odoo 官方常用 widgets 小部件清单

在Odoo中&#xff0c;小部件&#xff08;Widgets&#xff09;是用于构建用户界面的组件&#xff0c;它们决定了表单、列表视图以及更多交互元素的显示和行为方式。虽然无法提供Odoo14及之后所有版本的确切小部件清单&#xff0c;但可以列举一些常见和重要的内置小部件类型&…

11.创建后台系统项目

后台系统项目 兼容性 vite官网&#xff1a;https://vitejs.dev/ vite中文网&#xff1a;https://cn.vitejs.dev/ vite需要node.js版本 >14.0.0&#xff0c;建议16 node -v 查看版本号 创建项目 进入存放目录 执行命令 npm create vitelatest 选择vue框架 选择typescript…

V R元宇宙平台的未来方向|V R主题馆加 盟|游戏体验馆

未来&#xff0c;VR元宇宙平台可能会呈现出以下发展趋势和可能性&#xff1a; 全面融合现实与虚拟世界&#xff1a; VR元宇宙平台将更加无缝地融合现实世界和虚拟世界&#xff0c;用户可以在虚拟环境中进行各种活动&#xff0c;与现实世界进行互动&#xff0c;并且体验到更加逼…

【PostGresql】------ pg多表数据多个条件汇总 使用 union 方法示例代码

1. 示例代码如下&#xff1a; SELECT"ID","DT_DATE","CNAME","RMAN_NAME","DEP_NAME","DEP_ID","INVEST_MAN_NAME","TYPE_NAME","INVEST_LEVEL_NAME","POSITION_NAME",…

详细教程与使用指南助您轻松上手Sora

在2024年2月16日&#xff0c;OpenAI团队宣布了一项革命性的技术突破——推出了首个能够将文本描述转化为视频内容的人工智能模型&#xff0c;名为Sora。这一创新标志着人工智能在多媒体内容创作领域迈出了重要一步。Sora模型不仅能够根据用户的文字描述生成长达60秒的动态视频&…

复习Day3

1231. 航班时间 - AcWing题库 #include<bits/stdc.h> using namespace std; int getTime(){//得到时间 int h1,m1,s1,h2,m2,s2,d0;scanf("%d:%d:%d %d:%d:%d (%d)",&h1,&m1,&s1,&h2,&m2,&s2,&d);//补匹配直接跳过 int timed*24*3…

leetcode 1047. 删除字符串中的所有相邻重复项

题目 思路 这是一道easy题&#xff0c;很明显要用栈。 有三种情况&#xff1a; 如果栈空&#xff0c;则直接入栈。 如果栈顶元素和当前元素不同则入栈。 如果栈顶元素和当前元素相同则栈顶元素出栈 最后再将栈中的元素依次pop&#xff0c;添加到一个字符串中就行。 代码…