チェビシェフフィルタ素子値表

本稿では、チェビシェフI型ローパスフィルタの正規化LCラダー素子値を掲載する。 カットオフ角周波数 $\omega_c = 1$ rad/s、負荷抵抗 $R_L = 1$ Ω に正規化された値である。

回路トポロジー

LCラダーフィルタの回路図
図1: 正規化LCラダーローパスフィルタの回路構成

素子番号は入力側から順に $g_1, g_2, g_3, \ldots, g_n$ とする。

  • 奇数番号の素子($g_1, g_3, g_5, \ldots$):直列インダクタ(L)または並列コンデンサ(C)
  • 偶数番号の素子($g_2, g_4, g_6, \ldots$):並列コンデンサ(C)または直列インダクタ(L)
  • $g_0$:信号源抵抗(正規化値 = 1)
  • $g_{n+1}$:負荷抵抗

なぜ $L, C, R$ ではなく $g$ で表すのか: $g_k$ は $L$・$C$・$R$ を抽象化した無次元の正規化係数である。 同じ $g_k$ が構成によって直列インダクタにも並列コンデンサにもなり、 さらに $g_0$(信号源抵抗)・$g_{n+1}$(負荷抵抗)まで含めて、 R・L・C を1つの数列に統一できる。もし $L_1, C_2, \ldots$ とラベルすると構成ごとに別の表が必要になるが、 $g$ で書けば1枚の表が T型・π型(デュアル)の両構成を同時にカバーする。 正規化プロトタイプでは同じ $g$ 値がインダクタにもコンデンサにも割り当てられるため($L$ と $C$ は次元が異なるので値そのものが等しいわけではない)、 どちらかに固定せず中立な記号 $g$ で持つのが合理的である。実素子へはスケーリング(後述)で変換する。

デュアル回路: LCラダーには2つの等価な構成がある。一方で L と C を入れ替えた回路(デュアル)も同じ伝達特性を持つ。 表の値は両方の構成で使用できる。

スケーリング

周波数スケーリング

カットオフ周波数を $\omega_c = 1$ から任意の $\omega_c'$ に変更:

\begin{equation} L' = \dfrac{L}{\omega_c'}, \quad C' = \dfrac{C}{\omega_c'} \end{equation}

インピーダンススケーリング

負荷抵抗を $R_L = 1$ Ω から任意の $R_L'$ に変更:

\begin{equation} L' = L \cdot R_L', \quad C' = \dfrac{C}{R_L'} \end{equation}

両方同時のスケーリング

