フェーズドアレイレーダーの写真を見ると、アンテナ素子がびっしりと、しかもいつも同じくらいの密度で並んでいることに気づきます。10 GHz のレーダーなら素子の間隔はおよそ 15 mm、車載の 77 GHz レーダーなら 2 mm 弱です。周波数が変わっても「波長の半分」という比率だけは判で押したように同じ。素子をもっと粗く並べれば、同じ開口面積をずっと少ない素子数(=少ない送受信モジュール、少ないコスト)で埋められるはずなのに、なぜ設計者はわざわざ密に並べるのでしょうか。
答えは グレーティングローブ(grating lobe) にあります。素子間隔を広げていくと、ある地点で、狙った方向とはまったく別の方向に、主ビームとまったく同じ高さのビームが突然現れます。サイドローブのように「小さな漏れ」ではありません。主ビームの完全な複製です。レーダーであれば、真正面の目標を追っているつもりが、斜め後ろの目標のエコーを同じ強さで受信してしまい、どちらの反射なのか原理的に区別できなくなります。この現象は光学の回折格子(grating)が高次の回折光を作るのと同じ数学から生じるため、この名前が付いています。
グレーティングローブの条件を押さえておくと、次のような場面で設計判断が一段と速くなります。
- フェーズドアレイレーダー: 走査範囲を ±60° 取りたいのか ±20° でよいのかで、許される素子間隔が 2 倍近く変わります。素子間隔は素子数を決め、素子数は T/R モジュール数=装置コストを直接決めます
- 5G / Massive MIMO 基地局: セクタを広くカバーするビーム走査では、素子間隔を欲張るとセル外の方向に強い偽ビームが立ち、他セルへの干渉源になります
- 衛星搭載フェーズドアレイ: 低軌道衛星は地上局を大きな角度範囲で追尾するため、走査角が大きく、間隔の制約が厳しくなります
- 電波干渉計・疎アレイ: 逆にグレーティングローブを「承知のうえで」受け入れ、素子配置をランダム化して害を散らすという設計もあります
本記事の内容
- グレーティングローブとは何か — 回折格子・エイリアシングとの共通点
- アレイファクタの位相変数 $\psi$ と、その $2\pi$ 周期性
- 可視領域(visible region)という「窓」の考え方
- グレーティングローブが現れない条件 $d/\lambda < 1/(1+|\sin\theta_0|)$ の導出(省略なし)
- 半波長間隔が「どこまで走査しても安全」である理由
- 空間サンプリング定理としての再解釈($u = \sin\theta$ 空間のナイキスト条件)
- 半波長間隔のコスト — 素子数・開口効率・相互結合のトレードオフ
- 素子パターンによるグレーティングローブ抑圧の限界(実は逆効果になる場合がある)
- 振幅テーパでグレーティングローブは消えないという事実
- Python 実装: $\psi$ 空間の窓、$d/\lambda$ と走査角の総当たりパターン、許容間隔曲線、テーパ比較
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
- アレイファクタの理論 — アレイアンテナの指向性パターンを数式から導出する
- アレイアンテナとビームフォーミングの理論を解説
- フェーズドアレイレーダーの原理と理論を解説
- ナイキスト周波数とは?求め方とサンプリング定理を図解でわかりやすく解説
グレーティングローブとは — 「同じ高さの偽ビーム」

図の緑の矢印が狙った方向($\theta_0 = 45°$)に立つ主ビーム、赤の矢印がグレーティングローブです。決定的なのは矢印の太さ、つまり利得が両者でまったく同じ 0 dB だという点です。灰色の短い線で描いたサイドローブは主ビームより 13 dB 以上低い「漏れ」ですが、グレーティングローブは主ビームの完全な複製であり、レーダーから見れば $-46°$ にある反射体を $45°$ の目標と取り違えます。以下では、この複製がなぜ生まれ、素子間隔 $d$ をどこまで広げると現れるのかを式で突き止めていきます。
まず、直感から入りましょう。合唱団を思い浮かべてください。一列に並んだ歌い手が、少しずつタイミングをずらして同じ音を出すと、ある方向にいる聴衆にはすべての声が同時に届き、大きく聞こえます。これがビームフォーミングです。歌い手の間隔が狭ければ、声がぴったり揃う方向はひとつだけです。ところが歌い手の間隔をどんどん広げていくと、「1 周期分ずれた声どうしが揃う方向」が別に生まれます。1 波長ずれても波は同じ形なので、聴衆には区別がつきません。この二番目の方向こそがグレーティングローブです。
光学に馴染みのある方なら、回折格子の高次回折を思い出すとさらに速いはずです。格子定数 $d$ の回折格子に波長 $\lambda$ の光を入れると、$d\sin\theta = m\lambda$($m = 0, \pm 1, \pm 2, \dots$)を満たす方向すべてに明線が出ます。$m = 0$ が 0 次(主ビーム)、$m = \pm 1$ 以降が高次回折です。アレイアンテナは電波の回折格子そのものであり、素子間隔 $d$ が波長に対して大きいほど高次のスポットが現れやすい。この対応関係が、グレーティングローブという名前の由来です。
サイドローブとは決定的に違う点を強調しておきます。サイドローブは、素子からの波が「不完全に」揃った結果として生じる漏れであり、一様励振の直線アレイなら主ビームより 13.15 dB 低いところに現れます。振幅テーパをかければ、これは 30 dB でも 40 dB でも下げられます。ところがグレーティングローブは、素子からの波が主ビームとまったく同じように「完全に」揃った結果です。したがって高さは主ビームと同じ 0 dB。テーパをかけても、テーパをかけた主ビームの複製が同じ高さで残るだけです。この違いを式のうえではっきりさせるのが、次節以降の目標になります。

左($d = 0.5\lambda$)では、0 dB に達するピークは正面の主ビーム 1 本だけで、その周りに $-13.15$ dB のサイドローブが並んでいます。右($d = 1.0\lambda$、$45°$ 走査)では、$45°$ の主ビームと $-17°$ のピークがまったく同じ 0 dB の高さで並び立っています。オレンジの破線($-13.15$ dB)を基準に見ると、サイドローブが破線より下にとどまるのに対し、グレーティングローブだけが破線を突き抜けて頂上まで届いていることがはっきり分かります。
工学的な被害も具体的に想像しておきましょう。捜索レーダーが正面 45° にビームを向けているとき、反対側の $-46°$ にグレーティングローブが立っていれば、そこにある大型の反射体(山、建物、他の航空機)からのエコーが同じ利得で入ってきます。レーダーは「ビームを向けている方向から返ってきた」と解釈するので、45° 方向に存在しない目標を報告します。これがゴーストターゲットです。通信であれば、意図しない方向へ全力で電力を放射することになり、他システムへの干渉と、受信側から見た相関干渉の両方を招きます。
以上が現象の姿です。では、この「完全な複製」がいつ、どの角度に現れるのかを、アレイファクタの式から厳密に決めていきましょう。
アレイファクタと位相変数 $\psi$
素子が $x$ 軸上に等間隔 $d$ で $N$ 個並んだ等間隔直線アレイ(ULA)を考えます。$n$ 番目の素子の位置は $x_n = nd$($n = 0, 1, \dots, N-1$)です。遠方界を考えるので、到来(あるいは放射)方向を、アレイの法線(ブロードサイド)から測った角度 $\theta$ で表します。
隣り合う素子から出た波が、角度 $\theta$ 方向の遠方点に届くまでの行路差は $d\sin\theta$ です。これは幾何学だけで決まる量で、波長 $\lambda$、波数 $k = 2\pi/\lambda$ を使えば、行路差に対応する位相差は次のようになります。
$$ \Delta\phi_{\text{空間}} = k d \sin\theta = \frac{2\pi d}{\lambda}\sin\theta $$

