cqupenghao 发表于 2010-8-30 17:55

求平均轨道周期

本帖最后由 ChaChing 于 2010-8-31 00:47 编辑

请教:我有一段时间序列,请问用什么方法可以求出它的平均轨道周期?
有些资料上说用FFT可以求,我也试过了,有些时间序列可以求,可是有些又求不出来,希望有人能帮我解决一下。
原程序如下:
data=[...... ];
Y=fft(data); N=length(Y); L=round(N/2); Y(1)=[];
power=abs(Y(1:L)).^2;%%幅度的平方为能量
nyquist=1/2; freq=(1:L)/(L)*nyquist;
subplot(2,1,1);plot(freq,power); title('freq-power gram');
period=1./freq;
subplot(2,1,2);plot(period,power); title('period-power gram');
=max(power); P=period(index)
由于数据个数太多,就没一一写进去
我的数据个数是10000个,结果最后得出的结果显示是P=10000
不知道有没有谁能帮我解决一下,
最后的结果图由于粘贴不上去,就没有附带上去

ChaChing 发表于 2010-8-31 00:54

没能验证, 仅大约看看
freq的范围为0.0001~0.5, period的范围即为2~10000
max出现在第一个频率处, 表示LZ的原始数据有一DC漂移
若非LZ要的试试detrend去除

cqupenghao 发表于 2010-8-31 08:14

回复 cqupenghao 的帖子
请问你能帮我改一下吗?非常感谢

   

ChaChing 发表于 2010-8-31 10:46

回复 cqupenghao 的帖子
LZ好像没明白我说的?:@)
   

cqupenghao 发表于 2010-8-31 12:57

回复 ChaChing 的帖子

因为我对这个也是刚入门,请问怎么去除啊??就是要怎么处理才能得到我想要的结果?
   

ChaChing 发表于 2010-8-31 13:49

回复 cqupenghao 的帖子
help detrend

你歌 发表于 2012-6-1 23:33

回复 2 # ChaChing 的帖子

长老,你看看
data=[...... ];
Y=fft(data); N=length(Y); L=round(N/2); Y(1)=[];
power=abs(Y(1:L)).^2;%%幅度的平方为能量
nyquist=1/2; freq=(1:L)/(L)*nyquist;
………………
是不是应该为niquist=1/2*Fs?

ChaChing 发表于 2012-6-2 00:35

回复 7 # 你歌 的帖子

若已知Fs当然是LS说的那般!:@)
但很多地方有习惯使用0~0.5的方式

你歌 发表于 2012-6-2 20:55

回复 8 # ChaChing 的帖子

搞明白了,是一个细节的问题,在编程计算的时候往往需要的的值都是根据第几个第几个算的,而不是具体的值,因而需要的是序列的下标,而不是实际的频率值,如需输出参数的话直接乘上一个Fs即可
页: [1]
查看完整版本: 求平均轨道周期