フーリエ変換とは?定義から応用まで入門向けに紹介


フーリエ変換とは?定義から応用まで入門向けに紹介

1. はじめに:波形を「周波数の音色」で聴く魔法

私たちの身の回りには、時間とともに変化する様々な「波」が存在します。例えば、私たちが聞く音は空気の振動が時間的に変化する波ですし、光も電磁場の振動として時間・空間的に変化する波です。電気信号も電圧や電流が時間的に変化する波形として捉えられます。

これらの波形(信号)を扱うとき、私たちは通常「時間」の流れに沿ってその変化を観察します。グラフの横軸が時間、縦軸が信号の強さ(振幅)となっているのを見たことがあるでしょう。これは時間領域(Time Domain)での表現と呼ばれます。

しかし、この時間領域での波形を分析するだけでは見えにくい側面があります。例えば、ある音が「ド」の音(約262Hz)と「ミ」の音(約330Hz)が同時に鳴っている複雑な音だとします。時間領域の波形を見ると、それはギザギザとした複雑な形に見えるかもしれません。この複雑な波形の中に、どんな「音色」が含まれているのか、つまりどんな周波数の成分がどのくらいの強さで含まれているのかを知りたいとき、時間領域の表現だけでは簡単には分かりません。

ここで登場するのが、フーリエ変換 (Fourier Transform) です。フーリエ変換は、時間とともに変化する波形(信号)を、その波形を構成する様々な周波数のサイン波やコサイン波の集まりとして表現し直すための強力な数学的ツールです。簡単に言えば、時間領域で表現された信号を、周波数領域(Frequency Domain)での表現に変換する技術です。

周波数領域で信号を見ると、それぞれの周波数成分がどのくらいの「強さ」(振幅)や「ずれ」(位相)を持っているのかが一目で分かります。先ほどの音の例で言えば、フーリエ変換をかけると、262Hzの成分がこれくらいの強さで、330Hzの成分がこれくらいの強さで含まれている、という情報が得られるのです。まるで、複雑な音楽を聴いて、それぞれの楽器がどんな音色で演奏しているかを分析するようなものです。

この周波数領域での表現は、信号処理、画像処理、通信、物理学、医学など、驚くほど多くの分野で不可欠な役割を果たしています。ノイズの除去、データの圧縮、システムの解析、パターンの検出など、その応用は広範に及びます。

この記事では、この強力なツールであるフーリエ変換について、その基本的な考え方から数学的な定義、デジタル信号処理で使われる形、そして具体的な応用例までを、入門者向けに分かりやすく解説していきます。複雑な数学的な詳細には深入りせず、その本質的なアイデアと応用例に焦点を当てて説明します。

2. 直感的な理解:あらゆる波は「きれいな波」の重ね合わせ

フーリエ変換の基本的なアイデアは、19世紀のフランスの数学者ジョゼフ・フーリエによって提唱されたものです。彼の発見は、「どんなに複雑な周期的な波形であっても、それは異なる周波数を持つ単純なサイン波(正弦波)やコサイン波(余弦波)を適切な強さと位相で重ね合わせることで表現できる」というものでした。後に、この考え方は周期的な波形だけでなく、時間とともに減衰していくような非周期的な波形にも拡張されました。

この考え方を理解するために、いくつか例を挙げてみましょう。

2.1. 足し算で複雑な形を作る

一番単純なサイン波は、ゆるやかな丘が連続するような滑らかな曲線です。周波数が低いサイン波はゆったりと変化し、周波数が高いサイン波はせわしなく変化します。

もし、周波数が低いサイン波と周波数が高いサイン波を足し合わせるとどうなるでしょうか? 得られる波形は、元の二つのサイン波よりも複雑な形になります。さらに、別の周波数のサイン波やコサイン波も足し合わせると、どんどん複雑な波形を作り出すことができます。

フーリエのすごい発見は、この逆もできるということです。つまり、どんなに複雑に見える波形であっても、それを「分解」すれば、いくつかの異なる周波数のサイン波とコサイン波の足し算になっていると考えることができるのです。

例えるなら、複雑な色を分解すると赤、緑、青などの光の三原色の組み合わせになるように、複雑な波形も分解すると様々な周波数の「純粋な波」(サイン波やコサイン波)の組み合わせになる、というイメージです。

2.2. 楽器の音色と倍音

物理的な例を考えてみましょう。ギターの弦を弾くと、特定の周波数の音(基音)が鳴りますが、同時にその基音の整数倍の周波数を持つ音(倍音)も鳴っています。これらの基音と倍音が混ざり合うことで、ギター独特の「音色」が生まれます。ピアノの音色、バイオリンの音色、人の声、それぞれが異なる音色を持っているのは、含まれている倍音の種類や強さが違うからです。

音を時間領域の波形として捉えると、それは複雑な振動パターンを示します。しかし、フーリエ変換を使ってこの波形を周波数領域に変換すると、どの周波数の音(基音や倍音)がどのくらいの大きさで含まれているかが分かります。これこそが、その音の「スペクトル」、つまり「音色」を決める要素なのです。フーリエ変換は、この音のスペクトルを分析するためのツールと言えます。

2.3. ラジオの選局

ラジオ放送も良い例です。空気中には、NHK、FM、AMなど、様々な放送局からの電波(電磁波)が飛び交っています。それぞれの放送局は、異なる周波数を使って情報を送っています。ラジオ受信機は、これらの様々な周波数の電波が混ざり合った信号を受け取っています。

