(求助)时间序列的平均周期如何计算?
时间序列的平均周期如何计算?我是菜鸟,还请高手赐教!!!谢谢了 其实就是把功率谱图的横坐标f做个1./f变换 然后画图出来对应最高峰位置的横坐标就是 周期P 了就可以了load sunspot.dat
year = sunspot(:,1);
wolfer = sunspot(:,2);
plot(year,wolfer)
title('Sunspot Data')
Y = fft(wolfer);
N = length(Y);
Y(1) = [];
power = abs(Y(1:N/2)).^2;
nyquist = 1/2;
freq = (1:N/2)/(N/2)*nyquist;
plot(freq,power), grid on
xlabel('cycles/year')
title('Periodogram')
period = 1./freq;
plot(period,power), axis(), grid on
ylabel('Power')
xlabel('Period(Years/Cycle)') 谢谢,让我好好看看这个程序!!!不过好像用最小数据量法求最大lyapunov时,周期P的影响不大,如果在不确定周期P的情况下,是不是可以用P=1来进行计算?(陆振波博士论文中的观点)
回复 #3 柏莱 的帖子
这个和你要求解的数据有关,你可以先试算一下,譬如取P=1,2,3,看看结果相差大不大!如果差别很大,那肯定不能直接设置P=1了!
回复 #3 柏莱 的帖子
不要听信别人自己试过才知道的 也是的,陆博士在数据选取上选的数据比较多(大概几千个数),但我的数据大概也就几十到几百个,应该会有不同!谢谢大家的提醒! 原帖由 sssssxxxxx921 于 2007-9-18 10:17 发表 http://www.chinavib.com/forum/images/common/back.gif其实就是把功率谱图的横坐标f做个1./f变换 然后画图出来对应最高峰位置的横坐标就是 周期P 了就可以了
你给的这个程序,我有点地方不太明白意思,是不是我照葫芦画瓢就可以呢?还是有些参数需要根据实际情况而改变呢? 还想问一个问题,如果求出的P是不是一个整数,那是应该向0取整呢,还是应该向正无穷取整? 什么叫向正无穷取整啊?
P四舍五入,取整法最多相差1 对结果没有影响的 你给的这个程序,我有点地方不太明白意思,是不是我照葫芦画瓢就可以呢?还是有些参数需要根据实际情况而改变呢? 这个程序你可以参考一下matlab中fft帮助部分的内容,应该可以找到你需要的解释的~ 这种方法求出的平均频率只是真实频率的分数倍数吧,把真实频率看作1,求出的平均频率可能是零点几,这是什么道理?
回复 #12 JulianChin 的帖子
你这么一说还真是有问题啊,过几天有时间了再把它搞清楚!你要是有结果也请一起分享哦!回复 #13 octopussheng 的帖子
如果求的是真实周期的话,想想看,一个中心频率100k的信号,求出的p几乎等于0,那不如干脆设成1算了我看原意还是求分频吧
回复 #14 JulianChin 的帖子
昨晚又翻书了,发现用分频更解释的通:@L :@L我再学习学习!
页:
[1]
2