左図の赤い太線が行路差 $d\sin\theta$ です。灰色の破線は遠方界の等位相面(波面)で、隣の素子より $d\sin\theta$ だけ余計に進まないと同じ波面に乗れないことが幾何的に読み取れます。右図はその位相差が波形にどう効くかを示したもので、位相差 0 のときも位相差 $2\pi$(1 波長ずれ)のときも 2 本の波形が完全に重なっています。「ぴったり揃う」条件が 1 通りではなく $2\pi$ ごとに無限にある — これがグレーティングローブの発生源です。
一方、私たちは素子ごとの給電位相を自由に決められます。$n$ 番目の素子に位相 $n\beta$ を与えるとしましょう(隣接素子間で一定の位相差 $\beta$ を付ける、いわゆる進行波励振です)。すると、$n$ 番目の素子が遠方点にもたらす寄与は、振幅 $w_n$ を含めて
$$ w_n \exp\left[j\left(n k d \sin\theta + n\beta\right)\right] $$
と書けます。全素子の和がアレイファクタです。
$$ \begin{equation} \mathrm{AF}(\theta) = \sum_{n=0}^{N-1} w_n \exp\left[jn\left(kd\sin\theta + \beta\right)\right] \end{equation} $$
ここで、指数の中身をひとまとめにして
$$ \begin{equation} \psi \equiv kd\sin\theta + \beta = \frac{2\pi d}{\lambda}\sin\theta + \beta \end{equation} $$
と定義すると、アレイファクタは $\psi$ だけの関数になります。
$$ \mathrm{AF}(\psi) = \sum_{n=0}^{N-1} w_n e^{jn\psi} $$
この $\psi$ が本記事の主役です。$\psi$ は「隣り合う素子の寄与どうしの総位相差」であり、空間による位相差と給電による位相差の和になっています。
ビームを向けるとは $\psi = 0$ の方向を選ぶこと
すべての寄与が同位相で足し合わさるのは $\psi = 0$ のときです($w_n$ がすべて正の実数なら、このとき $|\mathrm{AF}|$ は最大値 $\sum_n w_n$ を取ります)。したがって、主ビームを角度 $\theta_0$ に向けたければ、$\theta = \theta_0$ で $\psi = 0$ となるように給電位相差 $\beta$ を選べばよいことになります。
$$ kd\sin\theta_0 + \beta = 0 \quad \Longrightarrow \quad \beta = -kd\sin\theta_0 $$
これを式 (2) に代入すると、$\psi$ は次の形に整理されます。
$$ \begin{equation} \psi(\theta) = kd\left(\sin\theta – \sin\theta_0\right) = \frac{2\pi d}{\lambda}\left(\sin\theta – \sin\theta_0\right) \end{equation} $$
つまりアレイファクタは
$$ \mathrm{AF}(\theta) = \sum_{n=0}^{N-1} w_n \exp\left[jn\frac{2\pi d}{\lambda}(\sin\theta – \sin\theta_0)\right] $$
となります。冒頭に掲げた「$\mathrm{AF} = \sum \exp[jkdn(\sin\theta – \sin\theta_0)]$」は、$w_n = 1$(一様励振)としたこの式にほかなりません。
一様励振の閉形式
$w_n = 1$ の場合は等比級数なので、和を閉じた形に書けます。公比 $r = e^{j\psi}$ の等比級数の和の公式 $\sum_{n=0}^{N-1} r^n = (1 – r^N)/(1 – r)$ を使うと、
$$ \mathrm{AF}(\psi) = \frac{1 – e^{jN\psi}}{1 – e^{j\psi}} $$
分子・分母それぞれから半角の因子をくくり出します。$1 – e^{jx} = -e^{jx/2}\left(e^{jx/2} – e^{-jx/2}\right) = -e^{jx/2}\cdot 2j\sin(x/2)$ を使うと、
$$ \mathrm{AF}(\psi) = \frac{-e^{jN\psi/2}\cdot 2j\sin(N\psi/2)}{-e^{j\psi/2}\cdot 2j\sin(\psi/2)} = e^{j(N-1)\psi/2}\,\frac{\sin(N\psi/2)}{\sin(\psi/2)} $$
指数因子は絶対値が 1 の位相回転(アレイの位相中心を原点から $(N-1)d/2$ だけずらしたことに対応)なので、振幅パターンには効きません。最大値 $N$ で正規化すると、よく見る形になります。
$$ \begin{equation} \left|\mathrm{AF}_{\text{norm}}(\psi)\right| = \frac{1}{N}\left|\frac{\sin(N\psi/2)}{\sin(\psi/2)}\right| \end{equation} $$
この関数は「周期的 sinc」あるいは Dirichlet 核と呼ばれます。次節で見るように、この形が持つ 周期性 こそがグレーティングローブの正体です。
ここまでで、アレイの指向性が $\psi$ という 1 変数の関数に押し込められました。次は、この関数が $\psi$ についてどんな対称性・周期性を持つのかを調べます。
$\psi$ の $2\pi$ 周期性 — 複製はいつも存在する
式 (4) の分子・分母を見てください。$\psi \to \psi + 2\pi$ と置き換えると、$\sin(\psi/2) \to \sin(\psi/2 + \pi) = -\sin(\psi/2)$、$\sin(N\psi/2) \to \sin(N\psi/2 + N\pi) = (-1)^N\sin(N\psi/2)$ となります。したがって絶対値を取れば
$$ \left|\mathrm{AF}_{\text{norm}}(\psi + 2\pi)\right| = \left|\mathrm{AF}_{\text{norm}}(\psi)\right| $$
が成り立ちます。閉形式に頼らなくても、もっと基本的な理由から同じ結論が出ます。式 (1) の一般形において $\psi \to \psi + 2\pi$ とすると、各項の指数は $e^{jn(\psi + 2\pi)} = e^{jn\psi}e^{j2\pi n} = e^{jn\psi}$ です。$n$ は整数なので $e^{j2\pi n} = 1$。つまり 素子が等間隔の整数格子上に並んでいる限り、励振 $w_n$ が何であろうと $\mathrm{AF}$ は $\psi$ について厳密に $2\pi$ 周期 です。振幅テーパをかけても周期性は壊れません。この一点が、後で「テーパではグレーティングローブは消えない」と結論する根拠になります。

青が一様励振、オレンジがハミング窓をかけた励振です。オレンジはサイドローブが $-40$ dB 付近まで沈んでいるのに対し、$\psi = 0, \pm 2\pi, \pm 4\pi$ に立つピークは両者とも同じ 0 dB で、位置も高さもまったく変わっていません。テーパで変えられるのはピークの太さと裾だけであり、$2\pi$ 周期のピーク列そのものは励振の選び方によらず必ず存在する、ということがこの 1 枚で確認できます。
周期性が言っていることは単純です。主ビームは $\psi = 0$ に立ちますが、$\psi$ 軸上には $\psi = \pm 2\pi, \pm 4\pi, \dots$ にも 完全に同じ形・同じ高さのピーク が並んでいます。$\psi$ の世界では、主ビームは孤立していません。無限に続くピークの列のうちの一本にすぎないのです。
$$ \psi = 2\pi m, \quad m = 0, \pm 1, \pm 2, \dots $$
$m = 0$ が主ローブ、$m = \pm 1, \pm 2, \dots$ が グレーティングローブの候補 です。ここで「候補」と書いたのは、$\psi$ 軸上のピークがすべて実在するとは限らないからです。$\psi$ は角度 $\theta$ から式 (3) を通して決まる量であり、$\theta$ は物理的に $-90° \le \theta \le 90°$ の範囲しか取れません。$\psi$ 軸上のピークのうち、この物理的に到達可能な範囲に落ちるものだけが、実際の空間に電波として現れます。
言い換えると、$\psi$ 軸には無限個のピークが最初から並んでいて、私たちは $d$ と $\theta_0$ の選び方によって「$\psi$ 軸のどの区間を覗くか」を決めているのです。覗いた窓に $m=0$ のピークだけが入ればグレーティングローブは出ません。$m = \pm 1$ のピークまで窓に入ってしまえば、その方向に偽ビームが立ちます。
この「窓」を定量化すれば、条件式は自動的に手に入ります。次節で窓の位置と幅を求めましょう。
可視領域 — $\psi$ 軸に開いた窓の幅
$\theta$ が $-90°$ から $+90°$ まで動くとき、$\sin\theta$ は $-1$ から $+1$ まで単調に動きます。この $u \equiv \sin\theta \in [-1, 1]$ の範囲を 可視領域(visible region) と呼びます。$|u| > 1$ に対応する $\psi$ の値は数式のうえでは存在しますが、実在の角度には対応しません(エバネッセントな、アレイ近傍にとどまる成分に対応します)。
式 (3) に $u = \sin\theta$、$u_0 = \sin\theta_0$ を入れると
$$ \psi = \frac{2\pi d}{\lambda}\left(u – u_0\right) $$
なので、$u$ が $-1$ から $+1$ まで動くとき $\psi$ が動く範囲は次の区間です。
$$ \begin{equation} \psi \in \left[\, -\frac{2\pi d}{\lambda}\left(1 + u_0\right),\ \ \frac{2\pi d}{\lambda}\left(1 – u_0\right) \right] \end{equation} $$
この区間が、私たちが $\psi$ 軸に開けた「窓」です。ここから 2 つの重要な性質が読み取れます。
性質 1: 窓の幅は走査角によらない。 区間の長さは
$$ \frac{2\pi d}{\lambda}(1 – u_0) + \frac{2\pi d}{\lambda}(1 + u_0) = \frac{4\pi d}{\lambda} $$
であり、$u_0$ が消えています。窓の幅は素子間隔だけで決まり、$d = \lambda/2$ なら幅はちょうど $2\pi$、$d = \lambda$ なら $4\pi$ です。
性質 2: 走査は窓をずらす操作である。 主ビームを $\theta_0$ に振ると、窓は $\psi$ 軸上を平行移動します。$u_0 > 0$ なら窓は負の側に寄り、$m = -1$ のピーク($\psi = -2\pi$)が窓に入りやすくなります。逆に $u_0 < 0$ なら $m = +1$ 側が危険になります。走査とは、幅が固定された窓を $\psi$ 軸上でスライドさせて、$\psi = 0$ のピークを狙った角度に対応させる操作にほかなりません。窓が固定幅なのに位置がずれるのですから、片側の端がいずれ隣のピークに触れるのは避けられません。