私たちが特定の放送局を聴きたいときは、ダイヤルやボタンでその放送局の周波数に合わせます。これは、受け取った信号の中から、特定の周波数の成分だけを取り出す操作に他なりません。これもまた、信号を周波数領域で考え、特定の周波数成分に注目する行為であり、フーリエ変換の考え方に通じるものです。ラジオ受信機の中には、特定の周波数だけを通す「フィルタ」という機能がありますが、このフィルタ設計もフーリエ変換の知識が使われています。

2.4. なぜ周波数領域が便利なのか?

時間領域での波形は、一つ一つの瞬間の信号の強さを表します。一方、周波数領域での表現は、信号全体がどのような「周期性」や「振動の速さ」の成分で構成されているかを示します。

周波数領域での表現が便利である理由は多岐にわたりますが、主なものを挙げます。

  • 信号の本質を捉えやすい: 多くの自然現象や物理システムは、特定の周波数成分に注目することで本質が見えやすくなります。例えば、機械の異常振動は特定の周波数で大きな振幅を持つピークとして現れることが多いです。
  • フィルタリングが容易: 特定の周波数の成分だけを取り出したり(ノイズ除去、特定信号の抽出)、特定の周波数成分をカットしたり(高音だけを通す、低音だけを通す)といった操作(フィルタリング)が、周波数領域では非常に簡単に行えます。時間領域で同じことをしようとすると、複雑な計算が必要になることが多いです。
  • システムの応答解析: あるシステム(例えばオーディオ機器や電気回路)に特定の周波数の信号を入力したときに、出力がどうなるか(どのくらい大きさが変わるか、どれくらい遅れるか)を分析するのに周波数領域は非常に適しています。
  • データ圧縮: 人間の目や耳は、特定の周波数成分に対して鈍感であったり、あるいは特定の周波数が強く出ている場合に他の周波数がマスクされて聞こえにくくなったりします。周波数領域で信号を分析することで、これらの知覚特性に基づいて、重要でない周波数成分を削減し、データのサイズを小さくする(圧縮)ことができます。(例:JPEGやMP3)

このように、フーリエ変換は信号を「周波数」という異なる視点から捉え直すことで、様々な問題をより簡単に、より効果的に解決するための扉を開いてくれます。

3. 数学的な定義:連続時間フーリエ変換 (CTFT)

入門者向けとはいえ、フーリエ変換の数学的な定義を見ることは、その仕組みを理解する上で重要です。ここでは、最も基本的な形である連続時間フーリエ変換 (Continuous-Time Fourier Transform, CTFT) の定義を紹介します。

連続時間信号 $x(t)$ は、時間 $t$ が連続的に変化する関数です。例えば、マイクが捉える空気の振動や、電気回路の電圧変化などがこれにあたります。

連続時間フーリエ変換は、この時間領域の信号 $x(t)$ を、周波数領域の信号 $X(\omega)$ に変換します。定義式は以下のようになります。

$$
X(\omega) = \mathcal{F}{x(t)} = \int_{-\infty}^{\infty} x(t) e^{-j\omega t} dt
$$

ここで、
* $x(t)$ は時間領域の信号(関数)。$-\infty < t < \infty$ で定義される連続関数。
* $X(\omega)$ は周波数領域の信号(関数)。$-\infty < \omega < \infty$ で定義される連続関数。
* $\mathcal{F}{\cdot}$ はフーリエ変換を表す記号。
* $\int_{-\infty}^{\infty} \cdot dt$ は時間 $t$ について $-\infty$ から $\infty$ までの積分。すべての時間における信号を考慮に入れることを意味します。
* $\omega$ は角周波数 (angular frequency) と呼ばれるもので、周波数 $f$(単位 Hz)と $\omega = 2\pi f$ の関係にあります。単位はラジアン毎秒 (rad/s)。文脈によっては周波数 $f$ を使う場合もありますが、ここでは角周波数 $\omega$ で説明を進めます。
* $j$ は虚数単位で、$j^2 = -1$ です。
* $e^{-j\omega t}$ はオイラーの公式 $e^{j\theta} = \cos \theta + j \sin \theta$ を使って、 $\cos(-\omega t) + j \sin(-\omega t) = \cos(\omega t) – j \sin(\omega t)$ と展開できます。これは、周波数 $\omega$ を持つコサイン波とサイン波を組み合わせた複素関数です。

この積分式の意味するところを考えてみましょう。

インテグラル記号 $\int$ は「足し合わせる」ことを意味します。ここでは、すべての時間 $t$ における $x(t) \cdot e^{-j\omega t}$ の値を足し合わせています。

$e^{-j\omega t}$ は、特定の周波数 $\omega$ を持つ回転ベクトル(複素平面上の円運動)と考えることができます。この式は、元の信号 $x(t)$ に、特定の周波数 $\omega$ を持つ回転ベクトルを「掛け合わせ」、それをすべての時間について「平均(積分)」していると解釈できます。

