原帖由 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 的相对应 |