nishoulong
发表于 2012-9-28 20:36
谢谢分享好东西
yghit08
发表于 2012-9-29 11:15
nishoulong 发表于 2012-9-28 20:36 static/image/common/back.gif
谢谢分享好东西
你做什么方向的???将你的结果贴上来啊!
danielrichie
发表于 2012-10-4 16:41
yghit08 发表于 2012-9-25 21:34 static/image/common/back.gif
思路是对的,这个也是这一类基于EMD或者LMD做滤波或者去噪的思路,至于为什么出现在突变处不能很好的发现 ...
不同的插值法都试过,真信号基本都没问题,但用到实际信号中就只有线性插值能分解出我想要的信号,用三次样条的话就会出现PF分量在个别点的幅值过大(可以到10^20数量级,明显错误,导致这个现象的原因应该是在分解过程中不断除以包络 h/a这一步,但为什么不同插值法区别如此之大目前还没搞清楚,感觉无从下手了)。至于分解终止条件,我也没考虑太多,暂时主要是先能分解出来想要的结果再说。
振动分析
发表于 2012-10-7 12:44
yghit08 发表于 2012-6-17 19:42 static/image/common/back.gif
利用分别利用上下包络做局部均值和包络,也就是在LMD原始文献中不区分局部极大值和局部极小值(统称为局部极 ...
这个文件是什么格式的,用matlab打不开……
yghit08
发表于 2012-10-8 10:40
danielrichie 发表于 2012-10-4 16:41 static/image/common/back.gif
不同的插值法都试过,真信号基本都没问题,但用到实际信号中就只有线性插值能分解出我想要的信号,用三次 ...
你说的这个问题我也遇到过,所以我一般只看PF在成分中的MF部分,这部分还可以。我想出现这个问题的原因主要是做AF-MF这个分解的过程,这样来看的话可以适当的将分解调节放松一些看看是否能稍微好的解决一下。线性插值我想是比较差的插值方法,可能针对你的信号比较好用,建议你用移动平均这个插值方法试试(和线性插值差不多,局部的线性插值而已,个人理解)
yghit08
发表于 2012-10-8 10:41
振动分析 发表于 2012-10-7 12:44 static/image/common/back.gif
这个文件是什么格式的,用matlab打不开……
预编译的格式,你在后续的楼层中能找到对应的.m格式的文件。建议你认真的看看整个帖子
yghit08
发表于 2012-10-12 10:33
今天有发邮件问我要完整程序的,我记得各层帖子中有,避免大家麻烦,现打包在此层中。
yghit08
发表于 2012-10-12 19:01
yghit08 发表于 2012-10-12 10:33 static/image/common/back.gif
今天有发邮件问我要完整程序的,我记得各层帖子中有,避免大家麻烦,现打包在此层中。
补充上一楼!
danielrichie
发表于 2012-10-18 10:25
请问楼主有画过时频分布图没,类似下面这种?文献里面都只说到“将所有PF分量的瞬时幅值和瞬时频率组合即可得到原始信号的完整时频分布”,但我一直没搞清楚用Matlab怎么去实现……望赐教,谢谢!
yghit08
发表于 2012-10-18 10:42
danielrichie 发表于 2012-10-18 10:25 static/image/common/back.gif
请问楼主有画过时频分布图没,类似下面这种?文献里面都只说到“将所有PF分量的瞬时幅值和瞬时频率组合即可 ...
不知道楼主是否用过EMD?如果用过的话应该知道怎么做!
如果没用过接着看!
确实,本帖中只是做了单次分解的结果,每一次循环只能提取出来一个PF,因为没有做停止分解的判据。如果想提取更多的PF,只需要多做几次循环即可。
至此,将所得到的所有PF分成两个矩阵:AF一个和MF一个(注意AF和MF要对应好,而且最好是以行的形式存在各自的矩阵中,这针对的情况也是求解瞬时幅值和瞬时频率不是利用Hilbert谱,如果是利用Hilbert谱的话直接存成PF一个矩阵就好)。至于楼主提到的“将所有PF分量的瞬时...”大概就是我说的这个过程。接着就是利用分解得到的瞬时幅值矩阵和瞬时频率矩阵(注意如果是利用Hilbert谱做瞬时频率的求解,一般会缩短两个数据,相应的AF矩阵要去掉前两列的数据反正是要AF矩阵和MF矩阵维数要匹配)做时频谱。不知道是否要给你做一个范例?
znas0707
发表于 2012-10-18 10:56
我按照你们的程序来运行之后为啥就出现错误呢?
??? Error using ==> spline
Too many input arguments.
Error in ==> spline at 2
SPLINE Cubic spline data interpolation.
Error in ==> interp1 at 279
yiMat = spline(xCol.',yMat.',xiCol.').';
Error in ==> lmd_test at 20
LocalMaxEn=interp1(tmax,zmax,1:n,'spline');%%%%%上包络
Error in ==> Untitled1018 at 3
=lmd_test(x);
yghit08
发表于 2012-10-18 11:22
danielrichie 发表于 2012-10-18 10:25 static/image/common/back.gif
请问楼主有画过时频分布图没,类似下面这种?文献里面都只说到“将所有PF分量的瞬时幅值和瞬时频率组合即可 ...
你看这里的图和处理就知道怎么做了(我是用Hilbert谱做的瞬时频率的求解)
做的是:
t=0:0.0005:2;
x=9*sin(400*2*pi*t)+3*sin(10*2*pi*t);
=lmd_test(x);
x=x-AF_1.*MF_1;
=lmd_test(x);
PF1=AF_1.*MF_1;
PF2=AF_2.*MF_2;
PF=;
=hhspectrum(PF);
=toimage(A,f);
disp_hhs(im,tt/2000,[],2000)
axis()
yghit08
发表于 2012-10-18 11:24
znas0707 发表于 2012-10-18 10:56 static/image/common/back.gif
我按照你们的程序来运行之后为啥就出现错误呢?
??? Error using ==> spline
Too many input arguments.
...
不知道你是否做了改动还是你Matlab的版本比较低?就给这一个提示的话,我认为是你matlab的版本比较低,如果是这样的话安装7.0以后的版本会好很多
znas0707
发表于 2012-10-18 15:37
yghit08 发表于 2012-10-18 11:24 static/image/common/back.gif
不知道你是否做了改动还是你Matlab的版本比较低?就给这一个提示的话,我认为是你matlab的版本比较低,如 ...
我用的是2010a的 是不有点低呢 要是这样的话我前面做的EMD出现的错误也是这个问题吧
yghit08
发表于 2012-10-18 16:01
znas0707 发表于 2012-10-18 15:37 static/image/common/back.gif
我用的是2010a的 是不有点低呢 要是这样的话我前面做的EMD出现的错误也是这个问题吧
那应该没有问题,你下你楼上的楼上的楼上的那两个压缩文件再试试!我这里没问题,这样也不是版本的问题。