声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: maxingcellar

[HHT] 急救:EMD_VISU.M的问题

[复制链接]
发表于 2007-3-11 19:37 | 显示全部楼层
原帖由 maxingcellar 于 2007-3-11 19:32 发表
eghit 我运行程序,一下子出了三张图 而且都没有座标轴,
>> x=wavread('a7501.wav');
>> x=x(1:1764);
>>  = emd(x);
>> t = 1:1764;
>> varargout = emd_visu(x,t,imf);
看 ...



你的错误是指没有坐标轴吗?自己添加就可以了
回复 支持 反对
分享到:

使用道具 举报

 楼主| 发表于 2007-3-11 19:42 | 显示全部楼层
添加?对不起能详细告知吗?步长设为0.01的时候有座标但是没图,而且程序还出现错误!

[ 本帖最后由 maxingcellar 于 2007-3-11 19:46 编辑 ]

untitled.fig

153.08 KB, 下载次数: 22

发表于 2007-3-11 19:46 | 显示全部楼层
原帖由 maxingcellar 于 2007-3-11 19:42 发表
添加?对不起能详细告知吗?步长设为0.01的时候有座标但是没图,而且程序还出现错误!



这些基本的绘图指令你还是参阅一下基础书吧,或者到matlab讨论区版块上下载置顶贴中的 faq.pdf
 楼主| 发表于 2007-3-11 19:48 | 显示全部楼层
我的意思是座标怎么会消失?是因为我输入的不正确吗?
发表于 2007-3-11 19:57 | 显示全部楼层
原帖由 maxingcellar 于 2007-3-11 19:48 发表
我的意思是座标怎么会消失?是因为我输入的不正确吗?



这是emd_visu.m的默认设置:

  1. set(gca,'YTick',[])
  2. set(gca,'XTick',[])

复制代码


建议在使用之前,先把代码看懂
 楼主| 发表于 2007-3-11 19:59 | 显示全部楼层
好的,谢谢eight,谢谢你不厌其烦的为我讲解!:handshake
 楼主| 发表于 2007-3-12 23:05 | 显示全部楼层
eight问你一个问题,emd的IMF计算出来后,我想得到IMF与时间的关系,应该怎么做?谢谢
发表于 2007-3-12 23:09 | 显示全部楼层
原帖由 maxingcellar 于 2007-3-12 23:05 发表
eight问你一个问题,emd的IMF计算出来后,我想得到IMF与时间的关系,应该怎么做?谢谢



看不懂。IMF就是关于时间的函数,不知道你所指的与时间的关系是什么意思
 楼主| 发表于 2007-3-12 23:10 | 显示全部楼层
但是我用emd_visu.m打出来的图却是IMF与我取点数的关系?
>> x=wavread('a7501.wav');
>> x=x(1:1764);
>> [imf] = emd(x);
>> t = 1:1764;
>> varargout = emd_visu(x,t,imf);
发表于 2007-3-12 23:19 | 显示全部楼层
原帖由 maxingcellar 于 2007-3-12 23:10 发表
但是我用emd_visu.m打出来的图却是IMF与我取点数的关系?
>> x=wavread('a7501.wav');
>> x=x(1:1764);
>>  = emd(x);
>> t = 1:1764;
>> varargout = emd_visu(x,t,imf);



我估计你打开的a7501.wav文件没有包含时间信息,所以就只能默认从1开始,每个点一个时刻。

举个例子:

设 a.dat 文件有如下内容:
0.000000   0.006300
0.020000   0.003640
0.040000   0.000990
0.060000   0.004280
0.080000   0.007580
0.100000   0.010870
0.120000   0.006820
0.140000   0.002770
0.160000   -0.001280
0.180000   0.003680
0.200000   0.008640
0.220000   0.013600
0.240000   0.007270
0.260000   0.000940
0.280000   0.004200
0.300000   0.002210
0.320000   0.000210
0.340000   0.004440
0.360000   0.008670
0.380000   0.012900
0.400000   0.017130
0.420000   -0.003430
0.440000   -0.024000
0.460000   -0.009920
0.480000   0.004160
0.500000   0.005280
0.520000   0.016530
0.540000   0.027790
0.560000   0.039040
0.580000   0.024490
0.600000   0.009950
0.620000   0.009610
0.640000   0.009260
0.660000   0.008920
0.680000   -0.004860
则:
A = load('a.dat');
t = A(:,1)';
x = A(:,2)';
imf = emd(x,'t',t);
varargout = emd_visu(x,t,imf);

这时候 t 反应的就是时间信息,每个索引均与各 imf 的相对应
 楼主| 发表于 2007-3-12 23:22 | 显示全部楼层
我明白了,但是时间我怎么出来呢,我的取样时间我算了为0.04秒,怎么加进去呢?
发表于 2007-3-12 23:28 | 显示全部楼层
原帖由 maxingcellar 于 2007-3-12 23:22 发表
我明白了,但是时间我怎么出来呢,我的取样时间我算了为0.04秒,怎么加进去呢?



那设定一个开始时间a和结束时间b,t=a:0.04:b就可以了,不过要保证x的长度和t一样
 楼主| 发表于 2007-3-12 23:31 | 显示全部楼层
eight,长度为1764 总时间为0.04 那我把t=0:0.04/1764:0.04这样可以吗
我试过了,这样不行!

[ 本帖最后由 maxingcellar 于 2007-3-12 23:45 编辑 ]
发表于 2007-3-12 23:46 | 显示全部楼层
原帖由 maxingcellar 于 2007-3-12 23:31 发表
eight,长度为1764 总时间为0.04 那我把t=0:0.04/1764:0.04这样可以吗



可以吧,不过你试试t的长度是否1764,如果不是可能要修改一下t的起始时间
 楼主| 发表于 2007-3-13 00:03 | 显示全部楼层
我试过了,这样不行!先睡了,明天再请教你,谢谢你!:loveliness:

[ 本帖最后由 maxingcellar 于 2007-3-13 00:06 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-10-1 07:30 , Processed in 0.070058 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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