帯が可視領域の窓、緑丸が主ビーム($\psi = 0$)、赤い点線が複製ピーク $\psi = 2\pi m$ の位置です。上段($d = 0.5\lambda$)では窓の幅が $2\pi$ に固定されたまま走査角とともに左へスライドし、$90°$ 走査でも左端が $\psi = -2\pi$ にちょうど触れるだけで内部には入りません(全て青=安全)。下段($d = 0.7\lambda$)は窓幅が $2.8\pi$ とピーク間隔より広いため、$30°$ 走査の時点で $\psi = -2\pi$ が窓の内側に入り込み、以降は赤=偽ビーム発生になります。窓幅が $2\pi$ を超えた瞬間に走査余裕が失われるという構図が視覚的に読み取れます。
この描像だけで、半波長間隔の意味がほぼ見えてきます。$d = \lambda/2$ のとき窓の幅はちょうど $2\pi$ で、隣り合うピークの間隔もちょうど $2\pi$ です。幅 $2\pi$ の窓を $\psi$ 軸に置くと、窓の内部に入るピークは、両端に触れる場合を除いて、たかだか 1 本です。つまり どこにスライドさせても、主ローブ以外のピークが窓の内部に完全に入り込むことはない。これが半波長間隔の本質です。
一方 $d = \lambda$ なら窓の幅は $4\pi$ で、ピーク間隔 $2\pi$ の 2 倍です。走査しなくても $\psi = \pm 2\pi$ の 2 本が窓の端にちょうど乗り、少しでも走査すれば片方が完全に内部に入ります。
窓と周期の比較で答えは見えましたが、実務では「どの角度に出るか」「間隔をいくつまで許せるか」を数値で言えなければ設計になりません。次節では不等式をきちんと解きます。
グレーティングローブ条件の導出
グレーティングローブが現れる角度
グレーティングローブは $\psi = 2\pi m$($m \ne 0$)を満たす角度 $\theta_g$ に現れます。式 (3) に代入すると
$$ \frac{2\pi d}{\lambda}\left(\sin\theta_g – \sin\theta_0\right) = 2\pi m $$
両辺を $2\pi$ で割り、$d/\lambda$ で割ると($d > 0$ なので割ってよい)、
$$ \sin\theta_g – \sin\theta_0 = m\frac{\lambda}{d} $$
$\sin\theta_g$ について解けば、グレーティングローブの方向が求まります。
$$ \begin{equation} \sin\theta_g = \sin\theta_0 + m\frac{\lambda}{d}, \quad m = \pm 1, \pm 2, \dots \end{equation} $$
$m = 0$ とすれば $\theta_g = \theta_0$、つまり主ビームに戻ります。回折格子の式 $d(\sin\theta_g – \sin\theta_{\text{入射}}) = m\lambda$ と完全に同じ形であることを確認しておいてください。斜め入射の回折格子の公式そのものです。
「現れない」条件を不等式で書く
グレーティングローブが実在するのは $|\sin\theta_g| \le 1$ のときだけです。したがって、すべての $m \ne 0$ について $|\sin\theta_g| > 1$ であれば、グレーティングローブは可視領域に一切現れません。
$|m| \ge 2$ の項は $|m| = 1$ の項よりさらに $\lambda/d$ だけ外側にあるので、$|m| = 1$ さえ排除できれば自動的に排除されます。つまり条件は $m = +1$ と $m = -1$ の 2 本に絞られます。
$$ \left|\sin\theta_0 + \frac{\lambda}{d}\right| > 1 \quad \text{かつ} \quad \left|\sin\theta_0 – \frac{\lambda}{d}\right| > 1 $$
ここで $u_0 = \sin\theta_0$、$\rho = \lambda/d > 0$ と置いて整理しましょう。$|u_0| \le 1$ に注意します。
まず $m = +1$ の条件 $|u_0 + \rho| > 1$ を考えます。$u_0 \ge -1$ かつ $\rho > 0$ なので $u_0 + \rho > -1$ が常に成り立ちます。したがってこの絶対値の不等式が意味を持つのは正の側だけで、条件は
$$ u_0 + \rho > 1 \quad \Longleftrightarrow \quad \rho > 1 – u_0 $$
次に $m = -1$ の条件 $|u_0 – \rho| > 1$ です。同様に $u_0 \le 1$ かつ $\rho > 0$ より $u_0 – \rho < 1$ が常に成り立つので、意味を持つのは負の側で、
$$ u_0 – \rho < -1 \quad \Longleftrightarrow \quad \rho > 1 + u_0 $$
2 つの条件を同時に満たすには、厳しい方を採ればよいことになります。$1 – u_0$ と $1 + u_0$ の大きい方は $1 + |u_0|$ ですから、
$$ \rho > 1 + |u_0| $$
$\rho = \lambda/d$ を戻して両辺の逆数を取ります(両辺とも正なので不等号の向きは反転します)。
$$ \begin{equation} \boxed{\ \frac{d}{\lambda} < \frac{1}{1 + |\sin\theta_0|}\ } \end{equation} $$
これが本記事の中心となる条件式です。導出のどこにも $N$ も $w_n$ も出てこなかったことに注意してください。素子数が 4 でも 4096 でも、テーパが一様でもチェビシェフでも、条件はまったく同じです。素子が等間隔の格子上にあるという事実だけから決まります。
特別な場合を確認する
導出した式が正しいか、両極端で検算しておきましょう。
走査しない場合($\theta_0 = 0$): $|\sin\theta_0| = 0$ なので $d/\lambda < 1$、すなわち $d < \lambda$。ブロードサイド固定なら、1 波長弱まで素子を離せます。実際、式 (6) で $\theta_0 = 0$ とすると $\sin\theta_g = \pm\lambda/d$ で、$d < \lambda$ なら $|\lambda/d| > 1$ となり不可視です。$d = \lambda$ ちょうどでは $\sin\theta_g = \pm 1$、つまり $\theta_g = \pm 90°$ のエンドファイア方向にグレーティングローブがぎりぎり現れます。この「境界ケース」は等号を含むかどうかの議論になり、実際には素子パターンがエンドファイア方向でほぼゼロになるため被害は限定的ですが、危険水域であることに変わりはありません。
$\pm 90°$ まで走査したい場合($|\sin\theta_0| = 1$): $d/\lambda < 1/2$、すなわち $d < \lambda/2$。これが半波長間隔の出どころです。
$\theta_0 = 60°$ まで走査: $|\sin 60°| = \sqrt{3}/2 \approx 0.866$ なので $d/\lambda < 1/1.866 = 0.536$。半波長よりわずかに広く取れます。
$\theta_0 = 45°$ まで走査: $|\sin 45°| = 0.7071$ なので $d/\lambda < 1/1.7071 = 0.586$。
逆問題 — 素子間隔から最大走査角を出す
実際の設計では、素子間隔が先に決まっていることも多い(パッチアンテナの物理寸法や、給電回路のスペースで下限が決まる)。その場合は式 (7) を $\theta_0$ について解きます。
$$ 1 + |\sin\theta_0| < \frac{\lambda}{d} \quad \Longrightarrow \quad |\sin\theta_0| < \frac{\lambda}{d} - 1 $$
したがって、グレーティングローブなしで走査できる最大角度は
$$ \begin{equation} \theta_{0,\max} = \arcsin\left(\frac{\lambda}{d} – 1\right) \end{equation} $$
です(右辺が 1 以上なら $90°$、0 以下なら走査不可)。数値を入れてみると、設計上の厳しさが実感できます。
| $d/\lambda$ | 許容最大走査角 $\theta_{0,\max}$ | 備考 |
|---|---|---|
| 0.50 | $90°$ | 全空間走査可能 |
| 0.55 | $54.9°$ | 実用的なフェーズドアレイの上限付近 |
| 0.60 | $41.8°$ | セクタ走査なら十分 |
| 0.70 | $25.4°$ | 限定走査アレイ |
| 0.80 | $14.5°$ | ほぼ固定ビーム用途 |
| 1.00 | $0°$(走査不可) | ブロードサイドでも境界 |

