Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

comm.gpu.AWGNChannel

GPU を使用した入力信号へのホワイト ガウス ノイズの付加

このオブジェクトを使用するには、Parallel Computing Toolbox™ がインストールされており、サポートされる GPU にアクセスできなければなりません。ホスト コンピューターに GPU が構成されている場合、処理には GPU が使用されます。そうでない場合、処理には CPU が使用されます。GPU の詳細については、GPU 計算 (Parallel Computing Toolbox)を参照してください。

説明

comm.gpu.AWGNChannel System object™ は、グラフィックス処理装置 (GPU) を使用して、入力信号にホワイト ガウス ノイズを付加します。

ホワイト ガウス ノイズを入力信号に付加するには、以下の手順に従います。

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

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

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

作成

説明

gpuawgnchan = comm.gpu.AWGNChannel は、入力信号にホワイト ガウス ノイズを付加する GPU ベースのチャネルの System object を作成します。

gpuawgnchan = comm.gpu.AWGNChannel(Name=Value) は、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、SamplesPerSymbol=4 は、シンボルあたりのサンプル数を 4 として指定します。

プロパティ

すべて展開する

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

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

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

ノイズ レベルの方式。"Signal to noise ratio (Eb/No)""Signal to noise ratio (Es/No)""Signal to noise ratio (SNR)"、または "Variance" として指定します。詳細については、Eb/No、Es/No、および SNR モードの間の関係分散の直接指定または間接指定を参照してください。

ノイズ パワー スペクトル密度 (Eb/No) に対する、ビットあたりのエネルギーの比 (dB 単位)。スカラーまたは 1 行 NC 列のベクトルで指定します。NC は、チャネル数です。

調整可能: Yes

依存関係

このプロパティを有効にするには、NoiseMethod"Signal to noise ratio (Eb/No)" に設定します。

データ型: double

ノイズ パワー スペクトル密度 (Es/No) に対する、シンボルあたりのエネルギーの比 (dB 単位)。スカラーまたは 1 行 NC 列のベクトルで指定します。NC は、チャネル数です。

調整可能: Yes

依存関係

このプロパティを有効にするには、NoiseMethod"Signal to noise ratio (Es/No)" に設定します。

データ型: double

ノイズ パワーに対する信号強度の比 (dB 単位)。スカラーまたは 1 行 NC 列のベクトルで指定します。NC は、チャネル数です。

調整可能: Yes

依存関係

このプロパティを有効にするには、NoiseMethod"Signal to noise ratio (SNR)" に設定します。

データ型: double

シンボルあたりのビット数。正の整数として指定します。

依存関係

このプロパティを有効にするには、NoiseMethod"Signal to noise ratio (Eb/No)" に設定します。

データ型: double

ワット単位の入力信号強度。正のスカラーまたは 1 行 NC 列のベクトルとして指定します。NC は、チャネル数です。オブジェクトは 1 オームの公称インピーダンスを想定しています。

調整可能: Yes

依存関係

このプロパティを有効にするには、NoiseMethod"Signal to noise ratio (Eb/No)""Signal to noise ratio (Es/No)"、または "Signal to noise ratio (SNR)" に設定します。

データ型: double

シンボルあたりのサンプル数。正の整数または 1 行 NC 列のベクトルとして指定します。NC は、チャネル数です。

依存関係

このプロパティを有効にするには、NoiseMethod"Signal to noise ratio (Eb/No)" または "Signal to noise ratio (Es/No)" に設定します。

データ型: double

ノイズ分散のソース。"Property" または "Input port" として指定します。

  • Variance プロパティを使用してノイズ分散値を指定するには、VarianceSource"Property" に設定します。

  • オブジェクトへの入力を使用してノイズ分散値を指定するには、そのオブジェクトを関数として呼び出す際に、VarianceSource"Input port" に設定します。

詳細については、分散の直接指定または間接指定を参照してください。

依存関係

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

ホワイト ガウス ノイズの分散。正のスカラーまたは 1 行 NC 列のベクトルとして指定します。NC は、チャネル数です。

調整可能: Yes

依存関係

このプロパティを有効にするには、NoiseMethod"Variance" に設定し、VarianceSource"Property" に設定します。

データ型: double

乱数ストリームのソース。"Global stream" として指定します。RandomStream"Global stream" に設定すると、このオブジェクトは MATLAB® の既定の乱数ストリームを使用して乱数を生成します。このオブジェクトを使用して再現性のある数を生成するには、関数 rng を使用します。

複素数入力信号の場合、オブジェクトは、次のようにランダム データを作成します。

noise = randn(NS,NC)+1i(randn(NS,NC))
NS は、サンプルの数です。NC は、チャネルの数です。

依存関係

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

mt19937ar 乱数ストリームの初期シード。非負の整数で指定します。関数 reset を呼び出すたびに、オブジェクトにより mt19937ar 乱数ストリームが Seed の値に再初期化されます。

依存関係

このプロパティを有効にするには、RandomStream"mt19937ar with seed" に設定します。

データ型: double

使用法

説明

y = gpuawgnchan(x) は、入力信号に対して、gpuawgnchan として指定されたホワイト ガウス ノイズを付加します。結果は、y に返されます。

y = gpuawgnchan(x,var) は、ホワイト ガウス ノイズの分散を指定します。この構文は、NoiseMethod"Variance"、および VarianceSource"Input port" に設定した場合に適用されます。

次に例を示します。

gpuawgnchan = comm.AWGNChannel('NoiseMethod','Variance', ...
     'VarianceSource','Input port');
var = 12;
...
y = gpuawgnchan(x,var);

入力引数

すべて展開する

入力信号。スカラー、NS 要素のベクトルまたは NS 行 NC 列の行列として指定します。NS は、サンプルの数です。NC は、チャネルの数です。

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

加法性ホワイト ガウス ノイズの分散。正のスカラーまたは 1 行 NC 列のベクトルとして指定します。NC は、チャネル数です。これは、入力信号行列の列数で決まります。

データ型: double | single

出力引数

すべて展開する

出力信号。x と同じ次元で返されます。

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

オブジェクト関数

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

release(obj)

すべて展開する

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

すべて折りたたむ

変調次数を指定して、PSK 変調されたランダム データを生成します。

M = 8;
modData = pskmod(randi([0 M-1],1000,1),M,pi/M);

GPU を使用する AWGN チャネル オブジェクトを作成します。変調データをチャネルを介して渡します。

gpuChannel = comm.gpu.AWGNChannel('EbNo',15,'BitsPerSymbol', ...
                log2(M));
channelOutput = gpuChannel(modData);

ノイズのないデータとノイズのあるデータを散布図で表示します。

scatterplot(modData)
scatterplot(channelOutput)

詳細

すべて展開する

アルゴリズム

すべて展開する

参照

[1] Proakis, John G. Digital Communications. 4th ed. New York: McGraw Hill, 2001.

拡張機能

バージョン履歴

R2012a で導入