なぜこのような計算をするのでしょうか?
もし $x(t)$ の中に、ちょうど周波数 $\omega$ と同じ周波数成分が含まれていたとします。この成分と $e^{-j\omega t}$ を掛け合わせると、時間が変化しても常に同じ方向を向くような成分が生まれます。これを積分すると、その特定の周波数成分がどれだけ強く含まれているかを示す大きな値が得られます。
一方、もし $x(t)$ の中に周波数 $\omega$ と異なる周波数成分が含まれていた場合、それを $e^{-j\omega t}$ と掛け合わせると、時間とともに向きが速く(あるいは遅く)変化する成分が生まれます。このような成分を積分すると、プラスの値とマイナスの値が打ち消し合い、結果はゼロに近い値になります。

つまり、この積分操作は、信号 $x(t)$ の中に、特定の周波数 $\omega$ を持つ成分がどのくらい「一致して」含まれているかを検出する操作だと考えることができます。そして、この積分をすべての可能な $\omega$ について行うことで、信号 $x(t)$ を構成するすべての周波数成分の強さ(と位相)を捉えることができるのです。得られた関数 $X(\omega)$ は、各周波数 $\omega$ における信号の「強さ」と「位相」を示す複素数値となります。

3.1. フーリエ逆変換

フーリエ変換によって時間領域から周波数領域へ移ることができましたが、逆に周波数領域の表現 $X(\omega)$ から元の時間領域の信号 $x(t)$ を復元することも可能です。これをフーリエ逆変換 (Inverse Fourier Transform) と呼びます。定義式は以下の通りです。

$$
x(t) = \mathcal{F}^{-1}{X(\omega)} = \frac{1}{2\pi} \int_{-\infty}^{\infty} X(\omega) e^{j\omega t} d\omega
$$

ここで、
* $\mathcal{F}^{-1}{\cdot}$ はフーリエ逆変換を表す記号。
* $\int_{-\infty}^{\infty} \cdot d\omega$ は周波数 $\omega$ について $-\infty$ から $\infty$ までの積分。
* $e^{j\omega t}$ は、周波数 $\omega$ を持つコサイン波とサイン波を組み合わせた複素関数。

この式は、周波数領域で得られた $X(\omega)$ の値(各周波数成分の強さと位相)を使って、様々な周波数 $\omega$ を持つ基本波 $e^{j\omega t}$ を足し合わせる(積分する)ことで、元の時間領域の信号 $x(t)$ を合成できることを意味します。これは、まさに「あらゆる波形はサイン波とコサイン波の重ね合わせで表現できる」というフーリエのアイデアを数式化したものです。

$1/(2\pi)$ という係数は、定義の仕方によって $\frac{1}{\sqrt{2\pi}}$ を両方の変換式に付けたり、片方に $1$ を付けたりといくつかの流儀がありますが、重要なのは逆変換によって元の信号が正確に復元できることです。

3.2. オイラーの公式と複素指数関数

なぜ定義式に $e^{-j\omega t}$ という複素指数関数が登場するのでしょうか? これはオイラーの公式 $e^{j\theta} = \cos \theta + j \sin \theta$ と密接に関係しています。

サイン波やコサイン波は実数の関数ですが、周波数領域での表現を複素数 $X(\omega)$ とすることで、振幅 (Magnitude)位相 (Phase) の両方を一つの関数で扱うことができるようになります。

$X(\omega)$ は一般に複素数なので、$X(\omega) = |X(\omega)| e^{j \phi(\omega)}$ のように極形式で表すことができます。
* $|X(\omega)|$ は振幅スペクトル(Amplitude Spectrum)と呼ばれ、周波数 $\omega$ の成分がどのくらいの「強さ」で含まれているかを表します。
* $\phi(\omega)$ は位相スペクトル(Phase Spectrum)と呼ばれ、周波数 $\omega$ の成分がどのような「ずれ」(時間的な開始位置)を持っているかを表します。

音楽で言えば、振幅スペクトルは各音(ド、ミ、ソなど)がどれくらいの音量で鳴っているかを示し、位相スペクトルはそれらの音が鳴り始めるタイミングの相対的なずれを示します。音色を考える上では振幅スペクトルが重要ですが、元の信号を正確に復元するためには位相スペクトルも不可欠です。

複素指数関数 $e^{j\omega t}$ を使うことで、サイン波 $\sin(\omega t)$ とコサイン波 $\cos(\omega t)$ の両方をまとめて扱うことができ、さらに振幅と位相も自然な形で表現できるため、フーリエ変換の数学的な取り扱いが非常に洗練されたものになります。

CTFTは、理論的な解析には非常に強力ですが、実際の物理信号は無限に続くわけではなく、またコンピューターで扱う信号は離散的な値をとります。そのため、実際の応用ではこのCTFTを基にした別の形のフーリエ変換が使われます。

4. 離散時間フーリエ変換 (DTFT)

実際の信号処理では、連続時間信号を一定の間隔で測定(サンプリング)した離散時間信号を扱うことがほとんどです。例えば、CDやデジタル音声ファイルは、アナログ音声信号を毎秒44100回サンプリングしてデジタルデータに変換したものです。

このような離散時間信号 $x[n]$(ここで $n$ は離散的な時間のインデックス、例えば $n=0, 1, 2, \dots$)に対して定義されるのが、離散時間フーリエ変換 (Discrete-Time Fourier Transform, DTFT) です。

$x[n]$ を離散時間信号とするとき、そのDTFT $X(\omega)$ は以下の式で定義されます。

$$
X(\omega) = \mathcal{F}{x[n]} = \sum_{n=-\infty}^{\infty} x[n] e^{-j\omega n}
$$

