二、信号分解—>局部均值分解(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:line
    subplot(line+1,1,i),plot(t,pf(i,:)),ylabel(sprintf('PF%d',i));xlabel('Time / S'); 
end

for i = 1:1:line
     cc(i)=min(min(corrcoef(pf(i,:), x)));      %求相关系数
 end

figure
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/85039693icon-default.png?t=M276https://download.csdn.net/download/ARM_qiao/85039693

  • 9
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐者-桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值