横軸が素子間隔 $d/\lambda$、縦軸が走査角 $\theta_0$ で、色が付いている領域はその条件で偽ビームが立つことを、色の値はその角度 $\theta_g$ を表します。白い領域が安全域で、その境界がシアンの曲線 $d/\lambda = 1/(1+|\sin\theta_0|)$ です。黒破線で示した $d = 0.5\lambda$ は縦軸のどこを見ても白側にあり、走査角によらず安全であることが一目で分かります。また色は右上へ行くほど 0° に近づく(暗い紫→明るい黄)ので、間隔を広げ走査角を大きくするほど偽ビームが正面寄りに来て害が大きくなることも同時に読み取れます。
$d/\lambda$ を 0.5 から 0.7 に広げると、素子数は同じ開口で約 3 割減らせますが、走査範囲は $90°$ から $25°$ に激減します。この非線形なトレードオフが、フェーズドアレイ設計で最初に突き当たる壁です。
ここまでで条件式が手に入りました。次は「なぜ設計の現場ではとりあえず半波長なのか」を、もう一段深い視点 — 空間サンプリング — から捉え直します。
空間サンプリング定理としての再解釈
ここで視点を変えます。式 (1) を $u = \sin\theta$ の関数として書き直してみましょう。
$$ \mathrm{AF}(u) = \sum_{n=0}^{N-1} w_n \exp\left[j2\pi \frac{d}{\lambda}n u\right] $$
これは、離散列 $\{w_n\}$ の離散時間フーリエ変換(DTFT)そのものです。「時間」に相当するのが素子番号 $n$(実際には位置 $x_n = nd$)、「周波数」に相当するのが $u = \sin\theta$。指数の中の $\frac{d}{\lambda}u$ が、いわゆる正規化空間周波数です。
DTFT が周期 1 の周期関数であることは信号処理でおなじみです。ここでは $\frac{d}{\lambda}u$ が 1 変わるたびに同じ値に戻るので、$u$ の周期は
$$ u_{\text{period}} = \frac{\lambda}{d} $$
です。式 (6) が言っていたのは、まさにこの周期性でした。$\sin\theta_g = \sin\theta_0 + m\lambda/d$ は「主ビームの位置から周期 $\lambda/d$ ごとに複製が並ぶ」と読めます。
そして、空間の物理が課す制約が $|u| \le 1$、すなわち $u$ の帯域幅は $2$($-1$ から $+1$ まで) ということです。ここまで揃えば、サンプリング定理の言葉に翻訳できます。
- 信号(角度スペクトル)の帯域幅: $B_u = 2$
- サンプリング周波数(複製の周期): $f_s = \lambda/d$
- エイリアシングが起きない条件: $f_s > B_u$、すなわち $\lambda/d > 2$、つまり $d < \lambda/2$
見事に半波長条件が出ました。アレイの素子は「空間における標本点」であり、素子間隔 $d$ は空間サンプリング間隔である。半波長間隔は、角度スペクトル全域($-90°$ から $+90°$)を折り返しなく表現するためのナイキスト条件である — これが最も本質的な言い方です。グレーティングローブは、時間信号のエイリアシングと同じ現象の空間版なのです。

上段は時間信号のエイリアシングです。7 Hz の信号(灰色)を 8 Hz で標本化すると、標本点(赤丸)は 1 Hz の波(赤破線)にもぴったり乗ってしまい、2 つの信号を区別できません。下段はその空間版で、$u = \sin\theta$ 軸上に周期 $\lambda/d$ で並ぶ複製のうち、$u = 0.5 – 1/0.8 = -0.75$ の 1 本が可視領域(水色)に入り込んでいます。「標本化が粗い=複製の周期が狭い=帯域に折り返す」という構図が上下でまったく同じであることが、この対比から確認できます。
この見方に立つと、条件式 (7) に $\theta_0$ が現れる理由もすっきり説明できます。$\pm 90°$ 全域を扱うつもりがなく、$|\sin\theta| \le |\sin\theta_0|$ 付近の限られた角度範囲しか使わないのであれば、必要な帯域幅は 2 より狭くなります。狭帯域の信号なら粗いサンプリングでも折り返しません(帯域通過サンプリングの発想に近い)。ただしアレイの場合、主ビームの側だけでなく複製が入り込む側も考慮する必要があるため、必要な帯域は $1 + |\sin\theta_0|$、許容間隔は $d/\lambda < 1/(1+|\sin\theta_0|)$ となるわけです。
サンプリング定理との対応を押さえたところで、次は「では半波長にしておけば万事解決なのか」という現実的な問いに向き合います。
半波長間隔のコスト — なぜ皆が欲張りたくなるのか
半波長間隔は安全ですが、無料ではありません。何を支払っているのかを整理しましょう。
開口長を固定すると素子数が跳ね上がる
アレイの分解能(ビーム幅)は、素子数ではなく 開口長 $L \approx Nd$ で決まります。一様励振 ULA の半値ビーム幅は近似的に
$$ \Theta_{\text{HPBW}} \approx \frac{0.886\,\lambda}{L\cos\theta_0} = \frac{0.886\,\lambda}{Nd\cos\theta_0} \ \ [\text{rad}] $$
であり、指向性も $D \approx 2L/\lambda = 2Nd/\lambda$(一様励振・$d \gtrsim \lambda/2$)です。どちらの式にも $N$ と $d$ が積の形でしか現れません。ここが重要です。
たとえば $L = 8\lambda$ の開口が欲しいとします。$d = \lambda/2$ なら素子は 17 個、$d = \lambda$ なら 9 個です。両者のビーム幅も指向性($D \approx 16 \approx 12.0$ dBi)もほぼ同じ。にもかかわらず、必要な T/R モジュール、移相器、給電線、制御チャネルの数は 2 倍近く違います。フェーズドアレイのコストは素子数にほぼ比例するので、間隔を広げたい動機はきわめて強いのです。2 次元アレイなら素子数は面積比、つまり間隔の 2 乗で効きます。$0.5\lambda$ を $0.7\lambda$ にできれば素子数は約半分。この誘惑に対して「でもグレーティングローブが」とブレーキをかけるのが式 (7) の役割です。