\begin{equation} L' = \dfrac{L \cdot R_L'}{\omega_c'}, \quad C' = \dfrac{C}{R_L' \cdot \omega_c'} \end{equation}

正規化素子値表

表の読み方と注意: 全ての値は $g_0 = 1$(信号源抵抗)・$\omega_c = 1$ rad/s に正規化されている。各見出しの VSWR は、その通過域リップルに対応する入力電圧定在波比(反射の目安)である。 奇数次($n = 3, 5, 7, \ldots$)では $g_{n+1} = 1$ で両終端が等抵抗になるが、 偶数次($n = 2, 4, 6, \ldots$)では $g_{n+1} \neq 1$ となり信号源と負荷が不整合になる。同じ抵抗値で両終端したい場合は奇数次を選ぶか、整合回路を追加する。

0.01 dB リップル(VSWR ≈ 1.1)

$n$ $g_1$ $g_2$ $g_3$ $g_4$ $g_5$ $g_6$ $g_7$ $g_8$ $g_9$ $g_{n+1}$
2 0.4489 0.4078 1.1007
3 0.6292 0.9703 0.6292 1.0000
4 0.7129 1.2004 1.3213 0.6476 1.1007
5 0.7563 1.3049 1.5773 1.3049 0.7563 1.0000
6 0.7814 1.3600 1.6897 1.5350 1.4970 0.7098 1.1007
7 0.7970 1.3924 1.7481 1.6331 1.7481 1.3924 0.7970 1.0000

0.1 dB リップル(VSWR ≈ 1.3)

$n$ $g_1$ $g_2$ $g_3$ $g_4$ $g_5$ $g_6$ $g_7$ $g_8$ $g_9$ $g_{n+1}$
2 0.8431 0.6220 1.3554
3 1.0316 1.1474 1.0316 1.0000
4 1.1088 1.3062 1.7704 0.8181 1.3554
5 1.1468 1.3712 1.9750 1.3712 1.1468 1.0000
6 1.1681 1.4040 2.0562 1.5171 1.9029 0.8618 1.3554
7 1.1812 1.4228 2.0967 1.5734 2.0967 1.4228 1.1812 1.0000

0.5 dB リップル(VSWR ≈ 1.7)

$n$ $g_1$ $g_2$ $g_3$ $g_4$ $g_5$ $g_6$ $g_7$ $g_8$ $g_9$ $g_{n+1}$
2 1.4029 0.7071 1.9841
3 1.5963 1.0967 1.5963 1.0000
4 1.6703 1.1926 2.3661 0.8419 1.9841
5 1.7058 1.2296 2.5408 1.2296 1.7058 1.0000
6 1.7254 1.2479 2.6064 1.3137 2.4758 0.8696 1.9841
7 1.7372 1.2583 2.6381 1.3444 2.6381 1.2583 1.7372 1.0000

1.0 dB リップル(VSWR ≈ 2.0)

$n$ $g_1$ $g_2$ $g_3$ $g_4$ $g_5$ $g_6$ $g_7$ $g_8$ $g_9$ $g_{n+1}$
2 1.8219 0.6850 2.6599
3 2.0237 0.9941 2.0237 1.0000
4 2.0991 1.0644 2.8311 0.7892 2.6599
5 2.1349 1.0911 3.0009 1.0911 2.1349 1.0000
6 2.1546 1.1041 3.0634 1.1518 2.9367 0.8101 2.6599
7 2.1664 1.1116 3.0934 1.1736 3.0934 1.1116 2.1664 1.0000
8 2.1745 1.1160 3.1101 1.1852 3.1353 1.1356 2.9685 0.8206 2.6599
9 2.1804 1.1188 3.1203 1.1920 3.1569 1.1920 3.1203 1.1188 2.1804 1.0000

3.0 dB リップル(VSWR ≈ 3.5)

$n$ $g_1$ $g_2$ $g_3$ $g_4$ $g_5$ $g_6$ $g_7$ $g_8$ $g_9$ $g_{n+1}$
2 3.1013 0.5339 5.8095
3 3.3487 0.7117 3.3487 1.0000
4 3.4389 0.7483 4.3471 0.5920 5.8095
5 3.4817 0.7618 4.5381 0.7618 3.4817 1.0000
6 3.5045 0.7685 4.6061 0.7929 4.4641 0.6033 5.8095
7 3.5182 0.7723 4.6386 0.8039 4.6386 0.7723 3.5182 1.0000

使用例

設計例:5次、1dBリップル、$f_c = 10$ MHz、$R_L = 50$ Ω

1dBリップル、$n=5$ の素子値を表から読み取る:

  • $g_1 = 2.1349$
  • $g_2 = 1.0911$
  • $g_3 = 3.0009$
  • $g_4 = 1.0911$
  • $g_5 = 2.1349$

スケーリング計算($\omega_c = 2\pi \times 10^7$、$R_L = 50$ Ω):

素子 正規化値 $g$ 実値(L または C)
$L_1$(直列) 2.1349 $L_1 = \dfrac{2.1349 \times 50}{2\pi \times 10^7} = 1.70$ μH
$C_2$(並列) 1.0911 $C_2 = \dfrac{1.0911}{50 \times 2\pi \times 10^7} = 347$ pF
$L_3$(直列) 3.0009 $L_3 = \dfrac{3.0009 \times 50}{2\pi \times 10^7} = 2.39$ μH
$C_4$(並列) 1.0911 $C_4 = \dfrac{1.0911}{50 \times 2\pi \times 10^7} = 347$ pF
$L_5$(直列) 2.1349 $L_5 = \dfrac{2.1349 \times 50}{2\pi \times 10^7} = 1.70$ μH

Python による素子値計算

import numpy as np

def chebyshev_lc_elements(n, rp_db):
    """
    チェビシェフI型フィルタの正規化LC素子値を計算

    Parameters:
        n: フィルタ次数
        rp_db: 通過域リップル [dB]

    Returns:
        g: 正規化素子値のリスト [g1, g2, ..., gn, g_{n+1}]
    """
    epsilon = np.sqrt(10**(rp_db/10) - 1)
    eta = (1/n) * np.arcsinh(1/epsilon)

    g = np.zeros(n + 2)
    g[0] = 1.0  # 信号源抵抗

    # g1
    g[1] = 2 * np.sin(np.pi / (2*n)) / np.sinh(eta)

    # g2 ~ gn
    for k in range(2, n + 1):
        a_k = np.sin((2*k - 1) * np.pi / (2*n))
        b_k = np.sinh(eta)**2 + np.sin(k * np.pi / n)**2
        g[k] = 4 * a_k * np.sin((2*k - 3) * np.pi / (2*n)) / (g[k-1] * b_k)

    # g_{n+1} (負荷抵抗)
    if n % 2 == 1:
        g[n + 1] = 1.0
    else:
        g[n + 1] = 1 / np.tanh(eta / 2)**2

    return g

def scale_elements(g, fc_hz, RL_ohm):
    """
    正規化素子値を実素子値にスケーリング

    Parameters:
        g: 正規化素子値
        fc_hz: カットオフ周波数 [Hz]
        RL_ohm: 負荷抵抗 [Ω]

    Returns:
        L, C: インダクタンス [H] とキャパシタンス [F] のリスト
    """
    omega_c = 2 * np.pi * fc_hz
    n = len(g) - 2

    elements = []
    for k in range(1, n + 1):
        if k % 2 == 1:  # 直列インダクタ
            L = g[k] * RL_ohm / omega_c
            elements.append(('L', L))
        else:  # 並列コンデンサ
            C = g[k] / (RL_ohm * omega_c)
            elements.append(('C', C))

    return elements

# 使用例
n = 5
rp_db = 1.0
fc = 10e6  # 10 MHz
RL = 50  # 50 Ω

g = chebyshev_lc_elements(n, rp_db)
print(f"{n}次チェビシェフI型 ({rp_db}dBリップル)")
print("正規化素子値:")
for i, val in enumerate(g):
    print(f"  g{i} = {val:.4f}")

print(f"\nスケーリング後 (fc={fc/1e6}MHz, RL={RL}Ω):")
elements = scale_elements(g, fc, RL)
for i, (typ, val) in enumerate(elements):
    if typ == 'L':
        print(f"  {typ}{i+1} = {val*1e6:.3f} μH")
    else:
        print(f"  {typ}{i+1} = {val*1e12:.1f} pF")

よくある質問

Q1: チェビシェフフィルタの設計テーブルは何に使うのか

A: 正規化(遮断周波数1rad/s、ソース抵抗1Ω)されたチェビシェフローパスフィルタのLC素子値(g_k)を次数nとリップル量(0.1dB, 0.5dB, 1dB, 3dBなど)ごとにまとめた表です。設計では表から値を読み取り、周波数スケーリングと負荷インピーダンス変換を適用して実際の素子値を求めます。

Q2: テーブルに載っている g_k の値はどのような意味を持つのか

A: ラダー回路の各素子の正規化値です。g_1 はソース抵抗に接続される最初の素子(シャントC or シリーズL)の値、g_2 は次の素子、…、g_{n+1} は負荷抵抗の値(通常1Ω)です。インダクタLとキャパシタCが交互に続くラダー回路として実現され、H型かT型の両構成が可能です。

Q3: テーブルを使った設計はどのような手順で行うのか

A: 1)仕様から必要次数nを計算式で決定、2)リップル量(例0.5dB)の対応テーブルからg_1…g_{n+1}を読む、3)各素子に周波数変換L_k=g_k/Ω_c、C_k=g_k/Ω_c を適用、4)負荷インピーダンス変換L_k*=L_k*R_L、C_k*=C_k/R_L を適用、5)BPF等なら追加の周波数変換を適用します。

