このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Random Integer Generator
指定した範囲内でランダムに分布された整数を生成する
ライブラリ:
Communications Toolbox /
Comm Sources /
Random Data Sources
説明
Random Integer Generator ブロックは、[0, M-1] の範囲に一様分布したランダム整数を生成します。ここで、M は [セットのサイズ] パラメーターによって指定されます。このブロックを使用して、ランダムなバイナリ値または整数値のデータを生成します。
例
Random Integer Generator の初期シード ソース
初期シード ソースを 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 コンスタレーションのプロット
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]
に設定し、モデルのシミュレーション モードを[標準]
または[アクセラレータ]
に設定しなければなりません。これにより、実行のたびに独立したノイズ サンプルが必ず生成されます。
端子
出力
Out — ランダムな整数出力
スカラー | ベクトル | 行列
ランダムな整数出力。スカラー、ベクトルまたは行列として返されます。この端子はブロックで名前なしになります。データ型は、出力データ型 パラメーターを使用して設定されます。
出力信号の行数は、フレームあたりのサンプル数 パラメーターの値と等しく、1 フレームのサンプル数に対応します。出力データの列数は、Set size パラメーターの要素の数と等しく、チャネルの数に対応します。
パラメーター
ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。
Set size — Set size
8
(既定値) | 正の整数 | 正の整数の行ベクトル
セット サイズ M。正の整数または正の整数の行ベクトルとして指定します。ブロックは、範囲 [0, (M – 1)] の整数を生成します。[Set size] の要素の数は、ブロックから出力される独立チャネルの数に対応します。
[Set size] がスカラーである場合、すべての出力確率変数は独立同分布 (i.i.d.) です。
[Set size] がベクトルの場合、ベクトルの長さが出力チャネル数を決定します。チャネルはさまざまな出力範囲を取ることができます。
初期シードのソース — 初期シードのソース
自動
(既定値) | Parameter
Initial seed — 初期シード値
0
(既定値) | 非負の整数
乱数発生器の初期シード値。非負の整数として指定します。[Initial seed] パラメーターが定数である場合、結果のシーケンスは繰り返し可能です。
調整可能: Yes
依存関係
このパラメーターを有効にするには、[初期シードのソース] パラメーターを [Parameter]
に設定します。
サンプル時間 — サンプル時間
1
(既定値) | -1 | 正のスカラー
正のスカラーは、出力信号の各サンプル間の時間を秒単位で指定します。[サンプル時間] を -1
に設定すると、出力信号は下流からサンプル時間を継承します。[サンプル時間] パラメーターと [フレームあたりのサンプル数] パラメーターの関係の詳細については、サンプル タイミングを参照してください。
フレームあたりのサンプル数 — フレームあたりのサンプル数
1
(既定値) | 正の整数
フレームあたりのサンプル数。出力データの 1 つのチャネルでフレームあたりのサンプル数を示す正の整数として指定します。[サンプル時間] と [フレームあたりのサンプル数] の関係の詳細については、サンプル タイミングを参照してください。
出力データ型 — 出力データ型
double
(既定値) | single
| uint8
| uint16
| uint32
| boolean
出力データ型。[double]
、[single]
、[uint8]
、[uint16]
、[uint32]
または [boolean]
として指定します。このパラメーターが [boolean]
に設定されている場合、Set size パラメーターを 2
に設定しなければなりません。
シミュレーション実行方法 — 実行するシミュレーションのタイプ
インタープリター型実行
(既定値) | コード生成
実行するシミュレーションのタイプ。[インタープリター型実行]
または [コード生成]
として指定します。
インタープリター型実行
— MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、必要な起動時間が短縮されますが、以降のシミュレーションの速度は[コード生成]
オプションを使用した場合よりも遅くなります。このモードで、ブロックのソース コードをデバッグできます。コード生成
— 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink は対象ブロックの C コードを生成します。このモデルは、モデルが変更されない限り以降のシミュレーションで C コードを再利用します。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、以降のシミュレーションの速度は[インタープリター型実行]
オプションを使用した場合よりも速くなります。
詳細については、シミュレーション モード (Simulink)を参照してください。
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
詳細
サンプル タイミング
出力更新間の時間は、[フレームあたりのサンプル数] と [サンプル時間] パラメーター値の積に等しくなります。たとえば、[サンプル時間] と [フレームあたりのサンプル数] のそれぞれが 1
に等しい場合、ブロックは毎秒 1 サンプルを出力します。[フレームあたりのサンプル数] を 10 に増やすと、ブロックは 10 秒ごとに 10 行 1 列のベクトルを出力します。このタイミングにより、同等の出力レートが [フレームあたりのサンプル数] パラメーターに依存しないことが確実になります。
ヒント
関数 parsim
(Simulink) を使用してモンテ カルロ シミュレーションなどのシミュレーションを並列で実行する場合、[初期シードのソース] を [Parameter]
に設定し、[初期シード] の値がすべてのブロックで異なっていることを確認します。
そうしないと、以下のモデル コンフィギュレーションにおいて、異なるワーカーが同じ乱数を生成する (誤解を招く結果につながる) 可能性があります。
モデルがラピッド アクセラレータ モードである。
このブロックにおいて、[シミュレーション実行方法] が
[コード生成]
に設定されており、[初期シードのソース] が[Auto]
に設定されている。
詳細については、シミュレーション モードの選択 (Simulink)を参照してください。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入R2024a: 乱数ストリーム処理の更新
Random Integer Generator ブロックの乱数ストリーム処理の更新により、いくつかの制限が解除されます。この更新以前は、特定の動作モードで、シミュレーションが実行されるたびにブロックが同じ数値を生成していました。この変更により、これらの動作モードに関する制限が解除されます。
R2024a: シード値は整数でなければならない
Random Integer Generator ブロックは、[シード] パラメーターに非負の整数値を必要とします。
R2024a: R2015b の Random Integer Generator ブロック バージョンが自動的に更新されなくなった
R2015b バージョンから更新されていない Random Integer Generator ブロックを含むモデルは、R2024a 以降、現行の Random Integer Generator ブロック バージョンに置き換える必要があります。
R2020a: アップグレード アドバイザーでサポートされる Random Integer Generator ブロック更新
R2020a 以降、Random Integer Generator ブロックでアップグレード アドバイザーを使用できます。R2015b で通知されたブロック バージョンに更新することも、R2015b より前に使用可能なブロック バージョンを保持することもできます。
Random Integer Generator ブロックを含む既存のモデルを更新するには、アップグレード アドバイザーを使用します。
乱数発生器の動作が変更されます。統計が改善されます。詳細については、ソース ブロックは連続する時間サンプルのフレームをフレーム属性を使用せずに出力するを参照してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)