Main Content

comm.WalshCode

バイポーラ ウォルシュ符号の生成

説明

comm.WalshCode System object™ は一連の直交符号からバイポーラ ウォルシュ符号を生成します。

ウォルシュ符号を生成するには、以下の手順に従います。

  1. comm.WalshCode オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とはを参照してください。

作成

説明

walshCode = comm.WalshCode はウォルシュ符号生成器 System object を作成します。このオブジェクトは一連の直交符号からウォルシュ符号を生成します。

walshCode = comm.WalshCode(Name=Value) は、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、Length=11 は長さ 11 のウォルシュ符号を指定します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

生成符号の長さ。2 のべき乗の整数として指定します。

データ型: double

目的の符号のインデックス。利用可能な符号セットから、範囲 [0, N-1] の整数として指定します。NLength プロパティの値です。

生成符号内のゼロクロッシングの数は、指定されたインデックスの値に等しくなります。

データ型: double

出力フレームあたりのサンプル数。正の整数として指定します。このプロパティを M に設定すると、オブジェクトは、Index プロパティで指定したウォルシュ符号を使用して、M 個のサンプルを含むフレームを出力します。必要に応じてオブジェクトは、M 個のサンプルに達するまでウォルシュ符号シーケンスを繰り返します。詳細については、アルゴリズムの節を参照してください。

データ型: double

出力のデータ型。double または int8 を指定します。

使用法

説明

y = walshCode は、バイポーラ ウォルシュ符号フレームを列ベクトルとして出力します。フレーム長がウォルシュ符号の長さを超える場合、オブジェクトはウォルシュ符号を繰り返してフレームを埋めます。詳細については、アルゴリズムの節を参照してください。

出力引数

すべて展開する

ウォルシュ符号。列ベクトルとして返されます。

この符号は、011-1 にマッピングしたバイポーラ形式になります。OutputDataType プロパティを使用して、出力データ型を設定します。

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて折りたたむ

長さ 128 のウォルシュ符号を生成します。フレームあたりのサンプル数が 16 のシーケンスを指定します。

walsh = comm.WalshCode;
walsh.Length = 128;
walsh.SamplesPerFrame = 16;
disp(walsh)
  comm.WalshCode with properties:

             Length: 128
              Index: 60
    SamplesPerFrame: 16
     OutputDataType: 'double'

バイポーラ ウォルシュ符号を表示します。

seq = walsh()
seq = 16×1

     1
     1
    -1
    -1
     1
     1
    -1
    -1
     1
     1
      ⋮

長さ 256 のウォルシュ符号を生成します。目的の符号のインデックスを 64 に設定し、符号シーケンスを 1 フレームあたり 4 サンプルに設定します。

walsh = comm.WalshCode;
walsh.Length = 256;
walsh.Index = 64;
walsh.SamplesPerFrame = 4;
disp(walsh)
  comm.WalshCode with properties:

             Length: 256
              Index: 64
    SamplesPerFrame: 4
     OutputDataType: 'double'

バイポーラ ウォルシュ符号を表示します。

seq = walsh()
seq = 4×1

     1
     1
    -1
    -1

アルゴリズム

ウォルシュ符号は、一連の N コードとして定義され、Wj (j = 0, 1, ... , N - 1) として表されます。これには次のプロパティがあります。

  • Wj は +1 および -1 の値をとる。

  • すべての j に対して Wj[0] = 1

  • j = 0, 1, ... , N - 1 に対して Wj は必ず j ゼロクロッシングをもつ。

  • WjWkT={0jkNj=k

  • 各コードの Wj は、その中間点を考慮して整数または奇数です。

ウォルシュ符号は、次数 N のアダマール行列を使用して定義されます。ここで N は、Length プロパティで指定する非負の 2 のべき乗です。comm.WalshCode System object は、アダマール行列の行を出力します。アダマール行列の行を選択するには、Index プロパティを使用します。Index プロパティを整数 j に設定した場合、出力符号は j = 0, 1, ... , N - 1 に対して正確に j ゼロクロッシングになります。

ただし、ウォルシュ符号でのインデックス付けは、アダマール符号でのインデックス付けとは異なることに注意してください。

拡張機能

バージョン履歴

R2012a で導入

参考

オブジェクト

ブロック