• 大小: 2.94MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-06
  • 语言: 其他
  • 标签: VMD算法  信号降噪  

资源简介

针对论文:基于VMD的故障特征信号提取方法,本人对论文中的仿真信号部分进行了复现,首先产生仿真信号;其次,利用VMD对信号进行分解,运用排列熵确定含高噪分量,然后对低噪分量进行重构;最后,将重构的信号进行分解,发现分量与最初的原始仿真信号基本一致。说明去噪效果较好。

资源截图

代码片段和文件信息

%% 原论文:基于VMD的故障特征信号提取方法,对论文所用方法的仿真部分进行复现
clc;
clear;
close all;
tic;
%% 仿真信号
% 原始仿真信号及其时域图
t=(0:0.001:(1-0.001))‘;
x1=0.6*sin(15*pi*t+pi/5);
x2=cos(60*pi*t+sin(10*pi*t));
x3=(1+0.3*cos(10*pi*t)).*sin(200*pi*t);
x4=wgn(10001-10);
figure(1);
subplot(221);plot(tx1);axis tight;
subplot(222);plot(tx2);axis tight;
subplot(223);plot(tx3);axis tight;
subplot(224);plot(tx4);axis tight;

% 原始仿真信号及其时域图
fs=1000;N=1000;   % 采样频率为50MHz采样点数为4000
figure(2);
[f1(:1)A1(:1)]=PinPu(x1fsN);
subplot(221);plot(f1(:1)A1(:1));axis tight;
[f2(:1)A2(:1)]=PinPu(x2fsN);
subplot(222);plot(f2(:1)A2(:1));axis tight;
[f3(:1)A3(:1)]=PinPu(x3fsN);
subplot(223);plot(f3(:1)A3(:1));axis tight;
[f4(:1)A4(:1)]=PinPu(x1fsN);
subplot(224);plot(f4(:1)A4(:1));axis tight;
% 叠加信号的时域图和频域图
x=x1+x2+x3+x4;
figure(3);
subplot(211);plot(tx);axis tight;
[f(:1)A(:1)]=PinPu(xfsN);
subplot(212);plot(f(:1)A(:1));axis tight;
%% VMD分解与重构
% some sample parameters for VMDX为待分解的时域信号
% u:分解模式的集合
% u_hat:模式的频谱
% omega:估计模式中心频率
alpha = 2000;       % 惩罚因子,也称平衡参数
tau = 0;            % 噪声容忍度
K = 3;              % 分解的模态数
DC = 0;             % 无直流分量
init = 1;           % 初始化中心频率为均匀分布
tol = 1e-7;         % 收敛准则容忍度
[u1 u_ha1t omega1] = VMD(x alpha tau K DC init tol);

[~ sortIndex] = sort(omega1(end:));
omega1 = omega1(:sortIndex);
u_ha1t = u_ha1t(:sortIndex);
u1=u1(sortIndex:);
X1=u1‘;
%% 排列熵
% 相空间重构:eDim为嵌入维数eLag为延迟时间
% 当X具有多列和多行时,每列将被视为独立的时间序列该算法对X的每一列假设相同的时间延迟和嵌入维度并以标量返回ESTDIM和ESTLAG。
[XReLageDim] = phaseSpaceReconstruction(X1);
% 求排列熵:pe为排列熵
pe=zeros(1K);
for i=1:K
    [pe(i)~] = pec(u1(i:)eDimeLag);
end
%% 去噪后的信号重构
% 根据排列熵去除高噪分量,对其余分量进行平滑滤波后重构
% X1=sgolayfilt(X1(:1:2)341);
X2=X1(:1)+X1(:2);    
% 对重构的信号进行VMD分解
alpha = 200;
[u2 u_ha1t2 omega2] = VMD(X2 alpha tau K DC init tol);

[~ sortIndex] = sort(omega2(end:));
omega2 = omega2(:sortIndex);
u_ha1t2 = u_ha1t2(:sortIndex);
u2=u2(sortIndex:);
X3=u2‘;

%% 重构信号的时域图和频域图
figure(4);
subplot(311);plot(tX3(:1));axis tight;
subplot(312);plot(tX3(:2));axis tight;
subplot(313);plot(tX3(:3));axis tight;

figure(5);
[f5(:1)A5(:1)]=PinPu(X3(:1)fsN);
subplot(311);plot(f5(:1)A5(:1));axis tight;
[f6(:1)A6(:1)]=PinPu(X3(:2)fsN);
subplot(312);plot(f6(:1)A6(:1));axis tight;
[f7(:1)A7(:1)]=PinPu(X3(:3)fsN);
subplot(313);plot(f7(:1)A7(:1));axis tight;
toc;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2804  2020-10-26 21:18  基于VMD算法的信号降噪\main.m

     文件        667  2020-10-12 20:37  基于VMD算法的信号降噪\pec.m

     文件       4644  2020-10-10 20:07  基于VMD算法的信号降噪\VMD.m

     文件    4368198  2020-09-29 16:17  基于VMD算法的信号降噪\基于VMD的故障特征信号提取方法_赵昕海.pdf

     目录          0  2020-10-26 21:19  基于VMD算法的信号降噪

----------- ---------  ---------- -----  ----

              4376313                    5


评论

共有 条评论

相关资源