Main Content

Simulink のランダム ノイズ ジェネレーター

乱数発生器を持つ MATLAB® Function ブロックを使用して、通信システムのモデル化に使用するノイズを生成することができます。この例では、ガウス、レイリー、ライス、および一様分布ノイズのヒストグラム プロットを生成して表示します。

ノイズ ジェネレーターは、毎秒 1e5 行 1 列のベクトルを出力します。これは、0.00001 秒のサンプル時間と等価です。このモデルで、各 MATLAB Function ブロックは基になる関数を使用して固有のノイズ ジェネレーターを定義します。MATLAB エディターの MATLAB Function ブロックの元となるコードを表示するには、モデルを開き、適切な MATLAB Function ブロックを選択して、Ctrl + u を押します。各 MATLAB Function ブロックには、基になるコードの関数の引数にマッピングするブロック マスク パラメーターが含まれます。

各 MATLAB Function ブロックの場合、[フレームあたりのサンプル数] パラメーターは基になる関数の引数 spf にマッピングします。同様に、[Seed]seed にマッピングします。

Gaussian Noise MATLAB Function ブロックは、[Power (dBW)] パラメーターを p にマッピングし、関数を定義します。

$$y = wgn(spf,1,p)$$

Rayleigh Noise MATLAB Function ブロックは、[Sigma] パラメーターを alpha にマッピングし、関数を定義します。

$$y = abs(alpha*(randn(spf,1)+1i*randn(spf,1)))$$

Rician Noise MATLAB Function ブロックは、[Rician K-factor] パラメーターを K に、[Sigma] パラメーターを s にマッピングし、関数を定義します。

$$m1 = sqrt(2*K) .* s$$

$$m2 = 0$$

$$y = sqrt((s^2*randn(spf,1)+m1)^2+(s^2*randn(spf,1)+m2)^2)$$

Uniform Noise MATLAB Function ブロックは、[Noise lower bound] パラメーターを lb に、[Noise upper bound] パラメーターを ub にマッピングし、関数を定義します。

$$y = lb + (ub-lb).*rand(spf,1)$$

モデルはこれらのヒストグラム プロットを生成して、各ノイズ ジェネレーターのスペクトル間のノイズ分布を示します。

さらに詳しく調べるには、モデルを開き、ノイズ生成設定の 1 つを調整します。たとえば、ライス ノイズ ジェネレーターは 10 の K ファクターをもっているため、ノイズの平均値はレイリー分布ノイズの平均値より大きくなります。Rician Noise MATLAB Function ブロックをダブルクリックして、ブロック マスクを開き、K-ファクターを 10 から 2 に変更します。モデルを再実行してノイズ スペクトルのシフトを確認します。