2つの条件、2つの係数
k+1個の自由係数を持つフィルタは、その伝達関数に関してちょうどk+1個の条件を満たすことができます。ハミングはこれを最も単純な非自明なケースで示しました:2つの係数、2つの条件。
条件
- f = 1/6の場合: H(1/6) = 1 (この周波数は変わらずに通る)
- f = 1/3の場合: H(1/3) = 0 (この周波数は完全に阻止される)
フィルタの形式
入力x_nと1つの遅延を持つ2つの係数aとbを使用するフィルタ:
y_n = a · x_n + b · x_{n−1}
固有関数を代入する
入力 e^{i2πfn}、出力 H(f) · e^{i2πfn}。右辺は次を与えます:
H(f) · e^{i2πfn} = a · e^{i2πfn} + b · e^{i2πf(n−1)}
e^{i2πfn}で割ります:
H(f) = a + b · e^{−i2πf}
2つの条件を2つの未知数を持つ2つの方程式に適用します。
係数を求める
H(f) = a + b·e^{−i2πf}にf = 1/6を代入:
1 = a + b·e^{−i2π/6} = a + b·(cos(−π/3) + i·sin(−π/3)) = a + b·(1/2 − i√3/2)
f = 1/3を代入:
0 = a + b·e^{−i2π/3} = a + b·(−1/2 − i√3/2)
これら2つの方程式から、ハミングはa = 1/2、b = 1/2を得ました — 3サンプル平均と同じです(出力は中間位置)。
完全なフィルタ
両条件を満たすフィルタは次の形を持ちます:
y_n = (x_{n−1} + x_n + x_{n+1}) / 2
位置nでの出力は前のサンプル、現在のサンプル、& 次の入力サンプルを使用します。
伝達関数:
H(f) = (e^{i2πf} + 1 + e^{−i2πf}) / 2 = (2cos(2πf) + 1) / 2 = cos(2πf) + 1/2
検証:
- H(1/6) = cos(π/3) + 1/2 = 1/2 + 1/2 = 1 ✓
- H(1/3) = cos(2π/3) + 1/2 = −1/2 + 1/2 = 0 ✓
他の周波数では:H(0) = 1 + 1/2 = 3/2 (ゲイン付きでDCを通す)、H(1/2) = −1 + 1/2 = −1/2。
洞察:デジタルフィルタはアナログRCフィルタがハードウェアで実装するものをソフトウェアで実装します。係数の選択は周波数応答を解析的に制御します。
複数の周波数での伝達関数
伝達関数H(f) = cos(2πf) + 1/2は、2つの設計点だけでなく、すべての周波数に適用されます。
ギブスの発見
ハミングはマイケルソンの話をしました — マイケルソン・モーリー実験で有名な人 — 75項までのフーリエ級数を計算するアナログマシンを組み立てた人です。不連続関数をその係数から再構成すると、そのマシンはジャンプの近くで永続的なオーバーシュートを示しました。
マイケルソンは地元の数学者に尋ねました。彼らはその機器を責めました。ギブスだけが聞きました。
ギブス現象:N項に切り詰められたフーリエ級数がステップ不連続性を近似するとき、近似はジャンプの高さの約8.9%を超えます — そしてこのオーバーシュートはNが増加しても減少しません。より多くの項はオーバーシュートスパイクを狭めますが、決して排除しません。
数学的には:N項フーリエ級数は不連続性を除くすべての場所で点ごとに収束します。不連続性では、部分和はジャンプの中点に収束しますが、ジャンプの近くの部分和の最大値は1.0(単位高さステップの場合)ではなく1.0895に近づきます。
フィルタにとってなぜ重要か
理想的なローパスフィルタはステップ関数伝達関数を持ちます:f < f_c の場合H(f) = 1、f > f_c の場合H(f) = 0。その不連続性は通過帯域とストップバンドの間にあり、有限長フィルタ(切り詰められたフーリエ級数)がその周波数応答でギブスリップルを示すことを意味します。
結果:切り詰められたフーリエ級数設計だけでは、使用される係数がいくつであっても、通過帯域とストップバンドの両方で約9%のリップルを持つフィルタを生成します。
ギブス現象の含意
ハミングはこの結果を使用してウィンドウ関数を動機付けました:理想的なフーリエ係数に滑らかにテーパーするウィンドウを乗じると、ギブスオーバーシュートが劇的に削減されます。
ハミングウィンドウ:w_k = 0.54 + 0.46·cos(πk/N)。このウィンドウはギブスリップルを0.2%未満に削減します。
トレードオフ:ウィンドウ処理は遷移を滑らかにしますが、遷移バンドを広げます。より鋭いカットオフは常によりたくさんの係数を必要とします。