求平均轨道周期
本帖最后由 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
不知道有没有谁能帮我解决一下,
最后的结果图由于粘贴不上去,就没有附带上去 没能验证, 仅大约看看
freq的范围为0.0001~0.5, period的范围即为2~10000
max出现在第一个频率处, 表示LZ的原始数据有一DC漂移
若非LZ要的试试detrend去除 回复 cqupenghao 的帖子
请问你能帮我改一下吗?非常感谢
回复 cqupenghao 的帖子
LZ好像没明白我说的?:@)
回复 ChaChing 的帖子
因为我对这个也是刚入门,请问怎么去除啊??就是要怎么处理才能得到我想要的结果?
回复 cqupenghao 的帖子
help detrend 回复 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? 回复 7 # 你歌 的帖子
若已知Fs当然是LS说的那般!:@)
但很多地方有习惯使用0~0.5的方式 回复 8 # ChaChing 的帖子
搞明白了,是一个细节的问题,在编程计算的时候往往需要的的值都是根据第几个第几个算的,而不是具体的值,因而需要的是序列的下标,而不是实际的频率值,如需输出参数的话直接乘上一个Fs即可
页:
[1]