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

comm.PNSequence

疑似ノイズ (PN) シーケンスの生成

説明

PNSequence オブジェクトは、線形フィードバック シフト レジスタ (LFSR) を使って一連の 2 値疑似乱数を生成します。このブロックは、単純なシフト レジスタ発生器 (SSRG または Fibonacci) 設定を使用して LFSR を実装します。疑似乱数スクランブラーおよびデスクランブラーで疑似ノイズ シーケンスを使用できます。また、直接シーケンス拡散スペクトル システムでも疑似ノイズ シーケンスを使用できます。

PN シーケンスは次により生成します。

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

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

メモ

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

構築

H = comm.PNSequence は、疑似ノイズ (PN) シーケンス発生器 System object H を作成します。このオブジェクトは、線形フィードバック シフト レジスタ (LFSR) を使って一連の 2 値疑似乱数を生成します。

H = comm.PNSequence(Name,Value) は指定されたそれぞれのプロパティ セットを指定された値に設定して、PN シーケンス発生器オブジェクト 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][8 2 0] は同一の多項式 g(z)=z8+z2+1 を表します。PN シーケンスの周期は N=2n1 です (最大長シーケンスのみに適用)。

InitialConditionsSource

初期条件のソース

PN シーケンスの先頭を決める初期条件のソースを Property または Input port で指定します。既定の設定は Property です。このプロパティを Property に設定すると、InitialConditions プロパティを使用して、初期条件をスカラーまたはバイナリ ベクトルとして指定できます。このプロパティを Input port に設定する場合は、初期条件を step メソッドの入力として指定します。このオブジェクトはバイナリ スカラーまたはバイナリ ベクトルの入力を受け入れます。入力の長さは、Polynomial プロパティで指定される生成多項式の次数に等しくなければなりません。

InitialConditions

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

シフト レジスタの初期値をバイナリ、数値スカラーまたはバイナリ、数値ベクトルとして指定します。既定の設定は [0 0 0 0 0 1] です。ベクトルの長さを生成多項式の次数に等しく設定します。このプロパティをベクトルに設定した場合、ベクトルの各要素がシフト レジスタで対応するセルの初期値に対応します。このプロパティをスカラーに設定した場合、シフト レジスタのすべてのセルの初期条件は指定されたスカラー値です。非ゼロのシーケンスを生成するためには、スカラーまたは指定されたベクトルの要素の少なくとも 1 つは非ゼロでなければなりません。

MaskSource

PN シーケンスをシフトするマスクのソース

PN シーケンスのシフトを決めるマスクのソースを Property または Input port の 1 つとして指定します。既定の設定は Property です。このプロパティを Property に設定すると、Mask プロパティを使用して、マスクをスカラーまたはバイナリ ベクトルとして指定できます。このプロパティを Input port に設定すると、step メソッドへの入力となるマスクをバイナリ ベクトルとしてのみ指定できます。このベクトルは、Polynomial プロパティで指定された生成多項式の次数に等しい長さでなければなりません。

Mask

PN シーケンスをシフトするマスク

PN シーケンスを開始点からどれだけシフトするかを決めるマスクを、数値、整数スカラーまたはバイナリ ベクトルとして指定します。既定の設定は 0 です。

このプロパティを整数スカラーに設定すると、値はシフトの長さになります。スカラー シフトは正または負です。PN シーケンスの周期が N=2n1 で、n が Polynomial プロパティで指定する生成多項式の次数である場合、オブジェクトは負または N より大きいシフト値をラップします。

このプロパティをバイナリ ベクトルに設定すると、長さは Polynomial プロパティで指定された生成多項式の次数に等しくなければなりません。m(z)=zD modulo g(z) を表すマスク ベクトルで、g(z) は生成多項式となり、このマスク ベクトルは D のシフトに対応します。たとえば、次数が 4 の生成多項式の場合、D = 2 に対応するマスク ベクトルは [0 1 0 0] で、これは多項式 m(z)=z2 を表します。

関数 shift2mask を使用すると、マスク ベクトルを計算できます。このプロパティは、MaskSource プロパティを Property に設定した場合に適用されます。

VariableSizeOutput

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

