ケィオスの時系列解析メモランダム

時系列解析、生体情報解析などをやわらかく語ります

【信号処理の基礎数学4】くし型関数が語る標本化の特性—— 連続から離散への橋渡し(その2)

前回の記事では、くし型関数(comb function)のフーリエ変換について解説しました。私たちは普段、スマホで写真を撮ったり、音声を録音したりと、「アナログな世界をデジタルとして記録する」 技術を当たり前のように使っています。

 もちろん、かつてはアナログで記録する手段──カメラフィルム、カセットテープ──が日常にありました。しかし、これらを実際に使ったことがある、あるいは現物を見たことがあるという人は、私のような年寄りの世代だけになりつつあります。いまの学生さんにとっては、

「アナログって何?」

という時代になりました。

 とはいえ、みなさんが研究で「デジタルで記録する」作業を行うときには、その裏側で働く 少し面倒で、どこか小難しい理屈 を避けて通ることはできません。正しくデジタル化し、信頼できるデータを得るためには、次のような仕組みを理解し、適切に扱うことが欠かせないのです。

  • サンプリング (標本化):時間を一定の間隔で細かく区切り、連続した信号の「とびとびの点」だけを抜き取る操作。
  • ナイキスト周波数:「どれくらいのサンプリング周波数にすれば、元の信号を正確に再現できるか」を決める境界。
  • エイリアシング:本来は信号に存在しないはずの低周波成分が、サンプリングの結果として現れてしまう現象。

 たとえば、スマホやデジカメで高速回転する車輪を撮影すると、実際とは逆向きに回転して見えることがあります。これは、サンプリングがもつ「折り返し(エイリアシング)」がそのまま目に見えてしまった典型的な例です。こうした不思議な現象の背景には、「時間を等間隔に切り取る」というデジタル化の構造そのものが関わっており、その数学的な土台をもっとも明快に示してくれるのが、前回紹介した 「くし型関数」 なのです。

 ポイントは、

「くし形関数と信号の掛け算(積)」は、周波数軸では「くし形関数との畳み込み」に変わる、というフーリエ変換基本法則です。

 この性質が、サンプリング現象のすべての要素を説明してくれます。

1. サンプリング (標本化)とは「時間軸でのくし形関数との掛け算」

 連続信号 \displaystyle{
x(t)
} をサンプリング周期 \displaystyle{
T
} で標本化する操作は、次式で表せます。

\displaystyle{
x_s(t) = x(t)\,\operatorname{comb}_T(t)
}

 ここで、くし形関数は

\displaystyle{
\operatorname{comb}_T(t)
= \sum_{n=-\infty}^\infty \delta(t-nT)
}

という「時間軸に等間隔に並んだ無限の針(デルタ関数)の列」です。

 標本化の掛け算の結果は、

\displaystyle{
x_s(t)
= \sum_{n=-\infty}^{\infty}
x(nT)\,\delta(t-nT)
}

となり、信号の値が「デルタ関数という針の位置にだけ、元の信号の値がとびとびに貼り付いた状態」になります。

 あなたがスマホで音声を録音するとき、あるいは、心電図を 1 ms ごとに記録するとき、このような操作を通じて、等時間間隔で離散的な信号が記録されていくと考えてください。

2. 時間軸での掛け算は、「周波数軸での畳み込み」

 フーリエ変換の基本性質である「時間軸での掛け算(積)は、周波数軸では畳み込みになる」という話は、理工系の学生であれば一度は耳にしたことがあると思います。

 念のため、畳み込みの定義と畳み込み定理の要点を確認しておきます。

■ 畳み込みの定義

 2つの関数 \displaystyle{
x(t)
}\displaystyle{
h(t)
} の畳み込み(convolution)は、次の積分で定義されます。

\displaystyle{
(x * h)(t)
= \int_{-\infty}^{\infty} x(\tau)\,h(t-\tau)\,d\tau
}

これは「一方の関数を反転・移動しながら重ね合わせ、重なった部分の積を足し合わせる」演算です。

