资源简介
局部均值分解是由Smith提出的一种新的非线性和非平稳信号分析方法。由于LMD是依据信号本身的信息进行自适应分解的,产生的PF分量具有真实的物意义。文档是代码 可以完美运行
代码片段和文件信息
%%%局域均值分解
%%x原始信号
clc
clear
close all
fs=2000;
t=0:1/fs:1;
% x=15*(1+cos(40*pi*t)).*cos(600*pi*t)+5*(1+cos(40*pi*t)).*cos(200*t*pi);
%x=cos(2*pi*30*t +0.1*sin(2*pi*10*t))+sin(2*80*t);
%x=5*(1+cos(40*pi*t)).*cos(150*pi*t)+5*(1+cos(40*pi*t)).*cos(100*t*pi);
%plot(tx);
%xlabel(‘时间t/s‘)
%ylabel(‘幅值‘)
x=xlsread(‘Book2.xlsx‘);
figure(1)
plot(tx);
xlabel(‘时间t/s‘)
ylabel(‘幅值‘)
figure(3)
y2=x;
L=length(y2);
NFFT = 2^nextpow2(L);
Y = fft(y2NFFT)/L;
f = fs/2*linspace(01NFFT/2);
plot(f2*abs(Y(1:NFFT/2)))
xlabel(‘频率f/Hz‘)
ylabel(‘幅值‘)
%规定输入信号为行向量
if size(x1)~=1
x = x‘;
end
c = x;
N = length(x);
PF = [];
A1=[];
Si=[];
while(1) %loop 1
a = 1;
while(1) %loop 2
h = c;
maxVec = [];
minVec = [];
% look for max and min point 找到h中的局部极大值和极小值
for i = 2: N - 1
if h (i - 1) < h (i) && h (i) > h (i + 1)
maxVec = [maxVec i];
end
if h (i - 1) > h (i) && h (i) < h (i + 1)
minVec = [minVec i];
end
end
% check if it is residual 判断是否满足loop2的终止条件
if (length (maxVec) + length (minVec)) < 2
break;
end
% handle end point
%left end point
if h(1)>0
if(maxVec(1) yleft_max=h(maxVec(1));
yleft_min=-h(1);
else
yleft_max=h(1);
yleft_min=h(minVec(1));
end
else
if (maxVec(1) yleft_max=h(maxVec(1));
yleft_min=h(1);
else
yleft_max=-h(1);
yleft_min=h(minVec(1));
end
end
%right end point
if h(N)>0
if(maxVec(end) yright_max=h(N);
yright_min=h(minVec(end));
else
相关资源
- lmd局域均值分解
- matlabGUI设计在时域分析中的应用-MAT
- MATLAB实验1信号的时域分析
- 心电信号HRV分析
- 实验二 连续时间信号的卷积运算与
- LMD分解程序
- 基于matlab的声音信号频谱分析和时域
- 时域,频域分析MATLAb程序
- LMDMATLAB代码
- lmd算法MATLAB仿真程序
- LMD局域均值分解matlab测试程序
- 局部均值分解——LMD
- 局部均值分解LMD的MATLAB代码,带例程
- LMD matlab程序
- elmd 在lmd中加入白噪声对信号进行分析
- LMD 改进的lmd算法
- LMD LMD分解方法
- lmd 对信号进行局部均值分解
- MatLab时域分析与频域分析的程序
- 原汁原味的LMD的matlab程序
- 局部均值分解法LMDMATLAB代码,亲测可
评论
共有 条评论