时间序列中的非整数周期

周期函数可以由富立叶变换展开，成为无限三角函数之和，从而明确该函数的频率（周期）组成。气象数据的时间序列，例如日均温、日雨量序列等等，都没有确定的总周期，不能完全确定它的周期组成，再表示为无穷三角函数之和。正因为不能表示为三角函数之和，所以还不是确定性事物，否则天气就好预报了。而用谐波分析做预报时，就假定总周期为无限大，而用有限的数据记录f(1),f(2),f(3)…f(n)来计算各种可能周期T的振幅A(T)：

a(T) = (1/n) * ∑ f(i)*cos(i*2π/ T)

b(T) = (1/n) * ∑ f(i)*sin(i*2π/ T)

A(T) = sqr（ a(T)*a(T) + b(t)*b(T) ）

然后从诸A(T)中选取振幅大而显著的周期T。这里有这样的经验，所用的序列不能太长，所选周期不能太多。通常都用年记录或月记录，序列长度不过千,上百的也很少，选用周期也就是3到5个。好像没有人对序列长度过千上万的日气象要素，进行过这样的计算。当我对日雨量，特别是日均温，用谐波分析做超长期预报时，就发现在极强的年周期背景下，短周期似乎都被平滑了，不明显了，也就难以选定了。但是，我们知道存在着约一星期和一个月的短周期，它们甚至可以感觉出来。另外，天气变化的周期成分应该是很多很复杂的；资料长度愈长，提供的信息应该愈多；为什么反而要资料短、周期少呢？资料长为什么会把短周期平滑掉呢？

这次我先选定的周期，生成模拟的长达30000的时间序列，再对它进行谐波分析。经过反复比较分析才搞清楚：原来资料长了，非整数的短周期会被平滑掉。气象序列的实际周期应该都不恰好是整数，所以找不到短周期是自然的。下面选取几张计算结果的图形，就可以说明这件事。

这些计算都选了4个周期：6、29、120、365天，振幅都为100，计算出30000个的序列值：

F(t) = 100 * [sin(t*2π/6)+ sin(t*2π/29)+sin(t*2π/120)+sin(t*2π/365)]                        t=1,2,3…30000

对它分析得到的周期图如下：

图1

如图可见，分析得到的4个周期的振幅基本一样。如果把周期改为非整数的6.5、29.5、120.5、365.5，小周期的振幅就缩小到几乎看不到了：

图2

下面再列出3张用我的分相统计方法得到的周期图。这里的振幅是这样计算的：周期统计值的平方和取平均再开方。第一张是没有经过本质化的，在所有周期的整数倍处都有峰值。后两张是经过本质化运算的，就与一般谐波分析相当了。注意最后一张图5，它选用的周期是非整数的。在6.5、29.5、120.5处的峰值也没有了，但因为它们的两倍正好是整数，峰值就移到那里显示出来。

图3

图4

图5