ドキュメンテーション

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

comm.CRCDetector System object

パッケージ: comm

CRC を使用した入力データでエラーを検出する

説明

CRCDetector オブジェクトは、その入力フレーム全体に対するチェックサムを計算します。

巡回冗長コードを使用して入力データ内の誤りを検出するには、以下の手順に従います。

  1. CRC 検出器オブジェクトを定義および設定します。「構築」を参照してください。

  2. step を呼び出して、comm.CRCDetector のプロパティに従い、誤りを検出します。step の動作は、ツールボックスの各オブジェクト固有のものです。

構築

H = comm.CRCDetector は、巡回冗長コード (CRC) 検出器 System object™ H を作成します。このオブジェクトは、指定された生成多項式に従って入力データのエラーを検出します。

H = comm.CRCDetector(Name,Value) は、指定の各プロパティが指定の値に設定された CRC detector オブジェクト H を作成します。(Name1,Value1,...,NameN,ValueN) のように、追加の名前/値の組み合わせ引数を任意の順番で指定できます。

H = comm.CRCDetector(POLY,Name,Value) は、CRC detector オブジェクト H を作成します。このオブジェクトは、Polynomial プロパティを POLY に設定しており、指定の他のプロパティは指定の値に設定しています。

プロパティ

Polynomial

生成多項式

係数を降べきの順にした、バイナリまたは整数の列ベクトルとして生成多項式を指定します。既定の設定は [1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1] であり、ベクトル [16 12 5 0] と等価です。このプロパティをバイナリ ベクトルに設定した場合、その長さは多項式の次数に 1 を加算したものに等しくなければなりません。このプロパティを整数ベクトルに設定した場合、その値は、多項式の非ゼロの項の指数を含まなければなりません。たとえば、[1 0 0 0 0 0 1 0 1][8 2 0] は同一の多項式 g(z)=z8+z2+1 を表します。次の表は、一般に使用される生成多項式の一覧です。

CRC メソッド生成多項式
CRC-32[32 26 23 22 16 12 11 10 8 7 5 4 2 1 0]
CRC-24 [24 23 14 12 8 0]
CRC-16 [16 15 2 0]
反転 CRC-16[16 14 1 0]
CRC-8[8 7 6 4 2 0]
CRC-4 [4 3 2 1 0]

InitialConditions

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

シフト レジスタの初期条件を、バイナリ、倍精度または単精度のデータ型スカラーまたはベクトルとして指定します。既定の設定は 0 です。ベクトル長は、Polynomial プロパティで指定する生成多項式の次数です。初期条件をスカラーとして指定すると、オブジェクトは、その値を生成多項式の次数に等しい長さの行ベクトルに拡張します。

DirectMethod

直接法 (論理値)

このプロパティを true に設定すると、CRC チェックサムの計算に直接アルゴリズムが使用されます。このプロパティを false に設定すると、CRC チェックサムの計算に非直接アルゴリズムが使用されます。このプロパティの既定値は false です。

直接アルゴリズムおよび非直接アルゴリズムについての詳細は、「Communications System Toolbox」、「システム設計」、「誤りの検出と訂正」、「巡回冗長検査コーディング」、「CRC アルゴリズム」のセクションを参照してください。

ReflectInputBytes

入力バイトを反転する

このプロパティを true に設定すると、入力データがシフト レジスタへの入力前にバイト単位で反転されます。このプロパティを true に設定した場合、入力フレーム長を ChecksumsPerFrame プロパティの値で除算した結果から生成多項式の次数 (Polynomial プロパティで指定) を減算した値が 8 の整数倍でなければなりません。このプロパティの既定値は false です。

ReflectChecksums

最終の XOR の前にチェックサムを反転する

このプロパティを true に設定すると、入力データがシフト レジスタを完全に通過した後に CRC チェックサムが 180 度反転されます。このプロパティの既定値は false です。

FinalXOR

最終 XOR 値

CRC チェックサムとの間で XOR 演算を行う値をバイナリ スカラーまたはベクトルとして指定します。XOR 演算は入力データを追加する直前に実行されます。ベクトル長は、Polynomial プロパティで指定する生成多項式の次数です。最終 XOR 値をスカラーとして指定すると、その値が生成多項式の次数に等しい長さの行ベクトルに拡張されます。このプロパティの既定値は 0 で、XOR 演算を実行しないことと同等です。

ChecksumsPerFrame

入力フレームごとのチェックサムの数

それぞれの入力フレームで利用可能なチェックサムの数を指定します。既定の設定は 1 です。step メソッドへの入力フレームの長さが N に等しく、生成多項式の次数が P に等しい場合、NCheckSumsPerFrame×P は ChecksumsPerFrame の倍数でなければなりません。オブジェクトは、チェックサム ビットが入力フレームから削除された後に、メッセージ ワードのサイズを NCheckSumsPerFrame×P に設定します。このメッセージ ワードは step メソッドの最初の出力に対応します。次に、step メソッドは、このプロパティに指定する値と同じ長さでベクトルを出力します。

たとえば、入力符号語サイズを 16 に設定し、生成多項式を次数 3 に設定できます。次に、InitialConditions プロパティを 0 に設定し、このプロパティを 2 に設定できます。これを実行したときに、System object は次のようになります。

  1. サイズ 3 の 2 つのチェックサムを計算します。1 つのチェックサムは受信した符号語の前半分からのもので、もう 1 つのチェックサムは受信した符号語の後ろ半分からのものです。

  2. メッセージ ワードの 2 つの半分を長さ 10 の単一ベクトルとして連結します。次に、step メソッドの最初の出力でこのベクトルを出力します。

  3. 長さ 2 のバイナリ ベクトルを、step メソッドの 2 番目の出力で出力します。

ベクトルの値は、計算されたチェックサムが 0 かどうかによって異なります。ベクトルの i 番目の要素 1 は、入力符号語の対応する i 番目のセグメントの送信時に発生したエラーを示します。

メソッド

clone同一プロパティ値をもつ CRC Detector オブジェクトを作成する
getNumInputsstep メソッドへの予想される入力数
getNumOutputsstep メソッドからの出力数
isLocked入力属性と調整不可能なプロパティのロック状態
releaseプロパティ値と入力特性の変更を許可する
resetCRC detector オブジェクトの状態のリセット
stepCRC を使用した入力データでエラーを検出する

信号を符号化し、エラーを検出します。

    % Transmit two message words of length 6
    x = logical([1 0 1 1 0 1 0 1 1 1 0 1]');

    % Encode the message words using a CRC generator
    hGen = comm.CRCGenerator([1 0 0 1], 'ChecksumsPerFrame',2);
    codeword = step(hGen, x);

    % Add one bit error to each codeword
    errorPattern = randerr(2,9,1).';
    codewordWithError = xor(codeword, errorPattern(:)); 

    % Decode messages with and without errors using a CRC decoder
    hDetect = comm.CRCDetector([1 0 0 1], 'ChecksumsPerFrame',2);
    [tx, err] = step(hDetect, codeword); 
    [tx1, err1] = step(hDetect, codewordWithError);
    disp(err)  % err is [0;0], no errors in transmitted message words
    disp(err1) % err1 is [1;1], errors in both transmitted message words

アルゴリズム

このオブジェクトは、CRC-N Syndrome Detector ブロックのリファレンス ページで説明されているアルゴリズム、入力、および出力を実装しています。オブジェクト プロパティはブロック パラメーターに対応します。

この情報は役に立ちましたか?