方向性結合器の指向性と結合度の測定原理を理解して実装する

ネットワークアナライザでアンテナの反射係数を測ったとき、表示された値がどこまで信用できるのか考えたことはあるでしょうか。たとえば測定器が「リターンロス 30 dB(よく整合している)」と表示しても、実際の素子はもっと良いかもしれないし、もっと悪いかもしれません。この「測定値のあいまいさ」を支配しているのが、測定器の心臓部に組み込まれた方向性結合器(directional coupler)の性能、とりわけ指向性(directivity)という指標です。

方向性結合器は、伝送線路を流れる電力のうち「進行波」と「反射波」を分離して取り出す部品です。理想的には進行波だけ、あるいは反射波だけを完全に分離できますが、現実の結合器では分離が不完全で、わずかに「漏れ」が混入します。この漏れの大きさが指向性で表され、それが反射係数測定の精度を直接決めてしまうのです。指向性が有限であることを知らずに測定値を鵜呑みにすると、整合の良し悪しを大きく読み違えることになります。

方向性結合器と指向性の理解は、次のような場面で直接役立ちます。

  • ネットワークアナライザ(VNA)の測定精度評価: 反射測定($S_{11}$ 測定)の不確かさは、結合器の指向性によって支配されます。VSWR やリターンロスの測定限界を見積もるには指向性の知識が不可欠です
  • アンテナ・フィルタの開発: 「リターンロス 20 dB を保証する」といった仕様を検証する際、測定器の指向性がその仕様より十分良くなければ正しく判定できません
  • 送信機の電力モニタリング: 進行波電力と反射波電力を分離して監視し、アンテナ故障やケーブル断線を検出する用途で結合器が使われます
  • 衛星・レーダーの大電力系: 分配・合成・モニタリング回路の基本素子として広く使われます

本記事の内容

  • 方向性結合器の4ポート構造と動作の直感的な理解
  • 4ポートSパラメータからC(結合度)・D(指向性)・I(アイソレーション)を定義し導出
  • 指向性が有限なときに反射測定へ生じる「ベクトル誤差」と誤差円の理論
  • 真の反射係数に対する測定誤差範囲の計算
  • Python実装: 指向性 D=20/30/40 dB ごとの誤差円とスミスチャート上の可視化

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

方向性結合器とは

進行波と反射波を「振り分ける」部品

伝送線路の上では、電力が右に進む波(進行波、入射波)と左に戻る波(反射波)が同時に存在します。アンテナの整合が完璧なら反射波はゼロですが、現実には少し反射が起こります。問題は、線路上の一点で電圧を測っても、そこには進行波と反射波が重なって現れてしまい、両者を区別できないことです。これでは「どれだけ反射しているか」を直接測れません。

方向性結合器は、この困難を解決するために考案された4ポートの部品です。直感的なイメージとしては、川に渡した「斜めの取水口」を思い浮かべてください。川の流れ(進行波)に対して斜めに口を開けると、流れに乗ってくる水だけがすくい取られ、逆向きの流れ(反射波)はほとんど入ってきません。方向性結合器も同じように、主線路を進む進行波のごく一部だけを結合ポートに取り出し、逆向きの反射波は別のポート(あるいはほとんど取り出さない)に振り分けます。

この「方向によって振り分ける」性質こそが「方向性(directional)」という名前の由来です。波の向きを区別できるおかげで、進行波電力と反射波電力をそれぞれ独立に測定でき、反射係数や VSWR を求められるのです。

4つのポートの役割

標準的な方向性結合器には4つのポートがあり、それぞれ次の役割を持ちます。

  • ポート1(入力ポート, Input): 主線路の入力端。ここに進行波を入れる
  • ポート2(通過ポート, Through): 主線路の出力端。入力した電力の大部分がここから出ていく
  • ポート3(結合ポート, Coupled): ポート1からポート2へ進む進行波の一部が取り出されるポート
  • ポート4(アイソレートポート, Isolated): 理想的には何も出てこないポート。順方向の波からは分離されている

