Main Content

ldpcEncoderConfig

LDPC 符号化器の構成の作成

R2021b 以降

説明

ldpcEncoderConfig オブジェクトは、関数 ldpcEncode の構成オブジェクトです。このオブジェクトは、低密度パリティチェック (LDPC) 行列と、構成された行列に関する情報を提供する読み取り専用プロパティを指定します。

作成

説明

encodercfg = ldpcEncoderConfig は、WLAN 802.11™ 規格[1]で規定されている符号化率 5/6 の LDPC 符号を使用する LDPC 符号化器の構成オブジェクトを作成します。

encodercfg = ldpcEncoderConfig(H) は、ParityCheckMatrix プロパティを H に設定する出力オブジェクトを構成します。

encodercfg = ldpcEncoderConfig(decodercfg) は、入力の ldpcDecoderConfig 構成オブジェクト decodercfg に基づいてプロパティを設定します。

オブジェクト設定の検証は、オブジェクトを入力として関数 ldpcEncode が呼び出されたときに実行されます。

プロパティ

すべて展開する

パリティチェック行列。(N - K) 行 N 列のスパース logical 行列として指定します。ここで、N > K > 0 です。パリティチェック行列の最後の (N - K) 行は、2 次のガロア体内で可逆でなければなりません。N は LDPC コードワード ブロックの長さです。K は、LDPC コードワードの情報ビット数です。既定値は、WLAN 802.11 規格[1]で規定されている、ブロック長 648、符号化率 5/6 の LDPC 符号のパリティチェック行列です。具体的には、次のコードの関数 ldpcQuasiCyclicMatrix によって出力される 108 行 648 列のスパース logical 行列 H が既定値になります。

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

データ型: logical

この プロパティ は読み取り専用です。

LDPC コードワードのブロックの長さ (N)。正のスカラーとして指定します。N は、パリティチェック行列の列数と等しくなります。

データ型: double

この プロパティ は読み取り専用です。

LDPC コードワードの情報ビット数 (K)。正のスカラーとして指定します。K は、パリティチェック行列の列数からパリティチェック行列の行数を引いたものに等しくなります。

データ型: double

この プロパティ は読み取り専用です。

LDPC コードワードのパリティチェック ビットの数 (N - K)。正のスカラーとして指定します。N - K は、パリティチェック行列の行数と等しくなります。

データ型: double

この プロパティ は読み取り専用です。

LDPC 符号の符号化率。NumInformationBits/BlockLength と等しい正のスカラーとして指定します。

データ型: double

すべて折りたたむ

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);

参照

[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.

拡張機能

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

バージョン履歴

R2021b で導入