一维信号的时频分析(Python)

代码较为简单,很容易读懂。

Importing the required libraries

import os
import numpy as np
import pywt
import pandas as pd
import pickle as pkl
from matplotlib import pyplot as plt

Parameters or Required Variables

DATA_POINTS_PER_FILE = 2560
TIME_PER_REC = 0.1
SAMPLING_FREQ = 25600 # 25.6 KHz
SAMPLING_PERIOD = 1.0/SAMPLING_FREQ


WIN_SIZE = 20
WAVELET_TYPE = 'morl'

Helper Functions

def load_df(pkz_file):
    with open(pkz_file, 'rb') as f:
        df=pkl.load(f)
    return df
# perform CWT on 1d signals and return 2d feature image
def extract_feature_image(ind, feature_name='horiz accel'):
    data_range = df_row_ind_to_data_range(ind)
    data = df[feature_name].values[data_range[0]:data_range[1]]
    # use window to process(= prepare, develop) 1d signal
    data = np.array([np.mean(data[i:i+WIN_SIZE]) for i in range(0, DATA_POINTS_PER_FILE, WIN_SIZE)])  
    # perform cwt on 1d data
    coef, _ = pywt.cwt(data, np.linspace(1,128,128), WAVELET_TYPE)  
    # transform to power and apply logarithm ?!
    coef = np.log2(coef**2+0.001) 
    # normalize coef
    coef = (coef - coef.min())/(coef.max() - coef.min()) 
    return coef
main_dir = ''
pkz_file=main_dir+'bearing1_3.pkz'
df=load_df(pkz_file)
df.head()

Printing total data points and total no. of data files present in a pickle(.pkz) file

no_of_rows = df.shape[0]
no_of_files = int(no_of_rows / DATA_POINTS_PER_FILE)
print(no_of_rows, no_of_files)

Plotting 1D vibration signals(both horiz accel and vert accel)

plt.plot(range(no_of_rows), df['horiz accel'])
plt.show()
plt.plot(range(no_of_rows), df['vert accel'], 'r')
plt.show()

signal processing = Extracting Time-Frequency Domain feature images

no_of_samples=5
fig, ax = plt.subplots(2, no_of_samples, figsize=[20,8])
ax[0,0].set_ylabel('horiz accel features image')
ax[1,0].set_ylabel('vert accel features image')
'''
dividing the feature images into 5 samples
'''
for i, p in enumerate(np.linspace(0,1,no_of_samples)):
    ind = int((no_of_files-1)*p)




  #extracting and plotting horizontal acceleration feature images (horiz accel feature images) for 5 samples (0.00, 0.25, 0.50, 0.75, 1.00).
  #horiz accel => horizontal acceleration vibration signal


    coef = extract_feature_image(ind, feature_name='horiz accel')
    ax[0,i].set_title('{0:.2f}'.format(p))
    im = ax[0,i].imshow(coef, cmap='coolwarm')
    fig.colorbar(im, ax=ax[0,i], fraction=0.046, pad=0.04)


  
  #extracting and plotting vertical acceleration feature images (vert accel feature images) for 5 samples (0.00, 0.25, 0.50, 0.75, 1.00). 
  #vert accel => vertical acceleration vibration signal
  
    coef = extract_feature_image(ind, feature_name='vert accel')
    ax[1,i].set_title('{0:.2f}'.format(p))
    im = ax[1,i].imshow(coef, cmap='coolwarm')
    fig.colorbar(im, ax=ax[1,i], fraction=0.046, pad=0.04)
  
'''
The tight_layout() function in pyplot module of matplotlib library is used to automatically adjust subplot parameters to give specified padding.
padding = adding space (adding required white space)
'''
plt.tight_layout()
'''
The show() function in pyplot module of matplotlib library is used to display all figures.
'''
plt.show()

工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

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

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

相关文章

Elasticsearch搜索引擎(初级篇)

1.1 初识ElasticSearch | 《ElasticSearch入门到实战》电子书 (chaosopen.cn) 目录 第一章 入门 1.1 ElasticSearch需求背景 1.2 ElasticSearch 和关系型数据库的对比 1.3 基础概念 文档和字段 索引和映射 第二章 索引操作 2.0 Mapping映射属性 2.1 创建索引 DS…

观测云告警集成 PagerDuty 最佳实践

简介 PagerDuty 是一款为企业 IT 部门提供事件响应的软件。您可以将告警管理接入 PagerDuty 从而触发自动事件或追踪服务变化。当服务出现问题时,PagerDuty 支持以电话、短信、邮件等方式通知企业 IT 部门。本文介绍观测云的告警事件如何推送到 PagerDuty 来丰富告…

网络安全在2024好入行吗?

前言 024年的今天,慎重进入网安行业吧,目前来说信息安全方向的就业对于学历的容忍度比软件开发要大得多,还有很多高中被挖过来的大佬。 理由很简单,目前来说,信息安全的圈子人少,985、211院校很多都才建立…

使用winscp 通过中转机器(跳板机、堡垒机)密钥远程连接服务器,保姆级别教程

1.winscp下载地址 winscp下载 2.安装自己选择位置 3.连接服务器 到这里,基本就是没有壁垒机的就可直接连接,传递文件 4.配置中转服务器(壁垒机、跳板机) 选择高级选项 配置utf-8的编码格式 配置中转服务器(壁垒机、跳板机) 设置中专机的密码或者私钥 配置私钥

百问网全志V853开发板烧录开发板系统教程

