简单的同步压缩变换脊线检测(PythonMATLAB)

由于 Heisenberg 测不准原理,线性时频变换方法无法同时在时间和频率方向达到最佳的时频分布,窗函数和小波函数的选择也降低了各方法的自适应性。同样,二次型变换方法难以在去除交叉干扰项的同时保证较高的能量集中度。为了解决该问题,一系列将时频系数重排到信号能量分布的重心,致力于提高能量集中度的后处理方法被提出。首先,通过分析相位信息来聚集分散的时频能量,在此基础上重排方法被提出以改进线性时频变换,其原理下所示。

图中绿色矩形指时频系数分布位置,红色实线为理论瞬时频率,红色箭头为重排方向。该方法通过重新分配时频系数来提高时频分辨率,对微弱故障特征的提取至关重要。然而,重排方法在时间和频率两个方向重排时频系数丢失了信号的相位信息,故该方法不具备重构能力。在实际应用中,信号分析算法的可逆性是分离干扰能量的关键特性,因此多贝西提出一种基于小波变换的同步压缩变换,该方法将连续小波变换各个模态分量附近的能量聚集到瞬时频率算子,在提高时频分布可读性的同时保留信号重构的所需的信息。在此基础上,可以将该方法引入短时傅里叶变换和 S 变换的框架中,这些方法都取得了良好的效果,其适用性也得到了验证。然而,这些方法在处理强调频信号时效果不够理想,这导致其在现实应用难以处理如引力波、心电图等信号的分析。

近年来,随着同步压缩变换和时间重排同步压缩变换在各领域的成功应用,越来越多的学者以同步压缩技术为框架提出了大量改进方法。如针对强调频信号提出的解调变换,该方法使用解调算子对信号进行前处理,降低信号的非平稳度,最终提升同步压缩变换的处理效果。值得一提的是,解调算子的计算主要有两种方法:匹配解调算法和脊估计算法,前者适应性好但计算量偏大,后者计算成本更低但非常依赖脊估计算法。该方法的优势是可以与同步压缩变换结合使用,进一步提升时频分布的时频分辨率。此外,还有以大幅度提升时频分辨率为目标的多重同步压缩变换和时间重排多重同步压缩变换,为降低噪声影响提出的同步提取变换和瞬态提取变换,以及致力于提升算法泛化能力的自适应同步压缩变换等。

import numpy as np
from numpy import pi as pi
import seaborn as sns
import matplotlib.pyplot as plt
from src.utilities.utilstf import get_spectrogram
from mcsm_benchs.SignalBank import SignalBank
from mcsm_benchs.Benchmark import Benchmark
from src.methods.method_sstrd import NewMethod
# np.random.seed(0) 
# signal parameters
SNRin = 20
N = 2**10
# Nsub=N//2
sbank = SignalBank(N=N, return_signal=True)
tmin = sbank.tmin
tmax = sbank.tmax
s = sbank.signal_mc_multi_linear()
# s = sbank.signal_mc_crossing_chirps()
# s = sbank.signal_mc_synthetic_mixture()
s = sbank.signal_mc_synthetic_mixture_3()noise = np.random.randn(N,)
signal = Benchmark.sigmerge(s,noise,SNRin)
Nfft = 2*N
S, F = get_spectrogram(s)
F = F[0:N+1]
methodml = NewMethod()
funa = methodml.method# signal_output = funa(signal,[],True,Pnei,M,L)
signal_output = funa(signal,)S_output, F_output = get_spectrogram(signal_output)
F_output = F_output[0:N+1]print(10*np.log10((np.sum(s[tmin:tmax]**2))/(np.sum((s[tmin:tmax]-signal_output[tmin:tmax])**2))))plt.figure()
plt.plot(s[tmin:tmax])
plt.plot(signal_output[tmin:tmax],'--')

fig, ax = plt.subplots(1,3,figsize = (15,5))
ax[0].imshow(abs(F), origin='lower')#, cmap=cmocean.cm.deep)
ax[0].set_title('Input Signal')
ax[1].imshow(abs(F_output), origin='lower')#, cmap=cmocean.cm.deep)
ax[1].set_title('Output Signal')
ax[2].imshow(abs(F_output-F), origin='lower')#, cmap=cmocean.cm.deep)
ax[2].set_title('Difference')
plt.show()知乎学术咨询:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1

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

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

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

相关文章

MySQL的安装与配置

MySQL提供安装包和压缩包两种安装方式,安装包是以.msi作为后缀名的二进制分发文件,压缩包是以.zip为后缀的压缩文件。安装包的安装只要双击安装文件,然后按照提示一步步安装就可以了,属于“傻瓜”式安装;压缩包的安装需…

基于SpringBoot校园一卡通系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全&#xff1…

World of Warcraft [CLASSIC] Level 70 Riding Skill

World of Warcraft http://account.battlenet.com.cn-CSDN博客 World of Warcraft [CLASSIC] Level 70 Riding Skill 魔兽世界【怀旧】70级骑术 部落如何学习70级骑术,如何区影月谷,影月村,怀旧一下 荆棘谷 暮色森林 逆风小径 悲伤沼泽 诅…

变工况下转子、轴承数据采集及测试

1.固定工况下的数据采集 1.wireshark抓包 通过使用 Wireshark 抓包和 Linux 端口重放技术,可以模拟实际机械设备的运行环境,从而减少实地验证软件和算法的复杂性和麻烦。 打开设备正常运转,当采集器通过网口将数据发送到电脑时&#xff0c…

