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

Kasami Sequence Generator

カサミ シーケンスのセットからのカサミ シーケンスの生成

ライブラリ

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

説明

Kasami Sequence Generator ブロックは、カサミ シーケンスのセットから 1 つのシーケンスを生成します。カサミ シーケンスは、良好な相互相関特性をもつ一連のシーケンスです。

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

カサミ シーケンス

カサミ シーケンスには以下の 2 種類のセット、"スモール セット" および "ラージ セット" があります。ラージ セットには、スモール セットに属すすべてのシーケンスが含まれます。相関関数に対する Welch の下限のマッチングにおいては、スモール セットのみが最適となります。

カサミ シーケンスの周期は、n を非負の偶数の整数として、N = 2n - 1 になります。u を長さ N の 2 進シーケンスとし、w を u を 2n/2 +1 で間引きして得られるシーケンスとします。カサミ シーケンスのスモール セットは次の式で定義されます。ここで、T は左シフト演算子、mw のシフト パラメーター、 は 2 を法とする加算を意味します。

n を偶数としたカサミ シーケンスのスモール セット

Ks(u,n,m)={um=1uTmwm=0,...,2n/22

スモール セットには 2n/2 のシーケンスが含まれる点に注意してください。

カサミ シーケンスのラージ セットは、mod(n, 4) = 2 という条件下で、次のように定義されます。vu を 2n/2 + 1+ 1 で間引きして得られるシーケンスとします。km をそれぞれシーケンス vw のシフト演算子として、ラージ セットは次の表で定義されます。

mod(n, 4) = 2 としたカサミ シーケンスのラージ セット

KL(u,n,k,m)={uk=2; m=1vk=1; m=1uTkvk=0,...,2n2; m=1uTmwk=2; m=0,...,2n/22vTmwk=1; m=0,...,2n/22uTkvTmwk=0,...,2n2; m=0,...,2n/22

この図の最初の 3 行に記載されたシーケンスは、mod(n, 4) = 2 に対する Gold シーケンスに相当します。Gold シーケンスの詳細については、Gold Sequence Generator ブロックのリファレンス ページを参照してください。ただし、カサミ シーケンスは Gold シーケンスよりも大きなセットとなります。

シーケンスの相関関数は次の変数を取ります。

{-t(n), -s(n), -1, s(n) -2 , t(n) - 2}

ここで、

t(n)=1+2(n+2)/2n evens(n)=12(t(n)+1)

ブロック パラメーター

[Generator polynomial] パラメーターは、シーケンス u を生成するシフト レジスタでの接続を決定する生成多項式を指定します。[Generator Polynomial] パラメーターは、次の形式で指定できます。

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

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

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

たとえば、'z^8 + z^2 + 1'[1 0 0 0 0 0 1 0 1] および [8 2 0] は同じ多項式 p(z) = z8+z2+1 を表します。

[Initial states] パラメーターは、シーケンス u を生成するシフト レジスタの初期状態を指定します。[Initial States] は、バイナリ スカラーまたは [Generator polynomial] の次数に等しい長さの行ベクトルです。バイナリ スカラーを選択した場合、ブロックは [Generator polynomial] の次数に等しい長さの行ベクトルに適合するようスカラーを拡張し、そのエントリはすべてスカラー値に等しくされます。

[Sequence index] パラメーターは、出力シーケンス生成に用いるシーケンス vw のシフトを指定します。このパラメーターは次の 2 つの方法のいずれかで指定できます。

  • スモール セットからのシーケンスを生成するには、n を偶数として、[Sequence index] に整数値 m を指定します。この m の範囲は [-1, ..., 2n/2 - 2] です。[Sequence index] m に対応した出力シーケンスを、次の表で説明します。

    シーケンス インデックスインデックスの範囲出力シーケンス
    -1 m = -1u
    m m = 0, ..., 2n/2 - 2

    uTmw

  • ラージ セットからシーケンスを生成するには、mod (n, 4) = 2 の成立する n[Generator polynomial] の次数として、[Sequence index] にベクトル [k m] を指定します。この場合、出力シーケンスは、ラージ セットから生成されます。この k の範囲は [-2, ..., 2n - 2] で、m の範囲は [-1, ..., 2n/2 - 2] です。[Sequence index] [k m] に対応した出力シーケンスを、次の表で説明します。

    シーケンス インデックス [k m]インデックスの範囲出力シーケンス
    [-2 -1] k = -2、m = -1u
    [-1 -1] k = -1, m = -1v
    [k -1]

    k = 0, 1, ..., 2n - 2

    m = -1

    uTkv

    [-2 m]

    k = -2

    m = 0, 1, ..., 2n/2 - 2

    uTmw

    [-1 m]

    k = -1

    m = 0, ..., 2n/2 - 2

    vTmw

    [k m]

    k = 0, ..., 2n - 2

    m = 0, ..., 2n/2 - 2

    uTkvTmw

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

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

カサミ シーケンスの生成

次の表は、カサミ シーケンスのセットの生成に利用できる多項式の一部をリストしています。

nN多項式次のように設定します。
415[4 1 0]スモール
663[6 1 0]ラージ
8255[8 4 3 2 0]スモール
101023[10 3 0]ラージ
124095[12 6 4 1 0]スモール

パラメーター

生成多項式

シーケンス u の生成多項式を指定する文字ベクトルまたはバイナリ ベクトルです。

初期状態

シーケンス u を生成するシフト レジスタの初期状態を指定する、バイナリ スカラーまたは [Generator polynomial] の次数に等しい長さの行ベクトルです。

Sequence index

出力シーケンス生成に用いるシーケンス vw のシフトを指定する、整数またはベクトルです。

Shift

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

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

これを選択すると、内部シフト レジスタを [初期状態] の値が示す元の状態にリセットする入力信号を指定可能になります。

Output data type

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

2 ユーザー、マルチパスのカサミ拡散

このモデルでは、マルチパス環境における 2 ユーザー結合伝送のカサミ拡散を検討します。

こちらのモデル kasami_sequence_block_example を開きます。

modelname = 'kasami_sequence_block_example';
open_system(modelname);
sim(modelname);

結合ゲインのある複数パスで、ユーザーが非常によく分離されていることがわかります。これは、カサミ シーケンスの "良好な" 相関特性によって、直交コードの理想的な相互相関特性と PN シーケンスの理想的な自己相関特性のバランスが維持されるためです。Hadamard Code Generator および PN Sequence Generator のリファレンス ページの関連する例を参照してください。

このモデルを使用して詳細な確認を行うには、別のパス遅延を選択して、同じ符号に対してパフォーマンスの変化を調べます。また、同じ遅延で別の符号を試します。

close_system(modelname, 0);

参考文献

[1] Peterson and Weldon, Error Correcting Codes, 2nd Ed., MIT Press, Cambridge, MA, 1972.

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

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

ブロック

拡張機能

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

R2006a より前に導入