二、信号分解—>局部均值分解(LMD)学习笔记
LMD学习笔记
一、总述
局部均值分解算法(LMD), LMD算法最大的特点就在依据信号本身的特征对信号的自适应分解能力,产生具有真实物理意义的乘积函数(PF)分量(每个PF分量都是一个纯调频信号和包络信号的乘积,且每个PF分量的瞬时频率具有实际物理意义。),并由此得到能够清晰准确反映出信号能量在空间各尺度上分布规律的时频分布,有利于更加细致的对信号特征进行分析。
与此同时,局部均值分解算法(LMD)相较于模态分解的创始算法经验模态分解算法(EMD)而言,其具备端点效应小、迭代次数少等优势。
二、分解方法
1.求局部均值函数m11(t)
找出原函数的局部均值ni,
求出所有相邻的局部极值点的平均值:
将所有的相邻平均值点mi用直线连起来后通过滑动平均法进行平 滑处理得到局部均值函数m11(t)。
2.求包络估计函数a11(t)
求出包络估计值: 将所有相邻两个包络估计值ai用直线连起来后通过滑动平均法进行平滑处理得到包络估计函数a11(t)。
**其余步骤在笔记本上**
三、EMD与LMD的对比分析
1.求解过程EMD与LMD的差别
(1)平均包络函数的产生
EMD:三次样条函数拟合局部极大与极小值形成的上下包络线,然后对上下包络线求平均得到平均包络函数
LMD:不断平滑相邻局部极值点的平均值来获得平均包络函数(局部均值函数)
(2)模态分量迭代过程不同
EMD:不断用原始信号减去平均包络函数(即去掉低频成分),然后判断剩余信号是否满足模态的两个条件的方式得到模态分量的。
LMD:不断用原始信号减去局部均值函数并除以包络估计函数(即对其进行解调),并重复直到包络估计函数近似等于1时,得到纯调频信号,在获得纯调频信号后再进行包络信号与纯调频信号相乘得到PF分量。
(3)求瞬时幅值与瞬时频率
EMD:对每个模态进行Hibert变化后,再通过一下公式
求出瞬时幅值与瞬时频率。
LMD:将迭代产生的每个包络估计函数相乘来求得瞬时赋值,而瞬时频率则是由纯调频信号通过
2.EMD的缺陷
模态混叠和端点效应
3.对比EMD,LMD突出的优势
在抑制端点效应、减少迭代次数和保留信号完整性都优于EMD
4.LMD不足
依然存在端点效应、平滑次数较多时,信号会发生提前或滞后现象、在平滑时步长不能最优确定、无快速算法等问题
注:端点效应的产生:EMD和LMD都是对局部极值进行操作,而两端点有可能既不是极大值点也不是极小值点,二者都未对端点进行处理。
四、算法步骤
五、LMD算法matlab程序
主函数代码:
clear;clc;close all;T = 5000 ;
t = (1:T)/T;
fs=1/T;
freqs = 2*pi*(t-0.5-1/T)/(fs);
os1=(1+0.5*sin(5*pi*t)).*cos((400*pi*t)+2*cos(10*pi*t));
os2=4*sin(pi*t.^2).*sin(60*pi*t);
os=os1+os2;
x=os;
% x=awgn(os,10,'measured','dB');
T=length(x);
%绘制信号和其频谱图
figure(1)
subplot(211)
plot(t,x)
title('time');
subplot(212)
y2=x;
L=length(y2);
NFFT = 2^nextpow2(L); %2的更高次幂的指数
Y = fft(y2,NFFT)/L;
f = fs/2*linspace(0,1,NFFT/2);
plot(f,2*abs(Y(1:NFFT/2)))
% 局域均值分析
[pf,a,si,u] = lmd(x);
line=size(pf,1)
NN = length(pf(1,:))
n = linspace(0,1,NN);
figure('Color',[1 1 1]);
for i=1:1:linesubplot(line+1,1,i),plot(t,pf(i,:)),ylabel(sprintf('PF%d',i));xlabel('Time / S');
endfor i = 1:1:linecc(i)=min(min(corrcoef(pf(i,:), x))); %求相关系数endfigure
plot(cc,'-g<','LineWidth',1.5,'MarkerEdgeColor','b','MarkerFaceColor','b','MarkerSize',5);
set(gca,'XGrid', 'on', 'YGrid', 'on');
legend('CC');
xlabel('IMF');
ylabel('相关系数');%重构信号
cg_ev=pf(1,:)+pf(2,:);
figure;
plot(t,os,'-b');hold on
plot(t,cg_ev,'-r');xlabel('t/s');ylabel('幅值');legend('原始信号','重构信号'); %误差信号
err=os-cg_ev;
figure;
plot(t,err);
legend('误差');
xlabel('t');
ylabel('误差');
LMD代码:
https://download.csdn.net/download/ARM_qiao/85039693https://download.csdn.net/download/ARM_qiao/85039693
二、信号分解—>局部均值分解(LMD)学习笔记相关推荐
- gaf处理一维故障信号_【推荐文章】改进局部均值分解的齿轮箱复合故障特征提取...
<机械传动>2019年 第43卷 第8期 文章编号:1004-2539(2019)08-0130-05 DOI:10.16578/j.issn.1004.2539.2019.08.0 ...
- 时间序列信号处理(三)——局部均值分解LMD的python实现
1.介绍 局部均值分解(LMD)作为近年来出现的一种新的自适应时频分析方法,能够依据信号的自身特点将复杂的多分量调幅调频信号分解为有限个的单分量调幅调频信号之和,进而求取瞬时频率和瞬时幅值并进行组合, ...
- 局部均值分解(LMD)详解
项目介绍 局部均值分解(LMD)作为近年来出现的一种新的自适应时频分析方法,能够依据信号的自身特点将复杂的多分量调幅调频信号分解为有限个的单分量调幅调频信号之和,进而求取瞬时频率和瞬时幅值并进行组合, ...
- LMD改进的局部均值分解matlab代码模版
LMD改进的局部均值分解matlab代码模版 ID:9520675130845877比邻星机灵的薯片
- 【vn.py学习笔记(二)】vn.py底层接口 学习笔记
[vn.py学习笔记(二)]vn.py底层接口 学习笔记 1 CTP API的工作原理 1.1 CTP介绍 1.2 API功能介绍 1.3 CTP API文件 1.4 API 通用规则 2 CTP A ...
- 深度学习(二十六)Network In Network学习笔记-ICLR 2014
Network In Network学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50458190 作者:hjimce 一.相关理论 本篇 ...
- 深度学习(二十六)Network In Network学习笔记
Network In Network学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50458190 作者:hjimce 一.相关理论 本篇 ...
- OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十
OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...
- 图像去雾算法(二)基于暗通道先验算法学习笔记
在http://write.blog.csdn.net/postedit/78301999中介绍了图像去雾的相关研究方法,发现目前为止在图像去雾方面,何凯明博士基于暗通道先验的算法具有很好的效果,关于 ...
最新文章
- Java并发编程之线程状态总结
- jQuery UI Widget(1.8.1)工作原理--转载
- cam db num
- Linux 线程与互斥锁的使用
- lecture3-线性神经元和算法
- PHP、mysql面试题 (附答案+实现代码)
- 参数pyinstaller_Python用PyInstaller打包笔记
- 基于图搜索的路径规划方法
- SQL Server遍历表(临时表)
- 韩顺平php视频笔记77 抽象类vs接口 关键字final const
- python udp
- 内网使用 IPV6 之 TunnelBroker隧道(6in4)篇
- transformer机制讲解_Transformer在视觉领域的应用
- 22_粗粒度权限控制
- 将Matlab程序打包成.exe独立可执行程序
- 13. 滑动时间窗口算法概念原理
- 推理的2种方式:演绎和归纳
- 推荐系统(四)——因果效应uplift model系列模型S-Learner,T-Learner,X-Learner
- 春节攻防战的战前谋划-电商必看
- 内网穿透,让自己的电脑当服务器