理想的な方向性結合器では、ポート1に入れた波はポート2(通過)とポート3(結合)に分かれて出ていき、ポート4(アイソレート)には一切現れません。逆に、ポート2から逆向きに入った波(=被測定物からの反射波)は、ポート4に取り出されてポート3には現れません。つまりポート3は進行波を、ポート4は反射波をそれぞれ専属で監視できるのです。

この理想がどこまで実現できているかを定量化するのが、これから定義する結合度・指向性・アイソレーションという3つの指標です。まずはこれらをSパラメータで厳密に書き下していきましょう。

Sパラメータによる結合度・指向性・アイソレーションの定義

散乱行列の復習

4ポート回路の振る舞いは、$4 \times 4$ の散乱行列 $\bm{S}$ で完全に記述されます。各ポート $i$ に入る波の複素振幅を $a_i$、出ていく波の複素振幅を $b_i$ とすると、両者の関係は次の線形写像で書けます。

$$ \begin{equation} \begin{pmatrix} b_1 \\ b_2 \\ b_3 \\ b_4 \end{pmatrix} = \begin{pmatrix} S_{11} & S_{12} & S_{13} & S_{14} \\ S_{21} & S_{22} & S_{23} & S_{24} \\ S_{31} & S_{32} & S_{33} & S_{34} \\ S_{41} & S_{42} & S_{43} & S_{44} \end{pmatrix} \begin{pmatrix} a_1 \\ a_2 \\ a_3 \\ a_4 \end{pmatrix} \end{equation} $$

ここで $S_{ij}$ は「ポート $j$ から入った波が、ポート $i$ にどれだけ出てくるか」を表す複素数です。$S_{ij} = b_i / a_j$ であり、このとき他の全ポートは整合終端されている($a_k = 0,\ k \neq j$)とします。$S_{ij}$ の絶対値の2乗が電力比、位相が波の遅れを表します。

方向性結合器の動作を語るとき主役になるのは、ポート1に波を入れたときの応答、すなわち第1列 $S_{11}, S_{21}, S_{31}, S_{41}$ です。これらは順に、入力反射・通過・結合・アイソレートを表します。

結合度(Coupling)

結合度 $C$ は、入力ポート1に入れた電力のうち、結合ポート3にどれだけ取り出されるかを表す量です。直感的には「メインの流れから何分の1を横取りするか」を決めるパラメータです。電力比を対数(dB)で表現するのが慣例で、定義は次の通りです。

$$ \begin{equation} C = 10 \log_{10}\frac{P_1}{P_3} = -20 \log_{10}|S_{31}| \end{equation} $$

電力 $P_3 / P_1 = |S_{31}|^2$ であり、$10\log_{10}|S_{31}|^2 = 20\log_{10}|S_{31}|$ となるため、係数が 20 になります。マイナス符号を付けて $C$ を正の値(dB)として表すのが一般的です。たとえば $|S_{31}| = 0.1$(電力で 1/100)なら $C = -20\log_{10}(0.1) = 20$ dB です。

ここで注意したいのは、結合度が大きい(dB値が大きい)ほど、結合ポートに取り出される電力は小さいということです。20 dB 結合器は入力電力の 1/100、30 dB 結合器は 1/1000 を取り出します。電力モニタや測定用には、主線路への影響を小さく抑えるため 20 dB 以上の弱結合がよく使われます。

指向性(Directivity)

指向性 $D$ は、結合器が「波の向きをどれだけきれいに区別できるか」を表す、本記事の主役となる指標です。理想結合器ではポート1からの順方向の波はポート4(アイソレート)に一切現れませんが、現実には少し漏れます。指向性は、結合ポート3への出力と、アイソレートポート4への漏れの比として定義されます。

$$ \begin{equation} D = 10 \log_{10}\frac{P_3}{P_4} = 20 \log_{10}\frac{|S_{31}|}{|S_{41}|} \end{equation} $$

ここで $P_3 = |S_{31}|^2$、$P_4 = |S_{41}|^2$ を代入し、対数の性質 $10\log_{10}(|S_{31}|^2/|S_{41}|^2) = 20\log_{10}(|S_{31}|/|S_{41}|)$ を使うと上の形になります。指向性が大きいほど、$|S_{41}|$ が $|S_{31}|$ に比べて小さい、すなわち「波の向きをよく区別できる」ことを意味します。