■ 畳み込み定理

 畳み込み定理は、フーリエ変換を扱うときに、とっても便利な道具です。

関数 \displaystyle{
x(t)
}\displaystyle{
h(t)
}フーリエ変換を、それぞれ

\displaystyle{
\begin{aligned}
X(f) &= \mathcal{F}\{x(t)\}(f)
    = \int_{-\infty}^{\infty} x(t)\, e^{-2\pi i f t}\, dt,\\
H(f) &= \mathcal{F}\{h(t)\}(f)
    = \int_{-\infty}^{\infty} h(t)\, e^{-2\pi i f t}\, dt
\end{aligned}
}

 このとき、畳み込み定理として次の関係が成り立ちます。

\displaystyle{
\mathcal{F}\{x(t) * h(t)\}(f)
= X(f)\,H(f)
}

畳み込みは、積分を計算するのでちょっと面倒な印象がありますが、フーリエ変換した世界で考えればただの積なので、とても楽ちんですでは、この視点がサンプリングを理解するうえで非常に重要です。

■ 逆の関係:「時間軸での積」は「周波数軸での畳み込み」

 畳み込み定理を、逆方向に使っても正しいです。つまり、時間軸での掛け算(積)は、周波数軸では畳み込みになるということです。

 関数の積 \displaystyle{x(t)\,h(t)}フーリエ変換すると、

\displaystyle{
\mathcal{F}\{x(t)\,h(t)\}(f)
= X(f)\ *\ H(f)
}

となり、今度は周波数軸での畳み込みが現れます。畳み込みの計算は

\displaystyle{
(X * H)(f)
= \int_{-\infty}^{\infty} X(\nu)\,H(f - \nu)\, d\nu
}

で与えられます。

 では、話を本題に戻しましょう。

■ サンプリング信号のフーリエ変換

 畳み込み定理の関係を、関数 \displaystyle{
x(t)
} とくし形関数 \displaystyle{
\operatorname{comb}_{T}(t)
} に当てはめてみます。

 \displaystyle{
x(t)
}フーリエ変換を、

\displaystyle{
\begin{aligned}
X(f) &= \mathcal{F}\{x(t)\}(f)
    = \int_{-\infty}^{\infty} x(t)\, e^{-2\pi i f t}\, dt,\\
\end{aligned}
}

とします。

 また、くし型関数のフーリエ変換は前回の記事で説明したように、

\displaystyle{
\begin{aligned}
\mathcal{F}\{\operatorname{comb}_T(t)\}(f)
  &= \frac{1}{T}\,\operatorname{comb}_{1/T}(f)
\end{aligned}
}

です。

 ここで、畳み込み定理の逆の関係を適用すると、

\displaystyle{
\begin{aligned}
X_s(f)
&= X(f)\ *\ \frac{1}{T}\operatorname{comb}_{1/T}(f)\\
&= \int_{-\infty}^{\infty}
X(\nu)\,
\frac{1}{T}\operatorname{comb}_{1/T}(f-\nu)\,d\nu\\
&= \frac{1}{T}\int_{-\infty}^{\infty}
X(\nu)\,
\sum_{k=-\infty}^{\infty}\delta\!\left(f-\nu-\frac{k}{T}\right)\,d\nu\\
&= \frac{1}{T}
\sum_{k=-\infty}^{\infty}
\int_{-\infty}^{\infty}
X(\nu)\,
\delta\!\left(f-\nu-\frac{k}{T}\right)\,d\nu\\
&= \frac{1}{T}
\sum_{k=-\infty}^{\infty}
X\!\left(f-\frac{k}{T}\right)
\end{aligned}
}

となります。

■周波数軸での無限のコピペ

 周波数軸上 (周波数領域)での畳み込みは、\displaystyle{
X(f)
} のグラフを、デルタ関数で指定された位置にコピーする操作になります。

 つまり、下の図用のように、\displaystyle{
X(f)
} が、

