【经验模态分解】5.结合EMD与最小二乘法的信号趋势项的提取方法

2023-12-29 03:20

本文主要是介绍【经验模态分解】5.结合EMD与最小二乘法的信号趋势项的提取方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 利用 EMD 将信号分解为一系列 固有模态函数IMF,根据 振动信号过零点特性 对属于趋势项的 IMF 分量进行判别,并对判别为趋势项的 IMF 分量进一步利用 最小二乘法 进行趋势项拟合,将拟合结果求和作为最终趋势项。
  • 数值模拟试验和实测数据处理结果表明:这一方法无需假设趋势项类型,且可不受 EMD 过程中模态混叠和端点效应的影响,使趋势项提取更为准确。

文章目录

  • 1 趋势项
    • 1-1 什么是趋势项?
    • 1-2 为何要提取趋势项?
    • 1-3 提取的方法
  • 2 利用EMD得到的趋势项
  • 3 最小二乘法拟合趋势项
    • 3-1 最小二乘法拟合趋势项的步骤
    • 3-2 最小二乘法消除趋势项步骤(matlab)
    • 3-3 缺点
  • 4 结合EMD的最小二乘方法
    • 4-1 EMD提取法的优势与不足
    • 4-2 最小二乘方法的缺陷上的细节
    • 4-3 结合的步骤
    • 4-4 结合后的优势
  • 5 实际操作

1 趋势项

1-1 什么是趋势项?

  • 趋势项是指信号中 周期大于采样长度 的频率成分,通常表现为线性的或者慢变的趋势误差

1-2 为何要提取趋势项?

提取和消除信号中存在的趋势项是信号预处理的一个重要环节,趋势项会严重影响信号时域相关分析和频域功率谱估计精度,严重的趋势项干扰会使低频谱严重失真。

1-3 提取的方法

  • 平均斜率法、差分法、低通滤波法和最小二乘拟合法等(缺点:这些方法通常需要预先明确信号中趋势项的类型。如线性趋势项、多项式或指数趋势项等。这些方法的自适应能力差,不适用于复杂变化的趋势项提取,很大程度上限制了其应用范围)。

2 利用EMD得到的趋势项

  • IMF阶数增加,对应的频率成分逐渐降低,其中余量 r n ( t ) r_n(t) rn(t) 的频率成分最低
  • 根据 EMD 分解收敛条件:分解余量 r n ( t ) r_n(t) rn(t) 为单调函数,周期大于信号的记录长度,因此可以将 r n ( t ) r_n(t) rn(t) 作为趋势项。

3 最小二乘法拟合趋势项

  • 最小二乘法提取趋势项 是一种针对 随机信号和稳态信号 极为有效的方法。不仅可以提取呈线性状态基线偏移的简单类型趋势项,也可以提取具有高阶多项式的复杂趋势项

3-1 最小二乘法拟合趋势项的步骤

①假设一趋势项多项式,根据最小二乘原理列出求解方程
②用矩阵法求出趋势项系数矩阵‚得出趋势项拟合曲线。

3-2 最小二乘法消除趋势项步骤(matlab)

1、最小二乘法拟合直线作BaseLine
2、原始数据减去拟合的直线BaseLine

  • 情况一:先知趋势项为线性的,消除线性趋势项
y = detrend(x)
  • 情况二:先知趋势项为多项式,消除多项式趋势项(趋势为非线性曲线)
p = polyfit(t,signal,5);
xtrend = polyval(p,t);
y = signal-xtrend;
  • 使用sgolay滤波器消除趋势项
y = sgolayfilt(x,order,framelen)

3-3 缺点

缺点:是对信号的拟合 需要事先预测趋势项类型 ,如线性函数、指数函数、幂函数等。 随着趋势项复杂程度的增加,拟合的难度也增大,对分析较复杂的实际信号不适用

4 结合EMD的最小二乘方法

利用 EMD 和最小二乘拟合方法都可以实现趋势项的提取,但是两者都存在方法本身固有的缺陷

4-1 EMD提取法的优势与不足

  • 【优势】:EMD方法 适用信号范围广泛,不受信号和趋势项类型约束
  • 【不足之处1】:利用 EMD方法 提取趋势项必须要求 原始信号本身满足可分解条件 A 1 f 1 < 2 A 2 f 2 A_1f_1<2A_2f_2 A1f12A2f2,否则会存在 模态混叠现象
    模态混叠:不同频率成分共存于同一个 IMF 分量中,那么作为低频的 趋势项成分也可能会混叠在与之接近的低频 IMF 分量中,此时用分解余量 r n ( t ) r_n(t) rn(t) 作为趋势项会使趋势项提取不完全。
  • 【不足之处2】:EMD 另外一个缺陷是 端点效应 问题(低频分量这种现象尤为突出)
    端点效应 :由于所分析信号长度有限,信号的两端点不能确定是极值,在进行三次样条插值时,必然使信号的上下包络在信号两端附近严重扭曲
  • 在信号的 高频分量 中由于时间尺度小,极值间的距离小,端部的边缘效应仅局限在信号两端很小的部分。
  • 但对于 低频分量,时间尺度大,极值间的距离大,端部的边缘效应就传播到信号内部,特别是原始信号数据集比较短时,会严重影响 EMD 分解的质量,作为分解余量 r n ( t ) r_n(t) rn(t) 同样受到端点效应的影响,这种情况下简单地把 r n ( t ) r_n(t) rn(t) 作为趋势项处理同样会影响趋势项提取精度。)

4-2 最小二乘方法的缺陷上的细节

  • 1、对 趋势项系数 b k b_k bk 的求解需要利用 原始信号 x ( n ) x(n) x(n)如果信号 x ( n ) x(n) x(n) 受噪声影响,则 趋势项系数 b k b_k bk 的求解精度同样会受到影响。
  • 2、利用最小二乘直接拟合趋势项需要设定合理的趋势项阶数,阶数的选择缺乏理论依据,需要趋势项的先验信息,工程上很难保证。

4-3 结合的步骤

  • 1、将原始信号进行 EMD‚获得一系列 IMF 分量
  • 2、根据 趋势项定义和振动信号过零点特性 判别 余量 r n ( t ) r_n(t) rn(t) 和与 r n ( t ) r_n(t) rn(t) 临近的低频 IMF 分量是否属于趋势项
  • 3、对判别属于趋势项的 余量 r n ( t ) r_n(t) rn(t) 和低频 IMF 分量进行 最小二乘趋势项拟合(克服 EMD 过程的模态混叠和端点效应对趋势项提取的不利影响)

4-4 结合后的优势

  • 1、(随机噪声一般可认为其分布在高频范围),这种结合方法避免了随机噪声对最小二乘法拟合趋势项的影响(因为结合后的最小二乘法处理的是多次分解后得到的低频余量 r n ( t ) r_n(t) rn(t))。
  • 2、针对低频 IMF 分量进行最小二乘趋势项拟合,设置的拟合多项式阶数可以设定相对小,降低了计算复杂度。

5 实际操作

参考文献:结合经验模态分解的振动信号趋势项提取方法_李振兴.pdf
参考知乎blog:趋势项消除-方法总结

这篇关于【经验模态分解】5.结合EMD与最小二乘法的信号趋势项的提取方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/548188

相关文章

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T