直感的には、指向性とは「順方向の波を取り出すべきポート3」と「本来漏れてほしくないポート4」の信号の比です。理想結合器なら $|S_{41}| = 0$ で $D = \infty$ ですが、現実の結合器の指向性は 20〜40 dB 程度です。後で見るように、この有限の指向性こそが反射係数測定の精度を制限する根本原因になります。

アイソレーション(Isolation)

アイソレーション $I$ は、入力ポート1からアイソレートポート4への直接の漏れの少なさを表します。定義は次の通りです。

$$ \begin{equation} I = 10 \log_{10}\frac{P_1}{P_4} = -20 \log_{10}|S_{41}| \end{equation} $$

アイソレーションが大きいほどポート4への漏れが小さく、良好な結合器です。

3つの指標の関係

これら3つの指標は独立ではなく、シンプルな関係で結ばれています。$C = -20\log_{10}|S_{31}|$ と $I = -20\log_{10}|S_{41}|$ を指向性の定義に代入してみましょう。指向性は

$$ D = 20\log_{10}\frac{|S_{31}|}{|S_{41}|} = 20\log_{10}|S_{31}| – 20\log_{10}|S_{41}| $$

と分解できます。ここで $20\log_{10}|S_{31}| = -C$、$20\log_{10}|S_{41}| = -I$ を代入すると、

$$ D = (-C) – (-I) = I – C $$

すなわち、dB単位で次の美しい関係式が成り立ちます。

$$ \begin{equation} I = C + D \end{equation} $$

「アイソレーション = 結合度 + 指向性」というこの式は実用上とても便利です。たとえばカタログに「結合度 20 dB、指向性 30 dB」と書かれていれば、アイソレーションは自動的に $20 + 30 = 50$ dB だとわかります。3つのうち2つを測れば残りの1つは計算で求まる、という関係を覚えておきましょう。

ここまでで結合器の性能指標を数式で定義しました。次に、これらの指標が「具体的にどんな数値になるのか」を理想的な結合器の散乱行列を例に確認します。

理想結合器の散乱行列と具体例

理想的な方向性結合器の散乱行列

完全に整合し、損失がなく、相反(reciprocal)な理想的方向性結合器の散乱行列は、適切なポート番号の取り方のもとで次の形になります。結合係数を $c = |S_{31}|$($0 < c < 1$)とし、通過係数を $t = \sqrt{1 - c^2}$ とすると、

$$ \begin{equation} \bm{S} = \begin{pmatrix} 0 & t & jc & 0 \\ t & 0 & 0 & jc \\ jc & 0 & 0 & t \\ 0 & jc & t & 0 \end{pmatrix} \end{equation} $$

この行列を眺めると、理想結合器の性質がそのまま読み取れます。対角成分 $S_{ii}$ がすべて 0 なのは、全ポートが完全に整合している(反射しない)ことを意味します。$S_{41} = 0$ はポート1からポート4への漏れがゼロ、すなわちアイソレーションが無限大であることを表します。結合項に虚数単位 $j$ が付いているのは、結合ポートへ取り出される波が通過波に対して 90° の位相差を持つためで、これは結合線路の電磁気的な性質から自然に出てくるものです。

この理想行列では $S_{41} = 0$ なので、指向性 $D = 20\log_{10}(|S_{31}|/0) = \infty$ となります。現実の結合器はこの完璧な「ゼロ」を実現できず、$S_{41}$ がわずかに残るため、指向性が有限になります。

数値例: 20 dB 結合器

結合度 20 dB の理想結合器を考えましょう。$C = 20$ dB から結合係数を逆算すると、

$$ |S_{31}| = 10^{-C/20} = 10^{-20/20} = 10^{-1} = 0.1 $$

通過係数は $|S_{21}| = t = \sqrt{1 – 0.1^2} = \sqrt{0.99} \approx 0.995$ です。電力で見ると、入力の 99% が通過ポートへ、1% が結合ポートへ向かいます。結合による主線路の挿入損失は $-20\log_{10}(0.995) \approx 0.044$ dB とごくわずかで、測定対象にほとんど影響を与えません。これが弱結合(20 dB 以上)が測定用に好まれる理由です。

