二、信号分解—>局部均值分解(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)学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: siki学院_Unity初级案例_愤怒的
- 下一篇: 项目管理“铁三角”