Часто трудно охарактеризовать колебательное поведение в данных, рассматривая измерения времени. Спектральный анализ может помочь определить, является ли сигнал периодическим, и измерить различные циклы.
Термометр в офисном здании измеряет внутреннюю температуру каждые полчаса в течение четырех месяцев. Загрузите данные и постройте их график. Преобразуйте температуру в градусы Цельсия. Измерьте время в неделях. Таким образом, частота выборки составляет 2 измерений/час × 24 часов/день × 7 дней/неделя = 336 измерений/неделя.
load officetemp tempC = (temp - 32)*5/9; fs = 2*24*7; t = (0:length(tempC) - 1)/fs; plot(t,tempC) xlabel('Time (weeks)') ylabel('Temperature ( {}^\circC )') axis tight

Температура, по-видимому, колеблется, но продолжительность циклов не может быть легко определена. Посмотрите на частотное содержание сигнала.
Вычитайте среднее значение, чтобы сконцентрироваться на колебаниях температуры. Вычислите и постройте график периодограммы.
tempnorm = tempC - mean(tempC); [pxx,f] = periodogram(tempnorm,[],[],fs); plot(f,pxx) ax = gca; ax.XLim = [0 10]; xlabel('Frequency (cycles/week)') ylabel('Magnitude')

Температура явно имеет дневной цикл и недельный цикл. Результат неудивителен: температура выше, когда люди на работе и ниже по ночам и по выходным.
findpeaks | periodogram | xcorr