Main Content

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

comm.KasamiSequence

カサミ シーケンスの生成

説明

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

カサミ シーケンスを生成するには、以下の手順に従います。

  1. カサミ シーケンス オブジェクトを定義および設定します。構築を参照してください。

  2. step を呼び出して、comm.KasamiSequence のプロパティに従い、カサミ シーケンスを生成します。step の動作は、ツールボックスの各オブジェクト固有のものです。

メモ

R2016b 以降では、step メソッドを使用して、System object™ によって定義された演算を実行する代わりに、引数を関数であるかのように使ってオブジェクトを呼び出すことができます。たとえば、y= step(obj)y = obj() は同等の演算を実行します。

構築

H = comm.KasamiSequence は、カサミ シーケンス System object H を作成します。このオブジェクトは、カサミ シーケンスを生成します。

H = comm.KasamiSequence(Name,Value) は、指定された各プロパティを指定値に設定して、カサミ シーケンス発生器オブジェクト H を作成します。(Name1,Value1,...,NameN,ValueN) のように、追加の名前と値のペアの引数を任意の順番で指定できます。

プロパティ

Polynomial

生成多項式

シフト レジスタのフィードバック接続を決定する多項式を指定します。既定の設定は 'z^6 + z + 1' です。

生成多項式を、文字ベクトルまたは多項式の係数を降べきの順に並べたバイナリの数値ベクトルとして指定できます。最初と最後の要素は 1 にならなければなりません。このベクトルの長さを n+1 に指定します。ここで n は生成多項式の次数で、この値は偶数でなければなりません。

最後に、生成多項式を、降べき順の多項式の非ゼロ項の z の指数を含むベクトルとして指定できます。最後のエントリは 0 でなければなりません。たとえば、[1 0 0 0 0 0 1 0 1][82 0] は同一の多項式 g(z)=z8+z2+1 を表します。

InitialConditions

シフト レジスタの初期条件

シフト レジスタの初期値をバイナリ、数値スカラーまたはバイナリ、数値ベクトルとして指定します。既定の設定は [00 0 0 0 1] です。ベクトルの長さを生成多項式の次数に等しく設定します。

このプロパティをベクトル値に設定した場合、ベクトルの各要素がシフト レジスタで対応するセルの初期値に対応します。

このプロパティをスカラー値に設定した場合、この値がシフト レジスタのすべてのセルの初期値となります。非ゼロのシーケンスを生成するためには、スカラーまたは指定されたベクトルの要素の少なくとも 1 つは非ゼロ値でなければなりません。

Index

Sequence index

インデックスを指定して、シーケンスの候補のセットから目的のカサミ シーケンスを選択します。既定の設定は 0 です。カサミ シーケンスの周期は、N = 2n –1 です。ここで n は、Polynomial プロパティに指定された生成多項式の次数に等しい、非負の偶数の整数です。

カサミ シーケンスには 2 つのクラスがあります。スモール セットから取得されたシーケンスと、ラージ セットから取得されたシーケンスです。スモール セットからカサミ シーケンスを選択するには、このプロパティを [0...2n/2–2] の範囲にある数値のスカラー整数値に設定します。ラージ セットからカサミ シーケンスを選択するには、このプロパティを数値 1×2 整数ベクトル [k m] (ここで k は [–2,..., 2n–2] の範囲内で、m は [–1,..., 2n/2–2] の範囲内) に設定します。

Shift

初期時間からのシーケンスのオフセット

カサミ シーケンスの開始点からのオフセットを、数値の整数スカラー値で指定します。この値は正または負にできます。既定の設定は 0 です。カサミ シーケンスの周期は N = 2n-1 です。ここで n は、Polynomial プロパティで指定した生成多項式の次数です。シフト値はシーケンス周期に対してラップされます。

VariableSizeOutput

可変サイズの出力を有効にする

