当前位置:   article > 正文

二、信号分解—>局部均值分解(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程序

主函数代码:

  1. clear;clc;close all;
  2. T = 5000 ;
  3. t = (1:T)/T;
  4. fs=1/T;
  5. freqs = 2*pi*(t-0.5-1/T)/(fs);
  6. os1=(1+0.5*sin(5*pi*t)).*cos((400*pi*t)+2*cos(10*pi*t));
  7. os2=4*sin(pi*t.^2).*sin(60*pi*t);
  8. os=os1+os2;
  9. x=os;
  10. % x=awgn(os,10,'measured','dB');
  11. T=length(x);
  12. %绘制信号和其频谱图
  13. figure(1)
  14. subplot(211)
  15. plot(t,x)
  16. title('time');
  17. subplot(212)
  18. y2=x;
  19. L=length(y2);
  20. NFFT = 2^nextpow2(L); %2的更高次幂的指数
  21. Y = fft(y2,NFFT)/L;
  22. f = fs/2*linspace(0,1,NFFT/2);
  23. plot(f,2*abs(Y(1:NFFT/2)))
  24. % 局域均值分析
  25. [pf,a,si,u] = lmd(x);
  26. line=size(pf,1)
  27. NN = length(pf(1,:))
  28. n = linspace(0,1,NN);
  29. figure('Color',[1 1 1]);
  30. for i=1:1:line
  31. subplot(line+1,1,i),plot(t,pf(i,:)),ylabel(sprintf('PF%d',i));xlabel('Time / S');
  32. end
  33. for i = 1:1:line
  34. cc(i)=min(min(corrcoef(pf(i,:), x))); %求相关系数
  35. end
  36. figure
  37. plot(cc,'-g<','LineWidth',1.5,'MarkerEdgeColor','b','MarkerFaceColor','b','MarkerSize',5);
  38. set(gca,'XGrid', 'on', 'YGrid', 'on');
  39. legend('CC');
  40. xlabel('IMF');
  41. ylabel('相关系数');
  42. %重构信号
  43. cg_ev=pf(1,:)+pf(2,:);
  44. figure;
  45. plot(t,os,'-b');hold on
  46. plot(t,cg_ev,'-r');xlabel('t/s');ylabel('幅值');legend('原始信号','重构信号');
  47. %误差信号
  48. err=os-cg_ev;
  49. figure;
  50. plot(t,err);
  51. legend('误差');
  52. xlabel('t');
  53. ylabel('误差');

LMD代码:

https://download.csdn.net/download/ARM_qiao/85039693icon-default.png?t=M276https://download.csdn.net/download/ARM_qiao/85039693

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/291297
推荐阅读
相关标签
  

闽ICP备14008679号