青(直線アレイ)と紫(平面アレイ)が素子数、赤が最大走査角です。$0.5\lambda \to 0.7\lambda$ で素子数は 17 個から 12 個へ約 3 割減りますが、同じ区間で最大走査角は $90°$ から $25°$ へ落ちています。注目すべきは減り方の非対称さで、素子数はなだらかに減るのに対し、走査角は $0.5\lambda$ のすぐ右で崖のように落ちます。$0.5\lambda$ をわずかに超えた瞬間に失うものが最も大きいという、この曲線の形そのものが半波長を選ぶ理由になっています。
密にしすぎると別の問題が出る
逆に、半波長よりさらに詰めても得はありません。開口長が同じなら指向性は増えないのに素子数だけ増えます。しかも間隔が $0.4\lambda$ を切るあたりから、素子どうしの 相互結合(mutual coupling) が急激に強くなります。隣の素子が放射した電力が自分のポートに流れ込み、能動反射係数(アクティブ VSWR)が悪化し、走査に伴ってインピーダンスが変動します。極端な場合、特定の走査角で反射がほぼ全反射になる 走査ブラインドネス(scan blindness) が現れ、その角度で利得がごっそり落ちます。
素子の物理寸法という制約もあります。マイクロストリップパッチの一辺は誘電体基板上でおおむね $0.3\lambda_0$〜$0.5\lambda_0$ 程度になるので、$0.5\lambda$ 間隔でも隣とほとんど隙間がありません。給電線やビアを通すスペースを考えると、$0.5\lambda$ は「詰められる限界」に近い値でもあります。
つまり実務での素子間隔は、上からグレーティングローブ条件に、下から相互結合と実装スペースに挟まれた、狭いレンジに落ち着きます。多くのフェーズドアレイが $0.5\lambda$ 〜 $0.6\lambda$ に集中するのはこのためです。
数値例: X バンド走査アレイ
具体的に手を動かしてみましょう。10 GHz($\lambda = 30$ mm)で、方位方向に $\pm 60°$ 走査したいとします。
$$ d < \frac{\lambda}{1 + \sin 60°} = \frac{30}{1.866} = 16.1\ \text{mm} $$
余裕を見て $d = 15$ mm($= 0.5\lambda$)とします。開口長 $L = 0.6$ m が欲しければ素子数は $N = L/d + 1 = 41$ 個です。このとき、ブロードサイドでのビーム幅は
$$ \Theta_{\text{HPBW}} \approx \frac{0.886 \times 0.03}{0.6} = 0.0443\ \text{rad} = 2.54° $$
$60°$ 走査時は $\cos 60° = 0.5$ で割ることになるので約 $5.1°$ に広がります。これは走査に伴う ビームブロードニング で、開口が斜めから見て $\cos\theta_0$ 倍に「縮んで」見えることの帰結です。
もし $d = 20$ mm($0.667\lambda$)に広げたら何が起きるでしょうか。式 (8) より最大走査角は $\arcsin(1.5 – 1) = 30°$。$60°$ に走査すれば式 (6) から
$$ \sin\theta_g = \sin 60° – \frac{30}{20} = 0.866 – 1.5 = -0.634 \Rightarrow \theta_g = -39.3° $$
$-39.3°$ 方向に主ビームと同じ高さの偽ビームが立ちます。素子数は 31 個に減らせますが、走査範囲は半分になり、$30°$ を超えた瞬間に使い物にならなくなります。
これで設計の骨格は掴めました。ただし現場には「グレーティングローブは素子パターンが抑えてくれるのでは」「テーパで下げられるのでは」という期待がよく出てきます。次節でこの 2 つを検証します。
素子パターンとテーパ — 期待と現実
パターン乗算定理と素子パターンによる抑圧
アレイ全体の放射パターンは、素子単体のパターン $g(\theta)$ とアレイファクタの積で表せます(パターン乗算定理)。
$$ F(\theta) = g(\theta)\,\mathrm{AF}(\theta) $$
現実の素子(パッチやダイポール)は、ブロードサイド方向に最大で、$\pm 90°$ に近づくにつれて利得が落ちます。よく使われる近似が $g(\theta) \propto \cos^{q}\theta$($q \approx 1$〜1.5)です。したがって、グレーティングローブがエンドファイア近くに現れる場合には、素子パターンが自然に抑えてくれます。$d = \lambda$、$\theta_0 = 0$ でグレーティングローブが $\pm 90°$ に立つケースが、この「救われる」典型です。
ところが、この期待には落とし穴があります。抑圧の効き方は、主ビームと偽ビームの どちらがブロードサイドに近いか で決まるからです。素子パターンで割り引かれた後のグレーティングローブ対主ローブの比は
$$ \frac{g(\theta_g)}{g(\theta_0)} = \left(\frac{\cos\theta_g}{\cos\theta_0}\right)^q $$
です。具体例を計算してみましょう($q = 1$)。
- $d = 0.7\lambda$、$\theta_0 = 45°$ → $\theta_g = -46.2°$。比は $\cos 46.2°/\cos 45° = 0.98$、つまり $-0.18$ dB。ほとんど抑圧されません
- $d = \lambda$、$\theta_0 = 45°$ → $\theta_g = -17.0°$。比は $\cos 17.0°/\cos 45° = 1.35$、つまり $+2.6$ dB。グレーティングローブの方が主ビームより強くなります
- $d = \lambda$、$\theta_0 = 60°$ → $\theta_g = -7.7°$。比は $+5.9$ dB。壊滅的です
広角に走査するほど主ビーム側が素子パターンの「谷」に入り、グレーティングローブ側がブロードサイド寄りの「山」に来ます。素子パターンは助けになるどころか、状況を悪化させるのです。「素子指向性があるから多少間隔を広げても大丈夫」という直感は、走査角が大きい場合には完全に裏切られます。この点は設計レビューで見落とされがちなので、強調しておきます。
振幅テーパはグレーティングローブを消せない
もう一つのよくある期待が「ハミング窓などのテーパでサイドローブを下げれば、グレーティングローブも下がる」というものです。これは誤りです。理由はすでに述べました。式 (1) の一般形で $\psi \to \psi + 2\pi$ としても各項が不変であるため、どんな $w_n$ を選んでも $\mathrm{AF}$ は $\psi$ について $2\pi$ 周期です。テーパをかけると主ローブは太くなりサイドローブは下がりますが、$\psi = \pm 2\pi$ に立つピークは「テーパ後の主ローブ」の完全なコピーであり、高さはやはり 0 dB。テーパで変わるのはグレーティングローブの 幅と裾 だけで、頂点の高さは 1 dB も下がりません。
テーパで対処できるのはサイドローブだけです。$N = 16$ の一様励振 ULA なら第 1 サイドローブは $-13.15$ dB ですが、ハミング窓をかければ $-39.4$ dB まで下がります。その代償として、半値ビーム幅は $6.36°$ から $9.74°$($d = 0.5\lambda$、ブロードサイド)へと約 1.5 倍に広がり、テーパ効率
$$ \eta_t = \frac{\left(\sum_n w_n\right)^2}{N\sum_n w_n^2} $$
は $0.70$($-1.54$ dB)になります。つまり指向性を 1.5 dB 犠牲にして 26 dB のサイドローブ低減を買っている勘定です。この取引は多くの場合に有利ですが、グレーティングローブという別問題の解決策にはなりません。
グレーティングローブに効く手段は、素子間隔を詰めるか、走査範囲を狭めるか、等間隔格子そのものをやめるか、の 3 つだけ と覚えておくとよいでしょう。3 つ目については次節で触れます。
等間隔をやめるという選択肢
$2\pi$ 周期性は「素子が整数格子 $x_n = nd$ 上にある」ことから来ていました。裏を返せば、素子を非等間隔に配置すれば周期性は壊れます。実際、電波干渉計や大型の疎(sparse)アレイでは、素子を意図的に非周期に並べます。すると、グレーティングローブとして一点に集中していたエネルギーが、角度全体に薄く広がったサイドローブに変わります。ピークが 0 dB から $-10$ dB 台に落ちる代わりに、パターン全体の「床」が上がるわけです。