ここで、
* $x[n]$ は離散時間信号(数列)。$-\infty < n < \infty$ の整数 $n$ で定義される。
* $X(\omega)$ は周波数領域の信号(関数)。周波数 $\omega$ について定義される連続関数。
* $\sum_{n=-\infty}^{\infty} \cdot$ は離散的な時間インデックス $n$ について $-\infty$ から $\infty$ までの総和。積分が和に変わった点に注目してください。
* $\omega$ は角周波数ですが、ここではサンプリング周波数 $f_s$ で正規化された周波数として扱うことが一般的です。正規化された角周波数 $\hat{\omega} = \omega / f_s$ を使うと、$-\pi \le \hat{\omega} < \pi$ の範囲で考えることが多いです。この範囲を正規化角周波数と呼びます。ここでは簡単のため $\omega$ を使いますが、文脈によって意味合いが少し変わることに注意してください。

CTFTの積分がDTFTでは和に変わっただけのように見えますが、大きな違いが一つあります。それは、DTFTの周波数領域の表現 $X(\omega)$ は、周波数に関して周期関数になるということです。具体的には、$X(\omega) = X(\omega + 2\pi k)$ ($k$は整数) という性質を持ちます。

これは、離散信号ではサンプリング周波数を超える高周波数成分が、それ以下の周波数成分に折り返されてしまう「エイリアシング」という現象と関連しています。そのため、DTFTでは $-\pi$ から $\pi$ までの範囲(あるいは $0$ から $2\pi$ までの範囲)の周波数だけを考えれば十分です。この範囲をブリルアンゾーンなどと呼びます。

4.1. 離散時間フーリエ逆変換

DTFTの周波数領域表現 $X(\omega)$ から元の離散時間信号 $x[n]$ を復元する離散時間フーリエ逆変換 (IDTFT) は、以下の式で定義されます。

$$
x[n] = \mathcal{F}^{-1}{X(\omega)} = \frac{1}{2\pi} \int_{-\pi}^{\pi} X(\omega) e^{j\omega n} d\omega
$$

ここでは、周期性があるため積分範囲は $-\pi$ から $\pi$ までで十分です。周波数領域の関数 $X(\omega)$ は連続ですが、時間領域の信号 $x[n]$ は離散的である点がDTFTの特徴です。

DTFTは離散時間信号の理論的な解析には非常に有用ですが、周波数領域の $X(\omega)$ は連続関数であるため、コンピューターでそのまま計算したり表現したりすることはできません。コンピューターで離散信号を処理するためには、周波数領域も離散化する必要があります。そこで登場するのが、最も実用的なフーリエ変換であるDFTです。

5. 離散フーリエ変換 (DFT)

コンピューター上で信号処理を行う場合、時間領域の信号は有限長の離散的なデータ列であり、周波数領域の分析結果も離散的な周波数での値として得られる方が都合が良いです。この要求に応えるのが、離散フーリエ変換 (Discrete Fourier Transform, DFT) です。

DFTは、長さ $N$ の離散時間信号 $x[n]$(ここで $n = 0, 1, \dots, N-1$)を、 $N$ 個の離散的な周波数成分 $X[k]$(ここで $k = 0, 1, \dots, N-1$)に変換します。定義式は以下のようになります。

$$
X[k] = \mathcal{F}{x[n]} = \sum_{n=0}^{N-1} x[n] e^{-j \frac{2\pi k n}{N}} \quad \text{for } k = 0, 1, \dots, N-1
$$

ここで、
* $x[n]$ は長さ $N$ の離散時間信号(数列)。$n = 0, 1, \dots, N-1$ で定義される。
* $X[k]$ は長さ $N$ の離散周波数領域の信号(数列)。$k = 0, 1, \dots, N-1$ で定義される。
* $\sum_{n=0}^{N-1} \cdot$ は離散的な時間インデックス $n$ について $0$ から $N-1$ までの総和。
* $k$ は周波数インデックスです。対応する周波数は $f_k = k \cdot \frac{f_s}{N}$ となります。($f_s$ はサンプリング周波数)つまり、$k=0$ は直流成分(周波数0)、$k=1$ は最も低い基本周波数、$k=N/2$ はナイキスト周波数(サンプリング周波数の半分)に対応します($N$ が偶数の場合)。
* $e^{-j \frac{2\pi k n}{N}}$ の指数部分 $\frac{2\pi k}{N}$ が、分析する離散的な周波数を表しています。

DFTは、有限長の信号を(見かけ上)周期的に繰り返していると仮定して、その中の各周期的な成分(離散的な周波数のサイン波・コサイン波)を抽出していると解釈できます。

得られる $X[k]$ は複素数であり、その絶対値 $|X[k]|$ がその周波数成分の振幅、偏角 $\arg(X[k])$ がその周波数成分の位相を示します。通常、周波数 $k$ は $0$ から $N-1$ まで考えますが、信号が実数の場合、$k$ と $N-k$ の周波数成分は共役複素数となり、冗長な情報を含みます。物理的な意味を持つのは $k=0$ から $k=N/2$ までの成分です。

5.1. 離散フーリエ逆変換 (IDFT)

DFTによって得られた周波数成分 $X[k]$ から、元の時間領域信号 $x[n]$ を復元する離散フーリエ逆変換 (IDFT) は以下の式で定義されます。