数値例: 現実の有限指向性

現実の結合器で指向性 30 dB、結合度 20 dB のものを考えます。$I = C + D = 20 + 30 = 50$ dB なので、

$$ |S_{41}| = 10^{-I/20} = 10^{-50/20} = 10^{-2.5} \approx 0.00316 $$

一方 $|S_{31}| = 0.1$ なので、漏れの大きさは結合出力に対して $|S_{41}|/|S_{31}| = 0.0316$、すなわち 3.16% です。指向性 30 dB とは、まさに「漏れが結合信号の約 3% に抑えられている」ことを意味します。指向性 40 dB ならこれが 1%、20 dB なら 10% になります。

この「数%の漏れ」が、反射測定にどれだけの誤差をもたらすのか — これが本記事の核心です。次節で、有限指向性が反射係数測定に生じさせる「ベクトル誤差」を理論的に導出します。

指向性が有限なときの反射測定誤差

反射係数を測る仕組み

方向性結合器を使って被測定物(DUT: Device Under Test)の反射係数 $\Gamma$ を測る基本構成を考えます。ポート1に信号源、ポート2に DUT を接続し、ポート2へ向かう進行波と、DUT から戻ってくる反射波をそれぞれ別ポートで取り出します。

理想結合器なら、進行波の振幅は片方のポートで、反射波の振幅はもう片方のポートで純粋に取り出せ、両者の比から反射係数 $\Gamma = (\text{反射波})/(\text{進行波})$ が正確に求まります。ところが指向性が有限だと、反射波を取り出すべきポートに進行波の一部が漏れ込んでしまいます。

この漏れは、DUT が無反射($\Gamma = 0$)でも消えません。つまり、本来ゼロを示すべき測定が、漏れ信号のぶんだけゼロにならず、ある一定の値を示してしまうのです。これがベクトル誤差の正体です。

測定される反射係数のモデル

簡単化のため、結合器とDUTを直結し、進行波の参照振幅を 1 に規格化します。理想的に取り出される反射波の振幅は $\Gamma$ に比例します。これに指向性有限による漏れが加わるため、測定器が観測する「見かけの反射係数」$\Gamma_m$ は、真の反射係数 $\Gamma$ に漏れ項 $\delta$ をベクトル的に加えたものになります。

$$ \begin{equation} \Gamma_m = \Gamma + \delta \end{equation} $$

ここで $\delta$ は複素数で、漏れの大きさと位相を表します。重要なのは、$\delta$ が単純な実数の足し算ではなく、複素平面上でのベクトル加算だという点です。漏れの位相 $\arg\delta$ は周波数や結合器の構造で決まり、一般に未知なので、$\delta$ は「大きさ $|\delta|$ は決まっているが、位相は0から360°のどこを向いているかわからないベクトル」として扱います。

漏れの大きさを指向性で表す

漏れ項の大きさ $|\delta|$ は指向性で直接決まります。指向性は「反射波信号と漏れ信号の比」を表すので、進行波を基準にしたとき、指向性に起因する漏れの相対振幅は次のように書けます。

$$ \begin{equation} |\delta| = 10^{-D/20} \end{equation} $$

この式は、指向性の定義 $D = 20\log_{10}(|S_{31}|/|S_{41}|)$ を「反射測定に効く漏れの相対レベル」として読み替えたものです。$|S_{41}|/|S_{31}| = 10^{-D/20}$ が、進行波チャネルから反射波チャネルへ漏れ込む相対振幅にあたります。たとえば指向性 $D = 30$ dB なら $|\delta| = 10^{-30/20} = 10^{-1.5} \approx 0.0316$、すなわち反射係数換算で約 0.032 の誤差ベクトルが常に乗ることになります。

誤差円の導出

$\delta$ の位相が未知(0〜360°のどこでもありうる)であることを認めると、測定値 $\Gamma_m$ がどこに現れうるかが見えてきます。$\Gamma_m = \Gamma + \delta$ で、$\delta$ の大きさは $|\delta| = 10^{-D/20}$ に固定され、位相 $\theta = \arg\delta$ だけが自由に動くとします。すると、

