Main Content

comm.ThermalNoise

信号への熱ノイズの付加

説明

comm.ThermalNoise System object™ オブジェクトは、複素ベースバンド信号の熱ノイズの影響をシミュレートします。詳細については、アルゴリズムを参照してください。

熱ノイズを複素ベースバンド信号に付加するには、次のようにします。

  1. comm.ThermalNoise オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とは を参照してください。

作成

説明

noise = comm.ThermalNoise は受信機の熱ノイズ System object を作成します。このオブジェクトは、複素ベースバンド入力信号に熱ノイズを付加します。

noise = comm.ThermalNoise(Name=Value) は、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、SampleRate=2 は入力信号のサンプル レートを 2 に設定します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

ノイズ パワーを設定するメソッド。'Noise temperature''Noise figure' または 'Noise factor' で指定します。

受信機のノイズ温度。ケルビン単位で非負のスカラーとして指定します。ノイズ温度は通常、受信機を特徴付けるために使用されます。これは、入力ノイズ温度が変化する場合があり、290 K より低いことがよくあるためです。

調整可能: Yes

依存関係

このプロパティを有効にするには、NoiseMethod プロパティを 'Noise temperature' に設定します。

データ型: double

ノイズ指数 (dB 単位)。非負のスカラーとして指定します。ノイズ指数は受信機のパフォーマンスを示し、アンテナの影響は含まれません。入力ノイズ温度 290 K に対してのみ定義されます。ノイズ指数はノイズ ファクターの dB に相当します。

調整可能: Yes

依存関係

このプロパティを有効にするには、NoiseMethod プロパティを 'Noise figure' に設定します。

データ型: double

ノイズ ファクター。1 以上のスカラーとして指定します。ノイズ ファクターは受信機のパフォーマンスを示し、アンテナの影響は含まれません。入力ノイズ温度 290 K に対してのみ定義されます。ノイズ ファクターはノイズ指数の線形等価です。

調整可能: Yes

依存関係

このプロパティを有効にするには、NoiseMethod プロパティを 'Noise factor' に設定します。

データ型: double

参照負荷 (オーム単位)。正のスカラーとして指定します。参照負荷の値は、信号レベルおよびノイズ パワー レベルに基づいて電圧レベルを計算するのに使用されます。

調整可能: Yes

データ型: double

サンプル レート (Hz 単位)。正のスカラーとして指定します。オブジェクトは、入力信号に付加されるノイズの分散を kT×SampleRate として計算します。値 k はボルツマン定数で、T は、いずれかのノイズ メソッドによって明示的または黙示的に指定されるノイズ温度です。

データ型: double

290 K のアンテナ ノイズを入力信号に付加するオプション。logical 0 (false) または logical 1 (true) として指定します。290 K のアンテナ ノイズを付加するには、このプロパティを true に設定します。入力信号に適用される全ノイズは、回路ノイズとアンテナ ノイズの和です。

依存関係

このプロパティを有効にするには、NoiseMethod プロパティを 'Noise factor' または 'Noise figure' に設定します。

使用法

説明

outsignal = noise(insignal) は、熱ノイズを複素ベースバンド入力信号 insignal に付加し、結果を outsignal で返します。

入力引数

すべて展開する

ベースバンド信号。複素数値のスカラーまたは列ベクトルとして指定します。

データ型: single | double
複素数のサポート: あり

出力引数

すべて展開する

出力信号。入力信号と同じ長さとデータ型で、複素数値のスカラーまたは列ベクトルとして返されます。

データ型: single | double
複素数のサポート: あり

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて折りたたむ

ノイズ温度 290 K、サンプル レート 5 MHz で熱ノイズ オブジェクトを作成します。

thNoise = comm.ThermalNoise('NoiseTemperature',290,'SampleRate',5e6);

20 dBm の出力パワーで QPSK 変調データを生成します。

data = randi([0 3],1000,1);
modData = (10^((20-30)/20)) * pskmod(data,4,pi/4);

1000 m のリンク距離と 2 GHz の搬送周波数を想定した自由空間パス損失で信号を減衰させます。

d = 1000;                    % m  
f = 2e9;                     % Hz
c = 3e8;                     % m/s 
fsl = (4*pi*d*f/c)^2;
rxData = modData/sqrt(fsl);

信号に熱ノイズを付加します。ノイズの多いコンスタレーションをプロットします。

noisyData = thNoise(rxData);
scatterplot(noisyData)

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot contains an object of type line. This object represents Channel 1.

ノイズ指数 5 dB、サンプル レート 10 MHz で熱ノイズ オブジェクトを作成します。290 K のアンテナ ノイズを含めます。

thermalNoise = comm.ThermalNoise('NoiseMethod','Noise figure', ...
    'NoiseFigure',5, ...
    'SampleRate',10e6, ...
    'Add290KAntennaNoise',true);

1 W の出力パワーで QPSK 変調データを生成します。

data = randi([0 15],1000,1);
modSig = qammod(data,16,'UnitAveragePower',true);

1 km のリンク距離と 5 GHz の搬送周波数を想定した自由空間パス損失で信号を減衰させます。

d = 1000;                   % m
f = 5e9;                    % Hz
c = 3e8;                    % m/s
fsl = (4*pi*d*f/c)^2;
rxSig = modSig/sqrt(fsl);

信号に熱ノイズを追加し、そのコンスタレーションをプロットします。

noisySig = thermalNoise(rxSig);
scatterplot(noisySig)

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot contains an object of type line. This object represents Channel 1.

SNR を推定します。

mer = comm.MER;
snrEst1 = mer(rxSig,noisySig)
snrEst1 = 22.6611

ノイズ指数を 0 dB に減らして、結果の受信信号をプロットします。アンテナ ノイズが含まれているため、信号は完全にノイズなしにはなりません。

thermalNoise.NoiseFigure = 0;
noisySig = thermalNoise(rxSig);
scatterplot(noisySig)

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot contains an object of type line. This object represents Channel 1.

SNR を推定します。SNR は最初のケースより 5 dB 高くなりますが、これはノイズ指数の 5 dB の低下から予想されます。

snrEst2 = mer(rxSig,noisySig)
snrEst2 = 27.8658
snrEst2 - snrEst1
ans = 5.2047

アルゴリズム

無線受信機のパフォーマンスは、しばしばノイズ ファクターまたはノイズ指数で表されます。ノイズ ファクターは入力の S/N 比 Si/Ni と出力の S/N 比 So/No の比率として定義され、次のようになります。

F=Si/NiSo/No.

受信機のゲイン G、受信機のノイズ パワー Nckt が与えられると、ノイズ ファクターは次のように表現できます。

F=Si/NiGSi/(Nckt+GNi)=Nckt+GNiGNi.

IEEE はノイズ ファクターを定義する際に、入力のノイズ温度が T0 であると仮定しています。ここで、T0 = 290 K です。このとき、ノイズ ファクターは次のようになります。

F=Nckt+GNiGNi=GkBTckt+GkBT0GkBT0=Tckt+T0T0.

Tckt は受信機の同等の入力ノイズ温度で、次のように表現されます。

Tckt=T0(F1).

アンテナと受信機の全体的なノイズ温度 Tsys は次のようになります。

Tsys=Tant+Tckt,

ここで、Tant はアンテナのノイズ温度です。

ノイズ指数 NF はノイズ ファクターの dB 換算と等価であり、次のように表現できます。

NF=10log10(F).

ノイズ パワーは次のように表現できます。

N=kTB=V2/R,

ここで、V は次のように表現されるノイズ電圧です。

V2=kTBR,

また、R は参照負荷です。

拡張機能

バージョン履歴

R2012a で導入