简单的同步压缩变换脊线检测(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为后缀的压缩文件。安装包的安装只要双击安装文件,然后按照提示一步步安装就可以了,属于“傻瓜”式安装;压缩包的安装需…

vivo手机 创建不了文件夹 因为文件夹名字用了关键字!

/storage/emulated/0/Android/data/com.luming.xsxparent/files/learningmachine/voice/1719475869218voice.amr: open failed: ENOENT (No such file or directory) 最终发现是因为创建的文件夹名字叫voice ,估计和系统冲突了不让创建,记录下

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

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

新技术环境下的等保测评挑战与对策

随着信息技术的飞速发展,云计算、大数据、物联网、人工智能等新技术在各行各业得到了广泛应用,为企业的业务创新和发展提供了强大的动力。然而,这些新技术的引入也给企业的信息安全带来了前所未有的挑战。作为保障信息安全的重要手段&#xf…

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等路径存放 设置环境…

fastapi集成jwt

fastapi集成jwt fastapipython-jose实现jwt登录 1、安装相关包 python-jose pip install python-jose2、创建token及token校验 from copy import deepcopy from datetime import timedelta, datetimefrom jose import jwt, ExpiredSignatureErrorSECRET_KEY "xxx&quo…

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、…

Mysql创建查询用户

1 创建用户及密码 # 第一个mmguestquery为用户名,localhost为只能在本地访问数据库,第二个mmguestquery为密码 create user mmguestquery localhost identified by Mmguest02759762217;2 授予权限 # select:只有查询权限;mm_mod…

智慧城市安全应用

智慧城市利用物联网(IoT)、大数据、云计算、人工智能等先进技术,提高城市管理和服务的智能化水平。然而,智慧城市的广泛互联互通和数据依赖也带来了巨大的安全挑战。因此,建立一个全面的智慧城市安全体系是至关重要的。…

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

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

高德地图获取key值步骤

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

Spring Boot + FreeMarker 实现动态Word文档导出

Spring Boot FreeMarker 实现动态Word文档导出 在现代企业应用中,文档自动化生成是一项提升工作效率的重要功能。Spring Boot与FreeMarker的组合,为开发者提供了一个强大的平台,可以轻松实现动态Word文档的导出。本文将指导你如何使用Sprin…

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

由于前端框架使用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个关键要素 对以一件代发为主要业务的海外仓…

湖北襄阳治疗风湿类风湿最好的医院是哪家

湖北襄阳治疗风湿类风湿最好的医院是哪家 在湖北襄阳,有多家医院在风湿和类风湿疾病的治疗方面享有较高声誉。以下是对其中几家医院的详细介绍: 湖北省中医院襄樊分院: 类型:非营利性二级甲等综合医院。特色:在中医治…

C++三元条件运算符

C三元条件运算符 ?: 一个三元运算符(也称为条件运算符)的使用,它用于根据条件选择两个表达式中的一个。这个三元运算符的格式如下: condition ? expression_if_true : expression_if_false以上整个表达式…

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

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