$$ \Gamma_m = \Gamma + |\delta|\,e^{j\theta}, \qquad \theta \in [0, 2\pi) $$

これは複素平面上で、中心が真値 $\Gamma$、半径が $|\delta|$ の円を描きます。位相 $\theta$ がわからない以上、測定値 $\Gamma_m$ はこの円のどこかに必ず存在し、円のどこに来るかは特定できません。この円を誤差円(error circle)と呼びます。

$$ \begin{equation} |\Gamma_m – \Gamma| = |\delta| = 10^{-D/20} \end{equation} $$

つまり、真の反射係数 $\Gamma$ を測定しても、得られる値は半径 $10^{-D/20}$ の不確かさの円の中のどこかであり、それ以上には絞り込めません。指向性が高い($D$ が大きい)ほど半径が小さくなり、測定値が真値に近づきます。

反射係数の測定範囲(最大・最小)

誤差円の概念から、測定される反射係数の大きさ $|\Gamma_m|$ の取りうる範囲がわかります。誤差ベクトル $\delta$ が真値 $\Gamma$ と同じ向きに最大限加わると最大値に、真逆を向くと最小値になります。三角不等式から、

$$ \begin{equation} |\Gamma| – |\delta| \le |\Gamma_m| \le |\Gamma| + |\delta| \end{equation} $$

たとえば真のリターンロスが 20 dB($|\Gamma| = 0.1$)の DUT を、指向性 30 dB($|\delta| = 0.0316$)の結合器で測ると、

$$ |\Gamma_m|_{\min} = 0.1 – 0.0316 = 0.0684, \qquad |\Gamma_m|_{\max} = 0.1 + 0.0316 = 0.1316 $$

これをリターンロスに直すと、$-20\log_{10}(0.1316) = 17.6$ dB から $-20\log_{10}(0.0684) = 23.3$ dB までばらつきます。つまり「リターンロス 20 dB」と表示されても、真値は 17.6〜23.3 dB のどこかという不確かさが残るのです。被測定物が良く整合している($|\Gamma|$ が小さい)ほど、相対的な誤差は深刻になります。

VSWR への影響

VSWR(電圧定在波比)は反射係数の大きさから

$$ \text{VSWR} = \frac{1 + |\Gamma|}{1 – |\Gamma|} $$

で計算されます。反射係数に誤差円のばらつきが乗ると、VSWR にも幅が生じます。$|\Gamma_m|$ が $|\Gamma| \pm |\delta|$ の範囲を取るので、VSWR の上下限は次のように評価できます。

$$ \text{VSWR}_{\min} = \frac{1 + (|\Gamma| – |\delta|)}{1 – (|\Gamma| – |\delta|)}, \qquad \text{VSWR}_{\max} = \frac{1 + (|\Gamma| + |\delta|)}{1 – (|\Gamma| + |\delta|)} $$

VSWR は $|\Gamma|$ が小さいほど 1 に近づきますが、誤差円の効果でその「良さ」が見かけ上良くなったり悪くなったりします。整合の良い素子ほど、わずかな漏れが VSWR 表示を大きく揺らすことに注意が必要です。

ここまでで誤差円の理論を完成させました。次は、この誤差円が指向性によってどう変わるかを Python で数値的に評価し、スミスチャート上に描いて視覚的に理解しましょう。

Python による測定誤差の評価

指向性ごとの誤差ベクトルの大きさ

まず、指向性 $D$ から誤差ベクトルの大きさ $|\delta| = 10^{-D/20}$ を計算し、代表的な指向性値での誤差レベルを確認します。

import numpy as np

# 評価する指向性 [dB]
D_list = np.array([20, 30, 40])

# 誤差ベクトルの大きさ |delta| = 10^(-D/20)
delta_mag = 10 ** (-D_list / 20)

for D, d in zip(D_list, delta_mag):
    print(f"指向性 D = {D:2d} dB  ->  誤差ベクトル |delta| = {d:.4f} "
          f"(結合信号の {d*100:.2f} %)")