ubuntu 编译交叉环境arm 版本的openssl库

一,下载源码 [ Old Releases ] - /source/old/index.html 二,设置交叉编译环境 我的交叉环境是RV1126开发板,/home/rpdzkj/development/cross-compile-tools/rv1126/ 对应的是我电脑里的RV1126开发板的交叉环境下的gc g等路径存放 设置环境…

5. zabbix分布式监控

zabbix分布式监控 一、zabbix分布式监控二、zabbix分布式监控部署1、环境描述2、zabbix proxy的部署2.1 安装zabbix proxy相关的软件2.2 创建proxy需要的库、导入表2.3 编辑zabbix proxy配置文件,指定数据库连接2.4 启动zabbix proxy 3、在zabbix server添加代理4、…

数据结构与算法基础(王卓)--学习笔记

1 数据结构分类 1.1 逻辑结构分类 集合结构线性结构:线性表、栈、队列、串树形结构图形结构 1.2 物理结构分类 逻辑结构在计算机中的真正表示方式(又称为映射)称为物理结构,也可叫做存储结构 顺序存储结构:数组链…

高德地图获取key值步骤

1、创建新应用 进入控制台(https://lbs.amap.com/dev/),创建一个新应用。 如果您之前已经创建过应用,可直接跳过这个步骤。 2、添加新Key 在创建的应用上分别填写key名称、选择服务平台、SHA1、以及PackageName SHA1:是在安卓…

【项目实训】解决前后端跨域问题

由于前端框架使用vue,后端使用flask,因此需要解决前后端通信问题 在vue.config.js中修改 module.exports defineConfig({transpileDependencies: true,lintOnSave:false, }) // 跨域配置 module.exports {devServer: { //记住&#x…

Omniverse 下载 isaac sim过慢的解决办法

比如在上海地区,下载isaac只有 200kb/s,这8个G下载要很长时间 对于着急的小伙伴,可以直接去日志里拿下载链接,在Omniverse里点右上角小人,点开里面SETTINGS,如图 点击,LOGS LOCATION&#xff0c…

海外仓一件代发效率提升方案:拣货区规划策略

作为海外仓的核心业务,一件代发处理的效率和准确性,可以说直接影响了海外仓的经济效益。今天我们就会针对大家都比较头疼的一件代发效率问题,给大家分享一些实用建议。 提升一件代发效率要考虑的3个关键要素 对以一件代发为主要业务的海外仓…

分布式系统:常见的陷阱和复杂性

分布式系统的复杂性是工程师和开发人员面临的重要挑战。复杂性往往会随着系统的发展而增加,因此积极主动非常重要。让我们来谈谈您可能会遇到哪些类型的复杂性以及在工作中应对它的有效策略。 分布式系统和复杂性 在开发中,分布式系统是相互连接并执行…

PyTorch入门:探索Tensor的基本操作(2)

torch.cat() a torch.zeros((2,4)) b torch.ones((2,4)) out torch.cat((a,b), dim1) print(out)运行结果如下: tensor([[0., 0., 0., 0., 1., 1., 1., 1.],[0., 0., 0., 0., 1., 1., 1., 1.]])torch.stack()&…

深度学习 --- stanford cs231学习笔记五(训练神经网络之数据的预处理)

数据的预处理(Data Preprocessing) 2 Data Preprocessing数据的预处理 数据预处理的几种方法 2,1 数据的零点中心化 数据的零点中心化的目的就是为了把数据的整体分布拉回到原点附近,也就是让数据的整体均值变为0。 ​ 2,2 数据的标准化 数据…

缓冲区溢出

本文作者:杉木涂鸦智能安全实验室 前置知识点 栈 栈(Stack)是计算机中的一种数据结构,用于存储临时数据。它的特点是后入先出(LIFO),只能在栈顶添加或删除数据。在程序中,栈被用于…

从一道算法题开始,爱上Python编程

Python是一门简单易学、高效强大的编程语言,许多人因为它的便捷性和广泛应用而爱上编程。今天,我将通过一道有趣的算法题,带领大家一步步写出Python代码,并最终解决问题。希望通过这篇文章,能激发大家对Python编程的兴…

[创业之路-131] :制造业企业的必备管理神器-ERP-ERP常见单据

目录 一、采购管理的ERP常见单据 1.1 请购单: 主要内容 作用 操作流程 1.2 采购订单(Purchase Order, PO): 1.3 采购合同(Purchase Contract): 1.4 采购发票(Purchase Invoi…

操纵系统的特征-线程的六种状态

线程的六种状态 线程是操作系统进行运算调度的最小单位,它可以分为六种状态 新建状态(NEW) 用new创建一个线程对象,这时候处于新建状态 可运行状态(RUNNABLE) 可运行状态又分为两种状态:就绪…

计算机网络模型(OSI架构、TCP/IP架构)

OSI开放式系统互联 为什么会有通用的网络通信模型(OSI、TCP/IP)一、OSI(1)OSI 是什么(2)OSI 七层第七层、应用层第六层、表示层第五层、会话层第四层、传输层第三层、网络层第二层、数据链路层第一层、物理…

Redis 7.x 系列【8】数据类型之哈希(Hash)

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 HSET2.2 HGET2.3 HDEL2.4 HEXISTS2.5 HGETALL2.6 HKEYS2.7 HLE…