Main Content

ldpcEncoderConfig

LPDC 인코더 구성 만들기

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 행렬로 지정됩니다. 여기서 N > K > 0입니다. 패리티 검사 행렬의 마지막 N – K개 행은 차수가 2인 갈루아 체에서 가역적이어야 합니다. N은 LDPC 코드워드 블록 길이입니다. K는 LDPC 코드워드의 정보 비트 수입니다. 디폴트 값은 WLAN 802.11 표준[1]에 지정된 대로 블록 길이가 648인 레이트 5/6 LDPC 코드의 패리티 검사 행렬입니다. 구체적으로 설명하자면, 디폴트 값은 이 코드의 ldpcQuasiCyclicMatrix 함수에서 출력하는 희소 형식의 논리형 108×648 행렬 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에 개발됨