このコードは、指向性が反射測定にもたらす誤差ベクトルの大きさを数値化します。出力からわかるように、指向性 20 dB では $|\delta| = 0.1$、30 dB では $0.0316$、40 dB では $0.01$ となり、指向性が 10 dB 改善するごとに誤差ベクトルが約 1/3.16 倍($10^{-0.5}$)に縮小します。指向性 40 dB の高性能結合器でも、反射係数換算で 0.01 の不確かさが必ず残ることが読み取れます。

誤差円の生成

次に、真の反射係数 $\Gamma$ を固定し、誤差ベクトル $\delta$ の位相を 0〜360° まで動かして測定値 $\Gamma_m$ が描く誤差円を生成します。

import numpy as np

def error_circle(gamma_true, D_dB, n=361):
    """真の反射係数 gamma_true と指向性 D_dB から誤差円上の点列を返す"""
    delta_mag = 10 ** (-D_dB / 20)          # 誤差ベクトルの大きさ
    theta = np.linspace(0, 2 * np.pi, n)    # 漏れの位相(未知 → 全周)
    delta = delta_mag * np.exp(1j * theta)  # 誤差ベクトル
    gamma_meas = gamma_true + delta         # 測定される見かけの反射係数
    return gamma_meas

# 真の反射係数(リターンロス20 dB に相当、|Gamma|=0.1、位相45度)
gamma_true = 0.1 * np.exp(1j * np.deg2rad(45))

for D in [20, 30, 40]:
    gm = error_circle(gamma_true, D)
    mag = np.abs(gm)
    print(f"D={D} dB: |Gamma_m| の範囲 = {mag.min():.4f} 〜 {mag.max():.4f}")

この計算では、真値 $|\Gamma| = 0.1$ に対して測定値の大きさがどこまで広がるかを示しています。出力から、指向性 20 dB では $|\Gamma_m|$ が 0.0 付近〜0.2 まで広がり(最悪の場合「無反射」とも「リターンロス14 dB」とも読めてしまう)、指向性 40 dB では 0.09〜0.11 に収まることが読み取れます。指向性が低いと、真値が同じでも測定結果の信頼区間が大きく膨らむことが定量的に確認できます。

誤差円の可視化(複素平面)

誤差円を複素平面(反射係数平面)上に描いて、真値を中心に不確かさの円がどう広がるかを直感的に見てみましょう。

import numpy as np
import matplotlib.pyplot as plt

def error_circle(gamma_true, D_dB, n=361):
    delta_mag = 10 ** (-D_dB / 20)
    theta = np.linspace(0, 2 * np.pi, n)
    return gamma_true + delta_mag * np.exp(1j * theta)

gamma_true = 0.1 * np.exp(1j * np.deg2rad(45))
colors = {20: 'tab:red', 30: 'tab:orange', 40: 'tab:green'}

fig, ax = plt.subplots(figsize=(7, 7))
for D in [20, 30, 40]:
    gm = error_circle(gamma_true, D)
    ax.plot(gm.real, gm.imag, color=colors[D], lw=2,
            label=f'D = {D} dB (|δ|={10**(-D/20):.3f})')

ax.plot(gamma_true.real, gamma_true.imag, 'k*', ms=15, label='True Γ')
ax.axhline(0, color='gray', lw=0.5)
ax.axvline(0, color='gray', lw=0.5)
ax.set_xlabel('Re(Γ)')
ax.set_ylabel('Im(Γ)')
ax.set_title('Error Circles in the Reflection Coefficient Plane')
ax.set_aspect('equal')
ax.legend()
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('error_circles.png', dpi=150, bbox_inches='tight')
plt.show()

このグラフでは、黒い星が真の反射係数、各色の円がその指向性での誤差円です。3つの円はすべて真値を中心とした同心円になっており、半径が $|\delta| = 10^{-D/20}$ で決まることが視覚的にわかります。指向性 20 dB(赤)の円は大きく、原点(無反射)を含むほど広がっているため「整合しているのかどうか」さえ判別できません。一方、指向性 40 dB(緑)の円は小さく真値の近くに張り付いており、測定が信頼できることがわかります。

スミスチャート上での誤差円

実務では反射係数をスミスチャート上で読み取ります。スミスチャートは反射係数平面に等抵抗円・等リアクタンス円を重ねたもので、インピーダンスとの対応がひと目でわかります。誤差円をスミスチャート上に重ねて、指向性が読み取り精度に与える影響を見ましょう。

