信号のゴミ、拾ってない? RCフィルタの「通す・止める」を1画面で体感
センサの値がフラフラ振れる。オーディオアンプの出力にジリジリとノイズが乗る。「もうちょっとキレイな波形にならないかな」——電子工作やアナログ回路をいじっていると、必ずぶつかる壁だ。
そこで最初に手が伸びるのがRCフィルタ。抵抗1本とコンデンサ1本で不要な周波数成分を落とせる、回路設計の基本中の基本。このツールでは、R値とC値を入れるだけでカットオフ周波数を即算出し、ボード線図でゲインと位相の周波数特性まで一気に可視化できる。逆に「1kHzでカットしたい」と目標周波数を入れれば、E24系列の抵抗値と標準コンデンサ値を逆算してくれる。
なぜRCフィルタ設計シミュレータを作ったのか
開発のきっかけ
ArduinoのADCにセンサをつないだとき、読み値のノイズがひどくて困った。ソフトウェアフィルタで対処しようとしたが、サンプリング定理的にADC前段にアナログフィルタを入れるのが正解だと気づいた。DigiKeyやCalculator.netの計算ツールを使ったが、出てくるのはカットオフ周波数の数値だけ。「本当にこのR/Cで-20dB/decのロールオフになるのか? 確認したい周波数でのゲインはいくつなんだ?」という疑問に答えてくれるツールが見つからなかった。
ボード線図を描画してくれるSPICEシミュレータは高機能すぎるし、手軽にブラウザで「R/C入れる→ボード線図見る→E24でサジェストされる」が一体化したツールが欲しかった。それも日本語で。
こだわった設計判断
双方向計算を最初から組み込んだ。部品箱にある抵抗・コンデンサの組み合わせから周波数を計算するパターンと、目標周波数から部品値を逆算するパターン、どちらも実務では頻繁に使う。逆算時にはE24系列の最寄り値と標準コンデンサ値を自動でサジェストし、「標準部品を使ったときの実際のカットオフ周波数」まで再計算して表示する。理論値と実部品値のギャップがひと目でわかる。
確認周波数機能も加えた。「うちの回路で問題になっている50Hzのハムノイズ、このフィルタでどれだけ落ちる?」といったピンポイントの確認がワンステップでできる。
RCフィルタとは——抵抗とコンデンサが作る周波数の関門
RC回路とカットオフ周波数の基本
RCフィルタとは、抵抗(R)とコンデンサ(C)を組み合わせて特定の周波数帯域の信号を通過または遮断する受動フィルタ回路のこと。もっとも単純なアナログフィルタであり、電子回路の入門で必ず登場する。
日常的なたとえで言うと、コーヒーのフィルタに近い。コーヒーフィルタは液体(低い周波数=ゆっくり変化する成分)を通し、粉(高い周波数=速い変化)を止める。これがまさにローパスフィルタの原理だ。
ローパスフィルタ(LPF)とハイパスフィルタ(HPF)
**ローパスフィルタ(LPF)**は低い周波数を通過させ、高い周波数を減衰させる。回路としては、抵抗を直列に入れ、コンデンサを並列(グランドへ)に接続する。高周波ではコンデンサのインピーダンス 1/(2πfC) が小さくなるため、信号がグランドに逃げて出力が小さくなる。
**ハイパスフィルタ(HPF)**は逆に高い周波数を通し、低い周波数を遮断する。コンデンサを直列に、抵抗を並列に置く構成だ。低周波ではコンデンサのインピーダンスが大きくなり、信号がブロックされる。
カットオフ周波数 fc と -3dBの意味
カットオフ周波数は次の式で求まる:
fc = 1 / (2π × R × C)
この周波数でゲインが-3dBになる。-3dBとは電圧比で約70.7%、電力比で50%に相当する。つまりカットオフ周波数は「信号のパワーが半分になるポイント」だ。
1次RCフィルタの伝達関数は:
- LPF: H(jω) = 1 / (1 + jωRC)
- HPF: H(jω) = jωRC / (1 + jωRC)
カットオフ周波数を超えると、ゲインは10倍の周波数変化(1デケード)あたり-20dBずつ減衰する。これを「-20dB/dec のロールオフ」と呼ぶ。
時定数 τ(タウ)とRCフィルタの過渡応答
時定数 τ = R × C は、フィルタの応答速度を表す重要なパラメータ。ステップ入力に対して:
- 1τ で出力が最終値の63.2%に到達
- 3τ で95%
- 5τ で99.3%(実用上の完全充電)
時定数とカットオフ周波数は fc = 1/(2πτ) の関係にある。時定数が大きいほどカットオフ周波数は低くなり、ゆっくりとした変化しか通さなくなる。
フィルタ設計を怠ると何が起きるか——実務で本当に痛い話
ADCのエイリアシング問題
アナログ-デジタル変換器(ADC)にはナイキスト周波数(サンプリング周波数の半分)という上限がある。これを超える周波数成分が入力されると「エイリアシング」が発生し、本来存在しない偽の周波数成分がデジタルデータに混入する。
たとえば1kHzでサンプリングするADCに、フィルタなしで600Hzのノイズが入ると、400Hz(= 1000 - 600)の偽信号として記録される。ADCの前段にアンチエイリアスフィルタ(ローパスフィルタ)を入れるのは鉄則だ。
オーディオ回路の周波数特性劣化
オーディオアンプのカップリングコンデンサが小さすぎると、低音域がハイパスフィルタで切られてしまう。「低音が出ない」という症状の原因が、実はRCフィルタのカットオフ周波数設計ミスだったというのはよくある話。20Hzまで再生したいなら、カットオフを20Hz以下に設定する必要がある。
EMC対策の基本
電磁両立性(EMC)対策において、電源ラインやI/Oピンに入れるRCフィルタは基本中の基本。IEC 61000-4-2(静電気放電)やCISPR 32(放射エミッション)の試験をパスするために、適切なカットオフ周波数の設計は必須だ。
RCフィルタ設計が活きる場面
センサ信号のノイズ除去(組込みエンジニア向け)
温度センサやポテンショメータの出力に乗る高周波ノイズ。ADCの前にローパスフィルタを入れるだけで、ソフトフィルタでは取りきれない高周波成分をハードウェアレベルで除去できる。
オーディオ回路のトーンコントロール
ギターエフェクターやヘッドホンアンプの設計で、高音域のカットや低音域のブーストにRCフィルタの知識は欠かせない。カットオフ周波数をどこに設定するかで音質が決まる。
電源リップルの平滑化
スイッチング電源のリップルノイズ除去に、パスコン(バイパスコンデンサ)をRC的に設計する。デジタルICの電源ピン近くに配置する0.1µFのコンデンサも、実はRCフィルタとして機能している。
Arduino・Raspberry Piの入力保護
マイコンのGPIOに外部信号を入れるとき、チャタリング除去やノイズ除去のためにRCフィルタを入れる。時定数を適切に設定すれば、数百µsのチャタリングをきれいに除去できる。
基本の使い方
3ステップでRCフィルタの特性を確認できる。
Step 1: フィルタ種別と計算方向を選ぶ
ローパス(LPF)かハイパス(HPF)を選択し、「R/C→周波数」の順計算か「周波数→R/C」の逆算かを選ぶ。
Step 2: 値を入力する
順方向なら抵抗値とコンデンサ値を入力。標準コンデンサのプリセットからワンタップで選べる。逆方向なら目標カットオフ周波数とコンデンサ値を入力すればOK。
Step 3: ボード線図と結果を確認
カットオフ周波数・時定数・充放電時間が一覧表示される。ボード線図でゲインと位相の周波数特性をグラフィカルに確認。特定の周波数でのゲインを調べたいときは「確認周波数」に入力すれば、ピンポイントの値がわかる。
具体的な使用例——6つのケースで検証
ケース1: 1kHz ローパスフィルタ(基本設計)
センサ出力から1kHz以上のノイズを落としたい。
入力値:
- フィルタ種別: ローパス
- R: 10 kΩ
- C: 15 nF(手動入力: 0.000000015)
計算結果:
- カットオフ周波数: 1,061 Hz
- 時定数: 150 µs
→ 解釈: ほぼ1kHzでカットオフ。10kHzでは-20dB(1/10)まで減衰する。
ケース2: 100Hz ハイパスフィルタ(DC成分除去)
オーディオ信号からDCオフセットと超低周波成分を除去。
入力値:
- フィルタ種別: ハイパス
- R: 15 kΩ
- C: 100 nF
計算結果:
- カットオフ周波数: 106 Hz
- 時定数: 1.5 ms
→ 解釈: 100Hz付近でカット。人間の聴覚下限(20Hz)は十分に通過するので、サブウーファー出力には使えないが、中・高音域用のカップリングには適切。
ケース3: 20kHz ローパス(オーディオ帯域制限)
入力値:
- フィルタ種別: ローパス
- R: 750 Ω
- C: 10 nF
計算結果:
- カットオフ周波数: 21,220 Hz
- 時定数: 7.5 µs
→ 解釈: 可聴帯域上限(20kHz)付近。DACの後段に置くことで、再構成フィルタとして量子化ノイズを抑制できる。
ケース4: ADC前段のアンチエイリアスフィルタ
10kSPSでサンプリングするADCに対し、ナイキスト周波数5kHz以下にカットオフを設定。
入力値:
- フィルタ種別: ローパス
- 計算方向: 周波数→R/C(逆算)
- 目標fc: 4,000 Hz
- C: 10 nF(選択)
計算結果:
- 計算上のR: 3,979 Ω
- 推奨R(E24): 3,900 Ω
- 推奨C(標準値): 10 nF
- 標準部品時の実fc: 4,082 Hz(誤差+2.0%)
→ 解釈: E24の3.9kΩと10nFで実用上十分。誤差2%は部品公差の範囲内。
ケース5: 逆算で10kHzフィルタを設計
入力値:
- フィルタ種別: ローパス
- 計算方向: 周波数→R/C
- 目標fc: 10,000 Hz
- C: 1 nF
計算結果:
- 計算上のR: 15,915 Ω
- 推奨R(E24): 16,000 Ω
- 標準部品時の実fc: 9,947 Hz(誤差-0.5%)
→ 解釈: 16kΩ + 1nF で10kHzフィルタがほぼ正確に実現できる。
ケース6: 確認周波数でゲイン確認
ケース1の設定(R=10kΩ, C=15nF, LPF)で、50Hzハムノイズの影響を確認。
入力値:
- 確認周波数: 50 Hz
計算結果:
- ゲイン @ 50Hz: -0.02 dB(電圧比99.8%)
- 位相 @ 50Hz: -2.7°
→ 解釈: 50Hzはほぼ減衰なし。このフィルタは50Hzのハムノイズ除去には効果がない。ハムノイズ対策にはカットオフ周波数を50Hz以下にする必要がある。
仕組み・アルゴリズム——伝達関数からボード線図まで
採用している計算手法
1次RCフィルタの伝達関数に基づく解析的計算を使用。数値シミュレーション(SPICE的な手法)ではなく、閉じた形の数式で厳密解を求める。
ローパスフィルタの伝達関数:
H(jω) = 1 / (1 + jωRC)
|H(jω)| = 1 / √(1 + (f/fc)²)
ゲイン [dB] = 20 × log₁₀(|H|)
位相 [°] = -arctan(f/fc) × 180/π
ハイパスフィルタの伝達関数:
H(jω) = jωRC / (1 + jωRC)
|H(jω)| = (f/fc) / √(1 + (f/fc)²)
位相 [°] = arctan(fc/f) × 180/π
参考: 伝達関数 - Wikipedia
ボード線図の描画アルゴリズム
カットオフ周波数を中心に、±3デケード(fc/1000〜fc×1000)の範囲を対数スケールで120点に分割。各点でゲイン(dB)と位相(度)を計算し、SVGのパス要素でプロットする。
対数スケールを使う理由は、周波数が10倍ずつ変化する電子回路の特性を等間隔で表示でき、-20dB/decのロールオフが直線になるため。
逆算のアルゴリズム
目標fc + C → R = 1 / (2π × fc × C)
得られたRをE24系列の最寄り値に丸め、
Cも標準コンデンサ値に丸める。
最後に、丸めた後のR/Cで実fcを再計算して誤差を表示。
E24系列の最寄り値検出は、対数スケールで正規化した値をE24の24個の基準値と比較し、最小差のものを選択する方式。
具体的な計算例
R = 10kΩ, C = 100nF でローパスフィルタを設計する場合:
τ = R × C = 10,000 × 0.0000001 = 0.001 s = 1 ms
fc = 1 / (2π × τ) = 1 / (6.2832 × 0.001) = 159.2 Hz
f = 1000Hz でのゲイン:
f/fc = 1000 / 159.2 = 6.283
|H| = 1 / √(1 + 6.283²) = 1 / √(40.48) = 0.1572
ゲイン = 20 × log₁₀(0.1572) = -16.07 dB
位相 = -arctan(6.283) × 180/π = -80.9°
「RCフィルタ計算ツール」は他にもある——何が違うのか
DigiKeyの時定数計算機との違い
DigiKeyのRC Time Constant Calculatorは時定数と充放電時間の計算に特化している。カットオフ周波数は表示されるが、ボード線図の描画機能はない。逆算機能もないため、「何Hzでカットしたい」という設計アプローチには対応できない。
SPICEシミュレータとの違い
LTspiceやngspiceは高精度だが、回路図を描いてシミュレーション設定を行う手間がかかる。「R/C値を入れて即ボード線図」という手軽さではブラウザツールが圧倒的に速い。ただし、2次以上のフィルタや実部品のモデリングが必要な場合はSPICEの出番。
このツール独自の強み
双方向計算(順方向+逆算)、E24系列+標準コンデンサのサジェスト、ボード線図描画、確認周波数によるピンポイント計算。これらが1画面に統合されている日本語ツールは希少だ。
電子回路とフィルタにまつわる豆知識
ボード線図の発明者——ヘンドリック・ボード
ボード線図(Bode plot)は、1930年代にベル研究所のヘンドリック・ボード(Hendrik Bode)が考案した。制御工学とフィルタ設計の基盤となる手法で、対数目盛を使うことで乗算が加算に変換され、多段フィルタの特性を重ね合わせで求められるようになった。
dBの由来——アレクサンダー・グラハム・ベル
デシベル(dB)の「ベル」は電話の発明者ベルに由来する。ベル研究所が電話回線の減衰量を表すために導入した対数単位で、1ベルの1/10がデシベル。-3dBが「パワー半分」に対応するのは、10^(-3/10) ≈ 0.5 という関係による。
参考: デシベル - Wikipedia
RC回路と微積分の関係
RC回路の挙動は微分方程式で記述される。ローパスフィルタの出力は入力信号の「積分」に近く、ハイパスフィルタの出力は「微分」に近い。RC回路はアナログコンピュータの時代には実際に微分器・積分器として使われていた。
設計精度を上げるTips
カットオフ周波数の10倍で-20dBと覚える
1次RCフィルタでは、カットオフ周波数の10倍で-20dB(電圧で1/10)。100倍で-40dB(1/100)。この直感を持っておくと、フィルタの効果をすぐに見積もれる。
2段カスケードで-40dB/decに強化
1次では減衰が足りない場合、同じフィルタを2段直列に接続すると-40dB/dec(2次フィルタ相当)の減衰特性が得られる。ただし信号源インピーダンスと負荷の影響に注意。段間にバッファアンプを入れるのが理想。
インピーダンスマッチングを忘れずに
RCフィルタの入力側のソースインピーダンスが高いと、Rの値が実質的に変わってしまう。フィルタのR値はソースインピーダンスの10倍以上にするのが目安。同様に、負荷インピーダンスはRの10倍以上が望ましい。
RCフィルタ設計でよくある疑問
Q: 1次フィルタと2次フィルタの違いは?
1次フィルタ(RC)は-20dB/decの減衰特性を持つ。2次フィルタ(RLC回路や多重帰還型OPアンプ回路)は-40dB/decで、よりシャープなカットオフが得られる。ただし2次フィルタは共振ピークが発生する可能性があり、設計が複雑になる。まずは1次RCで十分かを検討し、足りなければ2次を検討するのが実務的なアプローチだ。
Q: LCフィルタの方がRCより良い?
LC(インダクタ+コンデンサ)フィルタは信号のエネルギー損失が少なく、急峻なカットオフ特性が得られる。ただしインダクタは物理サイズが大きく、低周波数では巨大な値が必要になる。kHz以下のフィルタならRCの方がコンパクトで安価。MHz帯域の電源フィルタではLCが主流。用途で使い分けるのが正解。
Q: 計算したR/C値の部品が手元にないときは?
E24系列の最寄り値を使うのが基本。カットオフ周波数の±10%程度のずれは多くの用途で問題にならない。精密なカットオフが必要なら、抵抗の直列・並列接続やコンデンサの並列接続で目的の値を合成できる。本ツールの「標準部品時の実fc」表示で、実際の誤差を確認してみて。
Q: データはどこに保存される?
すべての計算はブラウザ上で完結しており、入力値がサーバーに送信されることはない。データの保存・収集は一切行っていない。
Q: 位相が変わると何が困る?
フィルタを通すと振幅だけでなく位相(信号の遅れ)も変化する。オーディオでは位相のずれが音像の定位に影響する。制御回路ではフィードバックループの位相遅れが発振の原因になる。特にカットオフ周波数付近では-45°(LPF)の位相遅れがあるため、制御系の安定性解析では位相余裕のチェックが重要だ。
まとめ
RCフィルタは電子回路設計の基礎でありながら、カットオフ周波数と部品値の関係を直感的に把握するのは意外と難しい。このシミュレータなら、R/C値の入力から逆算、ボード線図の確認まで1画面で完結する。
電子回路設計をもっと進めたい人は、555タイマー回路設計ツールも合わせて試してみて。タイマーICの部品値計算がワンステップでできる。
不具合や要望があれば、X (@MahiroMemo)から気軽に教えて。