1

这是一个相当模糊的问题,但我们开始吧 - 我想为一年的每小时测量生成一个时间序列,因此对于 2011 年,该系列中的 ti 将有 8760 个值。为了更容易理解我想要做什么,我将使用一个真实世界的例子:

如果我们有一个每小时气温测量的时间序列,然后绘制整个序列,它看起来类似于钟形曲线,即

    a = 0; b = 30;
    x = a + (b-a) * rand(1, 8760);
    m = (a + b)/2;
    s = 12; 
    p1 = -.5 * ((x - m)/s) .^ 2;
    p2 = (s * sqrt(2*pi));
    f = exp(p1) ./ p2;
    plot(x,f,'.')

最大值出现在仲夏,最低值出现在冬季。但是,通过放大特定日期,我们会看到温度也在白天和晚上之间波动,最高温度出现在大约 15:00,最低温度出现在大约 06:00。

所以,我的问题是我将如何生成这个系列,即一个时间序列,它在夏季中期的最大值为 30 度,即值 (8760/2),并且还将上述每日模式纳入整体模式?

4

2 回答 2

3

显而易见的方法是将 2 个正弦波相加,一个用于日变化,一个用于年变化。

我不知道正弦波是否足够接近钟形曲线以满足您的喜好,但我可以提出一个模糊的论点,因为年和昼夜温度的变化(部分)是(大约) 圆周运动无论如何你都应该使用正弦波。

如果您需要帮助生成正弦波,请更新您的问题。

于 2012-06-22T10:27:32.440 回答
2

如果我正确理解了这个问题,您希望将两个已知形状的系列叠加,对吗?如果是这样,您只需将它们相加即可。重要的部分是移动每日温度波动信号,使其平均值为 0,前提是“年”曲线表示平均温度。

于 2012-06-22T10:36:25.623 回答