\displaystyle{
f = 0, \pm \frac{1}{T}, \pm \frac{2}{T}, \cdots
}

という無数の場所に、コピペされます。

\displaystyle{X(f)}\displaystyle{\frac{1}{T}\operatorname{comb}_{1/T}(f)} の畳み込みのイメージ図。

 このことは、畳み込みの計算結果、

\displaystyle{
\begin{aligned}
X_s(f)
&= \frac{1}{T}
\sum_{k=-\infty}^{\infty}
X\!\left(f-\frac{k}{T}\right)\\
&= \frac{1}{T}\Bigl\{
\cdots
+ X\!\left(f+\frac{1}{T}\right)
+ X(f)
+ X\!\left(f-\frac{1}{T}\right)
+ \cdots
\Bigr\}
\end{aligned}
}

を見れば理解できると思います。この式は、\displaystyle{
X(f)
} が、\displaystyle{
\frac{k}{T}
} (\displaystyle{
k = 0, \pm 1, \pm 2, \cdots
})だけ平行移動されて、たくさん(無限に)並んだグラフを表しています。

3. ナイキスト周波数は「コピーが重ならないための境界」

 ナイキスト周波数 (Nyquist frequency)ってなんだか難しそうと思っていた方もいるかもしれませんが、ここまでの内容がある程度理解できたのであれば、あとは簡単です。

 サンプリングにより、元の連続信号 \displaystyle{
x(t)
} のスペクトル \displaystyle{
X(f)
} が、周波数軸上

\displaystyle{
f = 0,\ \pm\frac{1}{T},\ \pm\frac{2}{T},\cdots
}

に、等間隔にコピーされます。このコピーが、互いに重ならずに並んでいる状態であれば、サンプリング後でも元の信号の周波数成分を正しく識別できます。

 しかし、元の信号に含まれる最大周波数が \displaystyle{
f _ {\max}
} であるとき、コピー間隔 \displaystyle{
\frac{1}{T}
} を小さくすると(=サンプリング周期 \displaystyle{
T
} を長くすると)、次第に、\displaystyle{
X(f)
} のコピー同士が近づいて重なるかもしれません。

 このコピーが重ならないための条件は、

\displaystyle{
\frac{1}{T} > 2 f_{\max}
}

となります。なぜこのような不等式になるのでしょうか。

 元のアナログ信号のスペクトル \displaystyle{
X(f)
} の最大周波数を \displaystyle{f_{\max}} と仮定したので、\displaystyle{
X(f)
} のグラフは、

\displaystyle{ [- f_{\max},\ f_{\max}] }

の領域にあり、幅 \displaystyle{2 f_{\max}}区間に収まっていました。

 一方、サンプリングによって生成されるスペクトルのコピーは、\displaystyle{\frac{1}{T}} おきに並ぶため、 隣り合うコピー間の距離 \displaystyle{\frac{1}{T}} が、グラフの幅 \displaystyle{2 f_{\max}} より大きければ互いに重なりません。

 だから、

\displaystyle{ \frac{1}{T} > 2 f_{\max} }

が「コピーが重ならないための条件」となるのです。

 この結果を整理すると、次の関係が得られます。

\displaystyle{
f_{\max} < \frac{1}{2T} = f_{\mathrm{Nyq}}
}

 この

\displaystyle{
f_{\mathrm{Nyq}} = \frac{1}{2T}
}

ナイキスト周波数 です。ナイキスト周波数は、コピーされたスペクトル同士がぶつからず、安全に並ぶための条件を教えてくれます。

連続信号のサンプリング。この例ではエリアシングが生じている。

4. エイリアシングは「コピーが重なって折り返す」現象

 私たちが実際にサンプリングされた離散信号を分析するとき、注目する周波数範囲は、

\displaystyle{
\left[-\frac{1}{2T},\ \frac{1}{2T}\right]
}

