マルチレート信号処理(間引き・補間)
サンプリングレートを自在に変えられると、演算量も帯域も無駄なく削れる。間引きと補間、折り返し・イメージを防ぐフィルタ配置、有理数比変換の原理を式で押さえます。
- 1.デシメーション(間引き)はレートを 1/M に下げる処理で、先にアンチエイリアスフィルタで fs/(2M) 以上を落としてから M 個に1個だけ残す。順序を逆にすると折り返しが混入する。
- 2.インターポレーション(補間)はレートを L 倍に上げる処理で、標本間に L-1 個の 0 を挿入(ゼロ詰め)してから、生じたスペクトルのイメージをアンチイメージフィルタで除去する。
- 3.有理数比 L/M の変換は「L 倍補間 → M 間引き」の順で行い、間のローパスは補間側と間引き側の要件を兼ねてカットオフを min(π/L, π/M) に取る。ポリフェーズ分解で無駄な乗算を省ける。
なぜレートを変えたいのか
一つのシステムの中でサンプリングレートは一定である必要はありません。音声を 48 kHz で録りながら内部処理は 16 kHz で回し、出力段でまた上げる——このようにレートを部分ごとに変える技術がマルチレート信号処理です。低いレートで処理すれば乗算回数もメモリ帯域も減り、フィルタの遮断特性も緩められます。本稿では、レートを下げるデシメーション(間引き)、上げるインターポレーション(補間)、その際に必ず要るアンチエイリアス/アンチイメージフィルタ、そして任意の有理数比 L/M への変換とポリフェーズ実装までを原理で追います。土台は 標本化定理 にあります。
基本操作は2つだけです。整数 M によるダウンサンプラ(間引き器)と、整数 L によるアップサンプラ(ゼロ詰め器)です。まずこの2つが周波数軸で何をするかを正確に押さえます。
ダウンサンプリング:スペクトルが伸びて折り返す
ダウンサンプラは M 個に1個だけ標本を残し、残りを捨てる操作です。
y[n] = x[n·M] (M 個おきに間引く)
新しいレートは fs' = fs / M になります。時間軸で標本間隔を M 倍に間延びさせることは、周波数軸ではスペクトルを M 倍に横方向へ引き伸ばす(新しいナイキスト fs'/2 = fs/(2M) まで縮む)ことに等しく、しかも元スペクトルの M 個のコピーが 2π/M おきに重なり合います。元信号が新ナイキスト fs/(2M) を超える成分を持っていると、それらが低域へ写り込みます。これはまさに再標本化に伴うエイリアシング(折り返し)です。
fs/(2M) 以上の成分を残したまま間引くと、折り返した偽成分が本物の低域に混ざり、後段では二度と分離できません。そこで間引きの直前に、新ナイキスト fs/(2M) 未満だけを通すデジタルローパス(アンチエイリアスフィルタ)を掛けます。「フィルタしてから間引く」この順序が絶対で、逆順は誤りです。フィルタ+ダウンサンプラをまとめてデシメータと呼びます。
デシメータのカットオフは正規化角周波数で ωc = π/M(fs/(2M) に相当)に置きます。急峻なローパスが要るため、FIR を使うのが一般的です。
アップサンプリング:ゼロ詰めが生むイメージ
アップサンプラは、隣り合う標本の間に L-1 個の 0 を挿入してレートを L 倍にする操作です。
y[m] = x[m/L] (m が L の倍数のとき)
y[m] = 0 (それ以外)
新しいレートは fs' = L · fs です。0 を詰めても新しい情報は増えず、周波数軸ではスペクトルが 1/L に横方向へ圧縮され、その圧縮された複製(イメージ)が 2π/L おきに元スペクトルのコピーとして並びます。ゼロ詰めそのものはエイリアシングを起こしません(情報を捨てていないため)が、本来ベースバンドにしかなかったはずのスペクトルの余分な複製(イメージ)が高域に居座ってしまいます。
挿入した 0 は「まだ値が決まっていない点」です。これを埋めるのが補間フィルタで、周波数軸で見ればベースバンドだけを残しイメージを削るローパスです。時間軸では、離散的な標本の間を滑らかに内挿する働きに対応します。ゼロ詰め+このアンチイメージフィルタをまとめてインターポレータと呼びます。フィルタのカットオフは元のナイキストを保つ ωc = π/L に置きます。
一点だけ利得に注意が要ります。L-1 個の 0 を挟むと平均パワーが 1/L に薄まるため、補間フィルタの通過域利得を L 倍にして振幅を補償します。
恒等式:フィルタと再標本化の交換
なぜ「フィルタしてから間引く/ゼロ詰めしてからフィルタ」という順序になるのか、下の対応表で二つの処理を対比すると構造が見えます。デシメータは削ってから捨て、インターポレータは水増ししてから削る、という鏡像の関係です。
| 項目 | デシメーション(1/M) | インターポレーション(L倍) |
|---|---|---|
| レート変化 | fs → fs/M(下げる) | fs → L·fs(上げる) |
| 再標本化操作 | M個に1個残す(間引き) | L-1個の0を挿入(ゼロ詰め) |
| 起きる問題 | 折り返し(エイリアシング) | 複製(イメージ) |
| フィルタの役割 | アンチエイリアス | アンチイメージ |
| フィルタとの順序 | フィルタ → 間引き | ゼロ詰め → フィルタ |
| カットオフ ωc | π/M | π/L |
| 通過域利得 | 1 | L(0詰めの減衰を補償) |
順序が逆だと破綻する理由は明快です。間引きを先にすればフィルタで消すはずの高域が既に折り返した後で、除去のしようがありません。補間でゼロ詰めを後にすれば、フィルタ出力を再び 0 で分断してしまいイメージが復活します。
有理数比 L/M:整数でない倍率をつくる
44.1 kHz(CD)から 48 kHz(DAT/映像)への変換のように、倍率が整数にならない場合は有理数比 L/M で近似します。48000/44100 = 160/147 なので L = 160, M = 147 です。手順は必ず 「先に L 倍補間 → 後で M 間引き」 の順にします。
間引きを先に行うと、目的レートに達する前に有用な帯域を捨ててしまい、後から補間しても失われた情報は戻りません。先に L 倍へ上げてから M で下げれば、途中の高いレート上で必要帯域を保ったまま処理できます。この非可換性はマルチレート設計の要点です。
補間と間引きが連続するため、間の2つのローパス(アンチイメージ用とアンチエイリアス用)は1つに統合できます。統合フィルタのカットオフは両方の要件を同時に満たす必要があり、正規化角周波数で次のように、より厳しい(低い)方を採ります。
ωc = min( π/L , π/M ) 通過域利得 = L
L > M(レートを上げる方向)なら π/L < π/M なのでアンチイメージ側(π/L)が支配し、L < M(下げる方向)ならアンチエイリアス側(π/M)が支配します。カットオフを間違えると、必要な帯域を削るか、逆にイメージ/折り返しを残すことになります。
ポリフェーズ分解:捨てる乗算を最初からしない
素朴な実装は無駄だらけです。デシメータは高レートで全サンプルをフィルタ計算してから M 個に1個以外を捨て、インターポレータは大半が 0 の入力に対してフィルタを回します。捨てる出力の計算や、0 との乗算に演算を費やしています。これを解消するのがポリフェーズ分解です。
長さ N のフィルタ係数 h[k] を、添字を M(または L)で割った剰余ごとに M 個のサブフィルタ(ポリフェーズ成分)E0, E1, … に振り分けます。
E_p[k] = h[p + k·M] p = 0 .. M-1 (位相 p のサブフィルタ)
すると、次の「恒等変換」でフィルタとレート変換の順序を入れ替えられます。
- デシメーション:ダウンサンプラをフィルタの前へ移し、各サブフィルタを低いレートで動かしてから加算する。全乗算が
fs/Mのレートで済む。 - インターポレーション:アップサンプラをフィルタの後ろへ移し、各サブフィルタを低いレートで動かして出力を順に切り替える(コミュテータ)。0 との乗算が構造的に消える。
ポリフェーズ実装では、フィルタの乗算がすべて低い方のレートで実行されるため、演算量は素朴実装のおよそ 1/M(デシメーション)または 1/L(インターポレーション)に減ります。捨てる値を計算しない・0 を掛けない、という当たり前を構造として保証するのが本質です。大きなレート比を一段で行うより、M = M1·M2·… と多段に分けて各段を緩いフィルタで構成すると、さらに総次数を下げられます(多段デシメーション)。
まとめ
マルチレート信号処理は「レートを部分ごとに最適化して、演算とフィルタ負荷を削る」技術です。要点は、(1) ダウンサンプラは 1/M へ下げスペクトルを伸ばして折り返すため、間引きの前にカットオフ π/M のアンチエイリアスフィルタが要ること、(2) アップサンプラはゼロ詰めで L 倍に上げイメージを生むため、ゼロ詰めの後にカットオフ π/L・利得 L のアンチイメージフィルタが要ること、(3) 有理数比 L/M は「補間 L → 間引き M」の順で行い、統合ローパスのカットオフは min(π/L, π/M) を採ること、(4) ポリフェーズ分解で捨てる乗算・0 との乗算を排し、演算量を 1/M や 1/L へ落とせること、です。この原理はソフトウェア無線・オーディオのサンプリングレート変換・FIR/IIR フィルタ を用いた前処理まで、レートが混在するあらゆる系で共通の土台になります。
信号処理・制御 Article
マルチレート信号処理(間引き・補間)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
DSP
比較で見る軸
難易度: advanced / カテゴリ: 信号処理・制御 / タグ数: 6
導入後に効く点
インターポレーション(補間)はレートを L 倍に上げる処理で、標本間に L-1 個の 0 を挿入(ゼロ詰め)してから、生じたスペクトルのイメージをアンチイメージフィルタで除去する。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- 信号処理・制御
- タグ数
- 6
判断チェックリスト
- 自社の用途が「DSP / マルチレート」に近いか確認する。
- 強みである「デシメーション(間引き)はレートを 1/M に下げる処理で、先にアンチエイリアスフィルタで fs/(2M) 以上を落としてから M 個に1個だけ残す。順序を逆にすると折り返しが混入する。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。