左が素子配置で、上が等間隔($d = 1.0\lambda$)、下が同じ平均間隔のままランダムに位置をずらした非等間隔配置です。右のパターンを見ると、青(等間隔)は $30°$ の主ビームのほかに $-44°$ 付近に 0 dB の偽ビームを持つのに対し、赤(非等間隔)ではその 0 dB のピークが消え、最大でも $-6.1$ dB まで下がっています。ただし引き換えに、赤のサイドローブの床が全角度で $-10$ dB 台まで持ち上がっており、一点集中していたエネルギーが全方向にばらまかれたことが見て取れます。
エネルギー保存の観点から言えば、素子間隔を粗くして開口を疎にした時点で、どこかにエネルギーが漏れるのは避けられません。等間隔なら「1 か所に集中した致命的な偽ビーム」、非等間隔なら「全方向に薄く広がったノイズ床」。どちらが許容できるかは用途次第です。目標検出が主目的のレーダーでは、偽ターゲットを作る前者の方が明らかに危険なので、非等間隔配置や間引き(thinned)アレイが選ばれることがあります。
なお 2 次元アレイでは、正方格子ではなく 三角格子(正三角形配置) を使うと、同じグレーティングローブ条件のもとで素子間隔を $2/\sqrt{3} \approx 1.155$ 倍に広げられます。面積あたりの素子数にすると約 13.4% の削減で、大規模アレイでは効きます。逆格子の幾何が正方格子より「詰まっていない」ためで、これも周期性の議論から自然に導かれる結果です。
理論はここまでです。次は実際に数値でパターンを描き、これまでの主張が本当かどうかを確かめましょう。
Python 実装
共通のアレイファクタ関数と $\psi$ 空間の窓
まず、以降で共通に使うアレイファクタ関数を定義し、可視領域が $\psi$ 軸のどこに開くかを描きます。理論のところで「窓の幅は $4\pi d/\lambda$ で固定、走査は窓をスライドさせる操作」と述べた主張を、目で確認するのが狙いです。
import numpy as np
import matplotlib, matplotlib.pyplot as plt
# 日本語フォント設定
for cand in ["Hiragino Sans", "Yu Gothic", "Noto Sans CJK JP", "IPAexGothic", "Meiryo"]:
if any(cand == f.name for f in matplotlib.font_manager.fontManager.ttflist):
plt.rcParams["font.family"] = cand
break
plt.rcParams["axes.unicode_minus"] = False
def array_factor(theta, N, d_lam, th0, w=None):
"""等間隔直線アレイの正規化アレイファクタ(振幅)"""
if w is None:
w = np.ones(N)
n = np.arange(N)
psi = 2 * np.pi * d_lam * (np.sin(theta)[:, None] - np.sin(th0))
E = (w[None, :] * np.exp(1j * n[None, :] * psi)).sum(axis=1)
return np.abs(E) / w.sum()
def af_psi(psi, N, w=None):
"""psi を直接与えたときのアレイファクタ"""
if w is None:
w = np.ones(N)
n = np.arange(N)
E = (w[None, :] * np.exp(1j * n[None, :] * psi[:, None])).sum(axis=1)
return np.abs(E) / w.sum()
def to_db(x, floor=-60.0):
return np.maximum(20 * np.log10(np.maximum(x, 1e-12)), floor)
この 2 つの関数だけで、以降の全ての図が描けます。array_factor は角度 $\theta$ を入力に取り、af_psi は位相変数 $\psi$ を直接入力に取ります。同じ物理量を 2 つの座標系から見るための道具立てです。
続いて、$\psi$ 軸上に並ぶピーク列と、可視領域の窓を重ねて描きます。
N = 16
psi = np.linspace(-5 * np.pi, 5 * np.pi, 4001)
Fdb = to_db(af_psi(psi, N))
fig, axes = plt.subplots(3, 1, figsize=(10, 9), sharex=True)
cases = [(0.5, 0.0), (0.5, 60.0), (1.0, 0.0)]
for ax, (d_lam, th0d) in zip(axes, cases):
u0 = np.sin(np.radians(th0d))
lo = -2 * np.pi * d_lam * (1 + u0) # 可視領域の左端
hi = 2 * np.pi * d_lam * (1 - u0) # 可視領域の右端
ax.plot(psi / np.pi, Fdb, color="0.6", lw=1.2, label="アレイファクタ(psi空間)")
ax.axvspan(lo / np.pi, hi / np.pi, color="tab:cyan", alpha=0.25,
label="可視領域(実在する角度に対応)")
for m in [-2, -1, 0, 1, 2]:
ax.axvline(2 * m, color="tab:red", ls=":", lw=1.0)
ax.set_ylim(-45, 3)
ax.set_ylabel("正規化振幅 [dB]")
ax.set_title(f"d/λ = {d_lam}, 走査角 = {th0d}° (窓の幅 = {4*d_lam:.1f}π)")
ax.legend(loc="lower right", fontsize=8)
axes[-1].set_xlabel("psi / π (赤点線はピーク位置 psi = 2πm)")
plt.tight_layout()
plt.show()

3 枚のパネルから、理論で述べたことがそのまま読み取れます。上段($d = 0.5\lambda$、無走査)では窓の幅がちょうど $2\pi$ で、窓の中にあるピークは $\psi = 0$ の 1 本だけです。中段($d = 0.5\lambda$、$60°$ 走査)では窓が左にスライドし、左端が $\psi = -2\pi \times 0.5 \times (1 + 0.866) = -1.87\pi$ まで来ていますが、$\psi = -2\pi$ のピークにはあと一歩届いていません。走査角を $90°$ ちょうどにすると左端がちょうど $-2\pi$ に触れます。下段($d = \lambda$、無走査)では窓の幅が $4\pi$ に広がり、$\psi = \pm 2\pi$ のピークが窓の両端にちょうど乗っています。ここから少しでも走査すれば、片方が窓の内部に入ってグレーティングローブになる — 危険水域であることが一目でわかります。
$\psi$ 空間の描像が確認できたので、次は実際の角度空間でパターンを描き、どの角度に偽ビームが立つかを見ます。
素子間隔 × 走査角の総当たりパターン
$d/\lambda = 0.4, 0.5, 0.7, 1.0$ の 4 通りと、走査角 $0°, 45°, 60°$ の 3 通りを組み合わせた 12 パターンを一覧にします。条件式 (7) が本当に境界になっているかを検証するのが目的です。
import numpy as np
import matplotlib.pyplot as plt
N = 16
theta = np.linspace(-np.pi / 2, np.pi / 2, 4001)
th_deg = np.degrees(theta)
d_list = [0.4, 0.5, 0.7, 1.0]
th0_list = [0.0, 45.0, 60.0]
fig, axes = plt.subplots(len(d_list), len(th0_list), figsize=(13, 11), sharex=True, sharey=True)
for i, d_lam in enumerate(d_list):
for j, th0d in enumerate(th0_list):
th0 = np.radians(th0d)
ax = axes[i, j]
ax.plot(th_deg, to_db(array_factor(theta, N, d_lam, th0)), lw=1.2)
ax.axvline(th0d, color="tab:green", ls="--", lw=1.0)
# 予測されるグレーティングローブ位置
for m in [-2, -1, 1, 2]:
s = np.sin(th0) + m / d_lam
if abs(s) <= 1.0:
ax.axvline(np.degrees(np.arcsin(s)), color="tab:red", ls=":", lw=1.4)
d_max = 1.0 / (1.0 + abs(np.sin(th0)))
ok = "GLなし" if d_lam < d_max else "GL発生"
ax.set_title(f"d/λ={d_lam}, θ0={th0d}° [{ok}] 上限 {d_max:.3f}", fontsize=9)
ax.set_ylim(-40, 3)
if i == len(d_list) - 1:
ax.set_xlabel("角度 θ [deg]")
if j == 0:
ax.set_ylabel("正規化 |AF| [dB]")
plt.tight_layout()
plt.show()

