基于信号分解的几种一维时间序列降噪方法(MATLAB R2021B)

自适应信号分解算法是一种适合对非平稳信号分析的方法,它将一个信号分解为多个模态叠加的形式,进而可以准确反应信号中所包含的频率分量以及瞬时频率随时间变化的规律。自适应信号分解算法与众多“刚性”方法(如傅里叶变换,小波变换)不同,可根据信号自己本身固有属性进行分解,故其具有自适应性。狭义的自适应信号分解算法可以完全不借助任何除信号本身的信息,就可以实现信号的模态分解,但是随着自适应信号分解理论的发展和完善,完全不借助任何信号本身的信息的自适应信号分解算法具有一定的局限性。所以在这基础上,很多学者借助了一些外部的信息,但是仍保持算法具有一定的自适应性,完成信号的模态分解,被称为广义的自适应信号分解算法。

从经验模态分解EMD提出以来,自适应信号分解算法已经有了二十多年的发展,相关算法多达几十种,改进算法更是不胜枚举。EMD方法是最早的自适应信号分解算法,在很多科学领域上都有应用。例如可以使用EMD来分离自由振动的不同模态响应,然后将希尔伯特变换应用于瞬时振幅和相角的历史数据中,可以为识别多阶振动的固有频率和阻尼比提供了基础;EMD根据局部极值点和过零点进行分解,具有一定的“经验性”。由于没有数学理论的支撑,EMD算法会出现模态混叠、端点效应、不满足整体正交性等问题。

为了解决EMD算法存在的问题,集合经验模态分解EEMD被提出,在信号分解之前多次加入白噪声,对最后得到的模态分量取平均,一定程度上消除了模态混叠的影响。又有学者在EEMD的基础上提出了完备集合经验模态分解CEEMD,相比于EEMD,CEEMD在分解之前添加一对符号相反,幅值相同的白噪声,因此减少了由于添加白噪声而引发的信号重构误差,大大提高了信号分解的精度。

局部均值分解LMD可以将一个非平稳信号分解为多个乘积函数分量的叠加,其中每个乘积函数都由一个瞬时幅值函数和一个纯调频信号相乘得到。另外LMD还可以有效地缓解EMD的端点效应。

Hilbert振动分解主要应用信号本身的希尔伯特变换和同步检波来估计信号的瞬时频率和瞬时幅值,可以将复杂的信号分解成多个分量的叠加,Hilbert振动分解在对时变信号的处理中有着很好的效果。

固有时间尺度分解ITD通过信号定义基线提取算子,将信号分解为若干个高频旋转分量和一个低频单调趋势分量。在ITD中,由于基线提取算子并未采用EMD中所采取的极值点构造方式,所以大大改善了端点效应。

迭代滤波分解方法本质是采用某些滤波器(比如Toeplitz滤波器)替换EMD中的由上下包络线确定的滤波方法,迭代滤波可以在数学上被证明是严格收敛的,这样使得自适应信号分解算法有了理论依据。

自适应局部迭代滤波可以根据信号本身对滤波器的长度和形状进行调整,相比于迭代滤波,大大提高了自适应性。

同步压缩变换SST对原始信号处理得到时频图,采用SST通过短时傅里叶变换STFT或小波变换的桥梁,可以使得时频能量更为集中并且能在时频图中提取所需要的信号分量。

自适应最稀疏时频分析方法受到压缩感知的启发,在模态分量函数组成的最大可能字典中寻找数据的最稀疏表示,并将其转化为L1范数的最优化问题,通过迭代算法递归计算得到所有的模态分量。

解析模态分解通过不同的二分频率,可以将有紧密间隔频率的信号分离开来,即从振动信号中提取间歇性小的波动,解决了EMD的一个不足之处。

极点对称模态分解采用内部极点对称插值,并借用“最小二乘”的思想来优化剩余模态,由此来确定最优的筛选次数。极点对称模态分解还提出了数据直接插值法,使得各个模态的幅值和频率更加直观。

局部特征尺度分解方法对基线信号的提取减少了计算量,而且迭代次数较少,有利于抑制端点效应。

经验小波变换的关键之处在于组成信号的所有分量构成了紧凑支撑的傅立叶谱,分离出不同的模态相当于对傅立叶谱进行切分。而切分的方式采用经验检测的方法,不遵循小波的二元离散化的特点,但提取模态的过程同小波变换类似。EWT在频带划分上实现了自适应化,在许多工程应用上都起到了很好的效果。

变分模态分解VMD根据所有模态分量占据带宽最小化的思想来建立数学模型,采用交替方向乘子法求得变分问题的最优解,从而自适应地实现频带的切分和分量的提取。