烧录开发板系统 注意:此方式烧录进的文件系统是ubifs文件系统,如果操作 需要网络文件系统挂载或者使用TF卡,不推荐使用。 准备工作 1.100ASK-V853-Pro开发板 x1 2. 下载全志线刷工具AllwinnertechPhoeniSuit 3. TypeC线 X2、12V电源线X1 4…

【iOS】UI学习(三)

目录 前言步进器和分栏控制器警告对话框和等待提示器UITextField登陆界面案例UIScrollView基础滚动视图的高级功能总结 前言 本篇博客是我在学习UI部分内容的学习笔记,希望对你有所帮助,如有错误,还请指出! 步进器和分栏控制器 …

宁波磁材商会×蓝卓 | 共同打造“稀磁产业平台”,赋能产业数字化转型

日前,蓝卓与宁波市磁性材料商会(以下简称:宁波磁材商会)共同打造的“稀磁产业平台”正式启动,宁波磁材商会秘书长吴玥臻、蓝卓副总经理陈挺等领导出席战略签约仪式。 宁波是全国磁性材料产业创新高地和全球重要磁性材料…

nginx优化与防盗链【☆☆☆】

目录 一、用户层面的优化 1、隐藏版本号 方法一:修改配置文件 方法二:修改源码文件,重新编译安装 2、修改nginx用户与组 3、配置nginx网页缓存时间 4、nginx的日志切割 5、配置nginx实现连接超时 6、更改nginx运行进程数 7、开启网…

Echarts饼图,自定义饼图图例的排列方式, formatter使用语法

🌈🌈​​​​​​​🌈文章目录 一、饼图图例的排列方式 1.引入饼图 2.水平顶部(底部)排列 3.垂直左右排列 二、formatter使用语法 以图例后面拼接占比百分比为例 1.上下左右排列占比百分比 2.两端排列占比百分比 一、饼图图例的排列方…

刚刚苹果发布了「Android18」,还有29999的新机

大伙儿端午好啊,刚刚过去端午节。 苹果就在本周二凌晨 1 点召开了 WWDC2024 大会开幕。 果子最近很活跃啊,看来是被上半年的财报深深刺痛了。 此次大会没有硬件,基本都是涵盖各个产品未来的系统更新,果粉们期待的 iOS18、Mac OS…

交流负载箱的使用场景和应用范围是什么?

交流负载箱模拟实际用电设备运行状态的电力测试设备,主要用于对各种电气设备、电源系统、发电机组等进行性能测试、质量检验和安全评估。交流负载箱的使用场景和应用范围非常广泛,涵盖了电力、通信、能源、交通等多个领域。 1. 电力行业:在电…

Linux 中 “ 磁盘、进程和内存 ” 的管理

在linux虚拟机中也有磁盘、进程、内存的存在。第一步了解一下磁盘 一、磁盘管理 (1.1)磁盘了解 track( 磁道 ) :就是磁盘上的同心圆,从外向里,依次排序1号,2号磁盘........等等。…

中国首家!全球第二!沃飞长空AE200取得关键技术突破

近日,沃飞长空全自研战略产品AE200电动垂直起降航空器(eVTOL)验证机顺利完成全尺寸、全重量、全包线倾转过渡飞行,成为中国首个、全球第二完成该类试验科目的eVTOL企业,标志着中国eVTOL发展实现历史性突破,…

【JavaScript】简单数据类型 与 复杂数据类型 ② ( 简单数据类型参数传递 | 复杂数据类型参数传递 )

文章目录 一、简单数据类型参数传递1、值传递2、代码示例 二、复杂数据类型参数传递1、引用传递2、代码示例 一、简单数据类型参数传递 1、值传递 简单数据类型 的 参数传递时 , 将 该类型的比变量 或 值 作为 实参 传递给 函数形参 时 , 其本质是 将 栈内存 中存储的 数据值 …

meilisearch的索引(index)的最佳实践

官网的第一手资料学新技术:meilisearch官方文档 安装的官网地址:meilisearch安装的官网 部署在生产环境的指导:meilisearch部署在生产环境的指导 Elasticsearch 做为老牌搜索引擎,功能基本满足,但复杂,重…

基于springboot实现问卷调查系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现问卷调查系统演示 摘要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,问卷信息因为其管理内容繁杂,管理数…

【数据结构】第十五弹---C语言实现直接插入排序

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、排序的概念及其运用 1.1、排序的概念与分类 1.2、排序运用 1.3、常见的排序算法 1.4、常见的排序算法性能测试 2、常见排序算法的实现 2…

NewStarCTF_RE(week1,2)

[NewStarCTF 2023 公开赛道]easy_RE ida 可能会把 一个数组或字符串拆开,可以通过计算地址,知道是一起的 也有的会藏在汇编窗口 Segments IDA的Segments窗口 :shiftf7 https://www.cnblogs.com/sch01ar/p/9477697.html ida 各种窗口也是需要…

北斗导航:让科技引领未来出行

北斗导航是中国自主研发的卫星导航系统,由一系列北斗卫星和地面控制平台组成。它的研发始于上世纪80年代,经过几十年的发展,如今已成为全球领先的卫星导航系统之一。北斗导航凭借其优秀的性能,为我们的出行提供了准确、可靠的定位…

景联文科技:打造亿级高质量教育题库,赋能教育大语言模型新未来

随着人工智能技术的持续进步,从广泛的通用大语言模型到针对各行业的垂直大语言模型,已成为人工智能大语言模型技术深化演进的必然趋势。 教育大语言模型是适用于教育场景、具有庞大规模参数、融合了广泛的通用知识和专业知识训练形成的人工智能模型。能为…