Gold Sequence Generator
シーケンスのセットからの Gold シーケンスの生成
ライブラリ:
Communications Toolbox /
Comm Sources /
Sequence Generators
説明
Gold Sequence Generator ブロックは、シーケンスの有界集合から小さい周期的な相互相関特性をもつバイナリ シーケンスを生成します。詳細については、Gold シーケンスを参照してください。
このブロックは、シミュレーション中に長さが変わるシーケンスを出力することができます。可変サイズ信号の詳細については、可変サイズの信号の基礎 (Simulink)を参照してください。
これらのアイコンには、利用可能なすべての端子を使用したブロックが表示されています。
例
端子
入力
oSiz — 現在の出力サイズ
スカラー | 2 要素の行ベクトル
現在の出力サイズ。スカラーまたは 2 要素の行ベクトルとして指定します。ベクトルの 2 番目の要素は 1
でなければなりません。
例: [10 1]
は、現在の出力列ベクトルのサイズが 10 行 1 列になることを示します。
依存関係
この端子を有効にするには、[Output variable-size signals] パラメーターを選択し、[Maximum output size source] を [Dialog parameter]
に設定します。
データ型: double
Ref — 基準入力信号
スカラー | 列ベクトル
基準入力信号。スカラー、列ベクトルとして指定します。
依存関係
この端子を有効にするには、[Output variable-size signals] パラメーターを選択し、[Maximum output size source] を [Inherit from reference input]
に設定します。
データ型: double
Rst — リセット信号
スカラー | 列ベクトル
リセット信号。次のいずれかの形式で指定します。
出力サイズが変数の場合、スカラーとして指定します。
そうでない場合は、[Samples per frame] と等しい長さをもつスカラーまたは 2 次元の列ベクトルとして指定します。
出力信号は非ゼロの [Rst] 入力値にリセットされます。詳細については、リセット動作を参照してください。
依存関係
この端子を有効にするには、[Reset on nonzero input] パラメーターを選択します。
データ型: double
出力
Out — 出力信号
バイナリ列ベクトル
出力信号。バイナリ列ベクトルとして返されます。ブロックで非ゼロのシーケンスを生成するためには、[Initial states (1)] または [Initial states (2)] ベクトルの要素の少なくとも 1 つは非ゼロでなければなりません。
データ型: double
パラメーター
Preferred polynomial (1) — 最初のシーケンス多項式
'z^6 + z + 1'
(既定値) | 多項式の文字ベクトル | バイナリ行ベクトル | 整数行ベクトル
最初のシーケンス多項式。次のいずれかの形式で指定します。
定数項が
1
の多項式の文字ベクトルまたは string スカラー。詳細については、Communications Toolbox での多項式の表現を参照してください。バイナリ値行ベクトル。降べきの順に並べた多項式の係数を表します。このベクトルの長さは N+1 でなければなりません。ここで N は多項式の次数です。最初と最後のエントリは
1
でなければなりません。これは、次数 N の最初の項と、定数項 1 を示します。整数値の行ベクトル。降べきの順に並べた多項式の非ゼロの項の指数を表す要素からなります。最後のエントリは
0
でなければなりません。これは定数項 1 を示します。
このプロパティが、最初に優先される PN シーケンス発生器のシフト レジスタに対するフィードバック接続を決定します。1 番目の生成多項式の次数は、[Preferred polynomial (2)] パラメーターに指定した 2 番目の生成多項式の次数と等しくなければなりません。詳細については、シーケンスの推奨ペアを参照してください。
例: 'z^8 + z^2 + 1'
、[1 0 0 0 0 0 1 0 1]
、および [8 2 0]
は同一の多項式 p(z) = z8 + z2 + 1 を表します。
Initial states (1) — 最初のシーケンス多項式の初期状態
[0 0 0 0 0 1]
(既定値) | バイナリ ベクトル
推奨ペアの最初のシーケンス多項式におけるシフト レジスタの初期状態。[Preferred polynomial (1)] の次数と同じ長さのバイナリ ベクトルとして指定します。
メモ
ブロックで非ゼロのシーケンスを生成するためには、最初または 2 番目に優先される PN シーケンス発生器の初期条件の要素の少なくとも 1 つは非ゼロでなければなりません。具体的には、シフト レジスタの少なくとも 1 つの初期状態が非ゼロでなければなりません。
Preferred polynomial (2) — 2 番目のシーケンス多項式
'z^6 + z^5 + z^2 + z + 1'
(既定値) | 多項式の文字ベクトル | バイナリ行ベクトル | 整数行ベクトル
2 番目のシーケンス多項式。次のいずれかの形式で指定します。
定数項が
1
の多項式の文字ベクトルまたは string スカラー。詳細については、Communications Toolbox での多項式の表現を参照してください。バイナリ値行ベクトル。降べきの順に並べた多項式の係数を表します。このベクトルの長さは N+1 でなければなりません。ここで N は多項式の次数です。最初と最後のエントリは
1
でなければなりません。これは、次数 N の最初の項と、定数項 1 を示します。整数値の行ベクトル。降べきの順に並べた多項式の非ゼロの項の指数を表す要素からなります。最後のエントリは
0
でなければなりません。これは定数項 1 を示します。
このプロパティが、最初に優先される PN シーケンス発生器のシフト レジスタに対するフィードバック接続を決定します。2 番目の生成多項式の次数は、[Preferred polynomial (1)] パラメーターに指定した 1 番目の生成多項式の次数と等しくなければなりません。詳細については、シーケンスの推奨ペアを参照してください。
例: 'z^8 + z^2 + 1'
、[1 0 0 0 0 0 1 0 1]
、および [8 2 0]
は同一の多項式 p(z) = z8 + z2 + 1 を表します。
Initial states (2) — 2 番目のシーケンス多項式の初期状態
[0 0 0 0 0 1]
(既定値) | バイナリ ベクトル
推奨ペアの 2 番目のシーケンス多項式におけるシフト レジスタの初期状態。[Preferred polynomial (2)] の次数と同じ長さのバイナリ ベクトルとして指定します。
メモ
ブロックで非ゼロのシーケンスを生成するためには、最初または 2 番目に優先される PN シーケンス発生器の初期条件の要素の少なくとも 1 つは非ゼロでなければなりません。具体的には、シフト レジスタの少なくとも 1 つの初期状態が非ゼロでなければなりません。
Sequence index — シーケンス インデックス
0
(既定値) | 範囲 [–2, 2n–2] の整数スカラー
一連のシーケンスからの出力シーケンスのシーケンス インデックス。範囲 [–2, 2n–2] の整数スカラーとして指定します。n は推奨多項式の次数です。詳細については、Gold シーケンスを参照してください。
Shift — Gold シーケンスのオフセット
0
(既定値) | 整数スカラー
初期時間からの Gold シーケンスのオフセット。整数スカラーとして指定します。
Output variable-size signals — 可変長信号を出力するオプション
off
(既定値) | on
シミュレーション中に可変長の出力シーケンスを有効にするには、このパラメーターを選択します。このパラメーターをオフにすると、ブロックは固定長のシーケンスを出力します。このパラメーターを選択すると、ブロックは可変長のシーケンスを出力できます。可変サイズ信号の詳細については、可変サイズの信号の基礎 (Simulink)を参照してください。
Maximum output size source — Maximum output size source
Dialog parameter
(既定値) | Inherit from reference port
最大のシーケンス出力サイズの指定方法を選択します。
[Dialog parameter]
— [Maximum output size] パラメーター設定を最大許容出力シーケンス長として使用するブロックを構成するには、この値を選択します。[oSiz] 入力端子は出力信号の現在のサイズを指定し、ブロック出力はサンプル時間を入力信号から継承します。[oSiz] の入力値は [Maximum output size] パラメーターの値以下でなければなりません。[Inherit from reference port]
— [Ref] 入力端子を有効にし、[Ref] 入力端子の可変サイズ信号からサンプル時間、最大サイズ、および現在の出力サイズを継承するブロックを構成するには、この値を選択します。これらにより最大許容出力シーケンス長が設定されます。
依存関係
このパラメーターを有効にするには、[Output variable-size signals] を選択します。
Maximum output size — Maximum output size
[10 1]
(既定値) | [n 1] 形式のベクトル
ブロックの最大出力サイズを指定します。n は正のスカラーです。
例: [10 1]
の場合は、出力信号の最大サイズが 10 行 1 列として指定されます。
依存関係
このパラメーターを有効にするには、[可変サイズの信号の出力] を選択し、[最大出力サイズ ソース] を [ダイアログ パラメーター]
に設定します。
サンプル時間 — 出力サンプル時間
1
(既定値)
正のスカラーは、出力信号の各サンプル間の時間を秒単位で指定します。[サンプル時間] を -1
に設定すると、出力信号は下流からサンプル時間を継承します。[サンプル時間] パラメーターと [フレームあたりのサンプル数] パラメーターの関係の詳細については、サンプル タイミングを参照してください。
依存関係
このパラメーターを有効にする場合は、[可変サイズの信号の出力] を選択しないでください。
フレームあたりのサンプル数 — フレームあたりのサンプル数
1
(既定値) | 正の整数
フレームあたりのサンプル数。出力データの 1 つのチャネルでフレームあたりのサンプル数を示す正の整数として指定します。[サンプル時間] と [フレームあたりのサンプル数] の関係の詳細については、サンプル タイミングを参照してください。
依存関係
このパラメーターを有効にする場合は、[Output variable-size signals] を選択しないでください。
Reset on nonzero input — 出力信号のリセット
off
(既定値) | on
[Rst] 端子を有効にするには、このパラメーターを選択します。非ゼロ値が [Rst] 端子に入力されると、内部シフト レジスタが [Initial states (1)] と [Initial states (2)] パラメーターの元の値にリセットされます。
出力データ型 — 出力データ型
double
(既定値) | boolean
| Smallest unsigned integer
出力データ型。[boolean]
、[double]
、または [Smallest unsigned integer]
として指定します。
[Smallest unsigned integer]
に設定した場合、出力のデータ型は、モデルの [コンフィギュレーション パラメーター] ダイアログ ボックスの[ハードウェア実行] ペイン (Simulink)で使用される設定に基づいて選択されます。[ハードウェア実行] ペインで ASIC/FPGA を選択した場合、出力データ型は理想的な最小 1 ビット サイズ (ufix(1)) です。その他の選択肢を選んだ場合は、1 ビットに収まるうちで最小の語長となる符号なし整数とされ、通常は対応する文字のサイズとなります (uint8)。
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
詳細
サンプル タイミング
出力更新間の時間は、[Samples per frame] と [Sample time] パラメーター値の積に等しくなります。たとえば、[サンプル時間] と [フレームあたりのサンプル数] のそれぞれが 1
に等しい場合、ブロックは毎秒 1 サンプルを出力します。[Samples per frame] を 10 に増やすと、ブロックは 10 秒ごとに 10 行 1 列のベクトルを出力します。このタイミングにより、同等の出力レートが [フレームあたりのサンプル数] パラメーターに依存しないことが確実になります。
Gold シーケンス
Gold シーケンスの特徴的な相互相関特性は、複数のデバイスを同じ周波数範囲でブロードキャストする場合に役立ちます。Gold シーケンスは、シーケンスの推奨ペアで定義された推奨ペアと呼ばれる u と v の指定された 1 対のシーケンスを使用して定義されます。シーケンスの u と v のペアは、周期が N = 2n – 1 です。ここで n は、パラメーターで指定した生成多項式の次数です。Gold シーケンスのセット G(u, v) は次により定義されます。
T はベクトルを 1 か所ずつ巡回的に左シフトさせる演算子を表し、 は、2 を法とする加算を表します。G(u,v) には、周期が N である N + 2 のシーケンスが含まれます。
Gold シーケンスには、任意の 2 つ (あるいはこれらをシフトしたもの) の間の相互相関が、t(n)、-1、または t(n) - 2 という 3 つの値のいずれかをとる特性があり、これらは次の式で定義されます。
このブロックは 2 つの PN シーケンス発生器を使用して、シーケンスの推奨ペアを生成します。次に、ブロックでこれらのシーケンスの XOR 演算を実行し、次の図に示すように、Gold シーケンス出力を生成します。
[Preferred polynomial (1)] パラメーターおよび [Preferred polynomial (2)] パラメーターにより、シーケンスの推奨ペア、および PN シーケンス発生器が出力の生成に使用するシフト レジスタのフィードバック接続が決定します。PN シーケンス生成の詳細については、PN Sequence Generator ブロック リファレンス ページの単純なシフト レジスタ発生器の節を参照してください。
次の表は、推奨ペアの例を示します。
生成多項式の次数 (n) | シーケンスのペアの周期 (N) | [Preferred polynomial (1)] パラメーター値 | [Preferred polynomial (2)] パラメーター値 |
---|---|---|---|
5 | 31 | [5 2 0] | [5 4 3 2 0] |
6 | 63 | [6 1 0] | [6 5 2 1 0] |
7 | 127 | [7 3 0] | [7 3 2 1 0] |
9 | 511 | [9 4 0] | [9 6 4 3 0] |
10 | 1023 | [10 3 0] | [10 8 3 2 0] |
11 | 2047 | [11 2 0] | [11 8 5 2 0] |
[Initial states (1)] と [Initial states (2)] パラメーターは、それぞれ [Preferred polynomial (1)] と [Preferred polynomial (2)] に対応するレジスタの初期値を指定するベクトルです。
メモ
ブロックで非ゼロのシーケンスを生成するためには、初期状態のベクトル ([Initial states (1)] または [Initial states (2)]) の要素の少なくとも 1 つは非ゼロでなければなりません。具体的には、レジスタの少なくとも 1 つの初期状態が非ゼロでなければなりません。
シフトの長さを示す [Shift] パラメーターの整数値を使用すると、Gold シーケンスの開始点をシフトできます。
[Reset on nonzero input] を選択すると、外部信号を使用して内部シフト レジスタの値を初期状態にリセットできます。これにより、ブロックには外部信号用の入力端子が作成されます。ブロックで内部シフト レジスタをリセットする方法は、その出力信号とリセット信号がスカラーかベクトルかによって異なります。詳細については、リセット動作を参照してください。
シーケンスの推奨ペア
シーケンスの推奨ペア u および v は、Gold シーケンスのセット G(u, v) で構成されます。
周期が N = 2n–1 であるシーケンスのペア u と v が推奨ペアとなるには、以下の要件を満たす必要があります。
n は [Preferred Polynomial (1)] と [Preferred Polynomial (2)] パラメーターで指定された生成多項式の次数。
n が
4
で割り切れない。v = u[q] であり、以下が成り立つ
q は奇数。
q = 2k+1 または q = 22k–2k+1。
v は u のシンボルを q 個ごとにサンプリングして取得される。
シーケンス インデックス
[Sequence index] パラメーターはセット G(u, v) で出力される Gold シーケンスを指定します。[Sequence index] の範囲は [–2, –1, 0, 1, 2, ..., 2n–2] です。ここで、n は [Preferred Polynomial (1)] と [Preferred Polynomial (2)] パラメーターで指定された生成多項式の次数を表します。次の表は、[Sequence index] と出力シーケンスの対応関係を示しています。
[Sequence index] パラメーターで指定されるシーケンス インデックスは、セット G(u, v) で出力される Gold シーケンスを指定します。
使用できる Gold シーケンスは次のセットです。
u および v は 2 つの推奨される PN シーケンスであり、T はベクトルを 1 か所ずつ巡回的に左シフトさせる演算子を表し、 は、2 を法とする加算を表します。G(u,v) には、周期 N = 2n–1 の N+2 の Gold シーケンスが含まれます。
[Sequence index] の範囲は [–2, 2n–2] です。ここで、n は [Preferred polynomial (1)] と [Preferred Polynomial (2)] パラメーターで指定された生成多項式の次数を表します。インデックス値 -2
および -1
は、それぞれ [Preferred polynomial (1)] と [Preferred polynomial (2)] によって生成された、1 番目と 2 番目に優先される PN シーケンスに対応しています。次の表は、シーケンス インデックスと出力シーケンスの対応関係を示しています。
シーケンス インデックス | 出力シーケンス |
---|---|
–2 | u |
–1 | v |
0 | |
1 | |
2 | |
... | ... |
2 n –2 | |
リセット動作
発生器シーケンスをリセットするにはまず、[Reset on nonzero input] パラメーターを選択して [Rst] 入力端子を有効にする必要があります。リセットがない場合に Gold Sequence Generator ブロックが [1 0 0 1 1 0 1 1]
を出力すると想定します。次の表は、指定されたパラメーター値に対する Gold Sequence Generator ブロック出力に与える影響を示しています。
リセット信号 | リセット信号の設定 | Gold Sequence Generator ブロック | リセット信号と出力信号 |
---|---|---|---|
リセットがない |
|
| |
スカラーのリセット信号 |
|
| |
ベクトルのリセット信号 |
|
|
リセットがない場合、ブロックはシーケンスをリセットせずに出力します。スカラーとベクトルのリセット信号の場合、ブロックはリセット信号 [0 0 0 1 0 0 0 0]
を [Rst] 端子への入力とします。リセット信号の 4 番目のビットが 1
で、[Sample time] が 1
であるため、ブロックはシーケンス出力を 4 番目のビットでリセットします。
可変サイズの出力の場合、ブロックはスカラーのリセット信号入力のみをサポートします。
Gold シーケンス発生器のリセット動作の例は、Simulink® モデルにおけるリセット動作を示します。
参照
[1] Proakis, John G. Digital Communications. 5th ed. New York: McGraw Hill, 2007.
[2] Gold, R. “Maximal Recursive Sequences with 3-Valued Recursive Cross-Correlation Functions (Corresp.).” IEEE Transactions on Information Theory 14, no. 1 (January 1968): 154–56. https://doi.org/10.1109/TIT.1968.1054106.
[3] Gold, R. “Optimal Binary Sequences for Spread Spectrum Multiplexing (Corresp.).” IEEE Transactions on Information Theory 13, no. 4 (October 1967): 619–21. https://doi.org/10.1109/TIT.1967.1054048.
[4] Sarwate, D.V., and M.B. Pursley. “Crosscorrelation Properties of Pseudorandom and Related Sequences.” Proceedings of the IEEE 68, no. 5 (1980): 593–619. https://doi.org/10.1109/PROC.1980.11697.
[5] Dixon, Robert C. Spread Spectrum Systems: With Commercial Applications. 3rd ed. New York: Wiley, 1994.
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入R2020a: 自動的にこのブロックを現在のバージョンに更新する既存モデル
R2020a 以降、Simulink では R2015b より前で利用可能だったバージョンの Gold Sequence Generator ブロックは使用できなくなりました。
既存のモデルは、現在の Gold Sequence Generator ブロック バージョンを読み込むように自動的に更新されます。ブロック転送の詳細については、転送テーブルを使用したライブラリ ブロックの互換性の維持 (Simulink)を参照してください。
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)