matlab中使用VMD(变分模态分解)对信号去噪|附代码数据

发布时间 2023-06-26 22:58:50作者: 拓端tecdat

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

最近我们被客户要求撰写关于VMD的研究报告,包括一些图形和统计输出。

创建一个以4 kHz采样的信号,类似于拨打数字电话的所有键

拨号音信号的变模分解

将信号另存为MATLAB®时间数据。

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

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

图片

多分量信号的VMD

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


点击标题查阅往期内容

图片

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

图片

左右滑动查看更多

图片

01

图片

02

图片

03

图片

04

图片

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

 
plot3(p,q,imf)
grid on
xlabel('Time Values')
ylabel('Mode Number')
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秒。绘制每个单独的分量和复合信号。

 
plot(t,6*t.^2)
xlabel('Time (s)')
ylabel('Quadratic trend')

nexttile(5,[1 2])
plot(t,x)
xlabel('Time (s)')
ylabel('Signal')

图片

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

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

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

图片

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

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

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

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

 
plot(tm,ecgsig)
ylabel('Time (s)')
xlabel('Signal')

图片

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

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

图片

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

图片


图片

本文摘选 《matlab中使用VMD(变分模态分解)》 ,点击“阅读原文”获取全文完整资料。


点击标题查阅往期内容

MATLAB图像倾斜校正算法实现:图像倾斜角检测及校正
matlab如何滤除低频尖峰脉冲
Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
matlab使用Copula仿真优化市场风险数据VaR分析
MATLAB中用BP神经网络预测人体脂肪百分比数据
matlab实现扩展卡尔曼滤波(EKF)进行故障检测
Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择
matlab使用分位数随机森林(QRF)回归树检测异常值
matlab用高斯曲线拟合模型分析疫情数据
matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计
Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型
MATLAB中的马尔可夫区制转移(Markov regime switching)模型
Matlab马尔可夫区制转换动态回归模型估计GDP增长率 基于matlab的Lorenz系统仿真可视化matlab估计armagarch条件均值和方差模型
matlab脉冲响应图的时域特征
matlab递归神经网络RNN实现:桨距控制控制风力发电机组研究
matlab使用贝叶斯优化的深度学习R语言提取时间序列的周期性成分应用EMD,小波滤波器,Baxter过滤器等
Matlab正态分布、历史模拟法、加权移动平均线 EWMA估计风险价值VaR和回测标准普尔指数 S&P500时间序列
Matlab创建向量自回归(VAR)模型分析消费者价格指数 (CPI) 和失业率时间序列
MATLAB用GARCH模型对股票市场收益率时间序列波动的拟合与预测
matlab数据可视化交通流量分析天气条件、共享单车时间序列数据
matlab用马尔可夫链蒙特卡罗 (MCMC) 的Logistic逻辑回归模型分析汽车实验数据
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正