SIGNAL / フィルタ
フィルタ設計ツール
カットオフ周波数を出すだけの計算機は多くあります。設計で実際に困るのは「サンプリング周波数の半分で何dB落ちているか」と「ノイズを削った代償に応答がどれだけ遅れるか」なので、そこを数値で出します。
使っている式
1次 RC: fc = 1 / (2πRC) ロールオフ 20 dB/dec
1次 RL: fc = R / (2πL)
2次 RLC: f0 = 1 / (2π√(LC)) ロールオフ 40 dB/dec
Q = (1/R)·√(L/C)
RCローパスの伝達関数 H(jω) = 1 / (1 + jω/ωc)
利得 |H| = 1 / √(1 + (f/fc)²) 位相 = −atan(f/fc)カットオフ周波数では利得が −3.01 dB、位相が −45° になります。1ディケード上では −20.04 dB です。理想の漸近線は −20 dB/dec ですが、カットオフ付近では漸近線から ずれるので、ボード線図では実際の値を描いています。
ナイキスト周波数での減衰が本題です
ADC の前にローパスを置く理由は、サンプリング周波数の半分(ナイキスト周波数)より上の成分が折り返して信号に化けるのを防ぐためです。折り返した成分は後からデジタル処理で 取り除けません。だから「カットオフが何Hzか」ではなく「ナイキストで何dB落ちているか」が 設計判断になります。
必要な減衰量 = 20·log10(2^bit)
12bit → 72.2 dB
16bit → 96.3 dB
1次フィルタなら 20 dB/dec なので、72.2 dB 落とすには 3.61 ディケード必要
→ カットオフは ナイキスト / 4096 以下12bit ADC を 1kHz でサンプリングするなら、ナイキストは 500Hz。1次 RC で折り返しを 1LSB 以下に するにはカットオフを 0.12Hz まで下げる必要があり、これでは信号も通りません。1次フィルタだけでアンチエイリアスを成立させるのは基本的に無理です。 サンプリング周波数を上げる(オーバーサンプリング)か、2次以上にするか、 折り返す成分が実際には存在しないことを確認するかのどれかになります。
ノイズを削ると応答が遅れます
カットオフを下げるほどノイズは減りますが、時定数 τ = 1/(2πfc) が伸びます。 ステップ入力が最終値の 1LSB 以内に入るまでの時間は次のとおりです。
整定時間 t = τ · ln(2^bit)
12bit → τ × 8.32
16bit → τ × 11.09この時間がサンプリング周期より長いと、毎回前の値を引きずるので実効的な分解能が落ちます。 制御ループに入れる場合はさらに位相遅れが安定性を削るので、群遅延も見てください。
2次にすると Q が付いてきます
RLC の 2次にすればロールオフは 40 dB/dec になりますが、Q が大きいと共振点で利得が 持ち上がります。共振点の利得は Q 倍(Q=5 なら +14 dB)で、ステップ応答も振動します。 平坦な特性が欲しいなら Q = 0.707(バターワース)を狙ってください。
含んでいない要素
- コンデンサの ESR と誘電損失、インダクタの直流抵抗と自己共振周波数
- 部品の温度係数。セラミックコンデンサは直流バイアスで容量が大きく落ちます
- 次段の入力インピーダンスによる負荷効果。RC を多段にするなら段間のインピーダンス比を 十分取るか、バッファを挟んでください
- オペアンプを使うアクティブフィルタの有限帯域と入力容量