Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

周波数解析による周期性の検出

時間測定値を見てもデータの振動動作を特徴付けることが困難な場合がよくあります。スペクトル解析は信号に周期性があるかどうかを判定し、複数の周期を測定するのに役立ちます。

オフィス ビルの温度計は 4 か月間、30 分ごとに室温を測定しています。データを読み込み、プロットします。温度を摂氏に変換します。時間を週単位で測定します。したがって、サンプルレートは 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')

温度には明らかに日次周期と週次周期があります。結果は驚くにはあたりません。温度は、人が働いているときは高く、夜間および週末は低くなります。

参考

| |

関連するトピック