このプロパティを true に設定すると、step メソッドへの追加入力が可能になります。既定値は偽です。このプロパティを true に設定すると、有効になった入力により step に使用される PN シーケンスの出力サイズが指定されます。入力値は、MaximumOutputSize プロパティの値以下でなければなりません。

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

MaximumOutputSize

Maximum output size

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

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

SamplesPerFrame

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

PN シーケンス オブジェクトによるフレームごとのサンプル出力数。正の整数で指定します。既定の設定は 1 です。このプロパティを M の値に設定した場合、オブジェクトは周期が N=2n1 の PN シーケンスの M サンプルを出力します。値 n は Polynomial プロパティで指定する生成多項式の次数を表します。BitPackedOutput プロパティを false に設定した場合、サンプルは PN シーケンスからのビットになります。BitPackedOutput プロパティを true に設定した場合、出力はビットパックされたサンプルの SamplesPerFrame グループに対応します。

ResetInputPort

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

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

BitPackedOutput

ビットパックされたワードを出力するためのオプション

ビットパックされたワードを出力するためのオプション。false または true で指定します。ビットパックされた出力を有効にするには、このプロパティを true に設定します。ビットパックされたワードの左から 1 番目のビットは最上位ビットと見なされます。既定の設定は false です。

BitPackedOutputtrue の場合、オブジェクトは長さ M の列ベクトルを出力します。これには、長さ P のビット ワードの整数表現が含まれます。M は SamplesPerFrame プロパティで指定されたフレームあたりのサンプル数です。P は NumPackedBits プロパティで指定されたビットパックされたワードのサイズです。

NumPackedBits

ビットパックされたワードあたりのビットの数

各出力データ ワードに、1 から 32 の間の数値、整数スカラー値としてパックされるビットの数を指定します。既定の設定は 8 です。

依存関係

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

SignedOutput

符号付きのビットパックされたワードを出力する

符号付きのビットパックされた出力ワードを取得するには、このプロパティを true に設定します。既定の設定は false です。この場合、最上位ビット (符号ビット) の 1 は負の値を示します。このプロパティは 2 の補数形式の負の数を示します。

依存関係

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

OutputDataType

出力のデータ型

出力データ型を次のいずれかで指定します。

  • BitPackedOutput プロパティが false の場合、OutputDataType は、'double''logical' または 'Smallest unsigned integer' を指定できます。

  • BitPackedOutput プロパティが true の場合、OutputDataType は、'double' または 'Smallest integer' を指定できます。

既定の設定は double です。

メモ

'Smallest unsigned integer' または 'Smallest integer' モードでこのプロパティを使用するには、Fixed-Point Designer™ のユーザー ライセンスを所有していなければなりません。

依存関係

出力データ型の有効な設定は BitPackedOutput の設定によって決まります。

メソッド

resetPN シーケンス発生器オブジェクトの状態のリセット
step疑似ノイズ (PN) シーケンスの生成
すべての System object に共通
release

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

すべて展開する

与えられた生成多項式 x3+x2+1 に応じて、最大長 PN シーケンスの 14 サンプルのフレームを生成します。

comm.PNSequence オブジェクトを使用して、PN シーケンス データを生成します。最大シーケンス長が 7 サンプル (23-1) のみであるにもかかわらず 14 サンプルが含まれているため、シーケンスは、それ自体によって繰り返されます。

pnSequence = comm.PNSequence('Polynomial',[3 2 0], ...
    'SamplesPerFrame',14,'InitialConditions',[0 0 1]);
x1 = pnSequence();
[x1(1:7) x1(8:14)]
ans = 7×2

     1     1
     0     0
     0     0
     1     1
     1     1
     1     1
     0     0

生成多項式 x4+x+1 に基づき、別の最大長シーケンスを作成します。これは 4 次の多項式であるため、15 サンプル (24-1) 後にシーケンスが繰り返されます。

pnSequence2 = comm.PNSequence('Polynomial','x^4+x+1', ...
    'InitialConditions',[0 0 0 1],'SamplesPerFrame',30);
x2 = pnSequence2();
[x2(1:15) x2(16:30)]
ans = 15×2

     1     1
     0     0
     0     0
     0     0
     1     1
     0     0
     0     0
     1     1
     1     1
     0     0
      ⋮

アルゴリズム

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

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

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

拡張機能

R2012a で導入