携帯電話で通話しているとき、声がクリアに聞こえるかノイズまみれになるかを決めている最大の要因は何でしょうか。それは受信機の雑音指数(Noise Figure, NF) です。人工衛星から地上に届く電波は $10^{-14}$ W 程度のごく微弱な信号ですが、受信機の内部回路もまた熱雑音を生み出します。もし受信機自身のノイズが信号を覆い隠してしまえば、どれだけアンテナを大きくしても通信は成り立ちません。
雑音指数を理解すると、次のような実用的な問題に答えられるようになります。
- 衛星通信のリンクバジェット設計: 送信電力・アンテナ利得・伝搬損失に加え、受信機の NF がシステム感度を支配します。NF を 1 dB 下げるだけで、同一通信品質を維持しつつアンテナ直径を数十 % 縮小できる場合もあります。
- レーダーの探知距離: レーダー方程式で受信機の雑音温度は探知距離の 4 乗根に効きます。NF の改善はレーダー性能に直結します。
- 5G / 6G 基地局の設計: ミリ波帯では伝搬損失が大きく、受信機側の低雑音化が不可欠です。
- 電波天文学: 宇宙から届く極微弱な電波を検出するために、極低温 LNA(低雑音増幅器)が用いられます。
本記事の内容
- 信号対雑音比(SNR)の定義と直感的理解
- 雑音指数 NF の定義(真数表記と dB 表記)
- 等価雑音温度 $T_e$ への変換
- 2 ポートデバイスの雑音モデル
- 縦続接続のフリスの公式の詳細な導出
- 第 1 段 LNA の設計意義
- ミキサーの雑音指数と変換損失
- 受信機のシステム雑音温度
- LNA の設計指針
- Y 因子法による NF 測定
- Python によるフリスの公式の計算と LNA 配置最適化
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
信号対雑音比(SNR)の定義
雑音指数を定義するための出発点は、信号対雑音比(Signal-to-Noise Ratio, SNR) です。
日常のアナロジーで考えてみましょう。静かな図書館で友人と小声で会話するのは容易です。しかし、工事現場の騒音の中では同じ声の大きさでは聞き取れません。ここで「声の大きさ」が信号、「周囲の騒音」が雑音に対応し、両者の比が SNR です。
SNR は、信号電力 $S$ と雑音電力 $N$ の比として定義されます。
$$ \text{SNR} = \frac{S}{N} $$
デシベル(dB)表記では次のようになります。
$$ \text{SNR}_{\text{dB}} = 10 \log_{10}\frac{S}{N} \quad [\text{dB}] $$
例えば $S = 1\,\text{mW}$、$N = 0.01\,\text{mW}$ であれば SNR は 100(= 20 dB)です。通信システムでは、ビット誤り率(BER)を所定の値以下に保つために必要な最低 SNR が規定されており、これを満たすようにシステムを設計します。
ここで重要な問いが生まれます。信号が受信機の各段(増幅器、フィルタ、ミキサーなど)を通過するとき、SNR はどのように劣化するのでしょうか。この劣化の度合いを定量化するのが、次に解説する雑音指数です。
雑音指数 NF の定義
直感的な理解
理想的な増幅器(ノイズを一切付加しないもの)は、入力の信号も雑音も同じ利得 $G$ で増幅します。したがって出力の SNR は入力の SNR と等しくなります。しかし、現実の増幅器は内部で熱雑音やショット雑音を発生させ、出力に余分なノイズを上乗せします。その結果、出力の SNR は入力の SNR より必ず小さくなります。
この「SNR の劣化度合い」を表す量が雑音指数(Noise Factor) $F$ です。
数学的定義
雑音指数 $F$(真数)は、入力端の SNR と出力端の SNR の比として定義されます。
$$ \begin{equation} F = \frac{\text{SNR}_{\text{in}}}{\text{SNR}_{\text{out}}} \end{equation} $$
理想デバイスなら $F = 1$(SNR が劣化しない)、現実のデバイスでは $F > 1$ です。
この定義を展開してみましょう。入力信号電力を $S_i$、入力雑音電力を $N_i$、利得を $G$ とします。出力信号電力は $S_o = G S_i$ です。出力雑音電力は、入力雑音を増幅した分 $G N_i$ に加え、デバイス自身が付加した雑音 $N_{\text{added}}$ があるので、$N_o = G N_i + N_{\text{added}}$ です。
これを代入すると次のようになります。
$$ F = \frac{S_i / N_i}{S_o / N_o} = \frac{S_i / N_i}{G S_i / (G N_i + N_{\text{added}})} $$
分子・分母の $S_i$ をキャンセルし、整理します。
$$ F = \frac{G N_i + N_{\text{added}}}{G N_i} = 1 + \frac{N_{\text{added}}}{G N_i} $$
この式から、$F$ は「デバイスが付加する雑音」と「入力雑音を増幅した分」の比で決まることがわかります。付加雑音がゼロなら $F = 1$ となり、理想デバイスに一致します。
dB 表記: NF
工学の現場では、雑音指数を dB で表記することが一般的で、これを NF(Noise Figure) と呼びます。
$$ \text{NF} = 10 \log_{10} F \quad [\text{dB}] $$
例えば $F = 2$ ならば $\text{NF} = 3\,\text{dB}$(SNR が半分に劣化)、$F = 1.26$ ならば $\text{NF} = 1\,\text{dB}$ です。
標準入力雑音条件
ここで一つ注意すべき点があります。$F$ の定義は入力雑音電力 $N_i$ に依存します。$N_i$ が大きければ相対的に付加雑音は目立たなくなり、$F$ は小さく見えてしまいます。これでは異なる条件で測定した NF を公平に比較できません。
そこで IEEE 標準では、入力雑音源の温度を $T_0 = 290\,\text{K}$(標準温度) と規定しています。帯域幅 $B$ における入力雑音電力は次のようになります。
$$ N_i = k T_0 B $$
ここで $k = 1.381 \times 10^{-23}\,\text{J/K}$ はボルツマン定数です。この条件下で測定された NF がデバイスの公式仕様値となります。
雑音指数の定義が明確になったところで、次は雑音を温度で表現する方法を見ていきましょう。温度表記は特に衛星通信やレーダーの分野で広く使われます。
等価雑音温度
温度で雑音を表す直感
抵抗が温度 $T$ で生み出す熱雑音電力は $N = kTB$ です。ここで逆の発想をします。もしあるデバイスが付加雑音 $N_{\text{added}}$ を出力するなら、それは「温度 $T_e$ の仮想的な抵抗を入力端に接続した場合の熱雑音」と等価だと見なせます。この $T_e$ を等価雑音温度(Equivalent Noise Temperature) と呼びます。
定義式
デバイスが付加する雑音電力を $N_{\text{added}} = G k T_e B$ と書くと、先ほどの雑音指数の式に代入できます。
$$ F = 1 + \frac{N_{\text{added}}}{G N_i} = 1 + \frac{G k T_e B}{G k T_0 B} = 1 + \frac{T_e}{T_0} $$
したがって、$F$ と $T_e$ の関係は次のようになります。
$$ \begin{equation} T_e = (F – 1) T_0 \end{equation} $$
逆に $T_e$ から $F$ を求めるには次の式を使います。
$$ F = 1 + \frac{T_e}{T_0} $$
数値例
NF = 1 dB の LNA を考えます。$F = 10^{1/10} \approx 1.259$ なので、等価雑音温度は次のようになります。
$$ T_e = (1.259 – 1) \times 290 = 0.259 \times 290 \approx 75\,\text{K} $$
一方、NF = 3 dB ならば $F = 2$ で $T_e = 290\,\text{K}$ です。NF がわずか 2 dB 上がるだけで等価雑音温度は約 4 倍になることがわかります。衛星通信のように極微弱な信号を扱うシステムでは、NF の 1 dB の差が性能を大きく左右します。
等価雑音温度を使うと、受信機全体の雑音を温度の足し算として直感的に扱えるようになります。次に、単一デバイスの雑音モデルから複数段の縦続接続へ話を進めましょう。
2 ポートデバイスの雑音モデル
増幅器やフィルタ、ミキサーなどの 2 ポートデバイスの雑音を統一的に扱うために、等価回路モデルを導入します。
ノイズレスモデル
任意の 2 ポートデバイスは、次のようにノイズレス(理想的な)デバイスと入力端に接続された等価雑音源の組み合わせで表現できます。
- ノイズレスデバイス: 利得 $G$、デバイス自身はノイズを出さない
- 入力等価雑音源: 温度 $T_e$ の仮想抵抗(雑音電力 $kT_eB$ を生成)
この表現を使うと、入力端の雑音電力は信号源の雑音 $kT_sB$ とデバイスの等価雑音 $kT_eB$ の和になり、出力雑音電力は次のように書けます。
$$ N_o = G k (T_s + T_e) B $$
ここで $T_s$ は信号源の雑音温度です。
受動デバイス(損失素子)の雑音指数
ケーブル、フィルタ、アッテネータなどの受動デバイスは信号を増幅せず、減衰させます。利得 $G < 1$(つまり損失 $L = 1/G > 1$)で、物理温度 $T_{\text{phys}}$ にある受動素子の雑音指数は次のようになります。
$$ F_{\text{passive}} = L \quad (\text{ただし } T_{\text{phys}} = T_0 \text{ のとき}) $$
より一般的には、物理温度 $T_{\text{phys}}$ における等価雑音温度は次の式で与えられます。
$$ T_{e,\text{passive}} = T_{\text{phys}}(L – 1) $$
これは直感的に理解できます。受動素子は信号を $1/L$ に減衰させる一方、自身の物理温度に応じた熱雑音を出力に加えます。損失が大きいほど信号は弱まり、相対的に雑音が目立つため、$F$ は損失 $L$ に等しくなるのです。
例えば、損失 3 dB($L = 2$)の同軸ケーブルは $T_0$ において $F = 2$(NF = 3 dB)です。このケーブルを通すだけで SNR は半分に劣化します。
受信機では増幅器だけでなく、ケーブル、フィルタ、ミキサーなど多くのデバイスが縦続に接続されます。では、これらを全て含めた全体の雑音指数はどのように計算するのでしょうか。次のセクションで、この問いに答えるフリスの公式を導出します。
フリスの公式(縦続接続の雑音指数)
フリスの公式とは
1944 年にハラルド・フリス(Harald T. Friis)が発表したこの公式は、複数段のデバイスを縦続接続したときのシステム全体の雑音指数を、各段の雑音指数と利得から計算する方法を与えます。受信機設計の最も基本的な設計式であり、無線通信工学の教科書には必ず登場します。
2 段の縦続接続での導出
まず最もシンプルな 2 段の縦続接続を考え、そこから一般の $n$ 段に拡張します。
第 1 段: 利得 $G_1$、雑音指数 $F_1$(等価雑音温度 $T_{e1}$) 第 2 段: 利得 $G_2$、雑音指数 $F_2$(等価雑音温度 $T_{e2}$)
信号源の雑音温度を $T_0$(標準温度)とします。入力雑音電力は $N_i = kT_0 B$ です。
ステップ 1: 第 1 段の出力雑音を求めます。
第 1 段のノイズレスモデルでは、入力端に $kT_0 B$(信号源雑音)と $kT_{e1} B$(第 1 段の等価雑音)があり、これらが利得 $G_1$ で増幅されます。
$$ N_{o1} = G_1 k (T_0 + T_{e1}) B $$
ステップ 2: 第 2 段の出力雑音を求めます。
第 2 段は、第 1 段の出力雑音 $N_{o1}$ を入力として受け取り、さらに自身の付加雑音を加えます。第 2 段の付加雑音電力(入力換算)は $kT_{e2}B$ で、これが利得 $G_2$ で増幅されます。
$$ N_{o2} = G_2 N_{o1} + G_2 k T_{e2} B $$
$N_{o1}$ を代入します。
$$ N_{o2} = G_2 G_1 k (T_0 + T_{e1}) B + G_2 k T_{e2} B $$
$G_2 k B$ でくくります。
$$ N_{o2} = G_1 G_2 k B \left(T_0 + T_{e1} + \frac{T_{e2}}{G_1}\right) $$
ステップ 3: システム全体の等価雑音温度を読み取ります。
上の式を $N_{o2} = G_1 G_2 k (T_0 + T_{e,\text{sys}}) B$ の形と比較すると、システム全体の等価雑音温度は次のようになります。
$$ T_{e,\text{sys}} = T_{e1} + \frac{T_{e2}}{G_1} $$
ステップ 4: 雑音指数の形に変換します。
$T_{e} = (F – 1)T_0$ の関係を使って温度を雑音指数に戻します。
$$ (F_{\text{sys}} – 1) T_0 = (F_1 – 1)T_0 + \frac{(F_2 – 1) T_0}{G_1} $$
両辺を $T_0$ で割り、1 を加えると次のようになります。
$$ \begin{equation} F_{\text{sys}} = F_1 + \frac{F_2 – 1}{G_1} \end{equation} $$
これが 2 段のフリスの公式です。
$n$ 段への一般化
上と同じ論法を繰り返し適用すると、$n$ 段の縦続接続に対するフリスの公式が得られます。
$$ \begin{equation} F_{\text{sys}} = F_1 + \frac{F_2 – 1}{G_1} + \frac{F_3 – 1}{G_1 G_2} + \cdots + \frac{F_n – 1}{\prod_{k=1}^{n-1} G_k} \end{equation} $$
等価雑音温度で書くと次のようになります。
$$ \begin{equation} T_{e,\text{sys}} = T_{e1} + \frac{T_{e2}}{G_1} + \frac{T_{e3}}{G_1 G_2} + \cdots + \frac{T_{en}}{\prod_{k=1}^{n-1} G_k} \end{equation} $$
フリスの公式の物理的意味
フリスの公式を眺めると、非常に重要な構造が見えてきます。
- 第 1 段の雑音指数 $F_1$ はそのまま加算される: 第 1 段は「割り算」を受けないので、その雑音はシステム全体にフルに影響します。
- 第 2 段以降の雑音は、前段までの利得の積で割られる: 第 1 段の利得 $G_1$ が十分大きければ、第 2 段以降の雑音寄与は無視できるほど小さくなります。
- 分母が累積利得の積: 後段になるほど寄与は指数関数的に小さくなります。
これはまさに「大きな声で話してから騒がしい部屋に入る」ことに似ています。最初に信号を十分増幅しておけば、後段で加わるノイズの影響は相対的に小さくなるのです。
この性質は、受信機設計における第 1 段の決定的な重要性を意味しています。次のセクションで、この点をさらに深掘りしましょう。
第 1 段の重要性と LNA の設計意義
数値例で理解する第 1 段の影響
具体的な数値で第 1 段の影響を確認しましょう。3 段の増幅器チェーンを考えます。
ケース A: 低雑音の増幅器を第 1 段に配置 – 第 1 段: $G_1 = 20\,\text{dB}$ (100倍), $\text{NF}_1 = 0.5\,\text{dB}$ ($F_1 = 1.122$) – 第 2 段: $G_2 = 10\,\text{dB}$ (10倍), $\text{NF}_2 = 6\,\text{dB}$ ($F_2 = 3.981$) – 第 3 段: $G_3 = 20\,\text{dB}$ (100倍), $\text{NF}_3 = 10\,\text{dB}$ ($F_3 = 10$)
フリスの公式を適用します。
$$ F_{\text{sys}} = 1.122 + \frac{3.981 – 1}{100} + \frac{10 – 1}{100 \times 10} = 1.122 + 0.030 + 0.009 = 1.161 $$
$$ \text{NF}_{\text{sys}} = 10 \log_{10}(1.161) = 0.65\,\text{dB} $$
ケース B: 高雑音の増幅器を第 1 段に配置(ケース A と第 1 段・第 3 段を入れ替え) – 第 1 段: $G_1 = 20\,\text{dB}$ (100倍), $\text{NF}_1 = 10\,\text{dB}$ ($F_1 = 10$) – 第 2 段: $G_2 = 10\,\text{dB}$ (10倍), $\text{NF}_2 = 6\,\text{dB}$ ($F_2 = 3.981$) – 第 3 段: $G_3 = 20\,\text{dB}$ (100倍), $\text{NF}_3 = 0.5\,\text{dB}$ ($F_3 = 1.122$)
$$ F_{\text{sys}} = 10 + \frac{3.981 – 1}{100} + \frac{1.122 – 1}{100 \times 10} = 10 + 0.030 + 0.000122 \approx 10.030 $$
$$ \text{NF}_{\text{sys}} = 10 \log_{10}(10.030) = 10.01\,\text{dB} $$
結果は劇的に異なります。ケース A のシステム NF は 0.65 dB であるのに対し、ケース B では 10.01 dB です。全く同じ 3 つの部品を使っているにもかかわらず、配置順序を変えるだけで約 9.4 dB(8.6 倍)もの差 が生じます。
LNA の役割
この事実から、受信機設計の鉄則が導かれます。
受信機の最前段(アンテナ直後)には、最も低雑音・高利得のデバイスを配置せよ。
この最前段に置かれる増幅器が LNA(Low Noise Amplifier, 低雑音増幅器) です。LNA は、後段の雑音寄与を抑え込むための「盾」の役割を果たします。
典型的な LNA の仕様は次の通りです。
| パラメータ | 一般的な値 |
|---|---|
| NF | 0.3 〜 2 dB |
| 利得 | 15 〜 30 dB |
| 動作周波数 | 数百 MHz 〜 数十 GHz |
| 消費電力 | 数 mW 〜 数百 mW |
LNA の利得が高いほど後段の影響が小さくなりますが、利得が高すぎると後段の増幅器が飽和する問題もあります。したがって、LNA の設計では NF を最小化しつつ、適切な利得を確保し、線形性(IP3)とのトレードオフを最適化 することが求められます。
現実の受信機では、LNA の前にケーブルやフィルタなどの受動素子が入ることもあります。これらの損失が LNA の効果をどの程度打ち消すかも、フリスの公式を使って定量的に評価できます。次に、受信機でよく用いられるミキサーの雑音特性を見ていきましょう。
ミキサーの雑音指数と変換損失
ミキサーとは
スーパーヘテロダイン受信機において、ミキサーは受信信号の周波数を中間周波数(IF)に変換するデバイスです。ミキサーには受動型(ダイオードミキサー)と能動型(ギルバートセルなど)があります。
受動ミキサーの雑音指数
受動ミキサーは利得を持たず、変換損失 $L_c$(Conversion Loss)を持ちます。変換損失とは、入力 RF 信号電力に対する出力 IF 信号電力の比の逆数です。
$$ L_c = \frac{P_{\text{RF}}}{P_{\text{IF}}} > 1 $$
受動ミキサーの雑音指数は、受動デバイスと同様に変換損失にほぼ等しくなります。
$$ F_{\text{mixer}} \approx L_c $$
典型的なダイオードミキサーの変換損失は 6 〜 8 dB なので、NF も 6 〜 8 dB 程度です。これは LNA(NF: 0.5 〜 1 dB)と比べてはるかに大きい値です。
能動ミキサーの雑音指数
能動ミキサー(例: ギルバートセル)は変換利得を持つことができます。一般に NF は 8 〜 15 dB 程度で、受動ミキサーより大きいこともあります。しかし変換利得があるため、後段への雑音寄与の抑制に貢献します。
フリスの公式におけるミキサーの影響
ミキサーが LNA の直後に配置された場合、フリスの公式は次のようになります。
$$ F_{\text{sys}} = F_{\text{LNA}} + \frac{F_{\text{mixer}} – 1}{G_{\text{LNA}}} + \frac{F_{\text{IF}} – 1}{G_{\text{LNA}} / L_c} $$
ここで $F_{\text{IF}}$ は IF 増幅器の雑音指数です。受動ミキサーの利得は $G_{\text{mixer}} = 1/L_c$ であることに注意してください。LNA の利得が十分大きければ、ミキサーの高い NF もシステム NF への影響は限定的になります。
例えば、LNA の利得が 25 dB(316 倍)でミキサーの NF が 7 dB($F = 5.01$)の場合、ミキサーの寄与は次のようになります。
$$ \frac{F_{\text{mixer}} – 1}{G_{\text{LNA}}} = \frac{5.01 – 1}{316} = 0.0127 $$
これは 0.055 dB に相当し、ほとんど無視できます。これこそが LNA を最前段に配置する理由です。
ミキサーまでの議論で、受信機の各構成要素の雑音特性を個別に理解しました。次に、これらを統合して受信機全体のシステム雑音温度を計算する方法を見ていきます。
受信機のシステム雑音温度
システム雑音温度の構成
受信機のシステム雑音温度 $T_{\text{sys}}$ は、受信機が受け取る全ての雑音を温度で表現したものです。アンテナから見た雑音温度 $T_A$ と受信機自身の等価雑音温度 $T_{\text{rec}}$ の和で表されます。
$$ \begin{equation} T_{\text{sys}} = T_A + T_{\text{rec}} \end{equation} $$
アンテナ雑音温度 $T_A$
アンテナ雑音温度は、アンテナが受け取る外部雑音を等価温度で表したものです。以下の寄与があります。
- 宇宙背景放射: 約 2.7 K(マイクロ波帯)
- 大気放射: 周波数と仰角に依存(天頂方向で数 K 〜 数百 K)
- 地面放射: アンテナのサイドローブが地面を拾う場合(約 290 K)
- 人工雑音: 電子機器、電力線など
衛星通信で天頂方向を向いたパラボラアンテナの場合、$T_A$ は典型的に 10 〜 50 K 程度です。一方、地上の携帯基地局では $T_A$ が数百 K に達することもあります。
受信機雑音温度 $T_{\text{rec}}$
受信機雑音温度は、アンテナ端子から見た受信機内部の全雑音の等価温度です。フリスの公式を温度形式で適用します。
$$ T_{\text{rec}} = T_{e,\text{feed}} + \frac{T_{e,\text{LNA}}}{G_{\text{feed}}} + \frac{T_{e,\text{mixer}}}{G_{\text{feed}} G_{\text{LNA}}} + \cdots $$
ここで $T_{e,\text{feed}}$ はフィードライン(ケーブル・導波管)の等価雑音温度、$G_{\text{feed}}$ はフィードラインの利得($< 1$)です。
具体的な計算例
以下のパラメータで受信機のシステム雑音温度を計算してみましょう。
- アンテナ雑音温度: $T_A = 30\,\text{K}$
- フィードライン損失: 0.5 dB($L = 1.122$, $G = 0.891$, $T_{\text{phys}} = 290\,\text{K}$)
- LNA: NF = 0.5 dB($F = 1.122$, $G = 25\,\text{dB} = 316$)
フィードラインの等価雑音温度は次の通りです。
$$ T_{e,\text{feed}} = T_{\text{phys}}(L – 1) = 290 \times (1.122 – 1) = 290 \times 0.122 = 35.4\,\text{K} $$
LNA の等価雑音温度は次の通りです。
$$ T_{e,\text{LNA}} = (F_{\text{LNA}} – 1) T_0 = (1.122 – 1) \times 290 = 35.4\,\text{K} $$
フィードラインの利得(損失)を考慮した LNA の寄与は次のようになります。
$$ \frac{T_{e,\text{LNA}}}{G_{\text{feed}}} = \frac{35.4}{0.891} = 39.7\,\text{K} $$
受信機雑音温度は次の通りです(後段の寄与は小さいので省略)。
$$ T_{\text{rec}} \approx 35.4 + 39.7 = 75.1\,\text{K} $$
システム雑音温度は次のようになります。
$$ T_{\text{sys}} = T_A + T_{\text{rec}} = 30 + 75.1 = 105.1\,\text{K} $$
この例から、フィードラインの損失がわずか 0.5 dB でも 35.4 K もの雑音を追加することがわかります。衛星通信の地球局では、LNA をアンテナの焦点直下に設置して(フィードライン損失をほぼゼロにして)システム雑音温度を最小化する設計がよく採用されます。
ここまでで受信機のシステム雑音温度の計算方法を理解しました。次に、LNA をどのように設計すれば低雑音を実現できるのか、その設計指針を見ていきましょう。
LNA の設計指針
雑音最小化の基本原理
トランジスタの雑音性能は、最小雑音指数 $F_{\min}$ 、最適信号源反射係数 $\Gamma_{\text{opt}}$ 、等価雑音抵抗 $R_n$ の 4 つの雑音パラメータで特徴づけられます。任意の信号源インピーダンスに対する雑音指数は次の式で与えられます。
$$ \begin{equation} F = F_{\min} + \frac{4 R_n}{Z_0} \cdot \frac{|\Gamma_S – \Gamma_{\text{opt}}|^2}{(1 – |\Gamma_S|^2)|1 + \Gamma_{\text{opt}}|^2} \end{equation} $$
ここで $\Gamma_S$ は実際の信号源反射係数、$Z_0$ は基準インピーダンスです。
この式から明らかなように、$\Gamma_S = \Gamma_{\text{opt}}$ のとき $F = F_{\min}$ が達成されます。つまり、入力整合回路で信号源インピーダンスを $\Gamma_{\text{opt}}$ に変換すれば、最低雑音が実現 できます。
雑音整合と利得整合のトレードオフ
ここで重要な点があります。最大利得を得るための整合条件(共役整合 $\Gamma_S = S_{11}^*$)と、最小雑音を得るための整合条件($\Gamma_S = \Gamma_{\text{opt}}$)は、一般に異なります。
つまり、LNA 設計では利得と NF のトレードオフが存在します。実際の設計では、次のような方針が取られます。
- 雑音優先設計: 入力を $\Gamma_{\text{opt}}$ に整合し、出力を共役整合する。利得は最大値より若干低下するが、NF は最小に近い値を実現する。
- バランス設計: NF と利得の両方が許容範囲に入る $\Gamma_S$ を選択する。等雑音指数円と等利得円をスミスチャート上に描き、両方の円が重なる領域から最適点を決定する。
デバイス選択の指針
LNA に使用されるトランジスタは、動作周波数と要求 NF に応じて選択されます。
| デバイス | 特徴 | NF の目安 | 適用周波数 |
|---|---|---|---|
| GaAs pHEMT | 低雑音、高周波性能 | 0.3 〜 1.0 dB | 〜 40 GHz |
| InP HEMT | 極低雑音(冷却時) | 0.05 dB(冷却時) | 〜 100 GHz |
| SiGe HBT | 集積化に有利 | 0.5 〜 2.0 dB | 〜 30 GHz |
| GaN HEMT | 高出力・高線形性 | 0.5 〜 1.5 dB | 〜 40 GHz |
電波天文学や深宇宙通信では、InP HEMT を液体ヘリウム温度(約 4 K)に冷却し、等価雑音温度を数 K にまで低減します。
安定性の確認
LNA は高利得で動作するため、発振のリスクがあります。設計時にはロリンの安定条件を確認する必要があります。
$$ K = \frac{1 – |S_{11}|^2 – |S_{22}|^2 + |\Delta|^2}{2|S_{12}||S_{21}|} > 1 $$
$$ |\Delta| = |S_{11}S_{22} – S_{12}S_{21}| < 1 $$
ここで $K$ はロリンの安定係数、$\Delta$ は $S$ パラメータの行列式です。$K > 1$ かつ $|\Delta| < 1$ のとき、全ての信号源・負荷インピーダンスに対して無条件安定です。
LNA の設計指針を把握したところで、次は実際に NF を測定する方法について見ていきましょう。
Y 因子法による NF 測定
Y 因子法の概要
雑音指数を実験的に測定する最も一般的な方法が Y 因子法(Y-Factor Method) です。この方法では、温度の異なる 2 つの雑音源を被測定デバイスに接続し、出力雑音電力の比から NF を算出します。
測定に特別な信号発生器は不要で、既知の雑音温度を持つ雑音源さえあれば NF を求められるのがこの方法の優れた点です。
測定原理
2 つの雑音源を用意します。
- ホット状態(ON): 雑音温度 $T_H$(高温)
- コールド状態(OFF): 雑音温度 $T_C$(低温、通常 $T_0 = 290\,\text{K}$)
被測定デバイス(DUT: Device Under Test)の利得を $G$、等価雑音温度を $T_e$ とします。
ホット状態での出力雑音電力は次のようになります。
$$ N_H = G k (T_H + T_e) B $$
コールド状態での出力雑音電力は次の通りです。
$$ N_C = G k (T_C + T_e) B $$
両者の比を Y 因子と定義します。
$$ \begin{equation} Y = \frac{N_H}{N_C} = \frac{T_H + T_e}{T_C + T_e} \end{equation} $$
$G$ と $kB$ がキャンセルされることに注目してください。利得や帯域幅を正確に知らなくても NF を測定できるのです。
$T_e$ の算出
$Y$ 因子の式を $T_e$ について解きます。
$$ Y (T_C + T_e) = T_H + T_e $$
$T_e$ を含む項を左辺に集めます。
$$ Y T_C + Y T_e = T_H + T_e $$
$T_e$ を含む項を左辺に、それ以外を右辺に移項して整理します。
$$ T_e (Y – 1) = T_H – Y T_C $$
両辺を $(Y – 1)$ で割って $T_e$ について解くと、次の結果が得られます。
$$ \begin{equation} T_e = \frac{T_H – Y T_C}{Y – 1} \end{equation} $$
雑音指数に変換すると次のようになります。
$$ F = 1 + \frac{T_e}{T_0} = 1 + \frac{T_H – Y T_C}{(Y – 1) T_0} $$
ENR(Excess Noise Ratio)
実用的な雑音源(ノイズダイオード)の仕様は ENR(Excess Noise Ratio) で表されます。
$$ \text{ENR} = \frac{T_H – T_C}{T_0} $$
$T_C = T_0$ のとき、$T_H = T_0 (1 + \text{ENR})$ です。この場合、NF の計算は次のように簡略化されます。
$$ F = \frac{\text{ENR}}{Y – 1} $$
$$ \text{NF} = \text{ENR}_{\text{dB}} – 10\log_{10}(Y – 1) \quad [\text{dB}] $$
測定上の注意点
Y 因子法にはいくつかの誤差要因があります。
- 雑音源の ENR 精度: ENR の校正誤差がそのまま NF の測定誤差に影響します。
- 入力整合: 雑音源の ON/OFF で出力インピーダンスが変化すると、DUT の入力整合が変わり、NF が変動します。
- 第 2 段補正: NF アナライザ自身も雑音を持ちます。DUT の利得が低い場合、アナライザの NF を補正する必要があります(第 2 段補正)。
- 帯域幅の影響: 広帯域測定では、ENR の周波数依存性を考慮する必要があります。
Y 因子法の理論を理解したところで、いよいよ Python を使ってフリスの公式によるシステム NF の計算や LNA 配置の最適化をシミュレーションしてみましょう。
Python による実装
フリスの公式によるシステム NF の計算
まず、フリスの公式を Python で実装し、受信機チェーンの各段が全体の NF にどの程度寄与するかを可視化します。
import numpy as np
import matplotlib.pyplot as plt
def noise_factor_friis(noise_factors, gains):
"""
フリスの公式によるシステム雑音指数(真数)の計算
Parameters
----------
noise_factors : array-like
各段の雑音指数 F(真数)
gains : array-like
各段の利得 G(真数)
Returns
-------
F_sys : float
システム全体の雑音指数(真数)
contributions : ndarray
各段の寄与(真数)
"""
n = len(noise_factors)
contributions = np.zeros(n)
contributions[0] = noise_factors[0]
cumulative_gain = 1.0
for i in range(1, n):
cumulative_gain *= gains[i - 1]
contributions[i] = (noise_factors[i] - 1) / cumulative_gain
F_sys = np.sum(contributions)
return F_sys, contributions
# 受信機チェーンの定義
# 各段: (名前, NF [dB], 利得 [dB])
stages = [
("フィードライン", 0.5, -0.5),
("LNA", 0.5, 25.0),
("BPF", 1.0, -1.0),
("ミキサー", 7.0, -7.0),
("IF増幅器", 3.0, 30.0),
("IFフィルタ", 0.5, -0.5),
]
names = [s[0] for s in stages]
nf_db = np.array([s[1] for s in stages])
gain_db = np.array([s[2] for s in stages])
# dB → 真数
noise_factors = 10 ** (nf_db / 10)
gains = 10 ** (gain_db / 10)
F_sys, contribs = noise_factor_friis(noise_factors, gains)
NF_sys = 10 * np.log10(F_sys)
# 各段の寄与を dB に変換(表示用)
contribs_db = 10 * np.log10(1 + contribs)
# 可視化
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# 左: 各段の寄与(棒グラフ)
colors = plt.cm.viridis(np.linspace(0.2, 0.8, len(names)))
bars = axes[0].bar(names, contribs, color=colors, edgecolor='white', linewidth=0.5)
axes[0].set_ylabel("Contribution to F_sys (linear)")
axes[0].set_title(f"Stage Contributions to System Noise Factor\n(System NF = {NF_sys:.2f} dB)")
axes[0].tick_params(axis='x', rotation=30)
for bar, c in zip(bars, contribs):
axes[0].text(bar.get_x() + bar.get_width()/2, bar.get_height() + 0.005,
f"{c:.4f}", ha='center', va='bottom', fontsize=9)
# 右: 累積NF(段ごとの推移)
cumulative_nf = []
for i in range(1, len(noise_factors) + 1):
F_partial, _ = noise_factor_friis(noise_factors[:i], gains[:i])
cumulative_nf.append(10 * np.log10(F_partial))
axes[1].plot(range(1, len(names)+1), cumulative_nf, 'o-', color='#2196F3', linewidth=2, markersize=8)
axes[1].set_xticks(range(1, len(names)+1))
axes[1].set_xticklabels(names, rotation=30)
axes[1].set_ylabel("Cumulative NF [dB]")
axes[1].set_title("Cumulative System NF through Receiver Chain")
axes[1].grid(True, alpha=0.3)
for i, nf_val in enumerate(cumulative_nf):
axes[1].annotate(f"{nf_val:.2f} dB", (i+1, nf_val),
textcoords="offset points", xytext=(0, 12), ha='center', fontsize=9)
plt.tight_layout()
plt.savefig("receiver_noise_figure.png", dpi=150, bbox_inches='tight')
plt.show()
print(f"システム雑音指数: F = {F_sys:.4f} (NF = {NF_sys:.2f} dB)")
print(f"システム等価雑音温度: Te = {(F_sys - 1) * 290:.1f} K")
上のグラフから、2 つの重要な特徴が読み取れます。
- 左の棒グラフ: 第 1 段(フィードライン)と第 2 段(LNA)がシステム NF への寄与の大部分を占めていることがわかります。第 4 段のミキサーは NF = 7 dB と最も雑音が大きいデバイスですが、LNA の高い利得(25 dB)で割り算されるため、システムへの寄与はごくわずかです。これはフリスの公式の本質を視覚的に裏付けています。
- 右の折れ線グラフ: 累積 NF は LNA を通過した段階でほぼ確定し、それ以降の段をいくつ追加してもほとんど変化しません。つまり、受信機全体の雑音性能は事実上、最初の 2 段で決まっているのです。
LNA 配置位置の最適化シミュレーション
次に、3 つのデバイスの配置順序を全て試し、最適な配置を自動的に見つけるプログラムを実装します。
import numpy as np
from itertools import permutations
def system_nf_db(nf_db_list, gain_db_list):
"""
フリスの公式でシステムNF [dB] を計算する
"""
F = 10 ** (np.array(nf_db_list) / 10)
G = 10 ** (np.array(gain_db_list) / 10)
F_sys = F[0]
cum_gain = G[0]
for i in range(1, len(F)):
F_sys += (F[i] - 1) / cum_gain
cum_gain *= G[i]
return 10 * np.log10(F_sys)
# 3つのデバイス
devices = {
"LNA": {"nf_db": 0.8, "gain_db": 20},
"ミキサー": {"nf_db": 7.0, "gain_db": -6},
"増幅器": {"nf_db": 4.0, "gain_db": 15},
}
print("=" * 60)
print("デバイス配置の全組み合わせとシステムNF")
print("=" * 60)
results = []
for perm in permutations(devices.keys()):
nf_list = [devices[d]["nf_db"] for d in perm]
gain_list = [devices[d]["gain_db"] for d in perm]
nf_sys = system_nf_db(nf_list, gain_list)
results.append((perm, nf_sys))
order_str = " → ".join(perm)
print(f" {order_str:30s} NF_sys = {nf_sys:.2f} dB")
# 最適配置の表示
best = min(results, key=lambda x: x[1])
worst = max(results, key=lambda x: x[1])
print(f"\n最適配置: {' → '.join(best[0])} (NF = {best[1]:.2f} dB)")
print(f"最悪配置: {' → '.join(worst[0])} (NF = {worst[1]:.2f} dB)")
print(f"差: {worst[1] - best[1]:.2f} dB")
このシミュレーションでは、3 つのデバイス(LNA, ミキサー, 増幅器)の配置順序 6 通りを全て列挙し、各配置でのシステム NF を計算しています。結果として、LNA を最前段に配置する構成が最適となることが確認できます。最適配置と最悪配置の間には数 dB 以上の差が生じ、配置順序の重要性が数値的にも裏付けられます。
LNA 利得と第 2 段 NF の影響の可視化
LNA の利得を変化させたとき、第 2 段のデバイスの NF がシステム全体にどの程度影響するかをヒートマップで可視化します。
import numpy as np
import matplotlib.pyplot as plt
# パラメータ範囲
lna_gain_db = np.linspace(5, 35, 100) # LNA利得 [dB]
stage2_nf_db = np.linspace(1, 15, 100) # 第2段NF [dB]
# LNAのNFは固定(0.5 dB)
lna_nf_db = 0.5
F_lna = 10 ** (lna_nf_db / 10)
# グリッド計算
G_lna_grid, F2_grid = np.meshgrid(
10 ** (lna_gain_db / 10),
10 ** (stage2_nf_db / 10)
)
# 2段のフリスの公式
F_sys_grid = F_lna + (F2_grid - 1) / G_lna_grid
NF_sys_grid = 10 * np.log10(F_sys_grid)
# 可視化
fig, ax = plt.subplots(figsize=(10, 7))
levels = np.arange(0.5, 8.0, 0.25)
cs = ax.contourf(lna_gain_db, stage2_nf_db, NF_sys_grid, levels=levels, cmap='RdYlGn_r')
cbar = plt.colorbar(cs, ax=ax, label='System NF [dB]')
contour_lines = ax.contour(lna_gain_db, stage2_nf_db, NF_sys_grid,
levels=[0.75, 1.0, 1.5, 2.0, 3.0], colors='black', linewidths=0.8)
ax.clabel(contour_lines, fmt='%.1f dB', fontsize=9)
ax.set_xlabel("LNA Gain [dB]", fontsize=12)
ax.set_ylabel("Stage 2 NF [dB]", fontsize=12)
ax.set_title(f"System NF vs LNA Gain and Stage 2 NF\n(LNA NF = {lna_nf_db} dB)", fontsize=13)
ax.grid(True, alpha=0.2)
plt.tight_layout()
plt.savefig("lna_gain_vs_stage2_nf.png", dpi=150, bbox_inches='tight')
plt.show()
ヒートマップから、以下のことが読み取れます。
- LNA の利得が 20 dB 以上あれば、第 2 段の NF が 10 dB を超えてもシステム NF はほとんど 1 dB 前後に収まります。等高線が横方向にほぼ平坦になっている領域がこれに対応します。これは、LNA の利得が十分大きければ後段の雑音は無視できることをグラフィカルに示しています。
- LNA の利得が 10 dB 未満になると、第 2 段の NF がシステム NF に大きく影響し始めます。等高線の間隔が狭くなり、第 2 段 NF の変化に敏感になっていることがわかります。
- 設計の実用的な指針: LNA の利得を 20 〜 25 dB 確保しておけば、後段の部品選択にある程度の自由度が生まれます。逆に LNA の利得が不足すると、後段の全てのデバイスに低雑音品を使わなければならず、コスト増につながります。
Y 因子法のシミュレーション
最後に、Y 因子法による NF 測定をシミュレーションし、測定精度への影響因子を調べます。
import numpy as np
import matplotlib.pyplot as plt
def y_factor_measurement(T_hot, T_cold, T_e_true, G_true, bandwidth,
power_measurement_noise_db=0.0):
"""
Y因子法によるNF測定のシミュレーション
Parameters
----------
T_hot : float ホット雑音源温度 [K]
T_cold : float コールド雑音源温度 [K]
T_e_true : float DUTの真の等価雑音温度 [K]
G_true : float DUTの真の利得(真数)
bandwidth : float 測定帯域幅 [Hz]
power_measurement_noise_db : float 電力測定の不確かさ [dB]
Returns
-------
dict : 測定結果
"""
k = 1.381e-23 # ボルツマン定数
# 真の出力雑音電力
N_hot = G_true * k * (T_hot + T_e_true) * bandwidth
N_cold = G_true * k * (T_cold + T_e_true) * bandwidth
# 測定の不確かさを加える
noise_factor = 10 ** (power_measurement_noise_db / 10)
N_hot_meas = N_hot * noise_factor
N_cold_meas = N_cold / noise_factor # 逆方向の誤差でワーストケース
Y = N_hot_meas / N_cold_meas
T_e_meas = (T_hot - Y * T_cold) / (Y - 1)
F_meas = 1 + T_e_meas / 290
return {
"Y": Y,
"T_e_meas": T_e_meas,
"F_meas": F_meas,
"NF_meas": 10 * np.log10(F_meas) if F_meas > 0 else float('nan'),
}
# 真値の設定
T_0 = 290 # 標準温度 [K]
enr_db = 15 # 雑音源のENR [dB]
enr_linear = 10 ** (enr_db / 10)
T_hot = T_0 * (1 + enr_linear) # ≈ 9462 K
T_cold = T_0
bandwidth = 4e6 # 4 MHz
# DUTの真値
nf_true_db = 2.0 # NF = 2 dB
F_true = 10 ** (nf_true_db / 10)
T_e_true = (F_true - 1) * T_0
G_true_db = 20 # 利得 20 dB
G_true = 10 ** (G_true_db / 10)
# 電力測定誤差の影響を調べる
errors_db = np.linspace(0, 0.5, 200)
nf_measured = []
for err in errors_db:
result = y_factor_measurement(T_hot, T_cold, T_e_true, G_true, bandwidth, err)
nf_measured.append(result["NF_meas"])
# 可視化
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# 左: 測定誤差 vs 測定NF
axes[0].plot(errors_db, nf_measured, color='#E53935', linewidth=2)
axes[0].axhline(y=nf_true_db, color='gray', linestyle='--', label=f'True NF = {nf_true_db} dB')
axes[0].set_xlabel("Power Measurement Uncertainty [dB]", fontsize=11)
axes[0].set_ylabel("Measured NF [dB]", fontsize=11)
axes[0].set_title("Effect of Measurement Uncertainty on NF")
axes[0].legend(fontsize=10)
axes[0].grid(True, alpha=0.3)
# 右: ENRが異なる場合のNF測定精度
enr_values_db = [5, 10, 15, 20, 25]
for enr_val in enr_values_db:
enr_lin = 10 ** (enr_val / 10)
T_h = T_0 * (1 + enr_lin)
nf_vals = []
for err in errors_db:
res = y_factor_measurement(T_h, T_cold, T_e_true, G_true, bandwidth, err)
nf_vals.append(res["NF_meas"])
axes[1].plot(errors_db, nf_vals, linewidth=1.5, label=f'ENR = {enr_val} dB')
axes[1].axhline(y=nf_true_db, color='gray', linestyle='--', label='True NF')
axes[1].set_xlabel("Power Measurement Uncertainty [dB]", fontsize=11)
axes[1].set_ylabel("Measured NF [dB]", fontsize=11)
axes[1].set_title("NF Measurement Accuracy for Different ENR Values")
axes[1].legend(fontsize=9)
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig("y_factor_measurement.png", dpi=150, bbox_inches='tight')
plt.show()
# 理想的な測定の結果を表示
ideal = y_factor_measurement(T_hot, T_cold, T_e_true, G_true, bandwidth, 0.0)
print(f"理想的な測定:")
print(f" Y因子: {ideal['Y']:.4f} ({10*np.log10(ideal['Y']):.2f} dB)")
print(f" 等価雑音温度: {ideal['T_e_meas']:.1f} K (真値: {T_e_true:.1f} K)")
print(f" NF: {ideal['NF_meas']:.2f} dB (真値: {nf_true_db:.2f} dB)")
グラフから次のことがわかります。
- 左のグラフ: 電力測定の不確かさが増えると、測定された NF は真値から系統的に乖離します。0.1 dB の電力測定誤差でも NF の測定誤差は無視できない大きさになります。高精度な NF 測定には、電力計の校正精度が不可欠であることがわかります。
- 右のグラフ: ENR の値によって測定感度が異なります。ENR が低すぎると Y 因子が 1 に近づき、わずかな電力測定誤差が NF に大きく影響します。逆に ENR が高すぎると、DUT の雑音に対してホット源の雑音が支配的になり、やはり精度が低下します。DUT の NF に対して適切な ENR を選択することが重要です。一般に、$\text{ENR} \approx \text{NF} + 15$ 〜 $20\,\text{dB}$ が推奨されます。
まとめ
本記事では、雑音指数(NF)の理論について、定義から測定法まで体系的に解説しました。
- SNR と雑音指数の関係: NF はデバイスが SNR をどれだけ劣化させるかを表す指標であり、$F = \text{SNR}_{\text{in}} / \text{SNR}_{\text{out}}$ で定義されます。
- 等価雑音温度: $T_e = (F – 1) T_0$ により、雑音を温度で直感的に扱えます。衛星通信やレーダーの設計で特に有用です。
- フリスの公式: 縦続接続のシステム NF は $F_{\text{sys}} = F_1 + (F_2 – 1)/G_1 + \cdots$ で計算されます。第 1 段の雑音指数がそのままシステムに反映され、後段の寄与は前段の利得で割り算されて小さくなります。
- 第 1 段 LNA の決定的重要性: 同じ部品でも配置順序でシステム NF は 10 dB 近く変わり得ます。最前段に低雑音・高利得の LNA を配置することが受信機設計の鉄則です。
- LNA の設計: 雑音整合($\Gamma_S = \Gamma_{\text{opt}}$)と利得整合のトレードオフを考慮し、等雑音指数円と等利得円をスミスチャート上で分析して最適設計点を決定します。
- Y 因子法: 2 つの雑音温度(ホット/コールド)での出力電力比から NF を測定できます。ENR の選択と電力測定精度が測定精度を左右します。
雑音指数の理論は、受信機設計の全ての局面で基盤となる知識です。次のステップとして、以下の記事も参考にしてください。