この記事では、デジタル信号処理の基本として「周波数特性の変化」を追いながら、フーリエ変換の直感的なイメージをつかむことを目的としています。
フーリエ変換は数学的に厳密に扱うことも重要ですが、まずは工学的なユースケースで感覚的に理解できることが重要です。そのために必要な最低限の直感を紹介します。
本記事では、信号処理の流れを 「標本化 → 量子化 → 復元」 の順に解説していきます。
前提
フーリエ変換の性質の中で特に重要なのが 畳み込み定理 です。
- 時間領域での信号の乗算
f・g
は、周波数領域での畳み込みF*G
に対応する - 周波数領域での特性の乗算
F・G
は、時間領域での畳み込みf*g
に対応する
この関係を押さえておくだけで、工学的な信号処理の理解が一気に楽になります。
もちろん他にも、線形性、時間シフト=位相シフト、周波数シフト=変調、微分定理など重要な性質がありますが、本記事では畳み込み定理を中心に紹介します。
信号処理前の信号
下図はデジタル信号処理前の素の状態のアナログ信号を示しています。
左は時間領域の信号、右はその周波数特性です。
周波数帯域は広く、微量成分ではありますが高周波成分まで含まれています。
アナログ信号とデジタル信号の違い
- アナログ信号:時間方向・振幅方向ともに連続値
- デジタル信号:時間方向・振幅方向ともに離散値
そのため、アナログ信号をデジタル化するには
- 時間方向を離散化(標本化)
- 振幅方向を離散化(量子化)
の2段階が必要です。
標本化(時間方向の離散化)
まず、時間方向を離散化します。
アンチエイリアシングフィルタ
標本化前には、アンチエイリアシングフィルタを用いて帯域を制限します。ナイキスト周波数 fcをカットオフとし、信号の高周波成分を除去します。
結果、時間信号から高周波成分が取り除かれ、周波数特性は -fc ~ fc
に収まります。
サンプリング処理
標本化とは、時間軸信号を一定間隔 T = 1/fs
(fsはサンプリング周波数)でサンプリングすることです。
この処理は「くし型関数」と呼ばれる周期インパルス列との乗算として表現できます。
- サンプリング周波数は
fs = 2fc
とします - くし型関数の周波数特性は、fs間隔でインパルスが並ぶ形となります
周波数領域での挙動
フーリエ変換の性質より、時間領域での乗算は周波数領域での畳み込みに対応します。
周波数領域で、fcでカットした元信号の周波数特性とくし形関数の周波数特性の畳み込み演算が行われます。
そのため、標本化後の周波数特性は以下のように fs間隔で繰り返されます。
標本化定理
この状態では「時間軸信号が劣化しているように見える」かもしれません。
しかし実際には 標本化定理 によって、条件 fs ≥ 2fc
を満たしていればアナログ信号を完全に復元可能です。
ここまでで、時間方向の離散化が完了しました。この状態は時間軸信号がサンプリングされているため、アナログ信号から劣化しているような印象がありますが、これは誤解です。
標本化信号の周波数特性をみれば情報が保存されていることは一目瞭然です。
ただ、まだ振幅方向が連続値となっているため、デジタル信号ではありません。デジタル信号は、時間方向と振幅方向が共に離散値の必要があります。
量子化(振幅方向の離散化)
次に、振幅方向を離散化します。
量子化では、信号値を量子化レベルに丸め込みます。これはサンプリング定理とは無関係の処理で、デジタル信号にするために必要な処理となります。元の振幅値に近いレベル値にマッピングします。このときに発生する元信号の振幅値との誤差を量子化誤差と呼びます。
量子化誤差は帯域全体に広がるホワイトノイズのように振る舞い、信号にわずかなノイズを付加します。
誤差は発生しますが、十分な量子化ビット数があれば、このノイズのパワーは無視できるほど小さくなります。
下図では誇張されていますが、実際の誤差は非常に小さいです。
ここまでの作業で時間軸方向も振幅方向も離散化することができ、デジタル信号となりました。
復元(デジタル → アナログ)
最後に、デジタル信号をアナログ信号に戻します。
理想的なローパスフィルタ
理想的なローパスフィルタは以下の特性を持ちます。
- 周波数特性:カットオフ周波数
fc
まで通過、それ以外は 0 - 時間領域:矩形関数のフーリエ変換に対応し、sinc関数となる
Sinc 関数による補間
標本化信号に対してローパスフィルタをかけることは、周波数領域で矩形関数を掛けることに相当します。
すたわち、時間領域で標本化された信号と、sinc関数による畳み込みとなります。各標本点に乗算されたsinc関数が総和されることで標本点間が補間されることはイメージできると思います。
詳細は省きますが、この総和処理は数学的に見事に基に信号を補間するように作用します。
この処理により、サンプリング前のアナログ信号が再現されます。
ただし量子化を行った場合は、その影響によりわずかな量子化ノイズが含まれます。
カットオフ周波数がfcのローパスフィルタをかけるということは、対象の信号の周波数特性に、この矩形関数を乗算することを意味します。
周波数領域での乗算であるので、時間軸領域では畳み込みとなります。標本化された信号にsinc関数を畳み込むと、各標本点ごとにsinc関数を掛け算してそれらの総和をとることになります。この処理は数学的に上手くできており、標本点以外の部分が見事に補完され、元の信号に戻ります。
ただし、量子化の影響により、わずかに量子化ノイズが付加されているため、この部分は元信号との差異になることに注意が必要です。量子化を行わない場合は、完全に元に戻ります。すなわち、元の信号は標本点のみあればその情報量を保持していることを意味します。