赤い点線が式 (6) から予測したグレーティングローブの位置、緑の破線が主ビームの狙い角です。$d/\lambda = 0.4$ と $0.5$ の行では、どの走査角でも赤い点線は 1 本も引かれず(可視領域外なので描画されない)、パターンにも 0 dB のピークは主ビームの 1 本しかありません。$d/\lambda = 0.7$ では、$\theta_0 = 0°$ は無事ですが、$45°$ 走査で $-46.2°$、$60°$ 走査で $-34.2°$ に主ビームと同じ高さのピークが立ち、赤点線と正確に一致します。$d/\lambda = 1.0$ に至っては、無走査でも $\pm 90°$ の端にピークが乗り、$45°$ 走査で $-17.0°$、$60°$ 走査で $-7.7°$ と、偽ビームがどんどん正面近くに寄ってきます。式 (7) の上限値(各パネルのタイトルに表示)と実際のパターンの挙動が、12 ケース全てで一致していることが確認できます。
角度空間では複製が非線形に歪んで見えますが、$u = \sin\theta$ 空間で見ると等間隔に並びます。次はその様子を描きます。
$u = \sin\theta$ 空間で見る「等間隔の複製」
角度空間ではグレーティングローブの位置が $\arcsin$ で歪むため、周期性が見えにくくなります。$u = \sin\theta$ を横軸に取り直すと、複製が周期 $\lambda/d$ でぴったり等間隔に並ぶことがはっきりします。
import numpy as np
import matplotlib.pyplot as plt
N = 16
u_ext = np.linspace(-3.0, 3.0, 6001) # 可視領域の外側まで含めて描く
fig, axes = plt.subplots(2, 1, figsize=(10, 7), sharex=True)
for ax, (d_lam, th0d) in zip(axes, [(0.5, 60.0), (0.7, 45.0)]):
u0 = np.sin(np.radians(th0d))
psi = 2 * np.pi * d_lam * (u_ext - u0)
ax.plot(u_ext, to_db(af_psi(psi, N)), lw=1.2, color="0.4")
ax.axvspan(-1, 1, color="tab:cyan", alpha=0.2, label=r"可視領域 $|u| \leq 1$")
for m in [-2, -1, 0, 1, 2]:
ug = u0 + m / d_lam
if abs(ug) <= 3.0:
c = "tab:green" if m == 0 else "tab:red"
ax.axvline(ug, color=c, ls="--", lw=1.2)
ax.set_ylim(-40, 3)
ax.set_ylabel("正規化 |AF| [dB]")
ax.set_title(f"d/λ = {d_lam}, θ0 = {th0d}°:複製の周期 λ/d = {1/d_lam:.2f}")
ax.legend(loc="lower right", fontsize=9)
axes[-1].set_xlabel("u = sin θ")
plt.tight_layout()
plt.show()

上段($d = 0.5\lambda$)では複製の周期が $\lambda/d = 2.0$ で、主ビーム(緑破線、$u_0 = 0.866$)の隣の複製は $u = -1.134$ と $u = 2.866$。どちらも可視領域(水色の帯)の外にあり、実空間には現れません。下段($d = 0.7\lambda$)では周期が $1.43$ に縮み、$u = 0.707 – 1.429 = -0.721$ の複製が可視領域の内側に入り込んでしまいます。この $u = -0.721$ を角度に直すと $-46.2°$ で、前の図と一致します。「間隔を広げる=複製の周期を縮める=可視窓に入りやすくする」という因果関係が、この図で最も直感的に見えるはずです。
複製の周期と窓の関係が掴めたところで、設計者が最も知りたい「許容間隔と最大走査角」を曲線にしておきましょう。
設計曲線 — 許容間隔と最大走査角
式 (7) と式 (8) をそのまま曲線にします。設計時に手元に置いておくと便利な図です。
import numpy as np
import matplotlib.pyplot as plt
th0_deg = np.linspace(0, 90, 901)
d_max = 1.0 / (1.0 + np.abs(np.sin(np.radians(th0_deg))))
d_lam_axis = np.linspace(0.5, 1.0, 501)
arg = 1.0 / d_lam_axis - 1.0
scan_max = np.degrees(np.arcsin(np.clip(arg, -1, 1)))
fig, axes = plt.subplots(1, 2, figsize=(12, 4.5))
axes[0].plot(th0_deg, d_max, lw=2, color="tab:blue")
axes[0].fill_between(th0_deg, 0, d_max, color="tab:blue", alpha=0.15)
axes[0].axhline(0.5, color="tab:red", ls="--", lw=1.2)
axes[0].text(5, 0.52, "半波長間隔 d = 0.5λ(全走査で安全)", color="tab:red", fontsize=9)
axes[0].set_xlabel("必要な最大走査角 θ0 [deg]")
axes[0].set_ylabel("許容素子間隔 d/λ")
axes[0].set_title("グレーティングローブが出ない領域(青塗り)")
axes[0].set_ylim(0.4, 1.05); axes[0].grid(alpha=0.3)
axes[1].plot(d_lam_axis, scan_max, lw=2, color="tab:orange")
for dv in [0.5, 0.55, 0.6, 0.7, 0.8]:
sv = np.degrees(np.arcsin(min(1.0 / dv - 1.0, 1.0)))
axes[1].plot([dv], [sv], "o", color="tab:red")
axes[1].annotate(f"{dv}λ → {sv:.1f}°", (dv, sv), textcoords="offset points",
xytext=(6, 6), fontsize=8)
axes[1].set_xlabel("素子間隔 d/λ")
axes[1].set_ylabel("最大走査角 [deg]")
axes[1].set_title("素子間隔から決まる走査範囲の上限")
axes[1].grid(alpha=0.3)
plt.tight_layout()
plt.show()

左図の青い領域が安全域です。$d/\lambda = 0.5$ の水平線は全ての走査角で青領域に収まっており、「半波長にしておけば走査角を問わず安全」という主張がグラフで確認できます。右図は逆問題で、$0.5\lambda$ から $0.6\lambda$ にわずか 2 割広げただけで最大走査角が $90°$ から $41.8°$ へ半減以下になることが読み取れます。特に $0.5\lambda$ 近傍で曲線が垂直に近く立ち上がっており、この領域では間隔のわずかな違いが走査範囲を大きく左右します。設計余裕を確保する意味でも、広角走査アレイで $0.5\lambda$ 前後が選ばれる理由がここにあります。
次に、テーパをかけるとグレーティングローブがどうなるかを検証します。
テーパはサイドローブを下げるがグレーティングローブは下げない
一様励振とハミング窓を、グレーティングローブが出ない条件($d = 0.5\lambda$)と出る条件($d = \lambda$、$45°$ 走査)の両方で比較します。
import numpy as np
import matplotlib.pyplot as plt
N = 16
theta = np.linspace(-np.pi / 2, np.pi / 2, 8001)
th_deg = np.degrees(theta)
w_uni = np.ones(N)
w_ham = np.hamming(N)
fig, axes = plt.subplots(1, 2, figsize=(13, 4.8), sharey=True)
for ax, (d_lam, th0d) in zip(axes, [(0.5, 0.0), (1.0, 45.0)]):
th0 = np.radians(th0d)
for w, name, c in [(w_uni, "一様励振", "tab:blue"), (w_ham, "ハミング窓", "tab:orange")]:
ax.plot(th_deg, to_db(array_factor(theta, N, d_lam, th0, w)), lw=1.3,
color=c, label=name)
ax.axhline(-13.15, color="tab:blue", ls=":", lw=1.0)
ax.set_xlabel("角度 θ [deg]")
ax.set_title(f"d/λ = {d_lam}, θ0 = {th0d}°")
ax.set_ylim(-60, 3); ax.grid(alpha=0.3); ax.legend(fontsize=9)
axes[0].set_ylabel("正規化 |AF| [dB]")
plt.tight_layout()
plt.show()
# テーパ効率とサイドローブレベルの数値確認
for w, name in [(w_uni, "一様励振"), (w_ham, "ハミング窓")]:
eta = w.sum() ** 2 / (N * (w ** 2).sum())
y = array_factor(theta, N, 0.5, 0.0, w)
print(f"{name}: テーパ効率 = {eta:.3f} ({10*np.log10(eta):+.2f} dB)")