Q4: なぜ素子を L, C, R ではなく g で表すのか

A: g_k は L・C・R を抽象化した無次元の正規化係数だからです。ラダー回路は直列素子と並列素子が交互に並び、同じ g_k が構成によって直列インダクタにも並列コンデンサにもなります。さらに g_0(信号源抵抗)と g_{n+1}(負荷抵抗)まで含めることで、R・L・C を1つの数列に統一できます。L, C と個別にラベルすると T型・π型(デュアル)など構成ごとに別の表が必要になりますが、g で表せば1枚の表が全構成をカバーします。正規化プロトタイプでは同じ g 値がインダクタにもコンデンサにも割り当てられる(L と C は次元が異なるので値そのものが等しいわけではない)ため、中立な記号 g を用いるのが合理的で、実素子へはスケーリング(L_k=g_k·R_L/ω_c、C_k=g_k/(R_L·ω_c))で変換します。

参考文献

  • A. I. Zverev, Handbook of Filter Synthesis, Wiley, 1967.
  • G. L. Matthaei, L. Young, and E. M. T. Jones, Microwave Filters, Impedance-Matching Networks, and Coupling Structures, Artech House, 1980.
  • A. B. Williams and F. J. Taylor, Electronic Filter Design Handbook, 4th ed., McGraw-Hill, 2006.