产生具有季节性和昼夜成分的信号

时间:2012-06-22 10:19:38

标签: matlab signal-processing time-series

这是一个相当含糊的问题,但我们在这里 - 我想为一年的每小时测量生成一个时间序列,因此对于2011年,该系列中将有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),并且还将上面提到的每日模式合并到整个系列中图案?

2 个答案:

答案 0 :(得分:3)

这样做的显而易见的方法是将2个正弦波加在一起,一个用于昼夜变化,一个用于年度变化。

正弦波是否足够接近你喜欢的钟形曲线我不知道,但我可以做一个模糊的论证,因为年度和昼夜温度的变化是(部分)产品(大约)圆形运动你应该使用正弦波。

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

答案 1 :(得分:2)

如果我正确理解了这个问题,你想要对已知形状的两个系列进行叠加,对吧?如果是这样,你只需要添加它们。重要的是移动日常温度波动信号,使其平均值为0,条件是“年”曲线表示平均温度。