最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Gold Sequence Generator

シーケンスのセットからの Gold シーケンスの生成

ライブラリ

Comm Sources の Sequence Generators サブライブラリ

説明

Gold Sequence Generator ブロックは Gold シーケンスを生成します。Gold シーケンスは、高い周期的な相互相関を特徴とする大きなクラスのシーケンスを形成します。

このブロックは、シミュレーション中に長さが変わるシーケンスを出力することができます。可変サイズ信号の詳細は、可変サイズの信号の基礎 (Simulink)を参照してください。

Gold シーケンス

Gold シーケンスは、下記のシーケンスの推奨ペア で定義される "推奨ペア" と呼ばれる、周期が N = 2n- 1 の uv の 1 対のシーケンスを使用して定義されます。Gold シーケンスのセット G(u, v) は次のように定義されます。

G(u,v)={u,v,uv,uTv,uT2v,...,uTN1v}

ここで、T はベクトルを 1 か所ずつ巡回的に左シフトさせる演算子を表し、 は 2 を法とする加算を表します。この G(u,v) については、周期 NN + 2 シーケンスが含まれる点に注意してください。Gold Sequence Generator ブロックは、これらのシーケンスの 1 つを、ブロックのパラメーターに従って出力します。

Gold シーケンスでは、任意の 2 つ (あるいはこれらをシフトしたもの) の間の相互相関プロパティが、次の 3 つの値のいずれかをとります。-t(n)、-1、または t(n) - 2。これらは次の式で定義されます。