$$
x[n] = \mathcal{F}^{-1}{X[k]} = \frac{1}{N} \sum_{k=0}^{N-1} X[k] e^{j \frac{2\pi k n}{N}} \quad \text{for } n = 0, 1, \dots, N-1
$$

この式は、離散的な周波数 $k$ を持つ基本波 $e^{j \frac{2\pi k n}{N}}$ を、それぞれの重み $X[k]$ を掛けて足し合わせることで、元の離散時間信号 $x[n]$ を合成できることを示しています。ここでも $\frac{1}{N}$ という係数は、定義の流儀によって場所が変わることがあります。

DFTは、コンピュータ上で信号を扱う上で最も基本的なフーリエ変換の形式です。音声分析、画像処理、データ圧縮など、様々なデジタル信号処理の基盤となっています。しかし、このDFTの計算、特に定義式そのままの計算は、信号長 $N$ が大きくなると膨大な計算量が必要になるという問題がありました。

6. 高速フーリエ変換 (FFT)

DFTの定義式に従って素朴に計算を行うと、 $N$ 個の周波数成分それぞれに対して $N$ 回の和の計算が必要で、各和の計算には $N$ 回の乗算が含まれるため、合計で約 $N^2$ に比例する計算量が必要となります。信号長 $N$ が数千、数万、あるいはそれ以上になると、$N^2$ という計算量は現実的ではありません。例えば $N=1024$ なら約100万回、$N=65536$ なら約40億回の計算が必要です。

この計算量を劇的に削減したのが、高速フーリエ変換 (Fast Fourier Transform, FFT) アルゴリズムです。FFTは、DFTの計算を効率的に行うためのアルゴリズムの総称であり、DFTそのものを変えるものではありません。様々な種類のFFTアルゴリズムが存在しますが、最も有名なのはCooley-Tukeyアルゴリズムです。

FFTアルゴリズムを使うと、DFTの計算量が $N^2$ から $N \log_2 N$ に削減されます。例えば $N=1024=2^{10}$ の場合、計算量は約 $1024 \times 10 \approx 1$万回程度になり、$N^2$ の約100万回と比べて劇的に少なくなります。$N=65536=2^{16}$ の場合も、計算量は約 $65536 \times 16 \approx 100$万回程度となり、$N^2$ の約40億回と比べて圧倒的に高速です。

6.1. FFTの基本的なアイデア (Cooley-Tukey)

Cooley-Tukeyアルゴリズムは、信号長 $N$ が2のべき乗である場合に最も効率的です($N=2^m$)。基本的なアイデアは「分割統治法」です。

長さ $N$ のDFTを、長さ $N/2$ の2つのDFTに分割して計算し、その結果を組み合わせて元の長さ $N$ のDFTの結果を得る、という操作を繰り返します。これを再帰的に行うことで、最終的には長さが1のDFT(これは入力信号そのもの)にたどり着き、計算を劇的に削減できます。

具体的には、長さ $N$ の信号 $x[n]$ を、偶数番目のサンプル $x[0], x[2], \dots, x[N-2]$ からなる長さ $N/2$ の信号と、奇数番目のサンプル $x[1], x[3], \dots, x[N-1]$ からなる長さ $N/2$ の信号に分けます。それぞれの信号についてDFT(つまり長さ $N/2$ のDFT)を計算し、それらを組み合わせて元の長さ $N$ のDFTの結果 $X[k]$ を得る、という手順を踏みます。

この分割を繰り返していくと、計算構造は「バタフライ演算」と呼ばれる基本的な計算単位を持つグラフで表現されます。

6.2. FFTの重要性

FFTアルゴリズムの発明(または再発見)は、デジタル信号処理の分野に革命をもたらしました。それまで理論的なツールであったDFTが、FFTによって初めて実用的なツールとなり、リアルタイムでの音声処理、画像処理、通信などが可能になりました。私たちが日常使っているデジタル機器の多くで、このFFTが裏側で高速に動作しています。例えば、携帯電話での音声通話、Wi-Fi通信、音楽プレーヤー、画像編集ソフトなど、枚挙にいとまがありません。

現在では、$N$ が2のべき乗でない場合や、並列計算に適したFFTアルゴリズムなど、様々な改良版や亜種が存在します。しかし、基本的な考え方はCooley-Tukeyアルゴリズムに基づいていることが多いです。

7. フーリエ変換の基本的な性質

フーリエ変換(特にCTFTを基本に、DTFTやDFTも同様の性質を持つ)は、いくつかの重要な数学的な性質を持っています。これらの性質は、信号処理やシステム解析を行う上で非常に有用です。いくつか代表的な性質を紹介します。

記号として、$\mathcal{F}{x(t)} = X(\omega)$、$\mathcal{F}{y(t)} = Y(\omega)$ とします。

7.1. 線形性 (Linearity)

フーリエ変換は線形変換です。つまり、信号の定数倍と和のフーリエ変換は、それぞれのフーリエ変換の定数倍と和に等しくなります。

$\mathcal{F}{ax(t) + by(t)} = aX(\omega) + bY(\omega)$

ここで、$a$ と $b$ は定数です。この性質は、複雑な信号をいくつかの単純な信号に分解して別々に解析し、その結果を組み合わせるというアプローチを可能にします。

7.2. 時間シフト特性 (Time Shifting)

時間領域で信号を時間 $t_0$ だけシフト(遅延または進める)させると、周波数領域ではその周波数成分の位相が周波数に比例して変化します。振幅スペクトルは変化しません。

