X

LDPC (Low Density Parity Check) 코드

I. 저 밀도기반 패리티체크, LDPC 코드

가. LDPC 코드의 개념

  • 부호 길이를 증가시켜 오류 정정 능력을 향상시킨 계산 복잡도 유지 패리티체크 행렬 기반 오류 정정 부호

나. LDPC의 특징

  • 병렬 복호 연산 수행가능(Turbo Code에 비해 이점)
  • 반복 복호(Iterative Decoding) 기법
  • ETSI DVB-S2, IEEE802.16e, 802.11n, 802.3an 표준에 사용
  • 행렬의 대부분은 0으로 구성, 저밀도의 1 보유

다. 패리티검사 행렬과 태너그래프의 Cycle 요소

  • 3, 4열의 1, 2행이 Cycle로 연결되어 부/복호화 시 서로에게 영향을 덜 주어(Burst Error) 오류 정정 성능 저하

 

II. LDPC 부호의 효율적 부호화 기법

가. 효율적 부호화 기법 설명

기법 기법 설명
생성행렬
(Generator Matrix)
– 생성되는 행렬은 저밀도가 아님
– 일반적으로 높은 복잡도 요구
– 보다 낮은 복잡도의 부호화 요구
행/열방향 치환
(Permutation)
– 저밀도의 특성은 그대로 존재
– T는 대각선 원소가 1인 하부 삼각구조

나. 효율적 부호화를 위한 H 변형

  • 행/열방향 치환 표현

 

III. LDPC 부호의 메시지 전달 반복 복호화

가. 메시지 전달 반복 복호화 기법 개념

  • 채널에서 수신한 정보를 바탕으로 Tanner 그래프 상의 노드들이 서로 메시지를 주고 받으며 원래의 부호어를 확률적으로 추론하는 일련의 과정
  • 사이클 존재 시 오류 정정 성능이 저하

나. 메시지 전달 반복 복호화 기법 수행도

  • l번째 반복 복호에서 하나의 변수 노드 에서의 메시지 전달을 고려해보자. 연결된 dv개의 에지 중에서 위 방향으로 연결된 에지로 전파되는 메시지를 얻어내기 위해 아래 쪽에 있는 나머지 dv-1개의 에지에서 들어오는 메시지mi(i=1,2,…,dv-1)와 채널로부터의 수신 값 m0를 이용 한다.
Categories: 네트워크
도리:

View Comments (8)

    • LDPC는 블록부호 기반 오류제어 코드입니다.
      BCH와 LDPC 모두 블록부호 방식의 오류제어 코드입니다. 차이점은 BCH는 블록부호 중 순회 부호 방식이지만 LDPC는 블록부호 중 선형 블록부호 방식의 오류제어 코드입니다.

  • 3, 4열의 1, 2행이 Cycle로 연결되어 부/복호화 시 서로에게 영향을 덜 주어(Burst Error) 오류 정정 성능 저하
    라고 말씀하셨는데, Cycle이 짧으면 성능이 하락된다는 것은 이미 알고 있고, 특히 4-cycle을 피하려고 한다고 알고있습니다. 이때 왜 cycle이 짧으면 디코딩에서의 성능이 하락되는지 궁금합니다.

    • [링크]의 논문 등 다수 논문에서 부호길이가 길 수록, 1의 개수 및 위치가 매우 랜덤하여 짧은 주기(Short Cycle)을 만들지 않을 수록 좋은 성능을 가진다고 합니다. 저도 이 분야에 대해 깊이 알지는 못해서 여러 논문들을 찾아봤는데, 일반적으로 알려진 사실이라고 언급된 자료는 많지만 문의하신 내용에 대한 명확한 설명이 있는 자료는 찾기가 어렵네요.

  • 안녕하세요. 기술사를 공부중인데 평소 많은 도움을 받고 있습니다. 감사합니다.
    통신이론에 지식이 얕아 문의드립니다.

    LDPC의 error floor 현상을 보완하기 위해 연접부호를 사용하는 것으로 알고 있습니다.
    해서 UHDTV에 LDPC - 인터리빙 - BCH로 연접부호하는 걸로 알고 있습니다.

    일반적으로? 연접부호는 버스트에러와 랜덤에러를 둘 다 강화하기 위해
    블럭코드와 비블럭코드를 연접하는 것으로 아는데 LDPC와 BCH는 둘 다 블럭코드인데

    그러면 버스트에레에만 효과가 있는게 아닌지? 하는 의문점이 듭니다.
    아니면 그래서 사이에 인터리빙을 넣은 건지요...?

    • 블록코드 방식이 모두 버스트에러에 효과적이진 않고, RS코드 정도가 버스트에러에 도움이 되며, 말씀하신 바와 같이 연접 시 인터리빙을 적용한 이유가 비트열을 재배열하여 버스트에러를 랜덤에러로 만들어 개별 정정 처리하도록 인터리빙을 넣는 것으로 알고 있습니다.

  • 아...저는 정말 인터넷을 다 찾아보고 읽어봐도 이해가 안되네요 ㅠㅠ. 어떻게 접근 해야 할까요? LDPC 어렵네요

    • 고생이 많으십니다. LDPC는 통신 이론과 함께 행렬과 수학 기반의 부호화 메커니즘에 대한 이해가 필요하기 때문에 접근이 쉽지 않습니다. 시험을 위해서라면 개념과 중요 키워드를 중심으로 암기하시는 것이 좋을 것 같고, 실제 업무에 활용하기 위해서라면 디지털 통신 이론 책을 통해 원리 기반 지식을 습득하시고 LDPC 관련 논문도 찾아보시면서 공부하시면 좋을 것 같습니다.