tujian510 发表于 2007-5-21 11:03

帮忙看看在哪里出错了?

i4是采集到的故障时的零序电流信号,以 .mat的形式储存在工作空间里,以矩阵的形式(2*2001)储存,部分数据如下:
   1                        2                   3                .........                     .......                         .......         2001
1   0                        5e-005            0.0001                                                                                          0.1


24.7601e-005      4.8155e-005    4.8699e-005                                                                               0.28289

load i4
t=0:0.001:1;
subplot(211);
plot(i4(1:2000));
Y=fft(i4,512);
f=1000*(0:256)/512;
subplot(212);
plot(f,Y(1:257));
Warning: Imaginary parts of complex X and/or Y arguments ignored.
我不知道对多少点采取合适,反正试了好多种的点数,第二个图基本没有什么变化。我想得到的是经过FFT变换后对应各次谐波频率的图形,i请高手指点一下了!

pengweicai 发表于 2007-5-21 11:18

Y=fft(i4,512);
后Y是复数,应该取幅值。

tujian510 发表于 2007-5-22 09:14

就是abs(Y=fft(i4,512));吧?可是得出来的第二个图是一条直线啊?
并显示警告:Warning: Requested axes limit range too small; rendering with minimum range allowed by machine precision.怎么解决呢?谢谢!
load i4
t=0:0.001:1;
subplot(211);
plot(i4(1:2000));
Y=fft(i4,512);
f=1000*(0:256)/512;
subplot(212);
plot(f,abs(Y(1:257)));

eight 发表于 2007-5-22 11:45

刻度范围太小了,你可以不管,只是警告而已,并非错误,要修改的话把横坐标做个拉伸即可

[ 本帖最后由 ChaChing 于 2010-5-10 00:27 编辑 ]

tujian510 发表于 2007-5-22 16:19

谢谢版主了,我会再仔细看看

[ 本帖最后由 eight 于 2007-5-22 16:21 编辑 ]
页: [1]
查看完整版本: 帮忙看看在哪里出错了?