t(n)={1+2(n+1)/2n even1+2(n+2)/2n odd

Gold Sequence Generator ブロックは、次の図に示すように、PN Sequence Generator ブロックを使用してシーケンスの推奨ペアを生成した後に、これらシーケンスの XOR 演算をすることで出力シーケンスを生成します。

推奨ペアは、Gold Sequence Generator ブロックのダイアログにある [Preferred polynomial [1]] および [Preferred polynomial [2]] によって指定できます。どちらの多項式も、次数は n でなくてはならず、PN Sequence Generator ブロックの出力に使用されるシフト レジスタを記述します。これらのシーケンス生成の詳細は、PN Sequence Generator ブロックのリファレンス ページを参照してください。推奨多項式は、次の形式で指定できます。

  • 'z^4 + z + 1' のように、数値 1 を含む多項式の文字ベクトル

  • 多項式の係数を降べきの順に並べたベクトル。最初と最後のエントリは 1 でなければなりません。このベクトルの長さは、生成多項式の次数より 1 多くなります。

  • 多項式の非ゼロの項の z の指数を降べきの順に含むベクトル。最後のエントリは 0 でなければなりません。

たとえば、文字ベクトル 'z^5 + z^2 + 1'、ベクトル [5 2 0] およびベクトル [1 0 0 1 0 1] は、多項式 z5 + z2 + 1 を表します。

次の表は、推奨ペアの短いリストを与えます。

nN推奨多項式 [1]推奨多項式 [2]
531[5 2 0] [5 4 3 2 0]
663[6 1 0] [6 5 2 1 0]
7127[7 3 0] [7 3 2 1 0]
9511[9 4 0] [9 6 4 3 0]
101023[10 3 0] [10 8 3 2 0]
112047[11 2 0] [11 8 5 2 0]

[Initial states[1]][Initial states[2]] パラメーターは、それぞれ [Initial states[1]][Initial states[2]] に対応するレジスタの初期値を指定するベクトルです。これらのパラメーターは、次の条件を満たしていなければなりません。

  • [Initial states[1]] および [Initial states[2]]ベクトルのすべての要素は 2 進数でなければなりません。

  • [Initial states[1]]ベクトルの長さは、[Preferred polynomial[1]] の次数と等しく、[Initial states[2]]ベクトルの長さは、[Preferred polynomial[2]] の次数と等しくなければなりません。

    メモ:

    ブロックで非ゼロのシーケンスを生成するためには、[Initial states] ベクトルの要素の少なくとも 1 つは非ゼロでなければなりません。つまり、レジスタの少なくとも 1 つの初期状態が非ゼロでなければなりません。

[Sequence index] パラメーターは、Gold シーケンスのセット G(u, v) のどちらのシーケンスをブロックで生成させるかを指定します。[Sequence index] の範囲は [-2, -1, 0, 1, 2, ..., 2n-2] です。次の表は、[Sequence index] と出力シーケンスの対応関係を示します。

シーケンス インデックス出力シーケンス
-2u
-1v
0

uv

1

uTv

2

uT2v

......
2n-2

uT2n2v

シフトの長さを示す [Shift] パラメーターの整数値を使用すると、Gold シーケンスの開始点をシフトできます。

[Reset on nonzero input] を選択すると、外部信号を使用して内部シフト レジスタの値を初期状態にリセットできます。これにより、Gold Sequence Generator ブロックの外部信号用の入力端子が作成されます。ブロックで内部シフト レジスタをリセットする方法は、その出力信号とリセット信号がサンプルベースかフレームベースかによって異なります。次の例は、可能な代替法を示しています。例は、例: 信号のリセットを参照してください。

シーケンスの推奨ペア

周期を N = 2n-1 とするシーケンス uv のペアが、推奨ペアとなるための要件は以下のとおりです。

  • n は 4 で割り切れない

  • v = u[q] であり、

    • q は奇数

    • q = 2k+1 または q = 22k-2k+1

    • v は u のシンボルを q 個ごとにサンプリングして取得される

  • gcd(n,k)={1n1mod22n2mod4

パラメーター

Preferred polynomial[1]

推奨ペアの最初のシーケンスの多項式を指定する文字ベクトルまたはベクトルです。

Initial states[1]

推奨ペアの最初のシーケンスのシフト レジスタの初期状態を示すベクトルです。

Preferred polynomial[2]

推奨ペアの 2 番目のシーケンスの多項式を指定する文字ベクトルまたはベクトルです。

Initial states[2]

推奨ペアの 2 番目のシーケンスのシフト レジスタの初期状態を示すベクトルです。

Sequence index

タップの初期重み付けをリストするベクトルです。

Shift

初期時刻に対する Gold シーケンスのオフセットを指定する整数スカラー値です。

Output variable-size signals

このチェック ボックスは、シミュレーション中に出力シーケンスの長さを変える場合に選択します。既定の設定では、固定長の信号が出力されます。

Maximum output size source

信号の最大出力サイズをブロックがどのように決めるかを指定します。

  • [Dialog parameter] を選択すると、出力の最大サイズは [Maximum output size] パラメーターの入力値で制限されます。このオプションを選択した場合、oSiz 入力端子は出力信号の現在のサイズを指定し、ブロック出力はサンプル時間を入力端子から継承します。入力値は [Maximum output size] パラメーターの値以下でなければなりません。

  • [Inherit from reference port] を選択するとブロック出力は、サンプル時間、最大サイズおよび現在のサイズを Ref 入力の可変サイズ信号から継承します。

このパラメーターが表示されるのは、[Output variable-size signals] を選択した場合のみです。既定の設定は [Dialog parameter] です。

Maximum output size

ブロックの最大出力サイズを示す 2 要素の行ベクトルを指定します。このベクトルの 2 番目の要素は 1 でなければならず、たとえば [10 1] は 10 行 1 列を最大サイズとする出力信号になります。このパラメーターが表示されるのは、[Output variable-size signals] を選択した場合のみです。

サンプル時間

出力信号の列の各サンプル間の時間。

Samples per frame

出力信号の 1 つのチャネルにおけるフレームあたりのサンプル数。

メモ

出力更新間の時間は、[Samples per frame][Sample time] の積に等しくなります。たとえば、[Sample time][Samples per frame] が 1 の場合には、ブロックは毎秒 1 サンプルを出力します。[Samples per frame] を 10 に増やすと、10 行 1 列のベクトルが 10 秒ごとに出力されます。こうすることで、同等の出力レートが [Samples per frame] パラメーターに依存しなくなります。

Reset on nonzero input

これを選択すると、内部シフト レジスタを [Initial states] パラメーター値の示すオリジナルの状態にリセットする入力信号を指定可能になります。

Output data type

ブロックの出力タイプは、[boolean][double] または [Smallest unsigned integer] を指定できます。既定の設定では、ブロックはこれを double に設定します。

パラメーターを [Smallest unsigned integer] に設定した場合、出力のデータ型は、モデルの [コンフィギュレーション パラメーター] ダイアログ ボックスの [ハードウェア実行] ペイン (Simulink) で使用される設定に基づいて選択されます。[ハードウェア実行] ペインで ASIC/FPGA を選択した場合、出力データ型は理想的な最小 1 ビット サイズ、つまり ufix(1) です。その他の選択肢を選んだ場合は、1 ビットに収まるうちで最小の語長となる符号なし整数とされ、通常は対応する文字のサイズになります (uint8 など)。

参照

[1] Proakis, John G., Digital Communications, Third edition, New York, McGraw Hill, 1995.

[2] Gold, R., "Maximal Recursive Sequences with 3-valued Recursive Cross-Correlation Functions," IEEE Trans. Infor. Theory, Jan., 1968, pp. 154-156.

[3] Gold, R., "Optimal Binary Sequences for Spread Spectrum Multiplexing, IEEE Trans. Infor. Theory, Oct., 1967, pp. 619-621.

[4] Sarwate, D.V., and M.B. Pursley, "Crosscorrelation Properties of Pseudorandom and Related Sequences," Proc. IEEE, Vol. 68, No. 5, May, 1980, pp. 583-619.

[5] Dixon, Robert, Spread Spectrum Systems with Commercial Applications, Third Edition, Wiley–Interscience, 1994.

拡張機能

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

R2006a より前に導入