$\mathcal{F}{x(t – t_0)} = X(\omega) e^{-j\omega t_0}$

これは物理的に非常に納得のいく性質です。波形全体を時間的にずらしても、波形を構成する各周波数成分の「強さ」(振幅)は変わりませんが、「波の開始位置」(位相)は周波数に応じてずれます。高い周波数の波ほど、同じ時間シフト量でも位相のずれは大きくなります。

7.3. 周波数シフト特性 (Frequency Shifting)

周波数領域で信号を周波数 $\omega_0$ だけシフトさせると、時間領域では元の信号に周波数 $\omega_0$ の複素指数関数が掛け合わされます。

$\mathcal{F}^{-1}{X(\omega – \omega_0)} = x(t) e^{j\omega_0 t}$

これは通信システムにおける変調(Modulation)の原理と深く関わっています。例えば、音声信号(低い周波数帯域)を高い周波数の搬送波 $e^{j\omega_0 t}$ に乗せて電波として遠くまで飛ばすのが変調ですが、これは周波数領域で見ると、音声信号のスペクトルを搬送波の周波数 $\omega_0$ の位置にシフトさせることに相当します。

7.4. 対称性 (Symmetry)

入力信号 $x(t)$ が実数関数である場合、そのフーリエ変換 $X(\omega)$ は $|X(\omega)| = |X(-\omega)|$(振幅スペクトルは偶関数)かつ $\phi(-\omega) = -\phi(\omega)$(位相スペクトルは奇関数)、すなわち $X(-\omega) = X^(\omega)$(共役対称)という性質を持ちます。ここで $X^(\omega)$ は $X(\omega)$ の複素共役です。

これにより、実数信号のフーリエ変換を考える場合、負の周波数領域の情報は正の周波数領域の情報から得られるため、通常は正の周波数 ($\omega \ge 0$) だけを分析すれば十分です。

7.5. 畳み込み定理 (Convolution Theorem)

これはフーリエ変換の最も強力で応用範囲の広い性質の一つです。

時間領域での2つの信号の畳み込み (Convolution) は、周波数領域でのそれぞれのフーリエ変換の積 (Multiplication) に対応します。

$\mathcal{F}{x(t) * y(t)} = X(\omega) Y(\omega)$

ここで $*$ は畳み込み演算子です。畳み込みは、あるシステム(例えばフィルタ)に信号を入力したときの出力信号を計算する際に現れる重要な演算です。時間領域での畳み込み計算は複雑で計算量も多いことが多いですが、周波数領域に変換すると単純な掛け算になるため、計算が非常に楽になります。

また、逆も成り立ちます。時間領域での2つの信号の積は、周波数領域でのそれぞれのフーリエ変換の(定数倍された)畳み込みに対応します。

$\mathcal{F}{x(t) y(t)} = \frac{1}{2\pi} (X(\omega) * Y(\omega))$

この定理は、信号処理におけるフィルタリング、システム解析、確率論、さらには物理学における応答関数の計算など、様々な分野で中心的な役割を果たします。例えば、音声信号から特定のノイズを取り除くフィルタリング処理は、時間領域での信号とフィルタの応答関数の畳み込みとして表現されますが、周波数領域では単に信号のスペクトルとフィルタの周波数応答を掛け合わせるだけで計算できます。

7.6. パーセバルの定理 (Parseval’s Theorem) / プランシュレルの定理 (Plancherel’s Theorem)

時間領域の信号のエネルギー(またはパワー)は、周波数領域の信号のエネルギー(またはパワー)と等しくなります。

$\int_{-\infty}^{\infty} |x(t)|^2 dt = \frac{1}{2\pi} \int_{-\infty}^{\infty} |X(\omega)|^2 d\omega$

この定理は、信号のエネルギーが時間領域と周波数領域のどちらで計算しても保存されることを示しています。信号のエネルギー分布を周波数成分ごとに分析する際に有用です。

これらの性質は、フーリエ変換が単なる表現の変換にとどまらず、信号やシステムの本質を捉え、解析や操作を効率的に行うための強力な枠組みを提供していることを示しています。

8. フーリエ変換の応用例

フーリエ変換は、科学技術のあらゆる分野で利用されています。ここでは、その代表的な応用例をいくつか紹介します。

8.1. 信号処理