奇异谱分解方法中嵌入维数和相应轨迹矩阵主分量的选择被用来重建分量,且是自适应的。此外,奇异谱分解重新定义了轨迹矩阵,可以更好地识别振荡信号并可以在每次迭代之后减少残差能量。

非线性模式分解是一种基于时频分析、脊线重构、替代数据测试、谐波真伪检验结合的方法,可将给定信号分解为一些有物理意义振荡分量的组合。因为非线性模式分解参数的选择有着严格的数学定义,所以具有非常强大的自适应性和抗噪性。

傅里叶分解算法定义出调幅调频傅里叶展开“傅立叶本征带函数”后,利用傅里叶变换可以得到其解析函数,最后通过前向和反向搜索获得最少数量的模态分量。傅里叶分解基于傅里叶方法,但是却不会出现模态混叠、端点效应等问题且数学理论完备。

自适应线性调频模式分解采用贪婪算法捕获信号分量并可以自适应获得高分辨率的时频谱,在调频信号的处理中取得了明显的效果。总体来说,自适应信号分解算法在近些年不断地涌现,为广大从业人员提供了广阔的选择空间,这使得对比不同类型的自适应信号分解算法的优劣性显得十分重要。

鉴于此,采用了基于信号分解的几种一维时间序列降噪方法,运行环境为MATLAB R2021B,主要内容如下:

基于变分模态分解-小波阈值的一维时间序列降噪方法

基于奇异值分解-变分模态分解的一维时间序列降噪方法

基于自适应噪声完备集合经验模态分解和奇异值分解的一维时间序列降噪方法

基于集合经验模态分解和鲁棒主成分分析的一维时间序列降噪方法

完整代码可见基于信号分解的几种一维时间序列降噪方法(MATLAB R2021B)

工学博士,担任《Mechanical System and Signal Processing》审稿专家,担任《中国电机工程学报》优秀审稿专家,《控制与决策》,《系统工程与电子技术》,《电力系统保护与控制》,《宇航学报》等EI期刊审稿专家。

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

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

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

相关文章

R语言实现多要素偏相关分析

偏相关分析是指当两个变量同时与第三个变量相关时,将第三个变量的影响剔除,只分析另外两个变量之间相关程度的过程,判定指标是相关系数的R值。 在GIS中,偏相关分析也十分常见,我们经常需要分析某一个指数与相关环境参…

浅谈一下对于DDD模式的理解2

浅谈一下对于DDD模式的理解,相互学习交流,不对之处欢迎大家指正。 在说到DDD(Domain-Driven Design)设计模式之前,先要说下我们在对系统进行架构设时需要遵循的几个原则: 单一职责(SRP) "单一职责原则…

原来这才是帕金森症状得到缓解的秘诀!

帕金森是一种影响神经系统的慢性疾病,主要症状包括震颤、肌肉僵硬和运动缓慢。如不及时治疗控制,症状可能会逐渐加重,严重影响生活质量。患者可能丧失自理能力,出现跌倒、骨折等并发症,还可能伴随认知障碍和情绪问题。…

考研数学|汤家凤《1800题》什么阶段做?值不值得做?

1800总的来说还是一本对基础不太好的同学一本不错的习题册,当然他可能对基础较好的同学来说题目量过大 考研数学备考,刷1800题是否必要?从我的经验来看,刷1800题并不是绝对必要的,而且传统习题册存在一些问题&#xf…

计算机组成原理 — 计算机的运算方法

计算机的运算方法 计算机的运算方法无符号数和有符号数概念有符号数有符号数又分真值和机器数原码表示法补码表示法反码表示法三种机器数的特点移码表示法 数的定点表示和浮点表示定点表示浮点表示 定点运算移位运算算数移位规则加法与减法运算乘法运算除法运算概述恢复余数法加…

ChatGPT人工智能对话系统源码 电脑版+手机端+小程序三合一 带完整的安装代码包以及搭建教程

ChatGPT人工智能对话系统的研发,源于对自然语言处理技术的深入研究和探索。在人工智能领域,自然语言处理是实现人机交互的关键技术之一。通过模拟人类的自然语言交流方式,对话系统能够理解用户的意图和需求,并给出相应的回应。 以…

【Qt学习笔记】(三)--编写上位机软件(ui设置、样式表serialport串口接收数据、Qchart显示波形)

声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。    这段时间大部分都是在学Qt,前面想着跟着书一章章的学,但是发现这个效率极低,所以就改变了学习的方法,那…

QT6实现创建与操作sqlite数据库及读取实例(一)