import numpy as np
import matplotlib.pyplot as plt

def smith_grid(ax):
    """スミスチャートのグリッド(等r円・等x円)を描く"""
    # 単位円(|Γ|=1)
    th = np.linspace(0, 2*np.pi, 400)
    ax.plot(np.cos(th), np.sin(th), 'k', lw=1)
    # 等抵抗円 r = const : 中心 r/(1+r), 半径 1/(1+r)
    for r in [0.2, 0.5, 1, 2, 5]:
        c, rad = r/(1+r), 1/(1+r)
        ax.plot(c + rad*np.cos(th), rad*np.sin(th), color='gray', lw=0.5)
    # 等リアクタンス円 x = const : 中心 (1, 1/x), 半径 1/|x|
    for x in [0.2, 0.5, 1, 2, 5]:
        for s in (+1, -1):
            cx, cy, rad = 1, s/x, 1/x
            phi = np.linspace(0, 2*np.pi, 400)
            xx, yy = cx + rad*np.cos(phi), cy + rad*np.sin(phi)
            mask = xx**2 + yy**2 <= 1.0 + 1e-9   # 単位円内のみ
            ax.plot(xx[mask], yy[mask], color='gray', lw=0.5)

この関数はスミスチャートの背景グリッドを描くものです。等抵抗円(実部一定)と等リアクタンス円(虚部一定)を反射係数平面に写像しており、これに測定点を重ねればインピーダンスが読み取れます。次に、この背景の上に誤差円を描きます。

gamma_true = 0.1 * np.exp(1j * np.deg2rad(45))
colors = {20: 'tab:red', 30: 'tab:orange', 40: 'tab:green'}

fig, ax = plt.subplots(figsize=(8, 8))
smith_grid(ax)

th = np.linspace(0, 2*np.pi, 361)
for D in [20, 30, 40]:
    dmag = 10 ** (-D/20)
    gm = gamma_true + dmag * np.exp(1j*th)
    ax.plot(gm.real, gm.imag, color=colors[D], lw=2.2,
            label=f'D = {D} dB')

ax.plot(gamma_true.real, gamma_true.imag, 'k*', ms=16, label='True Γ')
ax.set_xlim(-1.05, 1.05)
ax.set_ylim(-1.05, 1.05)
ax.set_aspect('equal')
ax.set_title('Error Circles on the Smith Chart (|Γ|=0.1, RL=20 dB)')
ax.legend(loc='lower right')
ax.axis('off')
plt.tight_layout()
plt.savefig('smith_error_circles.png', dpi=150, bbox_inches='tight')
plt.show()

スミスチャート上で見ると、真値の点(黒星)を囲む誤差円が、インピーダンスの読み取り精度に直結することがわかります。指向性 20 dB(赤)の円は等抵抗円・等リアクタンス円を何本もまたいでおり、対応するインピーダンスが大きくばらつきます。すなわち「インピーダンスは $50 + j25\,\Omega$ 付近」程度の精度しか得られません。指向性 40 dB(緑)の円は小さく、特定の等r円・等x円の交点付近に収まるため、インピーダンスをはるかに高精度に読み取れます。スミスチャートは誤差円の効果を「インピーダンス読み取り誤差」として直感的に見せてくれるのです。

リターンロス・VSWR の測定範囲

最後に、真のリターンロスをさまざまに変えたとき、各指向性で測定されうるリターンロスと VSWR の範囲を計算し、整合が良い素子ほど誤差が深刻になる様子を可視化します。

import numpy as np
import matplotlib.pyplot as plt

def measured_range(RL_true_dB, D_dB):
    """真のリターンロスと指向性から、測定リターンロスの上下限[dB]を返す"""
    gamma = 10 ** (-RL_true_dB / 20)   # 真の |Γ|
    delta = 10 ** (-D_dB / 20)         # 誤差ベクトル
    g_max = gamma + delta              # 反射が最大に見える場合
    g_min = max(gamma - delta, 1e-6)   # 反射が最小に見える場合(負を回避)
    RL_min = -20 * np.log10(g_max)     # 大きい|Γ| -> 小さいRL
    RL_max = -20 * np.log10(g_min)     # 小さい|Γ| -> 大きいRL
    return RL_min, RL_max

