サンプリング周波数変換(または
標本化周波数変換)は、ある
サンプリング周波数で
デジタル化された信号を、別の
サンプリング周波数を持つ信号に変換する処理です。この技術は、オーディオやビデオなどの
デジタル信号処理において、異なるサンプリングレートを持つデータ間の互換性を確保するために不可欠です。サンプリングレート変換とも呼ばれ、単にレート変換と省略されることもあります。
アップサンプリングとダウンサンプリング
サンプリング周波数を上げる操作をアップサンプリング、下げる操作をダウンサンプリングと呼びます。これらの操作は、
サンプリング周波数変換の基本的な構成要素となります。
用途
サンプリング周波数変換は、以下のような様々な用途で利用されます。
異なるサンプリング周波数の音声規格間の変換
オーバーサンプリング(A/D、D/A変換の前処理)
スーパーサンプリング(信号処理を高サンプリング周波数で行う)
データサイズの節約
基本原理
サンプリング周波数 `f1` の信号を `f2` の信号に変換する場合を考えます。
時間領域: `f1` でサンプリングされた信号は、時間間隔 `1/f1` で並んだパルスの連なりとして表現できます。
周波数領域: `f1/2` 以上の周波数帯域では、元の信号成分は失われ、エイリアス(偽信号)が現れます。
サンプリング周波数変換は、補間(インタポレーション)と間引き(デシメーション)という2つの基本的な処理で構成されます。
整数倍のアップサンプリング
`f1` < `f2` で、`f2` が `f1` の
整数倍の場合、以下の手順で変換を行います。
1.
拡張: 各サンプルの間に `f2/f1 - 1` 個のゼロを追加します。
2.
補間: 拡張された信号を、`f1/2` を
遮断周波数とする
ローパスフィルタ(LPF)に通します。
補間処理は、元のサンプル間の値を補完する役割を果たします。
整数分の1のダウンサンプリング
`f1` > `f2` で、`f2` が `f1` の
整数分の1の場合、以下の手順で変換を行います。
1.
間引き: `f1/f2 - 1` 個のサンプルを間引きます。
2.
アンチエイリアシング: 間引く前に、`f2/2` を
遮断周波数とするLPFに通します。
間引き処理は、サンプル数を減らすことでデータ量を削減します。
`f1` と `f2` が
整数倍または
整数分の1の関係にない場合は、以下の手順で変換を行います。
1. `f1` と `f2` の
最小公倍数 `f_work` を中間的な
サンプリング周波数とします。
2. `f1` の信号を `f_work` に補間します。
3. `f_work` の信号を `f2` に間引きます。
実際には、補間フィルタと間引きフィルタを両方かける代わりに、`min(f1, f2)/2` を
遮断周波数とするLPFを一度だけかけることで計算量を削減できます。
その他の変換方法
高速フーリエ変換法
高速フーリエ変換(FFT)を利用して、
周波数領域で
サンプリング周波数変換を行う方法です。
1. 原信号をFFTで
周波数領域に変換します。
2. アップサンプリングの場合は、
周波数領域データの両端にゼロを追加します。ダウンサンプリングの場合は、両端のデータを削除します。
3. 逆FFTで
時間領域に戻します。
畳み込み積分を使った方法
畳み込み積分の性質を利用して、
サンプリング周波数変換を行う方法です。
1. 変換前のPCM波形とLPFに相当する関数を畳み込み積分します。
2. 理想的なLPFとしては、矩形関数を使う方法がありますが、この場合、
時間領域ではsinc関数との畳み込みになります。
3. sinc関数は連続関数であるため、離散的なサンプル間の値を補完するようにデータを読み出すことが可能です。
2
次元以上のデータ(
ビットマップ画像など)に対しては、各
次元に1
次元の
サンプリング周波数変換を適用します。画像の場合は、LPFが対称である必要があります。
サンプリング周波数変換によって、画像の拡大・縮小が行われます。
まとめ
サンプリング周波数変換は、
デジタル信号処理において不可欠な技術です。様々な応用が可能であり、オーディオやビデオなどの
デジタルメディアの品質を維持しながら、データ量の調整や異なる規格間の互換性を提供します。理解を深めることで、より高度な信号処理技術の活用につながるでしょう。