最も古典的かつ広範な応用分野です。

  • ノイズ除去 (Filtering): 信号に含まれるノイズが、目的の信号とは異なる周波数帯域にある場合、フーリエ変換を使って信号を周波数領域に移し、ノイズ成分に対応する周波数帯域の成分をゼロにするか減衰させます。その後、フーリエ逆変換で時間領域に戻せば、ノイズが除去された信号が得られます。例えば、古い録音からハムノイズ(電源由来の低い周波数ノイズ)を取り除いたり、通信信号から特定の干渉波を除去したりといったことに使われます。
  • 音声処理:
    • イコライザ: オーディオ機器のイコライザは、音信号を周波数帯域ごとに分割し、それぞれの帯域の音量を調整することで音色を変化させます。これは周波数領域での操作そのものです。
    • 音声認識・合成: 音声の特徴を分析する際に、音の時間的な変化だけでなく、含まれる周波数成分(スペクトル)の変化を分析することが重要です。また、人間の声のスペクトルをモデル化して音声を合成する技術にも利用されます。
    • MP3などの音声圧縮: 人間の耳は、特定の大きな音があると、その近くの周波数帯域の小さな音が聞き取りにくくなるという性質(マスキング効果)を持っています。MP3圧縮では、音声信号を周波数領域に変換し、このマスキング効果を利用して、人間の耳には感知されにくい周波数成分の情報を削減することでデータ量を減らします。
  • 画像処理:
    • 画像圧縮 (JPEG): JPEG画像圧縮では、画像を小さなブロックに分け、それぞれのブロックに対して離散コサイン変換 (Discrete Cosine Transform, DCT) というフーリエ変換とよく似た変換を行います。これにより、画像データが周波数成分に分解されます。人間は画像の高周波成分(細かい模様や輪郭)よりも低周波成分(大まかな明るさや色)に対して鈍感である性質を利用して、高周波成分の情報を削減・量子化することでデータ量を大幅に削減します。
    • フィルタリング: 画像のぼかし(低周波成分を残す)やシャープ化(高周波成分を強調する)、エッジ検出、ノイズ除去なども、画像を周波数領域に変換して特定の周波数成分を操作することで効率的に行うことができます。例えば、画像の高周波成分を取り除くことで、細かいノイズやディテールが消え、画像が滑らかになります(ぼかし)。
  • 通信:
    • 変調・復調: 情報信号(音声、データなど)を電波に乗せて送る際に、情報信号の周波数スペクトルを高い周波数帯域に移動させる変調が必要です。受信側では、その逆の復調を行い、元の情報信号を取り出します。これらのプロセスは、周波数領域での信号操作として理解・設計されます。直交周波数分割多重方式 (OFDM) のような最近の通信技術では、情報を複数の異なる周波数に分けて同時に送ることで高速・大容量通信を実現しており、そのコア技術としてFFT/IFFTが不可欠です。
  • 振動解析: 機械の振動、地震波、構造物の応答などを分析する際に、どのような周波数の振動成分が含まれているかを調べることで、異常の原因特定や構造物の安全性の評価を行います。特に機械の故障診断では、特定の部品の異常が特定の周波数成分の増加として現れることが多いため、振動データの周波数分析が広く行われています。

8.2. 物理学

物理現象の解析において、フーリエ変換は基本的なツールの一つです。

  • 波動解析: 音波、光波、量子力学的な波動関数など、様々な波の性質を分析するのに使われます。例えば、光のスペクトル(どのような周波数の光がどれだけ含まれているか)を分析することは、物質の性質を調べたり、天体の組成を調べたりする上で非常に重要です。
  • 量子力学: 量子力学において、粒子の位置と運動量はフーリエ変換対の関係にあります。位置表示での波動関数をフーリエ変換すると運動量表示での波動関数が得られ、その逆も成り立ちます。不確定性原理は、このフーリエ変換対の性質(時間と周波数、位置と運動量などのペアは、どちらか一方の広ががりが大きいと他方の広ががりは小さくなる)として理解することができます。
  • 結晶学: X線回折は、結晶構造を調べる重要な手法です。X線が結晶によって回折されるパターンは、結晶の電子密度のフーリエ変換に対応することが知られており、この回折パターンを解析することで結晶構造を決定します。

8.3. 工学

  • 制御工学: システム(機械、回路、プラントなど)に特定の周波数の信号(入力)を与えたときに、出力がどのように応答するか(振幅や位相がどう変化するか)を調べることで、システムの特性を評価できます。この周波数応答解析は、システムの安定性や性能を評価し、制御システムを設計する上で非常に重要であり、フーリエ変換(特にラプラス変換やZ変換といったフーリエ変換の仲間)が用いられます。
  • 回路解析: 電気回路に様々な周波数の信号を入力したときの応答を解析する際に、周波数領域の解析が有効です。フィルタ回路の設計などもフーリエ変換を用いて行われます。

8.4. 医学

  • MRI (Magnetic Resonance Imaging): MRIは、人体内の水素原子核が発する電磁波を捉えて画像を生成します。この電磁波信号は、空間的な位置情報が周波数情報に変換された形で含まれており、フーリエ変換を用いて周波数空間のデータから位置空間のデータ(つまり画像)を再構成します。まさに空間的な情報を周波数変換して画像を得ている例です。
  • CT (Computed Tomography): CTスキャンも、X線透過データを数学的に処理して断層画像を生成する際に、ラドン変換というフーリエ変換と密接に関連する数学的手法が利用されています。
  • 生体信号解析: 脳波 (EEG) や心電図 (ECG) などの生体信号は、様々な周波数成分の重ね合わせです。フーリエ変換を用いてこれらの信号を周波数分析することで、特定の周波数帯域の活動レベルの変化を捉え、病気の診断や脳の状態の評価に役立てます。例えば、脳波のアルファ波(約8-13Hz)、ベータ波(約14-30Hz)などの活動は、周波数分析によって捉えられます。

8.5. その他

  • データ解析・スペクトル分析: 株価、気候変動データ、生物学的データなど、時間とともに変化する様々なデータを分析する際に、周期性や含まれる振動成分を調べるためにフーリエ変換が使われます。特定の周期で繰り返されるパターンや、特定の周波数で顕著になる変動などを検出できます。
  • 天文観測: 天体からの光や電波のスペクトルを分析することで、その天体の組成、温度、速度などを知ることができます。

