Main Content

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

Random Integer Generator

指定した範囲内でランダムに分布された整数を生成する

  • Random Integer Generator block

ライブラリ:
Communications Toolbox / Comm Sources / Random Data Sources

説明

Random Integer Generator ブロックは、[0, M-1] の範囲に一様分布したランダム整数を生成します。ここで、M[セットのサイズ] パラメーターによって指定されます。このブロックを使用して、ランダムなバイナリ値または整数値のデータを生成します。

すべて展開する

初期シード ソースを Auto に設定した場合に Random Integer Generator ブロックから異なるシーケンスが出力されることを示します。初期シード ソースを Parameter に設定し、初期シードの値を変更しなかった場合に、同じシーケンスが繰り返し出力されることを示します。初期シード ソースを Parameter に設定し、初期シードの値を変更した場合に、出力シーケンスが変化することを示します。

slex_rng_seed_source モデルを 2 回実行して出力シーケンスを比較します。

Seed source = Auto
     6     1
     7     7
     1     7
     7     3
     5     6
     0     1
     2     3
     4     7
     7     6
     7     7

[Initial seed source]Parameter に変更します。初期シードの値を 0 に設定し、slex_rng_seed_source モデルを 2 回実行します。結果を前回の結果と比較します。

Seed source = Parameter, Seed = 0
     6     1     6     6
     7     7     7     7
     1     7     1     1
     7     3     7     7
     5     6     5     5
     0     1     0     0
     2     3     2     2
     4     7     4     4
     7     6     7     7
     7     7     7     7

初期シードの値を 1993 に変更して実行します。結果を前回の結果と比較します。

Seed = 1993
     6     1     6     6     0
     7     7     7     7     1
     1     7     1     1     7
     7     3     7     7     2
     5     6     5     5     1
     0     1     0     0     1
     2     3     2     2     4
     4     7     4     4     5
     7     6     7     7     4
     7     7     7     7     1

QPSK 変調をランダム データの信号に適用します。AWGN チャネルを通して、変調された信号を渡します。信号コンスタレーションをプロットします。

doc_qpsk_mod モデルは QPSK データを生成し、ホワイト ノイズを適用して結果のコンスタレーション ダイアグラムを表示します。

15 dB に設定した AWGN Channel ブロックの Eb/N0 を使用したモデルを実行します。

Eb/N0 を 15 dB から 10 dB に変更します。サンプル間の距離の増加によって示されるように、ノイズ レベルが上昇しています。

cm_ex_viterbi_decode_binary_seq モデルは Random Integer Generator ブロックを使用してバイナリ シーケンスを生成します。シーケンスは、Convolutional Encoder ブロックで符号化され、Binary Symmetric Channel ブロックで劣化します。Viterbi Decoder ブロックはデータ シーケンスを符号化し、ビット エラー レートが計算されます。

InitFcn コールバックを使用して、フレーム、BSC 誤り確率、およびビタビ復号化器のトレースバック長ごとにサンプルのワークスペース パラメーターを初期化します。送信信号と受信信号間の信号遅延はトレースバック長と同等です。信号遅延は、エラー レートの計算に必要です。

バイナリ ビット ストリームを作成するために、Random Integer Generator ブロックは、セット サイズを 2 および出力タイプを boolean に指定します。

計算されたエラー レートは、Binary Symmetric Channel ブロックで指定された Error probability を近似します。

Computed error rate = 0.095023

制限

  • このブロックを For Each Subsystem (Simulink) で使用するには、Source of initial seed[Auto] に設定し、モデルのシミュレーション モードを [標準] または [アクセラレータ] に設定しなければなりません。これにより、実行のたびに独立したノイズ サンプルが必ず生成されます。

端子

出力

すべて展開する

ランダムな整数出力。スカラー、ベクトルまたは行列として返されます。この端子はブロックで名前なしになります。データ型は、出力データ型 パラメーターを使用して設定されます。

出力信号の行数は、フレームあたりのサンプル数 パラメーターの値と等しく、1 フレームのサンプル数に対応します。出力データの列数は、Set size パラメーターの要素の数と等しく、チャネルの数に対応します。

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

セット サイズ M。正の整数または正の整数の行ベクトルとして指定します。ブロックは、範囲 [0, (M – 1)] の整数を生成します。[Set size] の要素の数は、ブロックから出力される独立チャネルの数に対応します。

  • [Set size] がスカラーである場合、すべての出力確率変数は独立同分布 (i.i.d.) です。

  • [Set size] がベクトルの場合、ベクトルの長さが出力チャネル数を決定します。チャネルはさまざまな出力範囲を取ることができます。

乱数発生器の初期シードのソース。次のいずれかとして指定します。

  • Auto –– ブロックはグローバル乱数ストリームを使用します。関数 parsim (Simulink) を使用する場合は、ヒントを参照してください。

  • Parameter –– ブロックは乱数発生器シードを [初期シード] に設定します。

詳細については、RandStream を使用したグローバル ストリームの管理乱数発生器を参照してください。

乱数発生器の初期シード値。非負の整数として指定します。[Initial seed] パラメーターが定数である場合、結果のシーケンスは繰り返し可能です。

調整可能: Yes

依存関係

このパラメーターを有効にするには、[初期シードのソース] パラメーターを [Parameter] に設定します。

正のスカラーは、出力信号の各サンプル間の時間を秒単位で指定します。[サンプル時間] を -1 に設定すると、出力信号は下流からサンプル時間を継承します。[サンプル時間] パラメーターと [フレームあたりのサンプル数] パラメーターの関係の詳細については、サンプル タイミングを参照してください。

フレームあたりのサンプル数。出力データの 1 つのチャネルでフレームあたりのサンプル数を示す正の整数として指定します。[サンプル時間][フレームあたりのサンプル数] の関係の詳細については、サンプル タイミングを参照してください。

出力データ型。[double][single][uint8][uint16][uint32] または [boolean] として指定します。このパラメーターが [boolean] に設定されている場合、Set size パラメーターを 2 に設定しなければなりません。

実行するシミュレーションのタイプ。[インタープリター型実行] または [コード生成] として指定します。

  • インタープリター型実行 — MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、必要な起動時間が短縮されますが、以降のシミュレーションの速度は [コード生成] オプションを使用した場合よりも遅くなります。このモードで、ブロックのソース コードをデバッグできます。

  • コード生成 — 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink は対象ブロックの C コードを生成します。このモデルは、モデルが変更されない限り以降のシミュレーションで C コードを再利用します。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、以降のシミュレーションの速度は [インタープリター型実行] オプションを使用した場合よりも速くなります。

詳細については、シミュレーション モード (Simulink)を参照してください。

ブロックの特性

データ型

Boolean | double | integer | single

多次元信号

いいえ

可変サイズの信号

いいえ

詳細

すべて展開する

ヒント

関数 parsim (Simulink) を使用してモンテ カルロ シミュレーションなどのシミュレーションを並列で実行する場合、[初期シードのソース][Parameter] に設定し、[初期シード] の値がすべてのブロックで異なっていることを確認します。

そうしないと、以下のモデル コンフィギュレーションにおいて、異なるワーカーが同じ乱数を生成する (誤解を招く結果につながる) 可能性があります。

  • モデルがラピッド アクセラレータ モードである。

  • このブロックにおいて、[シミュレーション実行方法][コード生成] に設定されており、[初期シードのソース][Auto] に設定されている。

詳細については、シミュレーション モードの選択 (Simulink)を参照してください。

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する