🔧 使い方

「求めたいもの」で3つのモードを切り替えられます。

モード 入力する欄 使う場面
fc を求める R・C 手持ちの部品でどこが切れるか知りたい
R を逆算する fc・C コンデンサを決め打ちして抵抗を選びたい
C を逆算する fc・R 抵抗が回路の都合で決まっている

逆算モードでは、使わない欄は空のままで構いません。実際の設計では 先に C を手持ちの値(0.1µF や 1µF)に決めて、R を逆算する のがいちばん多いパターンです。コンデンサのほうが選択肢が少ないからです。

「フィルタの種類」の LPF / HPF は、通過する側の表示が変わるだけで計算結果は変わりません。理由は次の節のとおりです。

🔎 計算しているのはこの回路です

抵抗1本とコンデンサ1本、部品はこれだけです。違うのは並び順だけで、ローパスとハイパスは同じ2部品の入れ替えでできています。

  ローパス(LPF): C 側から取り出す        ハイパス(HPF): R 側から取り出す

      Vin                                     Vin
       |                                       |
      +-+                                     ---
      | |  R                                  ---   C
      +-+                                      |
       |                                       |
       +------> Vout                           +------> Vout
       |                                       |
      ---                                     +-+
      ---   C                                 | |  R
       |                                      +-+
       |                                       |
      GND                                     GND

どちらも Vin から見れば R と C の直列で、その途中から電圧を覗いています。つまり分圧回路とまったく同じ構造で、下側の部品が抵抗ではなくコンデンサになっただけです。コンデンサのインピーダンスが周波数で変わるせいで、分圧比が周波数によって変わる——それがフィルタの正体です。

図の部品 ツールの欄 選び方の目安
R 抵抗値 R 数kΩ〜十数kΩが扱いやすい(下の「前後の回路の影響」参照)
C 静電容量 C 手持ちの 0.1µF / 1µF から決め打ちするのが実務的
Vout の取り出し口 LPF は C の両端、HPF は R の両端

入力側(Vin)と出力側(Vout)を逆につながないことだけ注意してください。R と C の直列という点では同じでも、覗く場所が変われば結果は正反対になります。

📐 なぜ LPF も HPF も同じ式なのか

RC フィルタは、抵抗とコンデンサで作った分圧回路です。違うのは どちらから出力を取るか だけ。

コンデンサのインピーダンスは周波数が上がるほど小さくなります(Zc = 1/2πfC)。だからコンデンサ側から出力を取れば高い周波数ほど出力が小さくなる=ローパス、抵抗側から取れば逆に低い周波数ほど小さくなる=ハイパスになります。R と C の並び順が入れ替わっただけで、どちらも同じ RC の組み合わせです。

カットオフ周波数は「抵抗のインピーダンス R とコンデンサのインピーダンス Zc がちょうど等しくなる周波数」として定義されます。R = 1/(2πfC) を f について解けば、そのまま次の式です。

f_c = \frac{1}{2\pi R C}

R と C しか出てこないので、LPF でも HPF でも fc は同じ値になります。

💡 fc は「消える周波数」ではない

fc は振幅がおよそ 0.707 倍(−3dB)になる周波数です。半分になる点でも、そこから上がバッサリ消える点でもありません。1次 RC フィルタの傾きは 1オクターブあたり −6dB(周波数10倍あたり −20dB) と非常にゆるやかで、fc の10倍の周波数でようやく 1/10 になる程度です。急峻に切りたければ多段にするか、オペアンプを使ったアクティブフィルタを検討してください。

⏱️ 時定数 τ と応答時間も一緒に見る

同じ RC 回路を時間の側から見たのが時定数 τ = RC です。ステップ入力に対して出力が 63.2% まで達する時間を表します。結果欄には τ と、10% から 90% まで立ち上がるのにかかる時間(≈ 2.2τ)も出しています。

これが効いてくるのが マイコンの ADC の前に入れるローパスフィルタ です。ノイズを落としたくて fc を下げると τ が伸びるので、センサの値が変化してから読み値が追いつくまでの時間も伸びます。「ノイズは消えたけど反応が鈍い」の正体はここです。周波数と時間の両方を見比べながら決めてください。

⚠️ ソフトの平均化では消せないノイズがある

「ノイズはあとから移動平均で均せばいい」——たいていは正しいのですが、ADC の前でしか対処できないノイズが1種類だけあります。折り返し(エイリアシング)です。

サンプリングには「サンプリング周波数の半分より高い成分は、低い周波数の偽物として現れる」という性質があります。たとえば 毎秒100回(100Hz)で読んでいるところに 60Hz のハムが乗ると、それは 60Hz のままでは現れず、|60 − 100| = 40Hz のゆっくりした揺れとして記録されます。

厄介なのは、こうなった時点で本物の 40Hz の信号と見分けがつかないことです。移動平均をかけても、FFT をかけても、後段のソフトウェアでは分離できません。サンプリングする前に、アナログのまま落としておくしかないわけです。ADC の前に入れる RC を「アンチエイリアシングフィルタ」と呼ぶのはこのためです。

ここで効いてくるのが、前述の「1次 RC の傾きはゆるやか」という性質です。fc をサンプリング周波数の半分ちょうどに置いても、そこはまだ 0.707 倍にしかなっていません。fc はナイキスト周波数よりだいぶ下に置く必要があります。

fc に対する周波数 1次RCでの減衰 ひとこと
1 倍(fc そのもの) 0.71 倍 ほぼ素通り
6 倍 約 0.16 倍 ようやく 1/6
10 倍 約 0.10 倍 1/10
100 倍 約 0.01 倍 1/100

100Hz で読むなら fc は 10Hz 前後(ナイキストの 1/5)に置く、というのがひとつの目安です。それでも 60Hz のハムは 1/6 しか減りません。ここから先が必要なら、サンプリング周波数のほうを上げて(オーバーサンプリングして)平均するか、フィルタを多段にするかの判断になります。上の表の数字は fc とツールの結果を見比べながら決めてください。

⚠️ 前後の回路の影響

RC フィルタは分圧回路なので、前後につながるもののインピーダンスの影響をまともに受けます。

  • R を小さくしすぎる と、前段の出力に流れる電流が増えてドライブしきれなくなります
  • R を大きくしすぎる と、後段の入力バイアス電流やノイズを拾いやすくなり、狙った fc からずれます

このツールも 100Ω 未満と 1MΩ 超で注意を出します。マイコンの ADC 前に置く場合は、サンプリングの瞬間だけ内部のコンデンサへ電荷が流れ込むため、R があまり大きいと1回の変換時間内に充電が終わらず読み値が沈みます。数kΩ〜十数kΩ程度に収めるのが無難です。

🔗 あわせて読みたい

ADC でセンサ値を読む実例は ArduinoのAD変換、内蔵ローパスフィルタつきのセンサを扱った例は 加速度センサで作るデジタル水平器 にあります。同じ RC の充放電を発振に使うのが 555タイマー 計算ツール です。