前回の「フィルタリング」とか「移動平均」に関係する話として、テキスト第6章に沿って、時系列データの解析の入門的な話を進める。 主なトピックは、ローパスフィルターの重要性を意味する「標本化定理」や「エイリアシング」である。
標本化定理・エイリアシング
エイリアシングとは
「走っている車のホイールが止まって見えたり、逆回転しているように見える」のは、この現象の一例。 人間の目の時間分解能 (だいたい1秒間に20コマ) を超えた速さでホイールが回転しているので、こう見えてしまう。
エイリアシングの例として、「ストロボ効果 (Stroboscopic effect; 時間折り返し雑音)」をとりあげる (図6.1も参照)。 回転している針の動きを \(\Delta{t}\) の時間間隔で測定した結果が右図のようだったとすると、時間 \(\Delta{t}\) の間に針はどの向きに何度回転しただろうか? 単純には「時計回りに 90°」だが、その他には考えられないか? 例えば
- 「時計回りに450°」、「時計回りに810°」、「時計回りに1170°」など
- 「反時計回りに270°」、「反時計回りに630°」、「反時計回りに990°」など
ある周波数の変動が、本来の周波数とは異なった低周波の変動として測定されてしまう現象を「エイリアシング (aliasing)」という。 エイリアシングが起きてしまう原因は、
- 測定したい変動の周期と比べて、測定する時間間隔が長すぎる
- 測定したい変動の周波数と比べて、測定する周波数が低すぎる
標本化定理とは
標本化定理 (「サンプリング定理」とも) とは、時間的に変動する信号を測定する上で、測定を繰り返す時間の間隔 に関する制約を課すものである。
- ある周期で変動する信号を正しく再現するためには、 \begin{equation} \fbox{測定間隔}\le\dfrac{1}{2}\,\fbox{変動の周期} \tag{6.1} \end{equation} でなければならない。 先の例でいうと、針が半回転する間に1回以上の測定をする必要があることになる。
- ただし実際には、測定間隔は周期の \({1/2}\) と比べて十分小さくすべき。 測定間隔が変動の周期の\({1/2}\) に近い場合には、信号を再現できないこともある。 図6.1でいうと、針がちょうど半回転したところで測定したのでは、針がどちらの向きに回転したのかが分からない。
- より一般的にいうと、 \begin{equation} \fbox{測定間隔}\le\dfrac{1}{2}\,\fbox{信号に含まれる変動の周期のうち、最も短いもの} \tag{6.2} \end{equation} であれば、信号を完全に再現することができる。
- 測定周波数を \({1/2}\) 倍したものをを一般に ナイキスト周波数 (Nyquist frequency) という。 ナイキスト周波数を使って標本化定理を書くと、 \begin{equation} \fbox{ナイキスト周波数}\ge\fbox{信号に含まれる変動の周波数のうち、最も高いもの} \tag{6.4} \end{equation} であれば、信号を完全に再現することができる。
よって、ある時間間隔で時系列データを測定・記録する前には、ローパスフィルターをかけることによって、ナイキスト周波数より高周波の成分を除去 しておくことが必要である (「アンチエイリアシングフィルター」と呼ばれる)。 そうでなければエイリアシングが起こり、ナイキスト周波数よりも高い周波数をもつ信号が混入してしまう [パラパラまんが風の実例]。
エイリアシング (折り返し雑音)
ある周波数の正弦波を、測定間隔 \(\Delta{t}\) (あるいは測定周波数 \(f_s\equiv{1/\Delta{t}}\)) で測定することを考える。 このような測定を行なった場合、いかなる振動であっても \begin{equation} 0\le{f}\le\frac{1}{2}{f_s} \tag{6.5} \end{equation} の範囲の周波数 \(f\) をもつ正弦波として認識されてしまうことになる。 これがエイリアシングである。 ここで右辺に登場する \(\frac{1}{2}{f_s}\) がナイキスト周波数である。
エイリアシングによって周波数が \(f\) (\(>0\)) だと認識されてしまう周波数を \(\tilde{f}\) とおく。 ただし \(\tilde{f}\) は負でもよいが、\(|\tilde{f}|>{f}\) を満たすものとする。 なお念のため、 \(\tilde{f}\) と \(f\) の符号が逆であることとは、\(\tilde{f}\) と\(f\) で回っている方向が反対になっているという意味。
測定間隔 \(\Delta{t}\) で周波数 \(f\) の正弦波と \(\tilde{f}\) の正弦波の両方を測定したときに、常に同じ値が得られる条件を考えると、\(f\) と \(\tilde{f}\) の関係は \begin{equation} \left\{ \begin{array}{rl} 2\pi\tilde{f}\Delta{t}-2\pi{f}\Delta{t}=2{n}\pi & \text{($\tilde{f}$ と $f$ が同符号、即ち$\tilde{f}>0$のとき)} \\ -2\pi\tilde{f}\Delta{t}+2\pi{f}\Delta{t}=2{n}\pi & \text{($\tilde{f}$ と $f$ が異符号、即ち$\tilde{f}<0$のとき)} \end{array} \right. \tag{6.6} \end{equation} で書ける(ただし \(n\) は自然数)。 この条件より \(|\tilde{f}|\) は式(6.7)で与えられるが、その値を小さい順に並べていくと、 \begin{equation} |\tilde{f}|= \underline{{f_s}-{f}},{f_s}+{f}, \underline{2{f_s}-{f}},2{f_s}+{f}, \underline{3{f_s}-{f}},3{f_s}+{f}\ldots \tag{6.8} \end{equation} となる。 ここで下線をつけたのは、\(\tilde{f}\) が負のもの。 \(|\tilde{f}|\) の値の分布を図に描いてみると、図6.2のようになる。 幅 \(\frac{1}{2}{f_s}\) の区間内に1つずつ、雑音として測定される周波数 \(|\tilde{f}|\) が存在することが分かる。 また、\(|\tilde{f}|\) の値には、\(\frac{1}{2}{f_s}\) の整数倍にあたる周波数についての局所的な対称性が成り立っている。 この現象は一般に「折り返し (folding)」と呼ばれる。
自己相関
これまでは主に、変動の周期が既に分かっているデータを対象に考えてきた。 では、まだ時間変動の規則性が分からない時系列データの周期を求めるにはどうすればよいだろうか? 時間的 (あるいは空間的でも可) な変動の周期を見積る上で理想的な方法は、もちろん「フーリエ (Fourier) 変換」を用いることなのだが、以下では、「フーリエ変換」の準備ともなる「自己相関」という概念について紹介する。
ある時系列データに対し、ある時間幅だけずらしたデータと元のデータとを重ねて表示してみることを考える (右の動画あるいは図6.4を参照)。 なお、2つのデータの時系列上のずれを「遅れ」または「ラグ (lag)」とよぶ。 右の例では、変動の周期 \(T_0\) に対してラグ \(\Delta{T}\)の大きさを 0 から \({5T_0}\) まで変化させながら、元の時系列データとずらしたデータを重ねて表示させたことになっている。 ラグの大きさの違いによって、2つのグラフの位置関係や重なり具合がどう変化しているかに注目してみると、ラグ \(\Delta{T}\) が周期 \(T_0\) の整数倍のときに2つのグラフがぴったりと重なる ことが分かる。 これより、変動の「周期」とは、元の時系列データとずらしたデータを重ねて表示させた場合に、最初にぴったりと重なったときのラグの大きさ から見積ることができる。
ある時系列データに対し、ある時間幅だけずらしたデータと元のデータとの間で相関をとることを「自己相関 (autocorrelation)」という。 自己相関は、そのデータが過去の履歴との間にどのくらいの相関をもっているか? を示すものである。 またこれによって計算される相関係数を「自己相関係数」と呼び、ラグの値によって定まる関数である。 自己相関係数をとることによって、上で試した2つのグラフの重なり具合を数字で見積ることができる。 具体的には、ラグが変動の周期の整数倍のときに、自己相関係数が1に近い値をとる。
ここで挙げたように、あるデータと「少しの時間幅だけずらしたデータ」を重ね合わせ、その重なり具合によって時間変動の周期を検討することができる。 もちろん、あるデータと「少しの時間幅だけずらした別のデータ」との重なり具合を調べることも可能である。 このような相関を「相互相関 (cross-correleation)」と呼び、地球科学に限らずいろいろな分野で使われている。