EMD算法的matlab程序介绍.docx

EMD算法的matlab程序介绍.docx

ID:50788360

大小:13.16 KB

页数:3页

时间:2020-03-14

EMD算法的matlab程序介绍.docx_第1页
EMD算法的matlab程序介绍.docx_第2页
EMD算法的matlab程序介绍.docx_第3页
资源描述:

《EMD算法的matlab程序介绍.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、%此版本为ALAN版本的整合注释版functionimf=emd(x)%EmpiricialModeDecomposition(Hilbert-HuangTransform)%imf=emd(x)%Func:findpeaksx=transpose(x(:));%转置为行矩阵imf=[];while~ismonotonic(x)%当x不是单调函数,分解终止条件x1=x;sd=Inf;%均值%直到x1满足IMF条件,得c1while(sd>0.1)

2、~isimf(x1)%当标准偏差系数sd大于0.1或x1不是固有模态函数时,分量终止条件s1=getspline(x1);%上包络线s2=

3、-getspline(-x1);%下包络线x2=x1-(s1+s2)/2;%此处的x2为文章中的hsd=sum((x1-x2).^2)/sum(x1.^2);x1=x2;endimf{end+1}=x1;x=x-x1;endimf{end+1}=x;%FUNCTIONSfunctionu=ismonotonic(x)%u=0表示x不是单调函数,u=1表示x为单调的u1=length(findpeaks(x))*length(findpeaks(-x));ifu1>0,u=0;else,u=1;endfunctionu=isimf(x)%u=0表示x不是固有模式函数,u=1表示x是固有

4、模式函数N=length(x);u1=sum(x(1:N-1).*x(2:N)<0);u2=length(findpeaks(x))+length(findpeaks(-x));ifabs(u1-u2)>1,u=0;else,u=1;endfunctions=getspline(x)%三次样条函数拟合成元数据包络线N=length(x);p=findpeaks(x);s=spline([0pN+1],[0x(p)0],1:N);-------------------------------------------------------------------------------

5、--------------------------------------------------------------------------------functionn=findpeaks(x)%Findpeaks.找到极值,n为极值点所在位置%n=findpeaks(x)n=find(diff(diff(x)>0)<0);u=find(x(n+1)>x(n));n(u)=n(u)+1;-----------------------------------------------------------------------------------------------

6、-----------------------------------------------------------------------------------functionplot_hht00(x,Ts)%双边带调幅信号的EMD分解%PlottheHHT.%plot_hht(x,Ts)%%::Syntax%Thearray(列)xistheinputsignalandTsisthesamplingperiod(取样周期).%Exampleonuse:[x,Fs]=wavread('Hum.wav');%plot_hht(x(1:6000),1/Fs);%Func:emd%G

7、etHHT.clearall;closeall;Ts=0.0005;t=0:Ts:10;%采样率2000HZ%调幅信号%x=sin(2*pi*t).*sin(40*pi*t);x=sin(2*pi*t);s1=getspline(x);%上包络线s2=-getspline(-x);%上包络线x1=(s1+s2)/2;%此处的x2为文章中的hfigure;plot(t,x);xlabel('Time'),ylabel('Amplitude');title('双边带调幅信号');holdon;plot(t,s1,'-r');plot(t,s2,'-r');plot(t,x1,'g');i

8、mf=emd(x);fork=1:length(imf)b(k)=sum(imf{k}.*imf{k});th=angle(hilbert(imf{k}));d{k}=diff(th)/Ts/(2*pi);end[u,v]=sort(-b);b=1-b/max(b);%Settime-frequencyplots.N=length(x);c=linspace(0,(N-2)*Ts,N-1);%figure;fork=v(1:2)plot(c,d{k},'k

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。