左図($d = 0.5\lambda$、無走査)では、ハミング窓によって第 1 サイドローブが $-13.15$ dB から $-39.4$ dB へ 26 dB も下がっています。その代償として主ローブが太くなり、半値ビーム幅は $6.36°$ から $9.74°$ へ 1.5 倍に広がります。テーパ効率も $1.000$ から $0.701$($-1.54$ dB)に落ちており、指向性を約 1.5 dB 失っている計算です。ところが右図($d = \lambda$、$45°$ 走査)を見ると、$-17.0°$ 付近のグレーティングローブは、一様励振でもハミング窓でも同じ 0 dB のまま突き立っています。テーパは複製の「裾の形」を変えただけで、頂点は 1 dB も下がっていません。$\psi$ の $2\pi$ 周期性が励振に依存しないという理論的な主張が、数値でそのまま裏付けられました。
最後に、素子パターンを掛けたときの挙動を確認します。
素子パターンは助けにならないことがある
$\cos\theta$ 型の素子パターンを掛けて、グレーティングローブがどれだけ抑圧されるか(あるいは悪化するか)を見ます。
import numpy as np
import matplotlib.pyplot as plt
N = 16
theta = np.linspace(-np.pi / 2, np.pi / 2, 8001)
th_deg = np.degrees(theta)
elem = np.cos(theta) # 素子パターン g(θ) = cos θ
fig, axes = plt.subplots(1, 3, figsize=(15, 4.5), sharey=True)
for ax, (d_lam, th0d) in zip(axes, [(1.0, 0.0), (0.7, 45.0), (1.0, 60.0)]):
th0 = np.radians(th0d)
af = array_factor(theta, N, d_lam, th0)
tot = af * elem
tot = tot / tot.max() # 全体パターンの最大で正規化
ax.plot(th_deg, to_db(af), lw=1.2, color="0.6", label="アレイファクタのみ")
ax.plot(th_deg, to_db(tot), lw=1.4, color="tab:purple", label="素子パターン込み")
s = np.sin(th0) - 1.0 / d_lam
if abs(s) < 1.0 - 1e-9:
thg = np.degrees(np.arcsin(s))
ratio = 20 * np.log10(np.cos(np.arcsin(s)) / np.cos(th0))
ax.axvline(thg, color="tab:red", ls=":", lw=1.3)
ax.set_title(f"d/λ={d_lam}, θ0={th0d}°:GL {thg:.1f}°, 素子比 {ratio:+.2f} dB",
fontsize=9)
print(f"d/λ={d_lam}, θ0={th0d}°: θg={thg:.1f}°, 素子比={ratio:+.2f} dB")
elif abs(s) <= 1.0 + 1e-9:
# cos(±90°)=0 なので素子比は形式上 -∞。境界ケースとして別扱いする
ax.axvline(np.degrees(np.arcsin(np.clip(s, -1, 1))), color="tab:red", ls=":", lw=1.3)
ax.set_title(f"d/λ={d_lam}, θ0={th0d}°:GLは±90°の境界(素子パターンがほぼ消す)",
fontsize=9)
ax.set_xlabel("角度 θ [deg]"); ax.set_ylim(-40, 3); ax.grid(alpha=0.3)
ax.legend(fontsize=8, loc="lower center")
axes[0].set_ylabel("正規化パターン [dB]")
plt.tight_layout()
plt.show()

左のパネル($d = \lambda$、無走査)では、グレーティングローブが $\pm 90°$ に立つため $\cos\theta$ がゼロに近く、素子パターンが実質的に消してくれています。ここだけ見ると「素子指向性が守ってくれる」と思いたくなります。ところが中央($d = 0.7\lambda$、$45°$ 走査)では素子比が $-0.18$ dB とほぼ無力で、右($d = \lambda$、$60°$ 走査)に至っては素子比が $+5.9$ dB、つまり グレーティングローブの方が主ビームより 6 dB 近く強くなります。主ビームを広角に振るほど、主ビーム側が素子パターンの谷に入り、ブロードサイド寄りに現れる偽ビームが有利になるためです。素子パターンによる抑圧は、グレーティングローブが十分エンドファイア寄りにある場合の「おまけ」であって、設計の拠り所にはできません。
まとめ
本記事では、アレイアンテナの素子間隔とグレーティングローブの関係を、アレイファクタの周期性から出発して導きました。要点を整理します。
- アレイファクタは位相変数 $\psi = kd(\sin\theta – \sin\theta_0)$ の関数であり、素子が等間隔の整数格子上にある限り、励振振幅によらず $\psi$ について厳密に $2\pi$ 周期になる。主ビームは $\psi$ 軸上に無限に並ぶピークのうちの一本にすぎない
- 物理的に到達可能な角度は $|\sin\theta| \le 1$ に限られるため、$\psi$ 軸には幅 $4\pi d/\lambda$ の「可視領域の窓」が開く。窓の幅は素子間隔だけで決まり、走査は窓を $\psi$ 軸上でスライドさせる操作に相当する
- グレーティングローブは $\sin\theta_g = \sin\theta_0 + m\lambda/d$($m = \pm 1, \pm 2, \dots$)に現れる。回折格子の高次回折の式と完全に同じ形である
- すべての $m \ne 0$ を可視領域の外に追い出す条件を解くと、$d/\lambda < 1/(1 + |\sin\theta_0|)$ が得られる。$\theta_0 = 0$ なら $d < \lambda$、$\pm 90°$ 全域を走査するなら $d < \lambda/2$
- 半波長間隔は「どこまで走査してもグレーティングローブが出ない」安全側の設計である。これは $u = \sin\theta$ を空間周波数と見たときのナイキスト条件(空間サンプリング定理)そのもの
- 半波長は無料ではない。指向性は開口長 $L \approx Nd$ で決まるため、間隔を詰めても利得は増えず素子数(=T/R モジュール数=コスト)だけが増える。逆に詰めすぎると相互結合と走査ブラインドネスの問題が出る。実務の間隔は $0.5\lambda$〜$0.6\lambda$ の狭いレンジに落ち着く
- 振幅テーパはサイドローブを下げる($N=16$ でハミング窓なら $-13.15$ dB → $-39.4$ dB)が、ビーム幅は 1.5 倍に広がり、グレーティングローブは 1 dB も下がらない
- 素子パターンによる抑圧も当てにできない。広角走査時にはグレーティングローブの方がブロードサイド寄りに来るため、素子パターンはむしろ偽ビームを有利にする($d = \lambda$、$\theta_0 = 60°$ で $+5.9$ dB)
- グレーティングローブに本当に効く手段は、間隔を詰める・走査範囲を狭める・等間隔格子をやめる(非等間隔配置、三角格子)の 3 つに限られる
素子間隔という一見地味なパラメータが、走査範囲・素子数・コスト・干渉性能のすべてを縛っていることが見えたはずです。フェーズドアレイの仕様書を読むとき、まず「素子間隔は何波長か」「走査範囲は何度か」を確認して式 (7) に入れてみると、その設計の狙いと妥協点が一瞬で読み取れます。
次のステップとして、以下の記事も参考にしてください。
- アレイファクタの理論 — アレイアンテナの指向性パターンを数式から導出する — ビーム幅・サイドローブ・2 次元平面アレイまで含めた全体像
- フェーズドアレイレーダーの原理と理論を解説 — 移相器の量子化やアクティブ/パッシブ方式の違い
- MIMOアンテナの基礎 — 空間多重化で通信容量を飛躍的に増やす仕組み — 同じ「素子間隔」でも、MIMO では相関を下げる目的で逆に広げたくなる
- 空間ダイバーシティのアンテナ間隔はなぜ0.5λ?空間相関の理論から導出 — 同じ $0.5\lambda$ という数字が、まったく別の理屈(空間相関)からも出てくる
- MVDR(Capon)適応ビームフォーミングの理論と導出と実装 — 重み $w_n$ を適応的に決める世界へ
- ナイキスト周波数とは?求め方とサンプリング定理を図解でわかりやすく解説 — 本記事の空間サンプリング解釈の土台