General CRC Generator
生成多項式に基づいて CRC 符号ビットを生成し、入力データ フレームに付加する
- ライブラリ:
Communications Toolbox / Error Detection and Correction / CRC

説明
General CRC Generator ブロックは入力データ フレームごとに巡回冗長検査 (CRC) 符号ビットを生成し、それらをフレームに付加します。詳細については、CRC 発生器の動作を参照してください。
端子
入力
In
— 入力信号
バイナリ列ベクトル
入力信号。バイナリ列ベクトルとして指定します。入力フレームの長さは [Checksums per frame] パラメーターの値の倍数でなければなりません。
データ型: double
| Boolean
出力
Out
— 出力符号語フレーム
バイナリ列ベクトル
出力符号語フレーム。入力信号のデータ型を継承するバイナリ列ベクトルとして返されます。出力には、CRC ビット シーケンスが付加された入力データ フレームが含まれています。
出力フレームの長さは m + k * r です。ここで、m は入力フレームのサイズ、k はフレームあたりのチェックサムの数、r は生成多項式の次数です。
パラメーター
Generator polynomial
— 生成多項式
'z^16 + z^12 + z^5 + 1'
(既定値) | 多項式の文字ベクトル | バイナリ行ベクトル | 整数行ベクトル
CRC アルゴリズムの生成多項式。次のいずれかとして指定します。
'z^3 + z^2 + 1'
などの多項式の文字ベクトル。バイナリ行ベクトル。降べきの順に並べた生成多項式の係数を表します。このベクトルの長さは (N+1) です。ここで N は生成多項式の次数です。たとえば、
[1 1 0 1]
は、多項式 x3+ z2+ 1 を表します。多項式の非ゼロの項の z の指数を降べきの順に含む整数行ベクトル。たとえば、
[3 2 0]
は、多項式 z3 + z2 + 1 を表します。
詳細については、Representation of Polynomials in Communications Toolboxを参照してください。
最もよく使用される生成多項式には、次のものがあります。
CRC メソッド | 生成多項式 |
---|---|
CRC-32 | 'z^32 + z^26 + z^23 + z^22 + z^16 + z^12 + z^11 + z^10 + z^8 + z^7 + z^5 + z^4 + z^2 + z + 1' |
CRC-24 | 'z^24 + z^23 + z^14 + z^12 + z^8 + 1' |
CRC-16 | 'z^16 + z^15 + z^2 + 1' |
反転 CRC-16 | 'z^16 + z^14 + z + 1' |
CRC-8 | 'z^8 + z^7 + z^6 + z^4 + z^2 + 1' |
CRC-4 | 'z^4 + z^3 + z^2 + z + 1' |
例: 'z^7 + z^2 + 1'
、[1 0 0 0 0 1 0 1]
、および [7 2 0]
は同一の多項式 p(z) = z 7 + z 2 + 1 を表します。
Initial states
— 内部シフト レジスタの初期状態
0
(既定値) | 1
| バイナリ行ベクトル
内部シフト レジスタの初期状態。バイナリ スカラー、または生成多項式の次数に等しい長さをもつバイナリ行ベクトルとして指定します。スカラー値は、生成多項式の次数に等しい長さの行ベクトルに拡張されます。
Direct method
— CRC チェックサムの計算での直接アルゴリズムの使用
off
(既定値) | on
選択すると、CRC チェックサムの計算に直接アルゴリズムが使用されます。オフにした場合、ブロックでは、CRC チェックサムの計算に非直接アルゴリズムが使用されます。
直接アルゴリズムと非直接アルゴリズムの詳細については、誤りの検出と訂正を参照してください。
入力バイトを反転する
— 入力バイトを反転する
off
(既定値) | on
選択すると、シフト レジスタに入力される前に入力データがバイト単位で反転されます。[Reflect input bytes] を選択する場合、入力フレーム長を [Checksums per frame] パラメーターの値で除算したものが、整数かつ 8
の倍数でなければなりません。[Reflect input bytes] をオフにすると、入力データは反転されません。
最終の XOR の前にチェックサムを反転する
— 最終の XOR の前にチェックサムを反転する
off
(既定値) | on
選択すると、入力データがシフト レジスタを完全に通過した後に CRC チェックサムが 180° 反転されます。[Reflect checksums before final XOR] をオフにすると、CRC チェックサムは反転されません。
Final XOR
— Final XOR
0
(既定値) | 1
| バイナリ行ベクトル
Final XOR。バイナリ スカラー、または生成多項式の次数に等しい長さをもつバイナリ行ベクトルとして指定します。CRC を入力データに追加する前に、[Final XOR] パラメーターの値を使用して、XOR 演算を CRC チェックサムに対して実行します。スカラー値は、生成多項式の次数に等しい長さの行ベクトルに拡張されます。0
に設定すると、XOR 演算を実行しないことと等価になります。
Checksums per frame
— 各フレームで計算されるチェックサムの数
1
(既定値) | 正の整数
各フレームで計算されるチェックサムの数。正の整数として指定します。
モデルの例
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
詳細
巡回冗長検査符号化
巡回冗長検査 (CRC) 符号化は、データ フレームが送信されるときに発生する誤りを検出するための誤り制御符号化手法です。ブロック符号や畳み込み符号とは異なり、CRC 符号には組み込みの誤り訂正能力がありません。代わりに、通信システムが受信符号語に誤りを検出すると、受信側は符号語を再送信するよう送信側に要求します。
CRC 符号化では、送信側で各データ フレームに規則が適用され、"チェックサム" または "シンドローム" という余分な CRC ビットが作成され、チェックサムがデータ フレームに追加されます。送信された符号語を受信した後、受信側は受信した符号語に同じ規則を適用します。結果のチェックサムが 0 以外である場合、誤りが発生しているので、送信側はデータ フレームを再送信する必要があります。
フレームあたりのチェックサムの数が 1 より大きい場合、入力データ フレームがサブフレームに分割され、各データ サブフレームに規則が適用され、個々のチェックサムが各サブフレームに追加されます。サブフレームの符号語が連結されて、1 つのフレームが出力されます。
サポートされている CRC アルゴリズムの詳細は、巡回冗長検査符号を参照してください。
CRC 発生器の動作
CRC 発生器は、指定された生成多項式とフレームあたりのチェックサムの数に従って、CRC チェックサムを入力フレームに追加します。
内部シフト レジスタが特定の初期状態にあり、入力フレームあたり k 個のチェックサムがある場合、次のようになります。
入力信号は等しいサイズの k 個のサブフレームに分割されます。
k 個の各サブフレームの前に、初期状態のベクトルが付加されます。
CRC アルゴリズムが各サブフレームに適用されます。
各サブフレームの終わりに結果のチェックサムが付加されます。
サブフレームが連結されて、1 つの列ベクトルとして出力されます。
次に示すシナリオでは、10 ビットのフレームが入力であり、3 次生成多項式で CRC チェックサムを計算します。また、初期状態は 0 で、フレームあたりのチェックサムの数は 2 です。
入力フレームはサイズ 5 の 2 つのサブフレームに分割され、サイズ 3 のチェックサムが計算されて、それぞれのサブフレームに付加されます。[0]
の初期状態は CRC アルゴリズムの出力に影響しないため、初期状態は示されていません。出力から送信される符号語フレームのサイズは 5 + 3 + 5 + 3 = 16 になります。
参照
[1] Sklar, Bernard. Digital Communications: Fundamentals and Applications. Englewood Cliffs, N.J.: Prentice-Hall, 1988.
[2] Wicker, Stephen B. Error Control Systems for Digital Communication and Storage. Upper Saddle River, N.J.: Prentice Hall, 1995.
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)