FM放送のアンテナは電界が垂直方向に振動する「垂直偏波」を使っていますが、GPS衛星や衛星放送のアンテナは「円偏波」を使っています。なぜわざわざ電界を回転させる必要があるのでしょうか?
その理由は、電離層を通過する際のファラデー回転にあります。直線偏波の電磁波が電離層を通過すると、偏波面が予測困難な角度だけ回転してしまいます。送信アンテナと受信アンテナの偏波面がずれると、受信電力が大幅に低下する(最悪の場合ゼロになる)問題が生じます。円偏波を使えば、偏波面の回転があっても受信電力が一定に保たれるのです。
円偏波アンテナの理論を理解することは、以下の場面で不可欠です。
- 衛星通信・GPS: 衛星と地上間の通信では、ファラデー回転の影響を避けるために円偏波が標準的に使われます。円偏波アンテナの設計は衛星通信エンジニアの必須スキルです
- レーダー工学: 気象レーダーでは、雨粒による偏波特性の変化を利用して降水量を推定します。二重偏波レーダーの理論には偏波の数学的理解が不可欠です
- RFID・無線電力伝送: 受信アンテナの姿勢が不定な環境(RFID タグなど)では、円偏波を使うことで姿勢に依存しない安定した通信が可能になります
本記事の内容
- 偏波とは何か — 電界ベクトルの軌跡
- 直線偏波・円偏波・楕円偏波の数学的記述(ジョーンズベクトル)
- ポアンカレ球 — 偏波を球面上に可視化する
- 円偏波の生成方法(位相差90°の直交成分)
- 軸比(AR)の定義と測定
- パッチアンテナでの円偏波設計
- ヘリカルアンテナの円偏波特性
- Pythonによるポアンカレ球上の偏波状態の可視化
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
偏波とは何か
電界ベクトルの軌跡
電磁波は横波であり、電界ベクトル $\bm{E}$ は伝搬方向に垂直な面内で振動します。$z$ 方向に伝搬する電磁波を考えると、電界は $xy$ 平面内で振動します。
ある固定された $z$ 座標で電界ベクトルの時間変化を観察すると、電界ベクトルの先端が $xy$ 平面上にある軌跡を描きます。この軌跡のパターンが偏波(polarization)です。
日常的なアナロジーで考えると、ロープの一端を手に持って振る動作に似ています。上下に振れば「直線偏波」、手を円を描くように回せば「円偏波」、楕円を描くように回せば「楕円偏波」が生じます。
偏波の3つの基本形
偏波には3つの基本形があります。
- 直線偏波(linear polarization): 電界ベクトルが一直線上を往復します。テレビのアンテナ(八木アンテナ)は水平偏波を受信するように設計されています。
- 円偏波(circular polarization): 電界ベクトルの先端が円を描きます。回転方向により、右旋円偏波(RHCP)と左旋円偏波(LHCP)に分かれます。
- 楕円偏波(elliptical polarization): 電界ベクトルの先端が楕円を描きます。最も一般的な偏波状態であり、直線偏波と円偏波はその特殊ケースです。
では、これらの偏波状態を数学的にどう記述するのでしょうか?ジョーンズベクトルによる表現を見ていきましょう。
ジョーンズベクトルによる偏波の記述
一般的な偏波状態
$z$ 方向に伝搬する単色波の電界を $x$ 成分と $y$ 成分に分解します。
$$ E_x(z, t) = E_{0x} \cos(\omega t – kz + \delta_x) $$
$$ E_y(z, t) = E_{0y} \cos(\omega t – kz + \delta_y) $$
ここで $E_{0x}$, $E_{0y}$ は各成分の振幅、$\delta_x$, $\delta_y$ は初期位相です。偏波の状態は、振幅比 $E_{0y}/E_{0x}$ と位相差 $\delta = \delta_y – \delta_x$ の2つのパラメータで完全に決まります。
ジョーンズベクトル
複素振幅表現を使うと、上の2成分をベクトル1つにまとめて表現できます。これをジョーンズベクトル(Jones vector)と呼びます。
$$ \bm{J} = \begin{pmatrix} E_{0x} \, e^{j\delta_x} \\ E_{0y} \, e^{j\delta_y} \end{pmatrix} $$
$\delta_x = 0$ として位相の基準をとると
$$ \bm{J} = \begin{pmatrix} E_{0x} \\ E_{0y} \, e^{j\delta} \end{pmatrix} $$
ここで $\delta = \delta_y – \delta_x$ は2成分間の位相差です。
各偏波のジョーンズベクトル
水平直線偏波($x$ 偏波):
$$ \bm{J}_H = \begin{pmatrix} 1 \\ 0 \end{pmatrix} $$
垂直直線偏波($y$ 偏波):
$$ \bm{J}_V = \begin{pmatrix} 0 \\ 1 \end{pmatrix} $$
45°直線偏波:
$$ \bm{J}_{45} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix} $$
ここで $\delta = 0$(同位相)なので、$x$ 成分と $y$ 成分が同時に最大・最小になり、45°方向の直線偏波になります。
右旋円偏波(RHCP):
$$ \bm{J}_R = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -j \end{pmatrix} $$
$y$ 成分が $x$ 成分に対して $-90°$($-j = e^{-j\pi/2}$)遅れています。これは電界ベクトルが時計回りに回転すること($z$ 方向に向かって見て右回り)を意味します。
左旋円偏波(LHCP):
$$ \bm{J}_L = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ j \end{pmatrix} $$
$y$ 成分が $x$ 成分に対して $+90°$($j = e^{j\pi/2}$)進んでいます。
偏波楕円のパラメータ
一般的な楕円偏波は、楕円の傾斜角 $\tau$ と楕円率角 $\epsilon$ で特徴づけられます。
楕円の長軸と $x$ 軸のなす角が傾斜角 $\tau$($0 \leq \tau < \pi$)です。楕円率角 $\epsilon$($-\pi/4 \leq \epsilon \leq \pi/4$)は
$$ \tan \epsilon = \pm \frac{E_{\text{minor}}}{E_{\text{major}}} $$
で定義されます。ここで $E_{\text{major}}$, $E_{\text{minor}}$ は楕円の長軸・短軸方向の電界振幅です。符号は回転方向を表し、$+$ が左旋、$-$ が右旋です。
$\epsilon = 0$ のとき直線偏波、$\epsilon = \pm \pi/4$ のとき円偏波です。
ジョーンズベクトルは偏波の完全な記述を与えますが、2次元の複素ベクトルなので直感的に把握しにくい面があります。偏波状態をもっと直観的に可視化する方法として、ポアンカレ球を導入しましょう。
ポアンカレ球 — 偏波の幾何学的表現
ストークスパラメータ
ストークスパラメータ(Stokes parameters)は、偏波状態を4つの実数 $(S_0, S_1, S_2, S_3)$ で表現する方法です。完全偏波の場合、これらは電界の振幅と位相差から次のように定義されます。
$$ S_0 = E_{0x}^2 + E_{0y}^2 $$
$$ S_1 = E_{0x}^2 – E_{0y}^2 $$
$$ S_2 = 2 E_{0x} E_{0y} \cos\delta $$
$$ S_3 = 2 E_{0x} E_{0y} \sin\delta $$
$S_0$ は全強度、$S_1$ は水平/垂直成分の強度差、$S_2$ は45°/-45°成分の強度差、$S_3$ は右旋/左旋成分の強度差を表します。
完全偏波の場合、次の関係が成り立ちます。
$$ S_0^2 = S_1^2 + S_2^2 + S_3^2 $$
これは3次元空間で半径 $S_0$ の球面の方程式に他なりません。
ポアンカレ球
正規化されたストークスパラメータ $s_i = S_i / S_0$($i = 1, 2, 3$)を直交3軸にとると、すべての偏波状態が単位球面上の点として表現できます。この球がポアンカレ球(Poincare sphere)です。
ポアンカレ球上の位置と偏波の対応を整理しましょう。
赤道上: すべての直線偏波が並んでいます。$s_1 = 1$ の点は水平偏波、$s_1 = -1$ は垂直偏波、$s_2 = 1$ は45°偏波、$s_2 = -1$ は-45°偏波です。
北極 $(s_3 = 1)$: 左旋円偏波(LHCP)
南極 $(s_3 = -1)$: 右旋円偏波(RHCP)
北半球: 左旋楕円偏波(左回り)
南半球: 右旋楕円偏波(右回り)
ポアンカレ球の経度 $2\tau$ は偏波楕円の傾斜角に、緯度 $2\epsilon$ は楕円率角に対応します。「2倍」が付くのは、偏波が180°の回転で元に戻る性質(偏波面の向きは180°の周期を持つ)を反映しています。
ポアンカレ球の実用的な価値
ポアンカレ球の最大の利点は、偏波の変換を球面上の回転として幾何学的に把握できることです。例えば:
- 波長板(位相差板)による偏波変換は、球面上の特定の軸周りの回転に対応します
- 2つの偏波の「距離」は、球面上の角距離で表されます
- 偏波間の交差偏波分離度(XPD)は、球面上の対蹠点間の関係で理解できます
ポアンカレ球による偏波の全体像を把握したところで、次に実際のアンテナで円偏波をどのように生成するかを見ていきましょう。
円偏波の生成原理
位相差90°の直交成分
円偏波を生成するための基本原理は単純です。等振幅で位相差が90°の2つの直交する直線偏波成分を重ね合わせることです。
数学的に確認しましょう。$x$ 成分と $y$ 成分が等振幅 $E_0$ で、$y$ 成分が $x$ 成分より90°遅れている場合
$$ E_x(t) = E_0 \cos(\omega t) $$
$$ E_y(t) = E_0 \cos\left(\omega t – \frac{\pi}{2}\right) = E_0 \sin(\omega t) $$
時刻 $t$ における電界ベクトルの先端の位置は
$$ (E_x, E_y) = E_0 (\cos\omega t, \sin\omega t) $$
これは半径 $E_0$ の円上の点であり、角速度 $\omega$ で反時計回りに回転します。すなわち左旋円偏波(LHCP)です。
位相差を $+90°$ にすれば($y$ 成分が進んでいれば)右旋円偏波(RHCP)になります。
位相差がちょうど90°でない場合
位相差が90°からずれると楕円偏波になります。位相差を $\delta$ とすると
$$ \frac{E_x^2}{E_{0x}^2} + \frac{E_y^2}{E_{0y}^2} – 2\frac{E_x E_y}{E_{0x} E_{0y}} \cos\delta = \sin^2\delta $$
これは一般に楕円の方程式です。$\delta = \pm 90°$ かつ $E_{0x} = E_{0y}$ のとき円になり、$\delta = 0$ または $\delta = 180°$ のとき直線に退化します。
振幅が等しくない場合
$E_{0x} \neq E_{0y}$ の場合、$\delta = \pm 90°$ であっても楕円偏波になります。楕円の長軸と短軸はそれぞれ $\max(E_{0x}, E_{0y})$ と $\min(E_{0x}, E_{0y})$ に等しくなります。
したがって、良質な円偏波を得るためには、振幅の等しさと位相差90°の正確さの両方が重要です。
実際のアンテナ設計では、これらの条件をどう実現するのでしょうか?代表的な手法を見ていきましょう。
軸比(Axial Ratio)
定義
偏波の品質を定量的に評価する最も重要なパラメータが軸比(Axial Ratio, AR)です。
$$ \text{AR} = \frac{E_{\text{major}}}{E_{\text{minor}}} $$
ここで $E_{\text{major}}$ は偏波楕円の長軸方向の電界振幅、$E_{\text{minor}}$ は短軸方向の電界振幅です。
AR の値域は $1 \leq \text{AR} \leq \infty$ です。$\text{AR} = 1$ が完全な円偏波、$\text{AR} = \infty$ が直線偏波に対応します。dBで表現すると
$$ \text{AR}_{\text{dB}} = 20 \log_{10}(\text{AR}) $$
であり、完全円偏波は 0 dB、実用上の許容値は通常 3 dB($\text{AR} \leq \sqrt{2} \approx 1.414$)です。
軸比と偏波損失の関係
送信アンテナと受信アンテナの偏波が不一致の場合、偏波損失(polarization loss)が生じます。偏波損失係数(PLF)は、送信偏波と受信偏波のジョーンズベクトルの内積で与えられます。
$$ \text{PLF} = |\bm{J}_t \cdot \bm{J}_r^*|^2 $$
完全な円偏波のアンテナが逆旋回の円偏波を受信しようとすると、PLF = 0(完全な偏波不一致)になります。同旋回ならば PLF = 1(損失なし)です。
AR が 3 dB の円偏波アンテナが完全な円偏波信号を受信する場合、最悪の姿勢で約 0.5 dB の偏波損失が生じます。これが AR $< 3$ dB の実用基準の根拠です。
軸比の理論を理解したところで、具体的なアンテナでの円偏波設計手法を見ていきましょう。
パッチアンテナでの円偏波設計
基本原理
マイクロストリップパッチアンテナは、もともと直線偏波のアンテナです。しかし、2つの直交するモードを等振幅・90°位相差で同時に励振することで円偏波を実現できます。
正方形パッチには、$x$ 方向の共振モード(TM$_{10}$)と $y$ 方向の共振モード(TM$_{01}$)が存在します。正方形パッチでは両モードの共振周波数が一致するため、適切な給電方法によって両モードを同時に励振できます。
単一給電による円偏波
最もシンプルな方法は、パッチの対角線上にわずかな摂動を加えることです。具体的には:
コーナーカット法: 正方形パッチの対角の2つの角を三角形に切り取ります。これにより $x$ 方向と $y$ 方向の共振周波数がわずかにずれ、2つのモードが近接した異なる周波数で共振します。給電周波数を2つの共振周波数の中間に設定すると、一方のモードは共振より上、他方は共振より下で動作し、位相差がおよそ90°になります。
切り取る面積 $\Delta S$ と元のパッチ面積 $S$ の比は、近似的に
$$ \frac{\Delta S}{S} \approx \frac{1}{2Q} $$
で与えられます。ここで $Q$ はパッチの品質係数です。$Q$ が大きいほど小さな摂動で円偏波が実現できますが、帯域幅は狭くなります。
対角給電法: 正方形パッチの対角線上の1点(中心からずれた位置)に給電します。この位置では $x$ 方向モードと $y$ 方向モードの両方を同時に励振でき、位置の選び方によって位相差を制御できます。
2点給電による円偏波
より確実に円偏波を得るには、2つの給電点を用います。$x$ 方向の辺と $y$ 方向の辺にそれぞれ1つずつ給電し、給電信号に90°の位相差をつけます。
位相差の生成には90°ハイブリッド(ブランチラインカプラ)が一般的に使われます。ハイブリッドの2つの出力ポートは等振幅で90°の位相差を持つため、そのまま2つの給電点に接続すればよいのです。
2点給電方式は単一給電方式に比べて軸比帯域幅が広い利点がありますが、給電回路が複雑になるデメリットがあります。
パッチアンテナの円偏波設計を理解したところで、もう一つの重要な円偏波アンテナであるヘリカルアンテナについて見ていきましょう。
ヘリカルアンテナの円偏波特性
軸モードヘリカルアンテナ
ヘリカルアンテナ(helical antenna)は、導線をコイル状に巻いた立体的な構造のアンテナです。円周が約1波長のとき、軸モード(axial mode)で動作し、コイルの軸方向に円偏波を放射します。
軸モードの動作条件は
$$ C \approx \lambda $$
ここで $C = \pi D$ はヘリックスの円周、$D$ は直径です。ピッチ角 $\alpha$ は
$$ \alpha = \arctan\left(\frac{S}{\pi D}\right) $$
で定義されます。ここで $S$ は1巻きあたりの軸方向の間隔(ピッチ)です。良好な円偏波が得られるピッチ角の範囲は $12° \leq \alpha \leq 15°$ です。
利得と巻き数
軸モードヘリカルアンテナの利得は、近似的に
$$ G \approx 12 \left(\frac{C}{\lambda}\right)^2 \cdot \frac{N S}{\lambda} $$
で与えられます。ここで $N$ は巻き数です。巻き数を増やすほど利得が増加し、ビーム幅が狭くなります。
帯域幅
ヘリカルアンテナの重要な利点は広い帯域幅です。軸比3 dB以内の帯域は、おおよそ
$$ \frac{3}{4} < \frac{C}{\lambda} < \frac{4}{3} $$
であり、帯域比は約1.78:1(78%帯域幅)に達します。これは螺旋アンテナほどではありませんが、パッチアンテナの数%帯域幅と比べると非常に広帯域です。
偏波の回転方向
ヘリカルアンテナの偏波の回転方向は、ヘリックスの巻き方向と同じです。右巻きのヘリックスは右旋円偏波(RHCP)を、左巻きのヘリックスは左旋円偏波(LHCP)を放射します。
ヘリカルアンテナの理論を理解したところで、Pythonを使って偏波状態をポアンカレ球上に可視化しましょう。
Pythonによるポアンカレ球上の偏波状態の可視化
ストークスパラメータを計算し、さまざまな偏波状態をポアンカレ球上にプロットします。
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def stokes_parameters(E0x, E0y, delta):
"""
ジョーンズベクトルからストークスパラメータを計算する。
Parameters
----------
E0x, E0y : float x, y成分の振幅
delta : float 位相差 delta_y - delta_x [rad]
Returns
-------
S0, S1, S2, S3 : float ストークスパラメータ
"""
S0 = E0x**2 + E0y**2
S1 = E0x**2 - E0y**2
S2 = 2 * E0x * E0y * np.cos(delta)
S3 = 2 * E0x * E0y * np.sin(delta)
return S0, S1, S2, S3
# --- ポアンカレ球の描画 ---
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(111, projection='3d')
# 球面のワイヤーフレーム
u = np.linspace(0, 2 * np.pi, 50)
v = np.linspace(0, np.pi, 30)
x_sphere = np.outer(np.cos(u), np.sin(v))
y_sphere = np.outer(np.sin(u), np.sin(v))
z_sphere = np.outer(np.ones_like(u), np.cos(v))
ax.plot_wireframe(x_sphere, y_sphere, z_sphere,
color='gray', alpha=0.1, linewidth=0.3)
# 赤道と子午線
phi_circle = np.linspace(0, 2 * np.pi, 100)
ax.plot(np.cos(phi_circle), np.sin(phi_circle), np.zeros_like(phi_circle),
'gray', linewidth=0.5, alpha=0.3)
ax.plot(np.cos(phi_circle), np.zeros_like(phi_circle), np.sin(phi_circle),
'gray', linewidth=0.5, alpha=0.3)
ax.plot(np.zeros_like(phi_circle), np.cos(phi_circle), np.sin(phi_circle),
'gray', linewidth=0.5, alpha=0.3)
# 代表的な偏波状態をプロット
polarizations = {
'H-pol (0°)': (1.0, 0.0, 0.0),
'V-pol (90°)': (0.0, 1.0, 0.0),
'45° linear': (1/np.sqrt(2), 1/np.sqrt(2), 0.0),
'-45° linear': (1/np.sqrt(2), 1/np.sqrt(2), np.pi),
'RHCP': (1/np.sqrt(2), 1/np.sqrt(2), -np.pi/2),
'LHCP': (1/np.sqrt(2), 1/np.sqrt(2), np.pi/2),
'Elliptical (AR=2)': (1.0, 0.5, -np.pi/2),
'Elliptical (AR=3)': (1.0, 1/3, -np.pi/2),
}
markers = ['o', 's', '^', 'v', 'D', 'D', 'p', 'p']
colors = ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4',
'#FFD93D', '#FF8C42', '#C084FC', '#F472B6']
for (name, (E0x, E0y, delta)), marker, color in zip(
polarizations.items(), markers, colors):
S0, S1, S2, S3 = stokes_parameters(E0x, E0y, delta)
# 正規化
s1, s2, s3 = S1/S0, S2/S0, S3/S0
ax.scatter([s1], [s2], [s3], s=120, c=color, marker=marker,
edgecolors='white', linewidth=0.5, zorder=5)
ax.text(s1*1.15, s2*1.15, s3*1.15, name, fontsize=8, ha='center')
# 軸ラベル
ax.set_xlabel('$s_1$ (H/V)', fontsize=12)
ax.set_ylabel('$s_2$ (45°/-45°)', fontsize=12)
ax.set_zlabel('$s_3$ (LHCP/RHCP)', fontsize=12)
ax.set_title('Poincaré Sphere', fontsize=15)
ax.set_xlim(-1.3, 1.3)
ax.set_ylim(-1.3, 1.3)
ax.set_zlim(-1.3, 1.3)
plt.tight_layout()
plt.show()
ポアンカレ球上の偏波状態の配置から、偏波の幾何学的構造が直感的に理解できます。
- 直線偏波は赤道上に分布しています。水平偏波(H-pol)と垂直偏波(V-pol)は赤道上の反対側に位置し、45°偏波と-45°偏波も赤道上の反対側に位置します。これは直線偏波が $s_3 = 0$(右旋/左旋成分が等しい)であることを反映しています。
- 円偏波は極に位置します。RHCPは南極($s_3 = -1$)、LHCPは北極($s_3 = +1$)にあります。球面上で最も離れた位置関係にあり、これが交差偏波の完全な分離に対応しています。
- 楕円偏波は赤道と極の間に分布しています。AR(軸比)が小さいほど(円に近いほど)極に近く、大きいほど赤道に近い位置にあります。
Pythonによる偏波楕円の可視化
さまざまな位相差と振幅比による偏波楕円を可視化します。
import numpy as np
import matplotlib.pyplot as plt
t = np.linspace(0, 2 * np.pi, 500)
fig, axes = plt.subplots(2, 4, figsize=(16, 8))
# 上段: 振幅比固定(1:1)、位相差を変化
E0x, E0y = 1.0, 1.0
deltas = [0, np.pi/6, np.pi/4, np.pi/2]
delta_labels = ['$\\delta=0°$\n(Linear)', '$\\delta=30°$\n(Elliptical)',
'$\\delta=45°$\n(Elliptical)', '$\\delta=90°$\n(Circular)']
for i, (delta, label) in enumerate(zip(deltas, delta_labels)):
ax = axes[0, i]
Ex = E0x * np.cos(t)
Ey = E0y * np.cos(t - delta)
ax.plot(Ex, Ey, '#4ECDC4', linewidth=2)
# 矢印で回転方向を示す
idx = len(t) // 8
ax.annotate('', xy=(Ex[idx+1], Ey[idx+1]),
xytext=(Ex[idx], Ey[idx]),
arrowprops=dict(arrowstyle='->', color='#FF6B6B', lw=2))
ax.set_xlim(-1.5, 1.5)
ax.set_ylim(-1.5, 1.5)
ax.set_aspect('equal')
ax.set_title(label, fontsize=11)
ax.set_xlabel('$E_x$')
ax.set_ylabel('$E_y$')
ax.grid(True, alpha=0.3)
ax.axhline(y=0, color='gray', linewidth=0.5)
ax.axvline(x=0, color='gray', linewidth=0.5)
axes[0, 0].set_ylabel('$E_y$\n(Equal amplitude)', fontsize=11)
# 下段: 位相差固定(90°)、振幅比を変化
delta = np.pi / 2
amplitude_ratios = [0.25, 0.5, 0.75, 1.0]
ar_labels = ['AR=4.0\n(Elliptical)', 'AR=2.0\n(Elliptical)',
'AR=1.33\n(Near-circular)', 'AR=1.0\n(Circular)']
for i, (ratio, label) in enumerate(zip(amplitude_ratios, ar_labels)):
ax = axes[1, i]
Ex = 1.0 * np.cos(t)
Ey = ratio * np.cos(t - delta)
ax.plot(Ex, Ey, '#C084FC', linewidth=2)
idx = len(t) // 8
ax.annotate('', xy=(Ex[idx+1], Ey[idx+1]),
xytext=(Ex[idx], Ey[idx]),
arrowprops=dict(arrowstyle='->', color='#FF6B6B', lw=2))
ax.set_xlim(-1.5, 1.5)
ax.set_ylim(-1.5, 1.5)
ax.set_aspect('equal')
ax.set_title(label, fontsize=11)
ax.set_xlabel('$E_x$')
ax.set_ylabel('$E_y$')
ax.grid(True, alpha=0.3)
ax.axhline(y=0, color='gray', linewidth=0.5)
ax.axvline(x=0, color='gray', linewidth=0.5)
axes[1, 0].set_ylabel('$E_y$\n($\\delta=90°$, vary amp)', fontsize=11)
plt.suptitle('Polarization Ellipses: Effect of Phase Difference and Amplitude Ratio',
fontsize=14, y=1.02)
plt.tight_layout()
plt.show()
偏波楕円の可視化から、円偏波生成の2つの条件が視覚的に確認できます。
- 上段(振幅比一定、位相差を変化): 位相差 $\delta = 0°$ では直線偏波(45°方向)ですが、$\delta$ が増加するにつれて楕円が「膨らんで」いき、$\delta = 90°$ で完全な円偏波になります。位相差が正確に90°であることが円偏波の第一条件です。
- 下段(位相差90°固定、振幅比を変化): 振幅比が1から離れるほど楕円が細長くなり、AR が増大します。振幅比 0.5(AR = 2)では明らかに楕円ですが、振幅比 0.75(AR = 1.33)ではかなり円に近づきます。2つの直交成分が等振幅であることが円偏波の第二条件です。
- パッチアンテナのコーナーカット法では、この「等振幅・90°位相差」の条件を1つの共振周波数のずれで近似的に実現しています。帯域幅が狭い理由は、この条件が狭い周波数範囲でしか成り立たないためです。
Pythonによる円偏波の偏波損失の計算
送受信間の偏波不一致による損失を可視化します。
import numpy as np
import matplotlib.pyplot as plt
def polarization_loss_factor(AR_tx, AR_rx, tau_diff):
"""
2つの楕円偏波アンテナ間の偏波損失係数を計算する。
同旋回を仮定。
Parameters
----------
AR_tx : float 送信アンテナの軸比(線形値)
AR_rx : float 受信アンテナの軸比(線形値)
tau_diff : float 偏波楕円の傾斜角の差 [rad]
"""
# 楕円率角
eps_tx = np.arctan(1 / AR_tx)
eps_rx = np.arctan(1 / AR_rx)
# PLF計算(近似式)
PLF = (np.cos(eps_tx) * np.cos(eps_rx) * np.cos(tau_diff) +
np.sin(eps_tx) * np.sin(eps_rx))**2
return PLF
# (a) 軸比と偏波損失の関係
AR_values = np.linspace(1, 10, 200) # 軸比 1(円)〜10
tau_diff = 0 # 楕円の傾斜角差=0
fig, axes = plt.subplots(1, 2, figsize=(14, 6))
# 送信が完全円偏波(AR=1)、受信のARを変化
ax = axes[0]
PLF = polarization_loss_factor(1.0, AR_values, tau_diff)
PLF_dB = 10 * np.log10(PLF + 1e-10)
AR_dB = 20 * np.log10(AR_values)
ax.plot(AR_dB, PLF_dB, 'c-', linewidth=2)
ax.set_xlabel('Receive Antenna AR [dB]', fontsize=12)
ax.set_ylabel('Polarization Loss [dB]', fontsize=12)
ax.set_title('Polarization Loss vs Axial Ratio\n(TX: Perfect CP, same sense)', fontsize=13)
ax.set_xlim(0, 20)
ax.set_ylim(-10, 0.5)
ax.grid(True, alpha=0.3)
ax.axvline(x=3, color='r', linestyle='--', alpha=0.5, label='AR = 3 dB')
ax.axhline(y=-0.5, color='orange', linestyle='--', alpha=0.5, label='0.5 dB loss')
ax.legend(fontsize=10)
# (b) 直線偏波同士の角度ずれによる損失
ax = axes[1]
angle_diff = np.linspace(0, 90, 200)
PLF_linear = np.cos(np.radians(angle_diff))**2
PLF_linear_dB = 10 * np.log10(PLF_linear + 1e-10)
# 円偏波受信(ARに関わらず角度依存なし)
PLF_cp = np.ones_like(angle_diff) * 0.5 # CP→LP の場合 -3dB
PLF_cp_dB = 10 * np.log10(PLF_cp)
ax.plot(angle_diff, PLF_linear_dB, '#FF6B6B', linewidth=2, label='LP → LP')
ax.plot(angle_diff, PLF_cp_dB, '#4ECDC4', linewidth=2, label='CP → LP (-3 dB const.)')
ax.set_xlabel('Polarization Angle Mismatch [degrees]', fontsize=12)
ax.set_ylabel('Polarization Loss [dB]', fontsize=12)
ax.set_title('LP vs CP: Effect of Angle Mismatch', fontsize=13)
ax.set_xlim(0, 90)
ax.set_ylim(-25, 2)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
偏波損失のグラフから、円偏波の実用上の利点が定量的に理解できます。
- 左のグラフ: 受信アンテナのAR が 3 dB(= 1.41)のとき、偏波損失は約 0.5 dB にとどまります。AR が 6 dB(= 2)でも約 1 dB 以下の損失です。AR $< 3$ dB が実用基準として使われる理由は、この範囲で偏波損失が許容範囲内に収まるためです。
- 右のグラフ: 直線偏波同士(LP→LP)では、偏波面の角度ずれが 45°で -3 dB、90°で損失が無限大(完全な偏波不一致)になります。一方、円偏波→直線偏波(CP→LP)の場合、角度ずれに関わらず常に -3 dB の一定損失です。衛星通信でファラデー回転が問題にならない理由がここにあります。
まとめ
本記事では、円偏波アンテナの理論と設計について解説しました。
- 偏波の数学的記述: ジョーンズベクトルにより、偏波状態を2成分の振幅比と位相差で完全に記述できます
- ポアンカレ球: すべての偏波状態が球面上の1点として表現され、偏波変換を幾何学的に理解できます。赤道が直線偏波、極が円偏波に対応します
- 円偏波生成の原理: 等振幅かつ位相差90°の2つの直交する直線偏波を重ね合わせることで実現されます
- 軸比(AR): 偏波の品質を定量化する指標で、AR $< 3$ dB が実用上の許容基準です
- パッチアンテナ: コーナーカット法や2点給電法により円偏波が実現可能ですが、軸比帯域幅は狭い傾向があります
- ヘリカルアンテナ: 軸モード動作で自然に円偏波を発生し、78%もの広い軸比帯域幅を持ちます
偏波は電磁波の重要な特性であり、通信システムの設計において周波数や方向と並ぶ基本パラメータです。円偏波の理解は、衛星通信、レーダー、RFIDなど多くの分野で不可欠なスキルとなります。
次のステップとして、以下の記事も参考にしてください。