eight 发表于 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);
看 ...


你的错误是指没有坐标轴吗?自己添加就可以了

maxingcellar 发表于 2007-3-11 19:42

添加?对不起能详细告知吗?步长设为0.01的时候有座标但是没图,而且程序还出现错误!

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

eight 发表于 2007-3-11 19:46

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


这些基本的绘图指令你还是参阅一下基础书吧,或者到matlab讨论区版块上下载置顶贴中的 faq.pdf

maxingcellar 发表于 2007-3-11 19:48

我的意思是座标怎么会消失?是因为我输入的不正确吗?

eight 发表于 2007-3-11 19:57

原帖由 maxingcellar 于 2007-3-11 19:48 发表
我的意思是座标怎么会消失?是因为我输入的不正确吗?


这是emd_visu.m的默认设置:

set(gca,'YTick',[])
set(gca,'XTick',[])



建议在使用之前,先把代码看懂

maxingcellar 发表于 2007-3-11 19:59

好的,谢谢eight,谢谢你不厌其烦的为我讲解!:handshake

maxingcellar 发表于 2007-3-12 23:05

eight问你一个问题,emd的IMF计算出来后,我想得到IMF与时间的关系,应该怎么做?谢谢

eight 发表于 2007-3-12 23:09

原帖由 maxingcellar 于 2007-3-12 23:05 发表
eight问你一个问题,emd的IMF计算出来后,我想得到IMF与时间的关系,应该怎么做?谢谢


看不懂。IMF就是关于时间的函数,不知道你所指的与时间的关系是什么意思

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);

eight 发表于 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 的相对应

maxingcellar 发表于 2007-3-12 23:22

我明白了,但是时间我怎么出来呢,我的取样时间我算了为0.04秒,怎么加进去呢?

eight 发表于 2007-3-12 23:28

原帖由 maxingcellar 于 2007-3-12 23:22 发表
我明白了,但是时间我怎么出来呢,我的取样时间我算了为0.04秒,怎么加进去呢?


那设定一个开始时间a和结束时间b,t=a:0.04:b就可以了,不过要保证x的长度和t一样

maxingcellar 发表于 2007-3-12 23:31

eight,长度为1764 总时间为0.04 那我把t=0:0.04/1764:0.04这样可以吗
我试过了,这样不行!

[ 本帖最后由 maxingcellar 于 2007-3-12 23:45 编辑 ]

eight 发表于 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的起始时间

maxingcellar 发表于 2007-3-13 00:03

我试过了,这样不行!先睡了,明天再请教你,谢谢你!:loveliness:

[ 本帖最后由 maxingcellar 于 2007-3-13 00:06 编辑 ]
页: 1 [2] 3 4
查看完整版本: 急救:EMD_VISU.M的问题