基于Python的信号处理(包络谱,低通、高通、带通滤波,初级特征提取,机器学习,短时傅里叶变换)及轴承故障诊断探索
Python是一种广泛使用的解释型、高级和通用的编程语言,众多的开源科学计算软件包都提供了Python接口,如计算机视觉库OpenCV、可视化工具库VTK等。Python专用计算扩展库,如NumPy、SciPy、matplotlab、Pandas、scikit-learn等。
开发工具上可用Spyder,在安装Anaconda时已经安装好,可以从开始菜单或者使用命令行spyder启动。Spyder是一个免费、开源的集成开发环境,用Python编写,用于Python程序的开发,由科学家、工程师和数据分析师设计。它综合开发工具的高级编辑、分析、调试和分析功能与科学软件包的数据探索、交互执行、深入检查和漂亮的可视化功能独特地结合在一起。可以单步执行,查看运行后的各变量的值,查看序列数据线图等,非常方便。其他的集成开发工具(IDE)还包括:
VisualStudioCode(简称VSCode)是一款由微软开发且跨平台的免费源代码编辑器。该软件支持语法高亮、代码自动补全(又称IntelliSense)、代码重构功能,并且内置了命令行工具和Git版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能。VisualStudioCode默认支持非常多的编程语言,要使用Python进行开发,需要先安装相应的Python扩展(PythonextensionforVisualStudioCode)。
PyCharm,主要用于Python语言开发,由捷克公司JetBrains开发,提供代码分析、图形化调试器,集成测试器、集成版本控制系统,并支持使用Django进行网页开发。PyCharm是一个跨平台开发环境,拥有MicrosoftWindows、macOS和Linux版本。社区版在Apache许可证下发布,另外还有专业版在专用许可证下发布,其拥有许多额外功能。
本项目采用Python语言进行简单的信号处理(包络谱,低通、高通、带通滤波,初级特征提取,机器学习,短时傅里叶变换)及轴承故障诊断探索。
n_win_numb = 128;n_win = np.hamming(n_win_numb);n_overlap = 127;nfft = n_win_numb;pad_to = nfft*10;plt.figure(figsize=(8,6))plt.specgram(y, NFFT = nfft, Fs = fs, window = n_win, noverlap = n_overlap, pad_to=pad_to);plt.title(['Increasing Win Overlap: win=',n_win_numb,' / overlap=',n_overlap, ' / nfft=',nfft, 'pad_to=',pad_to]);plt.xlabel('time(s)');plt.ylabel('freq(Hz)')

n_win_numb = 32;n_win = np.hamming(n_win_numb);n_overlap = 0;nfft = n_win_numb;plt.figure(figsize=(8,6))plt.specgram(y, NFFT = nfft, Fs = fs, window = n_win, noverlap = n_overlap);plt.title(['Increasing Win Overlap: win=',n_win_numb,' / overlap=',n_overlap, ' / nfft=',nfft]);plt.xlabel('time(s)');plt.ylabel('freq(Hz)')

n_win_numb = 32;n_win = np.hamming(n_win_numb);n_overlap = 30;nfft = n_win_numb;pad_to = nfft*10;plt.figure(figsize=(8,6))plt.specgram(y, NFFT = nfft, Fs = fs, window = n_win, noverlap = n_overlap, pad_to=pad_to);plt.title(['Increasing Win Overlap: win=',n_win_numb,' / overlap=',n_overlap, ' / nfft=',nfft, 'pad_to=',pad_to]);plt.xlabel('time(s)');plt.ylabel('freq(Hz)')

n_win_numb = 256;n_win = np.hamming(n_win_numb);n_overlap = 250;nfft = n_win_numb;plt.figure(figsize=(8,6))plt.specgram(y, NFFT = nfft, Fs = fs, window = n_win, noverlap = n_overlap);plt.title(['Increasing Win Overlap: win=',n_win_numb,' / overlap=',n_overlap, ' / nfft=',nfft]);plt.xlabel('time(s)');plt.ylabel('freq(Hz)')

fig = plt.figure(figsize=(12,8))ax = Axes3D(fig,azim=-0.001,elev=80)plt.ylabel('Frequency');plt.xlabel('Div #')for x, y, z, c in zip(plot_x.T, plot_y.T, A_div.T, colors):ax.plot3D(y,x,z,color=c, linewidth=0.5)plt.gca().invert_xaxis()

