RC フィルタのカットオフ周波数と、実際に取れる減衰
1.6kHz の RC フィルタは、100kHz のノイズを 1/60(−36dB)にします。ゼロにはなりません。フィルタは「遮断」ではなく「減衰」で、その量は 1 次なら周波数比で決まります。
−3dB 点と、その先の傾き
1 次ローパスフィルタ(R と C)のカットオフ周波数は fc = 1 ÷ (2πRC) です。1kΩ と 100nF なら 1.59kHz で、出力は入力の 0.707 倍(−3dB)です。
カットオフより上では、周波数が 10 倍になるごとに −20dB です。正確には |H| = 1 ÷ √(1 + (f ÷ fc)²) で、数値は下の表のとおりです。
信号とノイズが 10 倍しか離れていなければ、1 次フィルタで取れる減衰は 20dB、100 倍離れていれば 40dB です。それ以上は、次数を上げるか、fc を下げて周波数を離すしかありません。
| f ÷ fc | 振幅 | dB | 位相遅れ |
|---|---|---|---|
| 0.1 | 0.995 | −0.04dB | −5.7° |
| 0.5 | 0.894 | −1.0dB | −26.6° |
| 1 | 0.707 | −3.0dB | −45° |
| 2 | 0.447 | −7.0dB | −63.4° |
| 5 | 0.196 | −14.1dB | −78.7° |
| 10 | 0.0995 | −20.0dB | −84.3° |
| 100 | 0.01 | −40.0dB | −89.4° |
信号側にも影響が出る
信号の周波数が fc の 1/10 なら振幅は 0.5% しか減りませんが、位相は 5.7° 遅れます。制御ループのセンサ信号や、複数チャンネルの同時性が要る計測では問題です。振幅を 0.1% 以内にするには fc を信号の 22 倍以上、位相を 1° 以内にするには 57 倍以上にします。
時間領域では整定時間です。ステップ入力に対し、出力が最終値の 1% 以内に入るまで 4.6τ(τ = RC)、0.1% 以内なら 6.9τ かかります。1kΩ × 100nF(τ = 100µs)なら 1% 整定に 460µs で、ADC で多チャンネルを切り替えて読むときは、この時間を待たないと前の値が混ざります。
ノイズを 40dB 落とすフィルタは、信号を 100 倍遅くするのと同じです。
入出力のインピーダンスが式の前提
fc = 1 ÷ (2πRC) は、信号源のインピーダンスがゼロで、出力に何もつながっていないときの式です。実際には、信号源の出力抵抗 Rs が R に直列に加わり、負荷の入力抵抗 RL が C に並列に入ります。
Rs が R の 1/10 以上あると fc が目に見えて下がります。出力抵抗 10kΩ のセンサに R = 10kΩ を付けると、実効的な R は 20kΩ で fc は半分です。RL が R の 10 倍程度だと、直流ゲインが 0.9 倍に落ち、fc は上がります。目安は Rs ≦ R ÷ 10、RL ≧ 10 × R で、収まらなければ前後にバッファを入れます。
ADC の入力に置く C は、サンプリング容量(数〜数十 pF)の 100 倍以上あれば、サンプリング時の電圧の落ち込みが 1% 以下になります。
コンデンサの自己共振で減衰は頭打ちになる
計算上は 1MHz で −56dB でも、実物の 100nF は 1MHz でコンデンサではないかもしれません。積層セラミック 1608 の 100nF は ESL 0.5nH 程度と直列共振して 20MHz 前後でインピーダンスが最小になり、それより上ではインダクタです。減衰はそこで頭打ちです。
10µF なら共振は 2MHz 程度、1nF なら 200MHz 程度で、大容量ほど高周波で効きません。低い fc と高周波の減衰を両立したいときは、大容量と小容量を並列にします(反共振に注意)。高抵抗(100kΩ 以上)も、浮遊容量(0.1〜0.5pF)で高周波をバイパスし、100kΩ と 0.2pF なら 8MHz から上で減衰が止まります。
数十 MHz 以上のノイズには、RC より LC(フェライトビーズとコンデンサ)が向いています。
2 段にするとき
同じ R と C を 2 段重ねると、2 段目が 1 段目の負荷になり、fc がずれて傾きも −40dB/decade に届きません。2 段目の R を 1 段目の 10 倍以上(C は 1/10)にします。1kΩ + 100nF の後に 10kΩ + 10nF、といった組み合わせです。
段間にバッファを入れれば同じ R・C を使えます。急峻な特性なら 2 次のアクティブフィルタ(サレン・キーなど)が向いています。
デジタル信号の RC:チャタリング除去
スイッチのチャタリング除去に 10kΩ + 100nF(τ = 1ms)の RC を使うのは定番ですが、信号がゆっくり立ち上がるので、入力がスレッショルド付近に長くとどまります。通常の CMOS 入力では、判定が何度も行き来したり、貫通電流が流れたりします。
なまらせた信号はシュミットトリガ入力に入れます。GPIO は多くがそうですが、データシートで確認し、無ければ 74HC14 などを間に入れます。
RC フィルタの計算機で、ノイズの周波数での減衰量を確認できます。
よくある質問
ノイズを完全に除去するには、カットオフをどこに置けばよいですか。
R と C の組み合わせはどう選べばよいですか。同じ fc なら何でもよいですか。
電源ラインのノイズ除去に RC を使えますか。
位相遅れは何に影響しますか。
参考にした規格・資料
- Horowitz & Hill, The Art of Electronics — RC フィルタの周波数特性・位相・整定時間
- 各 MLCC メーカのインピーダンス特性データ — 自己共振周波数と ESL
- 各マイコンメーカのデータシート — GPIO のシュミットトリガ特性、ADC のサンプリング容量と入力インピーダンス