时间序列信号处理(一)-----变分模态分解(VMD)

这篇具有很好参考价值的文章主要介绍了时间序列信号处理(一)-----变分模态分解(VMD)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.简述变分模态分解

变分模态分解--vmd,适用于非线性时间序列信号,主要是利用求解变分问题的思想去对信号进行提取,在不丢失原始信号特征的情况下,把一个原始信号分解成多个不同中心频率的信号,即不在同一个调制信号内。

2.以轴承信号为例

安装vmd库,直接pip install vmdpy 即可

import matplotlib.pyplot as plt
import numpy as np
from vmdpy import VMD

读取信号

ball_18_0 = np.loadtxt('E:/12k1/0HP/inner18.txt')
data = ball_18_0[2048*2:2048*3]

设置参数,但分解层数K和二次惩罚系数α需要仔细考虑设定,特别是K值,对分解效果影响巨大。

# 参数设置
alpha = 2000      # moderate bandwidth constraint
tau = 0.            # noise-tolerance (no strict fidelity enforcement)
K = 5            # 3 modes
DC = 0             # no DC part imposed
init = 1           # initialize omegas uniformly
tol = 1e-7

u, u_hat, omega = VMD(data, alpha, tau, K, DC, init, tol)

绘制分解信号图

plt.figure(figsize=(10, 8))
for i in range(K):
    plt.subplot(K+1, 1, 1)
    plt.plot(data)
    plt.title("outer")
    plt.subplot(K+1, 1, i+2)
    plt.plot(u[i, :], linewidth=0.2, c='r')
    plt.ylabel('u{}'.format(i + 1))
plt.tight_layout()
plt.show()

vmd变分模态分解,信号特征提取,python,其他,数据挖掘,tensorflow,数据分析

 最后绘出其频谱图

Fs = 12000
Ts = 1.0/Fs
t = np.arange(N)
k = np.arange(N)
T = N/Fs
frq = k/T
frq1 = frq[range(int(N/2))]


lt.figure(figsize=(10, 8))
for i in range(K):
    plt.subplot(K + 1, 1, 1)
    data_f = abs(np.fft.fft(data)) / N
    data_f1 = data_f[range(int(N / 2))]
    plt.plot(frq1, data_f1)
    plt.title("outer")
    plt.subplot(K+1, 1, i + 2)
    data_f2 = abs(np.fft.fft(u[i, :])) / N
    data_f3 = data_f2[range(int(N / 2))]
    plt.plot(frq1, data_f3, 'red')
    plt.xlabel('pinlv(hz)')
    plt.ylabel('u{}'.format(i + 1))
plt.tight_layout()
plt.show()

vmd变分模态分解,信号特征提取,python,其他,数据挖掘,tensorflow,数据分析

 由上述结果可知,分解出来的信号基本上不在同一个频率段,分解效果很好。文章来源地址https://www.toymoban.com/news/detail-598311.html

到了这里,关于时间序列信号处理(一)-----变分模态分解(VMD)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 时间序列分解 | Matlab 互补集合经验模态分解(CEEMD)的信号分解

    效果一览 文章概述 时间序列分解 | Matlab 互补集合经验模态分解(CEEMD)的信号分解 部分源码

    2024年02月12日
    浏览(30)
  • 时序分解 | Matlab实现CEEMD互补集合经验模态分解时间序列信号分解

    效果一览 基本介绍 Matlab实现CEEMD互补集合经验模态分解时间序列信号分解 1.分解效果图 ,效果如图所示,可完全满足您的需求~ 2.直接替换txt数据即可用 适合新手小白 注释清晰~ 3.附赠案例数据 直接运行main一键出图~ 程序设计 完整源码和数据获取方式:Matlab实现CEEMD互补

    2024年02月08日
    浏览(37)
  • 时序分解 | Matlab实现FEEMD快速集合经验模态分解时间序列信号分解

    效果一览 基本介绍 Matlab实现FEEMD快速集合经验模态分解时间序列信号分解 算法新颖小众,用的人很少,包含分解图,效果如图所示,适合作为创❤️~ 程序设计 完整源码和数据获取方式:私信回复 Matlab实现FEEMD快速集合经验模态分解时间序列信号分解 。 参考资料 [1] http

    2024年02月05日
    浏览(38)
  • VMD-SSA-LSTM基于变分模态分解和麻雀算法优化长短期记忆网络的时间序列预测MATLAB代码(含LSTM、VMD-LSTM、VMD-SSA-LSTM等模型的对比)。

    clc; clear all close all %% VMD-SSA-LSTM预测 tic load vmd_data.mat load lstm.mat disp(\\\'…………………………………………………………………………………………………………………………\\\') disp(\\\'VMD-SSA-LSTM预测\\\') disp(\\\'………………………………………………………………………………………

    2024年02月10日
    浏览(32)
  • 《数字信号处理》——验证实验(离散序列的基本运算)

    目录 一、实验目的 二、实验器材 三、实验内容及实验源代码 1. 序列的相加运算 1.1 具有相同维数的两个离散时间信号(序列)的相加运算: 1.2 具有不同维数的两个离散时间信号(序列)的相加运算:  2、序列相乘:  3、序列反转 4、序列的尺度变换  5、序列的移位  

    2024年01月23日
    浏览(39)
  • 预处理信号——将信号与不同开始时间对齐

    许多测量涉及多个传感器异步采集的数据。如果您要集成信号,您必须同步它们。 Signal Processing Toolbox(信号处理工具箱) 提供的一些函数可实现此目的。 例如,假设有一辆汽车经过一座桥。它产生的振动由位于不同位置的三个相同传感器进行测量。信号有不同到达时间。

    2023年04月09日
    浏览(31)
  • 时序预测 | MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比

    效果一览 基本介绍 时序预测 | MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比。 1.MATLAB实现EEMD-LSTM、LSTM时间序列预测对比; 2.时间序列预测 就是先eemd把原输入全分解变成很多维作为输入 再输入LSTM预测 ; 3.运行环境Matlab2018b及以上,输出RM

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

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

    2023年04月18日
    浏览(210)
  • 时间序列数据预处理

    时间序列数据是指按照时间顺序排列的一系列数据点或观测值,通常用于描述某个变量随时间的变化情况。例如,股价、气温、人口数量等都可以被视为时间序列数据。时间序列数据的预处理是进行时间序列分析的重要步骤。常见的时间序列预处理步骤包括: 构建时间序列数

    2024年02月09日
    浏览(65)
  • FPGA中亚稳态、异步信号处理、建立和保持时间违例及题目合集

    亚稳态:输入信号的变化发生在时钟有效沿的建立时间和保持时间之间,导致其不满足触发器建立保持时间的时序要求,使得输出有一段时间的不确定状态,这就是亚稳态。

    2023年04月09日
    浏览(26)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包