RL_true = np.linspace(5, 40, 200)
fig, ax = plt.subplots(figsize=(9, 6))
colors = {20: 'tab:red', 30: 'tab:orange', 40: 'tab:green'}

for D in [20, 30, 40]:
    lows, highs = [], []
    for rl in RL_true:
        lo, hi = measured_range(rl, D)
        lows.append(lo); highs.append(hi)
    ax.fill_between(RL_true, lows, highs, color=colors[D], alpha=0.25,
                    label=f'D = {D} dB の測定範囲')

ax.plot(RL_true, RL_true, 'k--', lw=1.5, label='誤差なし (理想)')
ax.set_xlabel('True Return Loss [dB]')
ax.set_ylabel('Measured Return Loss [dB]')
ax.set_title('Return Loss Measurement Uncertainty vs Directivity')
ax.legend()
ax.grid(True, alpha=0.3)
ax.set_xlim(5, 40); ax.set_ylim(0, 60)
plt.tight_layout()
plt.savefig('return_loss_uncertainty.png', dpi=150, bbox_inches='tight')
plt.show()

この図は、横軸に真のリターンロス、縦軸に測定されうるリターンロスの範囲(帯)を示しています。読み取れる重要な事実が3つあります。第1に、真のリターンロスが小さい(よく反射する、左側)領域では帯が細く、測定誤差は小さいこと。第2に、真のリターンロスが大きい(よく整合した、右側)領域に行くほど帯が劇的に広がり、誤差が深刻になること。第3に、指向性が結合器の「測定できるリターンロスの上限」を実質的に決めていることです。指向性 20 dB の結合器では真のリターンロスが 20 dB を超えると測定範囲が上方向に発散し、「リターンロス 20 dB 以上」としか言えなくなります。これは、誤差ベクトルの大きさが真の反射と同程度になり、最良の場合に反射がほぼ打ち消されて見えるためです。

経験則として「結合器の指向性は、測定したい最良リターンロスより 10〜20 dB 以上良くなければならない」と言われますが、この図はその根拠をはっきり示しています。高精度な反射測定には、それに見合った高指向性の結合器(あるいは校正による誤差補正)が必須なのです。

まとめ

本記事では、方向性結合器の性能指標と、それが反射測定の精度に与える影響を、Sパラメータの定義から誤差円の可視化まで一貫して解説しました。

  • 3つの性能指標: 結合度 $C = -20\log_{10}|S_{31}|$、指向性 $D = 20\log_{10}(|S_{31}|/|S_{41}|)$、アイソレーション $I = -20\log_{10}|S_{41}|$ をSパラメータで定義し、$I = C + D$ という関係を導いた
  • 指向性の物理的意味: 結合器が波の向きをどれだけきれいに区別できるかを表し、有限の指向性は反射波チャネルへの進行波の漏れとして現れる
  • 誤差円: 測定される反射係数は $\Gamma_m = \Gamma + \delta$ で、漏れ $\delta$ の位相が未知のため、真値を中心とした半径 $|\delta| = 10^{-D/20}$ の誤差円のどこかに測定値が現れる
  • 測定誤差の本質: $|\Gamma| – |\delta| \le |\Gamma_m| \le |\Gamma| + |\delta|$ により、整合が良い素子ほど相対誤差が深刻になり、指向性が測定可能なリターンロスの上限を決める
  • 可視化: 指向性 20/30/40 dB の誤差円を複素平面とスミスチャートに描き、指向性が10 dB良くなるごとに誤差円の半径が約1/3.16に縮むことを確認した

方向性結合器の指向性は、ネットワークアナライザの測定不確かさを支配する最重要パラメータです。実際のVNAでは、ショート・オープン・ロードなどの標準器を使った校正によって指向性誤差を数学的に取り除き、見かけの指向性を大幅に改善しています。次のステップとして、校正の原理や散乱行列そのものの理解を深めると、RF測定の全体像がつながります。

次のステップとして、以下の記事も参考にしてください。