このプロパティを true に設定して、step メソッドに対する追加の入力を有効にします。既定値は偽です。このプロパティを true に設定した場合、有効にされた入力で step メソッドに使用されるカサミ シーケンスの出力サイズを指定します。入力値は、MaximumOutputSize プロパティの値以下でなければなりません。

このプロパティを false に設定すると、SamplesPerFrame プロパティで出力サンプルの数が指定されます。

MaximumOutputSize

Maximum output size

カサミ シーケンスの最大出力サイズを、正の整数の 2 要素行ベクトルとして指定します。ベクトルの 2 番目の要素は 1 でなければなりません。既定値は [10 1] です。

このプロパティは、VariableSizeOutput プロパティを true に設定した場合に適用されます。

SamplesPerFrame

フレームごとの出力サンプル数

step メソッドで数値、正の整数のスカラー値として出力されるカサミ シーケンスのサンプルの数を指定します。既定値は 1 です。

このプロパティを値 M に設定した場合、step メソッドは、周期 N = 2n–1 のカサミ シーケンスの M サンプルを出力します。n は、Polynomial プロパティに指定された生成多項式の次数と等しい値です。

ResetInputPort

発生器リセット入力を有効にする

このプロパティを true に設定して、step メソッドに対する追加の入力を有効にします。既定の設定は false です。追加の入力は、カサミ シーケンス発生器の状態を、InitialConditions プロパティに指定された初期条件にリセットします。

OutputDataType

出力のデータ型

出力データ型を double または logical のいずれかとして指定します。既定の設定は double です。

メソッド

resetカサミ シーケンス発生器オブジェクトの状態のリセット
stepカサミ シーケンスの生成
すべての System object に共通
release

System object のプロパティ値の変更の許可

すべて折りたたむ

カサミ シーケンス System object を使用し、長さ 255 のカサミ シーケンスによって BPSK データを拡散します。

バイナリ データを生成し、BPSK 変調を適用します。

data = randi([0 1],10,1);
modData = pskmod(data,2);

生成多項式 x8+x7+x4+1 を使用して、長さ 255 のカサミ シーケンス オブジェクトを作成します。

kasamiSequence = comm.KasamiSequence('Polynomial',[8 7 4 0], ...
    'InitialConditions',[0 0 0 0 0 0 0 1],'SamplesPerFrame',255);

カサミ シーケンスを生成してバイポーラ形式に変換します。

kasSeq = kasamiSequence();
kasSeq = 2*kasSeq - 1;

1/255 のゲインを適用し、拡散処理によって全体的な信号強度が上がらないようにします。

kasSeq = kasSeq/sqrt(255);

カサミ シーケンスを使用して BPSK データを拡散します。

spreadData = modData*kasSeq';
spreadData = spreadData(:);

拡散されたデータ シーケンスの長さが、入力データ シーケンスの 255 倍であることを確認します。

spreadingFactor = length(spreadData)/length(data)
spreadingFactor = 255

拡散処理によって信号強度が上がっていないことを確認します。

spreadSigPwr = sum(abs(spreadData).^2)/length(data)
spreadSigPwr = 1.0000

オブジェクトの最初の解放後に、カサミ シーケンス発生器の生成多項式を x8+x3+1 に変更します。多項式の文字表現を使用します。

release(kasamiSequence)
kasamiSequence.Polynomial = 'x^8 + x^3 + 1';

新しいシーケンスを生成してバイポーラ形式に変換します。

kasSeq = kasamiSequence();
kasSeq = 2*kasSeq - 1;

アルゴリズム

このオブジェクトは、Kasami Sequence Generator ブロックのリファレンス ページで説明されているアルゴリズム、入力、および出力を実装しています。オブジェクト プロパティはブロック パラメーターに対応しますが、以下の場合を除きます。

  • このオブジェクトには、フレーム ベースの出力を選択するプロパティはありません。

  • このオブジェクトには、[Sample time] パラメーターに対応するプロパティはありません。

拡張機能