MATLAB信号处理:VMD(变分模态分解)应用

原文链接:http://tecdat.cn/?p=12486

拨号音信号的变模分解

创建一个以4 kHz采样的信号,类似于拨打数字电话的所有键。将信号另存为MATLAB®时间数据。

  1. fs = 4e3;
  2. t = 0:1/fs:0.5-1/fs;

绘制时间表的变分模态分解。

多分量信号的VMD

生成由频率为2 Hz,10 Hz和30 Hz的三个正弦波组成的多分量信号。正弦波以1 kHz采样2秒。将信号嵌入方差为0.01²的高斯白噪声中。

计算噪声信号的IMF,并在3-D图中可视化它们。

  1. plot3(p,q,imf)
  2. grid on
  3. xlabel('Time Values')
  4. ylabel('Mode Number')
  5. zlabel('Mode Amplitude')

使用计算出的IMF绘制多分量信号的希尔伯特频谱。将频率范围限制为[0,40] Hz。

分段信号的VMD

生成一个由二次趋势,线性调频信号和余弦组成的分段复合信号,在t  = 0.5时,两个恒定频率之间会发生急剧过渡  。

 

x(t)= 6t2 + cos(4πt+10πt2)+ {cos(60πt),cos(100πt-10π),t≤0.5,t> 0.5。

 

信号以1 kHz采样1秒。绘制每个单独的分量和复合信号。

  1. plot(t,6*t.^2)
  2. xlabel('Time (s)')
  3. ylabel('Quadratic trend')
  4. nexttile(5,[1 2])
  5. plot(t,x)
  6. xlabel('Time (s)')
  7. ylabel('Signal')

执行变分模态分解以计算四个本征模式函数。信号的四个不同分量得以恢复。

通过添加模式函数和残差来重构信号。绘制并比较原始信号和重构信号。

  1. plot(t,x,':','LineWidth',2)
  2. xlabel('Time (s)')
  3. ylabel('Signal')
  4. hold off
  5. legend('Reconstructed signal','Original signal', ...
  6. 'Location','northwest')

计算原始信号与重构信号之间的差异的范数。

使用VMD从ECG信号中去除噪声

在此示例中标记的信号来自MIT-BIH心律失常数据库    (信号处理工具箱)。数据库中的信号以360 Hz采样。

加载与记录200相对应的MIT数据库信号并绘制该信号。

  1. plot(tm,ecgsig)
  2. ylabel('Time (s)')
  3. xlabel('Signal')

ECG信号包含由心跳的节奏和振荡的低频模式驱动的尖峰。ECG的不同辐条会产生重要的高次谐波。

计算开窗信号的九种固有模式函数,可视化IMF。

第一种模式包含最多的噪声,第二种模式以心跳的频率振荡。通过将除第一个和最后一个VMD模式之外的所有模式相加,构造一个干净的ECG信号,从而丢弃低频基线振荡和大部分高频噪声。

参考文献

1.matlab使用经验模式分解emd 对信号进行去噪

2.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

3.matlab使用hampel滤波去除异常值

4.matlab预测ARMA-GARCH 条件均值和方差模型

5.matlab使用Copula仿真优化市场风险

6.matlab测量计算信号的相似度

7.matlab使用贝叶斯优化的深度学习

8.matlab使用移动平均滤波器、重采样和Hampel过滤器进行信号平滑处理

9.matlab实现MCMC的马尔可夫切换ARMA – GARCH模型估计

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空