TL

デジタルフィルタ設計と窓関数

狙った周波数だけ通すフィルタを、リプルと遷移幅のトレードオフから設計できる。窓関数法・周波数サンプリング法・双一次変換の原理を式で押さえます。

応用DSPデジタルフィルタFIRIIR窓関数双一次変換最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.窓関数法は理想フィルタの逆変換で得た無限長 sinc を有限長で打ち切り、窓を掛けて実現する。矩形打ち切りはギブス現象で約9%のオーバーシュートを残す。
  • 2.窓を変えるとメインローブ幅(遷移幅)とサイドローブ高さ(阻止量・リプル)がトレードオフする。ハミング/ハン/カイザーで β を上げるほど阻止量は増え、遷移帯は広がる。
  • 3.IIR は双一次変換でアナログ伝達関数を s = (2/T)(z-1)/(z+1) により z 領域へ写像する。周波数軸が非線形に圧縮されるため、設計前にプリワープで補正する。

理想フィルタは実現できない、から始める

デジタルフィルタ設計の出発点は、周波数領域で欲しい応答(理想の通過帯域と阻止帯域)を決め、それを時間領域のインパルス応答へ落とすことです。ところが理想的な「壁のように切り立った」特性は物理的に実現できません。本稿では、なぜ実現不能なのか、そのギャップを 窓関数法・周波数サンプリング法(FIR)と双一次変換(IIR) でどう埋めるのか、そして避けられない 通過帯域リプルと遷移幅のトレードオフ を原理から開封します。信号処理の土台は プログラミング の数値計算とも地続きです。

理想ローパスの周波数応答 H(e^jω) はカットオフ ωc まで 1、それ以上で 0 の矩形です。これを逆離散時間フーリエ変換すると、インパルス応答は次の sinc になります。

h[n] = (ωc / π) * sinc(ωc * n / π)
     = sin(ωc * n) / (π * n)      (n ≠ 0)
h[0] = ωc / π

この h[n]n が正負の無限まで伸び、しかも非因果的(未来のサンプルを要する)です。実装するには 有限の長さに切り詰め、時間をずらして因果的にする 必要があり、ここで理想からのズレが生まれます。

窓関数法:打ち切りとギブス現象

最も素朴な方法は、無限長 h[n]-M ≤ n ≤ M(長さ N = 2M+1)で単純に打ち切ることです。これは時間領域で矩形窓を掛けるのに等しく、周波数領域では 理想応答と矩形窓のスペクトル(ディリクレ核)の畳み込み になります。畳み込みの結果、カットオフ付近に振動が乗ります。

ギブス現象は次数を上げても消えない

矩形打ち切りで生じる不連続点近傍のオーバーシュートは、フィルタ長 N を増やしても振動の幅が狭くなるだけで、ピークの高さは約 9%(不連続の跳躍量に対して)に留まり続けます。これがギブス現象です。長さを増やせば遷移帯は急峻になりますが、リプルは減りません。リプルを下げたいなら「窓の形」を変える必要があります。

そこで矩形以外の、両端でなだらかに 0 へ減衰する窓 w[n] を掛けます。実際に実装する係数は次式です。

h_fir[n] = h[n - M] * w[n]     n = 0 .. N-1   (M だけ右シフトして因果化)

窓のスペクトルは中央の メインローブ と周囲の サイドローブ を持ちます。設計特性はこの2つで決まります。

  • メインローブ幅 → 遷移帯域幅(通過から阻止へ移る急峻さ)を支配する。狭いほど急峻。
  • サイドローブの高さ → 阻止帯域の減衰量通過帯域リプルを支配する。低いほど深い阻止が得られる。

窓ごとのトレードオフを読む

窓の選択は「遷移帯を狭くする(メインローブを細く)」ことと「阻止量を深くする(サイドローブを低く)」ことの綱引きです。両立はできません。代表的な窓を比較します。

窓関数メインローブ幅(相対)最大サイドローブ阻止帯域減衰の目安
矩形最狭 (2)-13 dB約 21 dB
ハン (Hann)広 (4)-31 dB約 44 dB
ハミング (Hamming)広 (4)-41 dB約 53 dB
ブラックマン最広 (6)-58 dB約 74 dB
カイザーβ で可変β で可変β で連続調整

矩形は遷移帯こそ最も急峻ですが阻止量が浅く、ブラックマンは深い阻止と引き換えに遷移帯が広くなります。同じ阻止量なら、フィルタ長 N を伸ばすほど遷移帯は狭められる ため、実務では「必要な阻止量から窓を選び、必要な遷移幅から長さを決める」順で設計します。

カイザー窓はトレードオフを1つのパラメータに集約する

カイザー窓は形状パラメータ β を持ち、β を上げるとサイドローブが下がって阻止量が増える代わりにメインローブが広がります。所望の阻止量 A(dB) と遷移帯域幅 Δω から、β と必要次数 N を経験式(カイザーの式)で直接見積もれるのが利点です。目安として、阻止量 50 dB なら β はおよそ 4.5、次数はおおよそ N ≈ (A - 8) / (2.285 * Δω) で求まります。

周波数サンプリング法:欲しい応答を直接置く

窓関数法が「時間領域の理想応答を削る」のに対し、周波数サンプリング法 は「周波数領域で欲しい応答を等間隔に指定する」設計です。長さ N のフィルタに対し、N 点で所望の周波数応答 Hd[k]k = 0 .. N-1)を並べ、逆離散フーリエ変換(IDFT)でインパルス応答を得ます。

