🚅座右铭:行百里者,半于九十。
🏆代码获取方式:
CSDN Matlab武动乾坤—代码获取方式
更多Matlab信号处理仿真内容点击👇
①Matlab信号处理(进阶版)
⛳️关注CSDN Matlab武动乾坤,更多资源等你来!!
局部均值分解算法(Local Mean Decomposition, LMD) 作为处理非平稳随机信号的一种手段,得到了广泛应用,并成熟地应用于机械故障诊断、信号特征提取与分析等方面。LMD算法最大的特点就在于其对信号的自适应分解能力, 这种自适应能力主要体现在该方法能够通过数据自身特点,通过特定手段,将原始信号分为不同模态函数, 针对不同模态函数进一步处理。与此同时, 局部均值分解算法(LMD) 相较于模态分解的创始算法经验模态分解算法(Empirical Mode Decomposition, EMD) 而言,其具备端点效应小、迭代次数少等优势。本章将详述LMD算法基本原理及分解流程,并针对LMD存在的基本问题, 进行改进研究。
clear;clc;close all;
x1=xlsread(‘5.xlsx’);
VarName2=x1(:,2);
x=VarName2’;
Nstd =0.1;
NR =100;
%[modes its]=eemd(ecg,0.1,100,1000);
modes = mlmd(x,Nstd,NR);
[a, b]=size(modes);
N=length(x);
fs=1000;
Ts=1/fs;
t=0:Ts:NTs;
t=t(1:N);
% 绘制仿真信号和其频谱图
figure(1)
subplot(211)
plot(t,x)
subplot(212)
y2=x;
L=length(y2);
NFFT = 2^nextpow2(L);
Y = fft(y2,NFFT)/L;
f = fs/2linspace(0,1,NFFT/2);
plot(f,2abs(Y(1:NFFT/2)))
PF=modes;
line=size(PF,1);
NN = length(PF(1,:));
n = linspace(0,1,NN);
for k1=0:4:line-1
figure(‘Color’,[1 1 1]);
for k2=1:min(4,line-k1)
subplot(4,2,2k2-1);
plot(t,PF(k1+k2,:));
title(sprintf(‘第%d个PF’, k1+k2))
xlabel(‘Time/s’)
ylabel(sprintf(‘PF%d’,k1+k2));
subplot(4,2,2k2)
[yf, f] = FFTAnalysis(PF(k1+k2,:), Ts);
plot(f, yf)
title(sprintf(‘第%d个PF的频谱’, k1+k2))
xlabel(‘f/Hz’)
ylabel(‘|PF(f)|’);
end
end;
% 频谱分析
function [Y, f] = FFTAnalysis(y, Ts)
Fs = 1/Ts;
L = length(y);
NFFT = 2^nextpow2(L);
% y = y - mean(y);
Y = fft(y, NFFT)/L;
Y = 2abs(Y(1:NFFT/2+1));
f = Fs/2linspace(0, 1, NFFT/2+1);
end
function [pf,a,si,u] = lmd(x)
x=x’;
c = x’;
N = length(x);
A = ones(1,N);
PF = [];
AA=[];
SI=[];
U=[];
aii = 2A;
while(1)
si = c;
a = 1;
while(1)
h = si;
% look for max and min point
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
if (length (maxVec) + length (minVec)) < 2
break;
end
% handle end point
lenmax=length(maxVec);
lenmin=length(minVec);
%left end point
if h(1)>0
if(maxVec(1)<minVec(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)<minVec(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(lenmax)<minVec(lenmin))
yright_max=h(N);
yright_min=h(minVec(lenmin));
else
yright_max=h(maxVec(lenmax));
yright_min=-h(N);
end
else
if(maxVec(lenmax)<minVec(lenmin))
yright_max=-h(N);
yright_min=h(minVec(lenmin));
else
yright_max=h(maxVec(lenmax));
yright_min=h(N);
end
end
%get envelop of maxVec and minVec using
%spline interpolate
maxEnv=spline([1 maxVec N],[yleft_max h(maxVec) yright_max],1:N);
minEnv=spline([1 minVec N],[yleft_min h(minVec) yright_min],1:N);
1 matlab版本
2014a或2019b
2 参考文献
[1]李博健.改进LMD算法在管道泄漏中的应用研究[D].东北石油大学
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长