これらの例は、フーリエ変換応用のほんの一部に過ぎません。時間や空間的なパターンを、それを構成する「波」の成分に分解するというフーリエ変換の考え方は、自然現象や人工的なシステムを理解し、操作するための普遍的なツールとして、私たちの社会の様々な基盤を支えています。

9. フーリエ変換を学ぶ上での注意点・難しさ

フーリエ変換は強力なツールですが、その理解と応用にはいくつかの数学的な概念や注意点があります。

  • 複素数の理解: フーリエ変換は本質的に複素数を扱います。複素平面、オイラーの公式、複素数の掛け算の意味などを理解していると、変換の意味するところや性質がより深く理解できます。
  • 積分・無限和: CTFTやDTFTの定義には無限積分や無限和が登場します。これは数学的な理想化であり、現実の信号は有限長ですが、理論的な性質を理解する上で重要です。
  • 連続 vs 離散、無限 vs 有限: CTFT、DTFT、DFTはそれぞれ扱う信号の形態(連続か離散か、無限長か有限長か)に応じて定義が異なります。それぞれの違いと関係性を理解することが重要です。特に、アナログ信号をデジタル化する際のサンプリングや量子化が、フーリエ変換の結果にどのような影響を与えるかを理解する必要があります。
  • エイリアシング: 連続時間信号をサンプリングして離散時間信号にする際に、元の信号に含まれる高い周波数成分が、サンプリング周波数の半分(ナイキスト周波数)以下の低い周波数として誤って認識されてしまう現象です。これはDTFTやDFTの周波数スペクトルが周期性を持つことの原因であり、信号処理を行う上で避けて通れない重要な問題です。これを防ぐためには、サンプリング前にナイキスト周波数以上の成分をカットするフィルタ(アンチエイリアシングフィルタ)を使うなどの対策が必要です。
  • 窓関数 (Windowing): DFTは有限長の信号を扱いますが、これは元の無限長信号の一部を「切り取った」と見なすことができます。この「切り取る」操作は、時間領域で信号にある区間だけ1で、それ以外は0の矩形関数を掛けることに相当します。畳み込み定理によれば、これは周波数領域では元の信号のスペクトルと矩形関数のスペクトル(これはSinc関数という広がりを持った形になります)との畳み込みになります。この畳み込みにより、本来鋭いピークだった周波数成分がぼやけて広がって見えたり、隣接する周波数成分の解析に悪影響を及ぼしたりする現象(リーケージ)が発生します。このリーケージを抑制するために、矩形関数以外の様々な形状の窓関数(ハニング窓、ハミング窓など)が考案されており、信号分析の目的に応じて適切な窓関数を選ぶ必要があります。
  • スペクトルの解釈: DFTによって得られる離散的な周波数スペクトル $X[k]$ は、連続的な周波数スペクトルを離散的な点でサンプリングしたものと見なすことができます。スペクトルの各点が具体的にどの周波数に対応するのか(周波数分解能)、そして長さ $N$ の信号から得られる $N$ 個のスペクトル点が信号のどの部分に対応するのか(時間分解能とのトレードオフ)を正しく理解することが重要です。

これらの注意点や難しさを理解するためには、理論的な学習と並行して、実際に信号処理ソフトウェア(MATLAB, PythonのSciPy/NumPyなど)を使ってフーリエ変換を実行し、結果を観察することが非常に有効です。

10. まとめ:周波数のメガネをかけて世界を見る

フーリエ変換は、「時間」という視点から信号や波形を捉えるのではなく、「周波数」という異なる視点から捉え直すための強力な数学的ツールです。複雑な波形を、様々な周波数を持つ単純なサイン波やコサイン波の組み合わせとして分解・表現することで、信号の本質や隠れた性質が見えてきます。

私たちは通常、時間とともに変化する世界を直接的に知覚しています。しかし、フーリエ変換は私たちに「周波数のメガネ」を与えてくれます。このメガネをかけると、音は様々な高さの音色の組み合わせとして聞こえ、光は虹のような色のスペクトルとして見え、機械の振動は特定の周波数での揺れとして感じられ、複雑なデータからは周期的なパターンや特定の振動成分が浮かび上がってきます。

連続時間信号のためのCTFT、離散時間信号の理論的な解析のためのDTFT、そしてコンピュータでの実用的な計算のためのDFT(そしてその高速計算アルゴリズムFFT)といった様々な形式がありますが、その根底にあるのは「波形を周波数成分に分解する」という共通のアイデアです。

このアイデアとそれに伴う数学的な枠組みは、信号処理、画像処理、通信、物理学、工学、医学、データ解析など、現代科学技術のほぼ全ての分野で不可欠な基盤となっています。ノイズ除去、データ圧縮、システム解析、現象の理解など、数え切れないほどの応用が、フーリエ変換によって支えられています。

もちろん、この記事で触れた内容はフーリエ変換の入門に過ぎません。フーリエ変換の世界は奥深く、さらに発展的な理論や応用が数多く存在します。しかし、ここで紹介した基本的な考え方、定義、性質、そして応用例を理解することで、フーリエ変換がなぜこれほど強力で広く使われているのか、その片鱗を感じ取っていただけたなら幸いです。

もしあなたが今後、信号やデータを扱う機会があるなら、ぜひこの「周波数のメガネ」をかけてみてください。きっと新たな発見や理解が得られるはずです。フーリエ変換は、あなたが世界を分析し、理解し、操作するための強力な道具となるでしょう。


コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール