如何对时间序列进行小波分析,得出其周期?

这篇具有很好参考价值的文章主要介绍了如何对时间序列进行小波分析,得出其周期?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

从信号处理角度进行分析 简单的时间序列直接做各种谱分析(频谱,包络谱,平方包络谱,功率谱,倒谱等等) 比如一些简单的旋转机械振动时间序列信号

如何对时间序列进行小波分析,得出其周期?

​如果频谱不好分析,那可以分析如下图所示的时间序列的时频谱

如何对时间序列进行小波分析,得出其周期?

​给个简单的模拟信号的例子 t = 0:1/2000:1-1/2000; dt = 1/2000; x1 = sin(50*pi*t).*exp(-50*pi*(t-0.2).^2); x2 = sin(50*pi*t).*exp(-100*pi*(t-0.5).^2); x3 = 2*cos(140*pi*t).*exp(-50*pi*(t-0.2).^2); x4 = 2*sin(140*pi*t).*exp(-80*pi*(t-0.8).^2); x = x1+x2+x3+x4; figure; plot(t,x) title('Superimposed Signal')

如何对时间序列进行小波分析,得出其周期?

​其连续小波变换时频谱如下

如何对时间序列进行小波分析,得出其周期?

​一个模拟的轴承内圈故障振动信号,带有明显的周期性

如何对时间序列进行小波分析,得出其周期?

​相应的频谱如下,红色虚线代表故障特征频率及相应的倍频

如何对时间序列进行小波分析,得出其周期?

包络谱如下

如何对时间序列进行小波分析,得出其周期?

​看一下相应的CWT时频谱,很明显能看出冲击性

如何对时间序列进行小波分析,得出其周期?

​还可以试试小波相干与交叉小波分析 小波相干、交叉小波,可以很好地反映两个不同时间序列变化之间的“相关性”。小波相干分析,一般反映序列间周期性“变化趋势”的一致性,但不直接反映变化周期的强度关系;交叉小波分析,一般反映序列间“共有周期”的强度。

如何对时间序列进行小波分析,得出其周期?

如何对时间序列进行小波分析,得出其周期?

如何对时间序列进行小波分析,得出其周期?

此外,如果时频谱线能量发散,时频脊线模糊,还可以试试同步压缩之类的算法 时间序列信号处理系列-基于Python的同步压缩变换 - 哥廷根数学学派的文章 - 知乎 时间序列信号处理系列-基于Python的同步压缩变换 - 知乎 当时间序列信号中噪声较大时,为了有利于周期性分析,不可避免地要进行降噪前处理 比如K-SVD降噪

如何对时间序列进行小波分析,得出其周期?

样条框架降噪

如何对时间序列进行小波分析,得出其周期?

Morlet小波降噪

如何对时间序列进行小波分析,得出其周期?

如何对时间序列进行小波分析,得出其周期?

如何对时间序列进行小波分析,得出其周期?

如何对时间序列进行小波分析,得出其周期?

如何对时间序列进行小波分析,得出其周期?

当待分析的时间序列过于复杂时,那可能要引入模态分解(多分辨分析),比如小波分解,经验模态分解及其变体,变分模态分解,经验小波变换,局部均值分解,辛几何模态分解,各种各样的自适应分解算法 基于小波脊线的时间序列分解

如何对时间序列进行小波分析,得出其周期?

如何对时间序列进行小波分析,得出其周期?

如何对时间序列进行小波分析,得出其周期?

如何对时间序列进行小波分析,得出其周期?

如何对时间序列进行小波分析,得出其周期?

好多同学都对各种模态分解方法的时间序列处理感兴趣,那就随便说一下 实际上,时间序列通常由多个具有物理意义的分量组成,在很多时候,为了更容易的研究信号,我们希望在与原始数据相同的时间尺度上单独研究这些分量中的一个或多个,理想情况下,我们希望这些经MRA分解到的多个分量在物理上是有意义的,可容易解释的。多分辨率分析MRA通常与小波或小波包相关联,但诸如经验模态分解EMD,变分模态分解VMD等模态分解方法也可以构成MRA。 先给一个简单的合成信号,信号以1000Hz的频率采样1秒钟。 Fs = 1e3; t = 0:1/Fs:1-1/Fs; comp1 = cos(2*pi*200*t).*(t>0.7); comp2 = cos(2*pi*60*t).*(t>=0.1 & t<0.3); trend = sin(2*pi*1/2*t); rng default wgnNoise = 0.4*randn(size(t)); x = comp1+comp2+trend+wgnNoise; plot(t,x) xlabel('Seconds') ylabel('Amplitude') title('Synthetic Signal')

如何对时间序列进行小波分析,得出其周期?

该信号由3个主要分量组成:频率为 60Hz的时间局部振荡分量、频率为 200 Hz的时间局部振荡分量和趋势项分量。趋势项分量为正弦曲线,频率为0.5Hz。60Hz的振荡分量发生在 0.1到 0.3 秒之间,而 200Hz的振荡分量发生在 0.7 到 1 秒之间。 但这些分量从时域波形中无法分辨,因此进行频域变换。 xdft = fft(x); N = numel(x); xdft = xdft(1:numel(xdft)/2+1); freq = 0:Fs/N:Fs/2; plot(freq,20*log10(abs(xdft))) xlabel('Cycles/second') ylabel('dB') grid on

如何对时间序列进行小波分析,得出其周期?

从频率中可以更容易地辨别振荡分量的频率,但时间局部性信号却丢失。为了同时定位时间和频率信息,使用连续小波变换进行分析。

如何对时间序列进行小波分析,得出其周期?

从CWT时频谱图中可以看出60Hz和200Hz分量的时间范围,但没有发现趋势项分量。为了分离出信号的分量并单独进行分析,接下来使用多分辨分析,直接在时域中进行相关操作。 多分辨分析通过将信号分成不同分辨率的分量进而缩小分析范围,而提取不同分辨率的信号分量相当于分解数据在不同时间尺度上的变化,或等效地在不同频带上进行分析。首先,采用离散小波变换的变体最大重叠离散小波变换对信号进行多分辨分析,分解层数为8。关于最大重叠离散小波变换的相关内容,请查看如下文献。

如何对时间序列进行小波分析,得出其周期?

最大重叠离散小波变换的8层多分辨分析分解如下:

如何对时间序列进行小波分析,得出其周期?

如果从上向下看,会看到所分解的分量变得越来越平滑,即分量频率越来越低。回想一下,原始信号包含3个主要分量,一个 200 Hz 的高频振荡成分、一个 60 Hz 的低频振荡成分和一个趋势成分,它们都被加性噪声破坏了。 从D2 图中可以看出时间局部化的高频分量被分解出来,而下面的两个图包含较低频率的振荡分量,这是多分辨率分析的一个重要方面,最后S8子图中包含了趋势项分量。 除了小波多分辨分析,经验模态分解 (EMD) 是一种所谓的数据自适应多分辨技术。 EMD 在不使用固定基函数的情况下递归地从数据中提取不同的分辨率成分,关于EMD相关文献浩如烟海,不做赘述了。EMD的多分辨分析分解如下所示:

如何对时间序列进行小波分析,得出其周期?

​虽然MRA分解分量的数目不同,但 EMD MRA和小波 MRA会产生相似的信号波形,在 EMD MRA分解中,高频振荡成分位于第1个本征模态函数中 (IMF1),低频振荡成分主要位于IMF2和IMF3中,IMF6 中的趋势项分量与小波技术提取的趋势分量非常相似。 自适应多分辨分析的另一种技术是变分模态分解 (VMD),VMD 从信号中提取固有模式函数或振荡模式,并不使用固定基函数进行分析。EMD在时域上递归,以逐步提取低频IMF分量,而VMD 首先识别频域中的信号峰值并同时提取所有模式,相关文献如下: Dragomiretskiy, Konstantin, and Dominique Zosso. “Variational Mode Decomposition.” IEEE Transactions on Signal Processing 62, no. 3 (February 2014): 531–44. https://doi.org/10.1109/TSP.2013.2288675. VMD的多分辨分析分解如下所示:

如何对时间序列进行小波分析,得出其周期?

​由上图可知,与小波和EMD类似,VMD将3个分量基本分离了出来。 还有一种数据自适应多分辨分析技术:经验小波变换 (EWT) ,EWT根据分析信号的频率构造 Meye小波进而进行自适应小波,之前写过EWT相关的内容: 经验小波变换在信号处理及轴承故障诊断中的应用 - 哥廷根数学学派的文章 - 知乎https://zhuanlan.zhihu.com/p/53 EWT的多分辨分析分解如下所示:

如何对时间序列进行小波分析,得出其周期?

​与之前的EMD和小波MRA类似,EWT分解出了相关的振荡分量,用于执行分析的滤波器及其通带信息如下:

如何对时间序列进行小波分析,得出其周期?

下面考虑一段神户地震信号,源于1995 年 1 月 16 日在澳大利亚霍巴特的塔斯马尼亚大学记录,从 20:56:51 (GMT) 开始,以 1 秒的间隔持续 51分钟。 figure plot(T,kobe) title('Kobe Earthquake Seismograph') ylabel('Vertical Acceleration (nm/s^2)') xlabel('Time') axis tight grid on

如何对时间序列进行小波分析,得出其周期?

以最大重叠离散小波变换为例,其8层MRA分解如下:

如何对时间序列进行小波分析,得出其周期?

​从D4和D5子图中可以看出初级与延迟次级波分量,地震波中的分量以不同的速度传播,初级波比次级(剪切)波传播的更快。 将信号分解为若干分量的目的通常是去除某些分量以减轻对信号分析的影响,MRA技术的关键是重建原始信号的能力,如下:

如何对时间序列进行小波分析,得出其周期?

​每种方法的最大重建误差约为10^(-12) 或更小,表明它们可以完美地对信号进行重建。在很多研究中我们对趋势项不感兴趣,由于趋势项一般位于最后一个 MRA 分解分量中,因此只需将该分量去除,然后进行重建。

如何对时间序列进行小波分析,得出其周期?

​此外,再删除第1个MRA分解分量(看起来主要是噪声)

如何对时间序列进行小波分析,得出其周期?

​在前面我们将趋势项删除,然而在许多应用中,趋势项可能是我们的主要研究部分,因此可视化几种MRA方法所提取的趋势项分量。

如何对时间序列进行小波分析,得出其周期?

根据以上的分析,小波MRA技术可以更平滑且最准确地提取趋势项,EMD提取了一个平滑的趋势项,但它相对于真实趋势幅度发生了偏移,而 VMD似乎比小波和EMD更偏向于提取振荡分量。 在前面的示例中,强调了多分辨分析在检测数据中的振荡分量和总体趋势中的作用,然而MRA还可以定位和检测信号中的瞬态成分。为了说明这一点,以1947年第一季度至 2011 年第四季度美国实际国内生产总值 (GDP) 数据,垂直的黑线标志着“大缓和”的开始,标志着从 1980 年代中期开始,美国宏观经济波动性减弱的时期,很难从原始数据中辨别出来。

如何对时间序列进行小波分析,得出其周期?

​部分代码链接见评论区,面包多下载,内容包括现代信号处理,机器学习,深度学习,故障诊断等文章来源地址https://www.toymoban.com/news/detail-441864.html

到了这里,关于如何对时间序列进行小波分析,得出其周期?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab小波神经网络时间序列预测交通流量(附上完整仿真源码+数据)

    交通流量的准确预测对于交通管理和规划具有重要意义。本文提出了一种基于Matlab小波神经网络的交通流量时间序列预测方法。首先,通过小波分析对交通流量时间序列进行特征提取,得到不同尺度的小波系数。然后,将小波系数作为输入,通过神经网络模型进行训练和预测

    2024年02月12日
    浏览(23)
  • 数据分析-Pandas如何轻松处理时间序列数据

    时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。此处选择巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 N O 2 ​ 数据作为样例。 python数据分析-数据表读写到pandas 经典算法-遗传算法的python实现 经典算法-遗传算法的一个简单例子 大

    2024年01月25日
    浏览(36)
  • 【视频】Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析|数据分享...

    在本文中,长短期记忆网络——通常称为“LSTM”——是一种特殊的RNN递归神经网络,能够学习长期依赖关系 ( 点击文末“阅读原文”获取完整 代码数据 ) 。 视频:LSTM 神经网络架构和工作原理及其在Python中的预测应用 什么是依赖关系? 假设您在观看视频时记得前一个场

    2024年02月11日
    浏览(36)
  • 使用PyMC进行时间序列分层建模

    在统计建模领域,理解总体趋势的同时解释群体差异的一个强大方法是分层(或多层)建模。这种方法允许参数随组而变化,并捕获组内和组间的变化。在时间序列数据中,这些特定于组的参数可以表示不同组随时间的不同模式。 今天,我们将深入探讨如何使用PyMC(用于概率编

    2024年02月10日
    浏览(43)
  • 使用RobustPCA 进行时间序列的异常检测

    鲁棒主成分分析(Robust Principal Component Analysis, RobustPCA)是一种将时间序列矩阵分解为低秩分量和稀疏分量的技术。这种分解能够识别潜在的趋势,以及检测异常和异常值。在本中我们将研究RobustPCA的数学基础,介绍它与传统的PCA之间的区别,并提供可视化来更好地理解它在时间

    2024年02月07日
    浏览(46)
  • 使用ARIMA进行时间序列预测|就代码而言

    model.fit().predict()函数参数的意思 model.fit() 函数是用来拟合ARIMA模型的,它会根据提供的时间序列数据来估计模型的参数。在这个函数中,没有需要指定额外的参数。 model.predict() 函数是用来进行时间序列的预测的,它可以在拟合后的模型上进行预测。在进行预测时,需要指定

    2024年02月16日
    浏览(41)
  • 时间序列分析

    公式: 预测标准误差:  本质:用前N次数据预测t+1期的数据 规律:如果实际数据波动较大,N值越大,预测到的数据波动越小 注意:一般不适用于波动较大的数据。用一次移动平均法,预测一期数据比较准确,不能预测多期数据 本质:对一次移动平均法再求均值,根据一次型

    2024年02月05日
    浏览(64)
  • 时间序列分析(SPSS)

      本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:清风数学建模:https://www.bilibili.com/video/BV1DW411s7wi 目录  前言  一、时间序列介绍  1.1 时间序列基本概念​编辑  1.2 时期和时点序列  1.3 时间序列分解  1.3.1 长期趋势(T)​编辑  

    2024年02月06日
    浏览(50)
  • 时间序列分析——基于R | 第2章 时间序列的预处理习题代码

    1.1判断该序列是否平稳 1.2样本自相关系数 1.3序列自相关图 2.1绘制时序图,判断平稳性 从时序图中可以看出,该序列存在较明显的季节性,同时也存在一定的趋势性。 2.2计算样本自相关系数 2.3绘制自相关图 从自相关图中可以看出,该序列存在较强的季节性和自相关性,不具

    2023年04月18日
    浏览(211)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包