チェビシェフフィルタ素子値表
本稿では、チェビシェフI型ローパスフィルタの正規化LCラダー素子値を掲載する。 カットオフ角周波数 $\omega_c = 1$ rad/s、負荷抵抗 $R_L = 1$ Ω に正規化された値である。
回路トポロジー
素子番号は入力側から順に $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.