h[n] = (1/N) * Σ_k  Hd[k] * exp( j * 2π * k * n / N )    k = 0 .. N-1

サンプリング点 ω = 2πk/N の上では応答が厳密に Hd[k] に一致します。問題は 点と点の間 です。理想的なステップをそのまま指定すると、サンプル間で大きなリプルが生じます。

遷移サンプルでリプルを抑える

通過帯域と阻止帯域の境界に、値を 0 でも 1 でもない中間値(遷移サンプル)を1〜2点差し込むと、サンプル間のオーバーシュートが劇的に下がります。最適な遷移値は最適化で求めることが多く、これにより窓関数法に近い阻止量を、より直感的な「周波数を置く」操作で得られます。境界を急峻にするほどリプルが増える点は窓関数法と同じトレードオフです。

FIR はインパルス応答が有限で、係数を左右対称(h[n] = h[N-1-n])にすれば 厳密な直線位相(群遅延が全周波数で一定)を保証できます。これは波形の相対的な形を崩さない大きな利点で、画像や通信で重宝されます。ただし急峻な特性には長い N が要り、演算量とレイテンシが増えます。

IIR と双一次変換:アナログ設計を写す

急峻な特性を短い次数で得たいときは IIR(無限インパルス応答)を使います。定番は、成熟したアナログフィルタ(バターワース、チェビシェフ、楕円)の伝達関数 H(s) を、離散系の H(z) へ写す 双一次変換 です。連続系の s を次の写像で置き換えます。

s = (2/T) * (z - 1) / (z + 1)       T: サンプリング周期

この写像は s 平面の左半面(安定極)を z 平面の単位円内へ1対1で写すため、元のアナログフィルタが安定なら離散化後も必ず安定 です。これは単純な微分の差分近似(前進差分)にはない、双一次変換の決定的な長所です。

周波数の非線形圧縮(ワーピング)を必ず補正する

双一次変換はアナログ角周波数 Ω とデジタル角周波数 ωΩ = (2/T) * tan(ω/2) で対応づけます。tan により、高い周波数ほど強く圧縮され、ω = π(ナイキスト)に無限大の Ω が写り込みます。この非線形なひずみがワーピングです。放置するとカットオフが設計値からずれます。対策は、設計前に狙いのデジタル周波数 ωcΩc = (2/T) * tan(ωc/2) へ変換(プリワープ)してアナログ側を設計し、その後で双一次変換を掛けることです。これで臨界周波数がぴたりと合います。

FIR と IIR、どちらを選ぶか

同じ仕様なら IIR の方が圧倒的に低次数(少ない乗算・少ないメモリ)で急峻な特性を実現できます。代償は、位相特性が一般に非線形(群遅延が周波数依存)で波形がひずむこと、そしてフィードバックを持つため係数の量子化やオーバーフローで 不安定化しうる ことです。FIR は必ず安定し直線位相を作れる代わりに、同じ急峻さに高い次数が必要です。

試験・面接での頻出ポイント
  • ギブス現象:矩形打ち切りのリプルは次数を上げても約9%残る。低減は窓の形で。
  • トレードオフの本質:メインローブ幅=遷移帯、サイドローブ高=阻止量/リプル。両立不可。
  • 直線位相の条件:FIR で係数が対称/反対称なら群遅延一定。IIR は一般に不可。
  • 双一次変換の安定性:s 左半面 → z 単位円内。安定なアナログ→安定なデジタル。
  • ワーピングΩ=(2/T)tan(ω/2)。プリワープでカットオフのずれを補正。

まとめ

デジタルフィルタ設計は「実現不能な理想を、制御されたトレードオフで近似する」営みです。要点は、(1) 理想 sinc は無限長・非因果なので打ち切りと因果化が要り、矩形打ち切りはギブス現象で約9%のリプルを残すこと、(2) 窓関数法ではメインローブ幅(遷移帯)とサイドローブ高(阻止量・リプル)が綱引きし、カイザー窓は β でこれを連続調整できること、(3) 周波数サンプリング法は欲しい応答を直接置き、遷移サンプルでリプルを抑えること、(4) IIR は双一次変換でアナログ設計を安定に写せるが、tan による周波数ワーピングをプリワープで補正する必要があること、です。急峻さ・位相・演算量・安定性の要求を天秤にかけ、FIR と IIR を使い分けてください。

信号処理・制御 Article

デジタルフィルタ設計と窓関数を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

DSP

比較で見る軸

難易度: advanced / カテゴリ: 信号処理・制御 / タグ数: 6

導入後に効く点

窓を変えるとメインローブ幅(遷移幅)とサイドローブ高さ(阻止量・リプル)がトレードオフする。ハミング/ハン/カイザーで β を上げるほど阻止量は増え、遷移帯は広がる。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
信号処理・制御
タグ数
6

判断チェックリスト

  • 自社の用途が「DSP / デジタルフィルタ」に近いか確認する。
  • 強みである「窓関数法は理想フィルタの逆変換で得た無限長 sinc を有限長で打ち切り、窓を掛けて実現する。矩形打ち切りはギブス現象で約9%のオーバーシュートを残す。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

DSPデジタルフィルタFIRIIR窓関数DSPデジタルフィルタFIR