一.Qt为SQL数据库提供支持的基本模块(Qt SQL) Qt SQL的API分为不同层: 驱动层 SQL API层 用户接口层 1.驱动层 对于Qt 是基于C来实现的框架,该层主要包括QSqlDriver,QSqlDriverCreator,QSqlDriverCreatorBase,QSqlPlug…

初识GO语言

是由google公司推出的一门编程语言,12年推出的第一个版本 Go的特点 Go为什么能在最近的IT领域炙手可热 集python简洁&C语言的性能于一身 21世纪的C语言 顺应容器化时代的到来 区块链的崛起 学习一门编程语言可以划分为下面这三个步骤 安装 编译器 or 解…

C语言种sizeof()和strlen的区别

sizeof 是 C 语言内置的操作符关键字,而 strlen 是 C 语言库函数; sizeof 仅用于计算数据类型的大小或者变量的大小,而 strlen 只能以结尾为 \0 的字符串作为参数; 编译器在编译时就计算出了 sizeof 的结果,而 strlen …

【内核内存管理、动态分配及IO访问、LED驱动】

一、内核内存管理框架 内核将物理内存等分成N块4KB,称之为一页,每页都用一个struct page来表示,采用伙伴关系算法维护 内核地址空间划分图: 3G~3G896M:低端内存,直接映射 虚拟地址 3G 物理地址 ​ 细…

YOLOv8独家改进:block改进 | RepViTBlock和C2f进行结合实现二次创新 | CVPR2024清华RepViT

💡💡💡本文独家改进:CVPR2024 清华提出RepViT:轻量级新主干!从ViT角度重新审视移动CNN,RepViTBlock和C2f进行结合实现二次创新 改进结构图如下: 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.html?spm=1001.2014.3001.5482 💡…

UML学习体会

1. 水在前面 本来写作的水平就很一般,平时写的也少。最近看到一些文章说学习最好的方式是输出,刚好又重温了一遍UML方面的基础,所以想记录点学习心得。而且说实话这玩意平时基本不怎么用(偶尔倒是看看别人的成果)&…

mabatis 下

mybatis 原生的API&注解的方式MyBatis-原生的API调用快速入门需求快速入门代码实现 MyBatis-注解的方式操作快速入门需求快速入门代码实现注意事项和说明 mybatis-config.xml配置文件详解说明properties属性settings全局参数定义typeAliases别名处理器typeHandlers类型处理…

麒麟 V10 一键安装 Oracle 11GR2(231017)单机版

Oracle 一键安装脚本,演示 麒麟 V10 一键安装 Oracle 11GR2 单机版过程(全程无需人工干预):(脚本包括 ORALCE PSU/OJVM 等补丁自动安装) ⭐️ 脚本下载地址:Shell脚本安装Oracle数据库 脚本第…

【C语言】结构体的内存对齐问题

1.结构体内存对齐 我们已经基本掌握了结构体的使用了。那我们现在必须得知道结构体在内存中是如何存储的?内存是如何分配的?所以我们得知道如何计算结构体的大小?这就引出了我们今天所要探讨的内容:结构体内存对齐。 1.1 对齐规…

深入浅出Go性能监控:使用expvar库的实战指南

深入浅出Go性能监控:使用expvar库的实战指南 引言expvar库概览主要组件介绍如何帮助开发者监控应用性能 实战开始:配置和初始化导入expvar库初始化expvar创建和注册自定义Var实例 监控关键数据使用expvar监控内存使用监控Goroutines数量自定义业务指标监…

软件测评中心:进行科技成果鉴定测试的注意事项和好处简析

软件产品科技成果鉴定是有效评价科技成果质量和水平的方法之一,也是鼓励科技成果通过市场竞争等方式得到有效的评价和认可,可以推动科技成果的进步和转化。 一、进行科技成果鉴定测试时的注意事项:   1、应由具备一定资质和能力的专业机构…

综合实验---Web---进阶版

目录 实验配置: 1.PHP调整主配置文件时,修改文件内容 1.原内容调整(在编译安装的情况下) 2.调整如下 3.没有调整的,根据之前配置就行 2.配置Nginx支持PHP解析 1.原内容如下 2.调整如下 3.验证PHP测试页 1.原内容如下 2.调整如下 4…

Ethsign银河活动开启,简单参与领6个NFT

简介:EthSign是一个基于区块链技术的去中心化电子签名平台,目的是解决传统中心化电子签名服务的各种问题。用户可以使用钱包或社交媒体帐户生成的私钥签署文件和协议,数字签名记录在链上,文件经过加密存储在去中心化存储网络中&am…