colors = cm.rainbow(np.linspace(0, 1, len(plot_y)))fig = plt.figure(figsize=(12,8))ax = Axes3D(fig,azim=-0.001,elev=85)plt.ylabel('Time (s)');plt.xlabel('Div #')for x, y, z, c in zip(plot_x.T, plot_y.T, y_div.T, colors):ax.plot3D(y,x,z,color=c, linewidth=0.7)plt.gca().invert_xaxis()

feature_n_mean = np.mean(feature_n,axis=0)feature_f_mean = np.mean(feature_f,axis=0plt.figure(figsize=(8,6))plt.plot(feature_n_mean,'-bo')plt.plot(feature_f_mean,'-rx')plt.title('Average of Features')plt.xticks(np.arange(0,np.size(feature_name)),feature_name,rotation='vertical');plt.show()

from lightgbm import LGBMClassifier, plot_importance
n_estimator = 100
colsample_bytree = 0.1model = LGBMClassifier(n_estimator=n_estimator,colsample_bytree = colsample_bytree)
model.fit(x_train, y_train)
y_test_pred = model.predict(x_test)
importance = model.feature_importances_plt.figure(figsize=(4,4))
cm = pd.DataFrame(confusion_matrix(y_test, y_test_pred))
sns.heatmap(cm, annot=True)plt.figure(figsize=(8,6))
plt.plot(importance,'-ko')
plt.xticks(np.arange(0,np.size(feature_name)),feature_name,rotation='vertical');fig,ax = plt.subplots()
plot_importance(model,ax=ax)print(model.score(x_test, y_test))
# print(metrics(y_test,y_test_pred))
plt.figure(figsize=(8,6))
plt.figure(figsize=(8,6))
z_ML_utils.plot_decision_boundaries(x,y,XGBClassifier, idx1=idx1, idx2=idx2, n_estimator=n_estimator,colsample_bytree = colsample_bytree)
完整的项目代码:https://mbd.pub/o/bread/Y5yXmJtt




工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。
相关文章:
基于Python的信号处理(包络谱,低通、高通、带通滤波,初级特征提取,机器学习,短时傅里叶变换)及轴承故障诊断探索
Python是一种广泛使用的解释型、高级和通用的编程语言,众多的开源科学计算软件包都提供了Python接口,如计算机视觉库OpenCV、可视化工具库VTK等。Python专用计算扩展库,如NumPy、SciPy、matplotlab、Pandas、scikit-learn等。 开发工具上可用…...
大型语言模型智能体(LLM Agent)在实际使用的五大问题
在这篇文章中,我将讨论人们在将代理系统投入生产过程中经常遇到的五个主要问题。我将尽量保持框架中立,尽管某些问题在特定框架中更加常见。 1. 可靠性问题 可靠性是所有代理系统面临的最大问题。很多公司对代理系统的复杂任务持谨慎态度,因…...
C语言内存管理
1.进程的内存分布 练习:编写一个程序,测试栈空间的大小 #include<stdio.h>#define SIZE 1024*1024*7void main (void) {char buf[SIZE];buf[SIZE-1] 100;printf("%d\n",buf[SIZE-1]); }如果SIZE 大小超过8M(102410248),…...
AD24设计步骤
一、元件库的创建 1、AD工程创建 然后创建原理图、PCB、库等文件 2、电阻容模型的创建 注意:防止管脚时设置栅格大小为100mil,防止线段等可以设置小一点,快捷键vgs设置栅格大小。 1.管脚的设置 2.元件的设置 3、IC类元件的创建 4、排针类元件模型创建…...
基于MBD的大飞机模块化广域协同研制
引言 借鉴国外航空企业先进经验,在国内,飞机型号的研制通常采用基于模型定义(MBD)的三维数模作为唯一的设计制造协同数据源,从而有效减少了设计和制造部门之间的模型沟通成本和重构所需的时间,也减少或避免…...
鸿蒙轻内核M核源码分析系列二十 Newlib C
LiteOS-M内核LibC实现有2种,可以根据需求进行二选一,分别是musl libC和newlibc。本文先学习下Newlib C的实现代码。文中所涉及的源码,均可以在开源站点https://gitee.com/openharmony/kernel_liteos_m 获取。 使用Musl C库的时候,…...
力扣1818.绝对差值和
力扣1818.绝对差值和 把nums1拷贝复制一份 去重排序 对于每个nums2都找到差距最小的那个数(二分) 作差求最大可优化差值去重排序可以直接用set 自动去重排序了 const int N 1e97;class Solution {public:int minAbsoluteSumDiff(vector<int>& nums1, vector<i…...
矩阵练习2
48.旋转图像 规律: 对于矩阵中第 i行的第 j 个元素,在旋转后,它出现在倒数第i 列的第 j 个位置。 matrix[col][n−row−1]matrix[row][col] 可以使用辅助数组,如果不想使用额外的内存,可以用一个临时变量 。 还可以通…...
2024海南省大数据教师培训-Hadoop集群部署
前言 本文将详细介绍Hadoop分布式计算框架的来源,架构和应用场景,并附上最详细的集群搭建教程,能更好的帮助各位老师和同学们迅速了解和部署Hadoop框架来进行生产力和学习方面的应用。 一、Hadoop介绍 Hadoop是一个开源的分布式计算框架&…...
力扣算法题:将数字变为0的操作次数--多语言实现
无意间看到,力扣存算法代码居然还得升级vip。。。好吧,我自己存吧 golang: func numberOfSteps(num int) int {steps : 0for num > 0 {if num%2 0 {num / 2} else {num - 1}steps}return steps } javascript: /*** param {number} num…...
vue前段处理时间格式,设置开始时间为00:00:00,设置结束时间为23:59:59
在Vue开发中,要在前端控制日期时间选择器的时间范围,可以通过以下方式实现: 使用beforeDestroy生命周期钩子函数来处理时间范围: 在Vue组件中,可以监听日期时间选择器的变化,在选择开始日期时,自…...
Java 8 新特性全面解读
Java 8,作为一次重大更新,于2014年引入了多项创新特性,极大地改善了Java的编程体验和性能。此版本不仅加入了对函数式编程的支持,还增强了接口的功能,引入了新的API,并优化了语言的整体效率。接下来&#x…...
JavaScript知识之函数
javascript函数 在JavaScript基础之上提供了部分函数,同时也可以自定义函数,JavaScript基础详见之前的文章javascript基础知识 自定义函数 //关键字 函数名 参数列表 函数体 function test(a,b,c){alert(a":"b":"c) }function test1(a,b){return a;//不…...
【Pepper机器人开发与应用】一、Pepper SDK for LabVIEW下载与安装教程
🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主 📑上期文章:『一文汇总对比英伟达、AMD、英特尔显卡GPU』 🍻本文由virobotics(仪酷智能)原创 🥳欢迎大家关注✌点赞&…...
HCIP-AI EI 认证课程大纲
该阶段详细介绍计算机视觉、注意力机制与Transformer、自然语言处理、语音处理等 AI 核心领域技术,并重点介绍华为云 EI 服务使用。 共计48 课时。第一节:计算机视觉技术概述与图像处理基础 - (3 课时) - 什么是计算机视觉&#x…...
@Test注解方法,方法无法执行
1.背景 写了一个测试方法,执行后如图 2.原因是 该项目是springbootgradle...构建的项目 在build.gradle配置文件中关闭了单元测试: test {useJUnitPlatform()// 是否启用单元测试enabled false } 3.处理方式 开启单元测试 test {useJUnitPlatform()// 是否启用单元测试ena…...
golang函数
【1】函数: 对特定的功能进行提取,形成一个代码片段,这个代码片段就是我们所说的函数 【2】函数的作用:提高代码的复用性 【3】函数和函数是并列的关系,所以我们定义的函数不能写到main函数中 【4】基本语法 func 函…...
ubuntu上存在多个版本python,根据需要选择你想使用的python版本
文章目录 前言一、二、使用步骤总结 前言 参考1 一、 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1二、使用步骤 总结...
idea 常用插件推荐
文章目录 1、Lombok2、Convert YAML and Properties File3、Grep Console4、MyBatisX5、Free MyBatis Tool6、MyBatis Log EasyPlus (SQL拼接)7、MyBatisPlus8、Eclipse theme9、Eclipse Plus Theme10、Rainbow Brackets Lite - Free and OpenSource&…...
训练大模型自动在RAG和记忆间选择
现如今,检索增强生成(Retrieval-augmented generation,RAG)管道已经能够使得大语言模型(Large Language Models,LLM)在其响应环节中,充分利用外部的信息源了。不过,由于RAG应用会针对发送给LLM的每个请求,都…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