という、中央の 1 区間だけです。

 もし、ナイキスト周波数よりも、低いサンプリング周波数で計測(標本化)してしまうと、この帯域に他のコピーが入り込み 、高周波成分が、 観測帯域の内側に押し込まれ、まるで低周波のように見えてしまう現象が起こります。これが、 エイリアシング(aliasing) です。

 エイリアシングは、実際の生活の中でもしばしば目にすることができます。

高速回転している車輪が逆回転して見える現象

 動画カメラのフレームレート(サンプリング周波数)が回転周波数より低いと、本来は高速で前向きに回っているはずの車輪が、あたかもゆっくり 逆方向 に回っているように見えます。これは、高周波の回転成分がナイキスト帯域へ折り返して、偽の低周波成分として観測される典型例です。

格子模様や布地を撮影したときに現れる「しましま模様(モアレ縞)」

 カメラの素子(ピクセルの並び)が持つ一定の空間サンプリング周期を下回る細かい模様を撮影すると、模様の高周波成分が折り返され、低い周波数の干渉パターン(モアレ縞)として現れます。これは「空間周波数版のエイリアシング」です。

パソコン画面をスマホで撮ったときに見える横方向の走査線

 画面の更新周波数(リフレッシュレート)とカメラのフレームレートの組み合わせによって、本来は存在しない明暗の縞が流れるように見えることがあります。これも、高周波の点滅成分が折り返された結果です。

いずれも、「サンプリング周波数より高い周波数成分が折り返され、別の周波数として見えてしまう」という、エイリアシングそのものです。このように、エイリアシングは数学的な抽象概念ではなく、私たちの身の回りのデジタル機器が日常的に経験している現象だと言えます。

5. まとめ

 今回説明したサンプリングに関するさまざまな現象は、すべて「くし形関数のフーリエ変換」という一本の軸から自然に理解できます。サンプリングとは、時間軸で信号にくし形関数を掛け算する操作であり、その結果、信号は時間的にとびとびの点だけが残る形になります。この操作を周波数軸で見ると、くし形関数との畳み込みが起こり、もとのスペクトルが等間隔に無限にコピーされます。

 こうして生じたスペクトルのコピーが互いに重なり始めるかどうかを決める境界が、ナイキスト周波数です。もしサンプリング周波数が十分に高くなく、この境界を下回ると、コピー同士が観測帯域の中で重なり、高周波成分が低周波として姿を変えてしまいます。これがエイリアシングです。

 このように、サンプリングとは何か、ナイキスト周波数がなぜ重要なのか、そしてエイリアシングがなぜ起こるのか――これら一見別々の概念は、実はすべて、くし形関数がもつ「時間軸での積」と「周波数軸での畳み込み」の関係によって統一的に説明できるのです。

 ここでは、サンプリングの理屈を連続信号のフーリエ変換の枠組みで説明しましたが、実際に皆さんが離散信号を分析するときは、離散フーリエ変換を使うことになります。今回の結果は、離散フーリエ変換を扱う際にもまったく同じ注意が必要であることを示しています。すなわち、サンプリングの時点でどのようなスペクトルのコピーが生まれ、どこで重なり、どこまでが正しく観測できるのかを理解しておくことが、離散信号処理の第一歩なのです。

 離散フーリエ変換はあくまで「サンプリングされた世界のフーリエ変換」にすぎません。だからこそ、サンプリングそのものの性質──くし形関数との積と、そのフーリエ変換としての無限コピー──を正しく理解しておくことが、実データを扱ううえで重要な基礎となります。

※ もし記事の中で「ここ違うよ」という点や気になるところがあれば、気軽に指摘していただけると助かります。質問や「このテーマも取り上げてほしい」といったリクエストも大歓迎です。必ず対応するとは約束できませんが、できるだけ今後の記事で扱いたいと思います。それと、下のはてなブログランキングはあまり信用できる指標ではなさそうですが (私のブログを読んでいる人は、実際とても少ないです)、押してもらえるとシンプルに励みになります。気が向いたときにポチッとしていただけたら嬉しいです。