杭州锐达数字技术有限公司
查看: 25012|回复: 274

[其他] LMD_初步的结果-大家讨论

[复制链接]
发表于 2012-6-14 17:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?我要加入

x
我自己编写的LMD程序,不同的是原始文献中用的移动平均法做的包络之类,我用的cubic样条函数做的。原始信号
x=10*sin(100*t/(2*pi))+10*sin(400*t/(2*pi))
分解后结果见图。
第一张图显示的是高阶频率部分分离和原始信号
第二张图是将高阶频率部分去除后的分离结果和次高阶原始信号

对于结果,我想还是我利用了样条函数做,然后需要做端点延拓的问题(我用的EMD,法国人写的那个EMD中的端点延拓的方法)。欢迎大家跟帖,如果可以的话同时求移动平均法替代cubic样条函数做包络之类的。再者,直接管我要程序的不理睬。

第一个

第一个

第二个

第二个

评分

1

查看全部评分

回复
分享到:

使用道具 举报

 楼主| 发表于 2012-6-14 17:26 | 显示全部楼层
自己顶一顶,欢迎跟帖。同时,占据沙发

点评

希望大家把自己的试用结果发上来啊! 同求端点延拓方法!  发表于 2012-6-21 21:45
大家看帖请注意帖子里的内容,为让大家快速浏览整个帖子,将帖子里的整个内容列写如下: 1.有用移动平均法做的,有用样条函数取代移动平均法做的 2.有用仿真信号做的,有用实测数据做的 3.贴有处理程序和数据  发表于 2012-6-19 16:26
 楼主| 发表于 2012-6-14 17:31 | 显示全部楼层
再补一个图信号时x=10*sin(100*t/(2*pi))
结果见图
从图形中看,貌似又不是端点的问题(和一楼中的第二个图比较的话)
仔细看看的话还可能是和端点有关系,因为第二个图中左端点有小波动。大家发表自己的看法吧
test_lmd_test.jpg
 楼主| 发表于 2012-6-14 17:36 | 显示全部楼层
信号x=10*exp(-t)*sin(100*t/(2*pi))结果见图
大家比较着看,目前没什么想法,我
test_lmd_test_1.jpg
发表于 2012-6-15 00:09 | 显示全部楼层
兄弟。用个实际信号看看,模拟信号好并不代表实际信号也好
 楼主| 发表于 2012-6-15 09:30 | 显示全部楼层
回复 5 # xiaoaq 的帖子

模拟信号做的一般的话,实际信号不会做的好!另外还需要再改进改进。等等吧!
 楼主| 发表于 2012-6-15 10:18 | 显示全部楼层
补充两个图。另外给出给上面那些图的原因:很多时候我们更关心的是频率,幅值关心的少。还是一楼的信号,只是给出的形式是PF1和PF2。在这一楼给出来的图第一张是我自己画的,第二章是LMD作者传给我的(同一个信号,一楼的信号)。

第二个

第二个

第一个

第一个

评分

1

查看全部评分

 楼主| 发表于 2012-6-15 10:19 | 显示全部楼层
大家注意上图端点的地方,其他地方几乎是一样的
发表于 2012-6-15 23:34 | 显示全部楼层
仅供参考:LMD的目标是将原始信号分解成调幅分量。数学上,两个正弦分量和形式也可以写成调幅信号,这点与EMD中的模式混叠或者是分辨率问题是一样的。
你图中的PF1比较接近原始信号,可能就是把叠加信号当成了调幅信号分解到了一个PF分量中。
若有谬误,大家交流指正。

评分

1

查看全部评分

发表于 2012-6-16 09:06 | 显示全部楼层
端点你用了镜像延拓?你求极值点用的什么方法
 楼主| 发表于 2012-6-16 10:01 | 显示全部楼层

你问的这部分内容在法国人写的那个EMD算法中有,你注意一下里面的函数extr和Boundary_conditions这个函数(extr是提取局部最值的函数,另一个貌似是镜像延拓的端点处理问题)。另外你有其他端点延拓的方法吗?不过,如果你用LMD原作中的移动平均法的话,貌似不用处理端点问题(个人认为也是需要处理端点问题的)。再提醒一下的,用extr提取的是分别存放了局部极大值和局部极小值,在LMD中统称为局部最值,这样的话你需要对用extr提取出来的局部最大/小值做一个重拍。命令如下:
[tmin tmax zmin zmax]=extr(x,1:length(x));
tIndexTemp=[tmin tmax];
zMaxMinTemp=[zmin zmax];
[tIndex OrderIndex]=sort(tIndexTemp);
for jj_j=1:length(x);
   ii_i=OrderIndex(jj_j);
   zMaxMin(jj_j)=zMaxMin(ii_i);
end
希望对你有用!等帖子到了50楼,我在51楼分享我写的全部程序。

点评

没明白上述点评的意思,是做的内容不妥还是???  发表于 2012-7-5 11:30
感谢您对论坛的支持,但不希望以这种方式吸引一些灌水帖!  发表于 2012-7-5 09:32

评分

1

查看全部评分

发表于 2012-6-16 15:07 | 显示全部楼层
函数extr和Boundary_condition我知道,一个是提取数据的极值,一个是和你说的一样就是镜像延拓,你后面的是对极值点的处理(两个坐标的轴)。你开始不是说你用的三次样条插值的吗?应该是直接上包络和下包络的啊。怎么看你的程序你把局部的极小值和极大值排序了~~难道你还是按照滑动平均的方法来计算的~~ps:想问你下,最后你做的程序能处理实际信号吗,我的老是出现问题

评分

1

查看全部评分

 楼主| 发表于 2012-6-16 15:44 | 显示全部楼层
回复 12 # 雨夜1011 的帖子

我还没有去处理实际信号。在LMD中不需要做上下包络(那是EMD做的)。LMD做的是均值(两临近最值的和的0.5做)和幅值(两临近的局部最值做差的绝对值的0.5做)。我用三个频率信号也做了,可以分离出来,只是分离效果不好。你有移动平均法或者有理样条的程序??
 楼主| 发表于 2012-6-16 15:46 | 显示全部楼层
回复 12 # 雨夜1011 的帖子

你再看看LMD的文章就知道了,不做上下包络,另外在LMD中统称局部极大/小值为局部极值(不做上下包络)
 楼主| 发表于 2012-6-16 15:56 | 显示全部楼层
本帖最后由 yghit08 于 2012-6-16 15:57 编辑

大家自己看着下吧,分离效果一般。程序写的一般怕被笑话,所以用.p格式的

新建文件夹 (2).rar

3.46 KB, 下载次数: 300

我写的LMD处理程序,分离效果一般!

点评

学习一下LMD,谢谢。  发表于 2013-7-22 10:32

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

快速回复 返回顶部 返回列表