Main Content

ldpcEncode

バイナリ LDPC 符号の符号化

R2021b 以降

説明

y = ldpcEncode(informationbits,encodercfg) は、LDPC 符号化器構成オブジェクト encodercfg によって指定された LDPC 行列を使用して、入力メッセージ informationbits を符号化します。出力 LPDC コードワードには、情報ビットとそれに続くパリティチェック ビットが含まれます。LDPC 符号は、スパース パリティ チェック行列およびシャノン限界に近いパフォーマンスを達成できる長いブロック長をもつ、線形の誤り制御符号です。

y = ldpcEncode(informationbits,encodercfg,OutputFormat=fmt) は、コードワードの出力形式を指定します。

すべて折りたたむ

IEEE® 802.11 で指定された符号化率 3/4 の LDPC 符号を構成するために、プロトタイプ行列とブロック サイズのパラメーターを初期化します。関数 ldpcQuasiCyclicMatrix を使用して、パリティチェック行列を作成します。

P = [16 17 22 24  9  3 14 -1  4  2  7 -1 26 -1  2 -1 21 -1  1  0 -1 -1 -1 -1
     25 12 12  3  3 26  6 21 -1 15 22 -1 15 -1  4 -1 -1 16 -1  0  0 -1 -1 -1
     25 18 26 16 22 23  9 -1  0 -1  4 -1  4 -1  8 23 11 -1 -1 -1  0  0 -1 -1
      9  7  0  1 17 -1 -1  7  3 -1  3 23 -1 16 -1 -1 21 -1  0 -1 -1  0  0 -1
     24  5 26  7  1 -1 -1 15 24 15 -1  8 -1 13 -1 13 -1 11 -1 -1 -1 -1  0  0
      2  2 19 14 24  1 15 19 -1 21 -1  2 -1 24 -1  3 -1  2  1 -1 -1 -1 -1  0
    ];
blockSize = 27;
pcmatrix = ldpcQuasiCyclicMatrix(blockSize,P);

LDPC 符号化器構成オブジェクトを作成し、そのプロパティを表示します。構成オブジェクトの NumInformationBits プロパティを使用してランダムな情報ビットを生成し、LPDC コードワードの情報ビット数を指定します。LDPC 符号化器構成オブジェクトで指定された LDPC 符号で情報ビットを符号化します。

cfgLDPCEnc = ldpcEncoderConfig(pcmatrix)
cfgLDPCEnc = 
  ldpcEncoderConfig with properties:

     ParityCheckMatrix: [162x648 logical]

   Read-only properties:
           BlockLength: 648
    NumInformationBits: 486
    NumParityCheckBits: 162
              CodeRate: 0.7500

infoBits = rand(cfgLDPCEnc.NumInformationBits,1) < 0.5;
codeword = ldpcEncode(infoBits, cfgLDPCEnc);

入力引数

すべて折りたたむ

情報ビット。行列として指定します。informationbits の行数は、入力 encodercfgNumInformationBits プロパティの値と等しくなければなりません。

データ型: single | double | int8 | logical

LDPC 符号化器の構成。ldpcEncoderConfig オブジェクトとして指定します。

出力形式。以下のいずれかの値として指定します。

  • 'whole' — 情報ビットとパリティチェック ビットを含む LDPC コードワード全体を出力します。関数が出力する行数は、入力 encodercfgBlockLength プロパティの値と同じになります。

  • 'parity' — パリティチェック ビットのみを出力します。関数が出力する行数は、入力 encodercfgNumParityCheckBits プロパティの値と同じになります。

出力引数

すべて折りたたむ

符号化されたコードワード。行列として返されます。符号化操作について、関数は入力 informationbits の各列を個別に符号化します。この関数は、informationbits の非ゼロ値を 1 として扱います。符号化は、部分行列 [1:K,:] の元の情報ビットと部分行列 ((1:K + 1):end,:) のパリティチェック ビットが入力された組織的なコードワード行列を計算します。K は、入力 encodercfgNumInformationBits プロパティと等しくなります。

  • 出力形式が 'whole' の場合、出力には、情報ビットとパリティチェック ビットを含む LDPC コードワード全体が含められます。関数が出力する行数は、入力 encodercfgBlockLength プロパティの値と同じになります。

  • 出力形式が 'parity' の場合、出力にはパリティチェック ビットのみが含められます。関数が出力する行数は、入力 encodercfgNumParityCheckBits プロパティと同じになります。

出力形式の設定については、OutputFormat 引数を参照してください。出力のデータ型は、入力 informationbits のデータ型と同じです。

参照

[1] IEEE Std 802.11™-2020 (Revision of IEEE Std 802.11-2016). "Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications." IEEE Standard for Information technology — Telecommunications and information exchange between systems. Local and metropolitan area networks — Specific requirements.

[2] Gallager, Robert G. Low-Density Parity-Check Codes. Cambridge, MA: MIT Press, 1963.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2021b で導入