KR101217925B1 - 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트 호환가능 저 밀도 패리티-체크 (ldpc) 코드 - Google Patents

높은 쓰루풋 어플리케이션을 위한 h­arq 레이트 호환가능 저 밀도 패리티-체크 (ldpc) 코드 Download PDF

Info

Publication number
KR101217925B1
KR101217925B1 KR1020107011317A KR20107011317A KR101217925B1 KR 101217925 B1 KR101217925 B1 KR 101217925B1 KR 1020107011317 A KR1020107011317 A KR 1020107011317A KR 20107011317 A KR20107011317 A KR 20107011317A KR 101217925 B1 KR101217925 B1 KR 101217925B1
Authority
KR
South Korea
Prior art keywords
code
noise ratio
rate
signal
punctured
Prior art date
Application number
KR1020107011317A
Other languages
English (en)
Other versions
KR20100075657A (ko
Inventor
모스타파 엘-카미
지레이 허우
나가 부샨
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20100075657A publication Critical patent/KR20100075657A/ko
Application granted granted Critical
Publication of KR101217925B1 publication Critical patent/KR101217925B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • H03M13/6368Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
    • H03M13/6393Rate compatible low-density parity check [LDPC] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

일 실시형태에서, 본 특허 출원은 고 레이트 프로토그래프로부터 저 레이트 프로토 그래프를 생성하기 위한 방법 및 장치를 포함하는데, 이 방법 및 장치는, 기초 그래프를 카피하는 것; 기초 그래프의 카피본들에서 동일한 유형의 에지들의 엔드 포인트들을 퍼뮤팅하여 퍼뮤팅된 그래프를 산출하는 것; 그리고 퍼뮤팅된 그래프에서의 시스템 입력 노드 및 그들에 연결된 에지들을 잘라내는 것을 포함한다. 다른 실시형태에서, 본 특허 출원은 저 레이트 코드들로부터 고 레이트 코드들을 생성하기 위한 방법 및 장치를 포함하는데, 이 방법 및 장치는, 코드워드 비트들의 서브세트를 펑쳐링하는 것을 포함하고, 여기서 코드워드 비트들의 서브세트를 펑쳐링하는 단계는 코드워드 비트들의 서브세트를 규칙적으로-불규칙적으로 펑쳐링하는 단계, 가변 노드들을 랜덤으로 펑쳐링하는 단계, 또는 선행 코드로부터 원하는 코드를 획득하기 위해 가변 노드들을 순차적인 노드로 펑쳐링하는 단계를 포함한다.

Description

높은 쓰루풋 어플리케이션을 위한 H­ARQ 레이트 호환가능 저 밀도 패리티-체크 (LDPC) 코드{H-ARQ RATE COMPATIBLE LOW-DENSITY PARITY-CHECK (LDPC) CODES FOR HIGH THROUGHPUT APPLICATIONS}
본 발명은 일반적으로 통신에 관한 것이고, 더욱 상세하게는, 높은 쓰루풋 어플리케이션을 위한 하이브리드 자동 요청 (H-ARQ; hybrid automatic request) 레이트 호환가능 코딩에 관한 것이다.
통상적으로, 데이터 송신의 경우, 노이즈 또는 왜곡의 존재하에서 각각의 수신된 비트를 수신기가 관찰하고, 이 비트의 값의 표시 (indication) 만이 획득된다. 이러한 환경하에서, 당업자는 이 관찰된 값을 "소프트 (soft)" 비트의 소스로서 판단한다. 소프트 비트는 이 비트 값의 바람직한 추정치, 즉, 추정치의 신뢰성의 몇몇 표시를 가지는 1 (one) 또는 0 (zero) 으로 나타난다. 에러의 수가 상대적으로 낮지만, 작은 수의 에러 또는 낮은 레벨의 왜곡조차도 쓸모없는 데이터를 초래할 수 있고 또는, 송신 에러의 경우, 이 데이터의 재-송신을 요청할 수도 있다.
에러를 체크하는 수단을 제공하기 위해, 그리고, 몇몇 경우, 에러를 정정하기 위해서, 지정 리던던시 (designed redundancy) 를 신중하게 도입하도록 이진 데이터가 코딩된다. 데이터의 유닛의 코딩은 코드워드로서 일반적으로 지칭되는 것을 발생시킨다. 그 리던던시로 인해서, 코드워드는 코드워드가 생성된 데이터의 입력 유닛보다 더욱 많은 비트를 종종 포함할 수도 있다.
송신된 코드워드들로부터 발생하는 신호가 수신되거나 또는 프로세싱될 때, 이 신호 내부에서 관찰되는 것과 같이 이 코드워드에 포함된 리던던트 정보가 이용되어 수신된 신호로부터의 왜곡을 식별하고 및/또는 에러를 정정하고 또는 제거하여 원래 데이터 유닛을 회복시킬 수 있다. 이러한 에러 체킹 및/또는 정정은 디코딩 프로세스의 일부로서 구현될 수 있다. 에러의 부재시에, 또는, 정정가능한 에러 및 왜곡이 있는 경우, 프로세싱되는 소스 데이터로부터 회복시키기 위해 디코딩이 이용될 수 있고, 원래 데이터 유닛은 인코딩되어 있다. 회복불능의 에러의 경우, 이 디코딩 프로세스는 원래 데이터가 완전하게 회복될 수 없는 몇몇 표시를 발생시킬 수도 있다. 디코딩 실패의 디코딩 실패 표시는 데이터의 재송신을 초기화하기 위해 이용될 수 있다.
통신 시스템은 종종 몇몇 상이한 레이트들에서 동작할 필요가 있다. 가능한 한 간단하게 구현을 유지하고 그리고 상이한 레이트에서 코딩 및 디코딩을 제공하기 위한 하나의 방법은 저 밀도-패리티 체크 (LDPC; low-density parity check) 코드를 이용하는 것이다. 특히, LDPC 코드가 이용되어 더 저 레이트 코드들을 펑쳐링함으로써 고 레이트 코드들을 생성한다. 레이트 어댑션 (rate adaptation) 을 채용하는 통신 시스템을 통해서, 송신 데이터 레이트는 시스템의 조건 및 요구사항에 따라 순응될 필요성이 있다. 레이트 어댑션은 통신 시스템, 그리고 그 컴포넌트들로 하여금 데이터 레이트를 유연하고 효율적으로 현재의 채널 조건에 적응하게 한다. 통상적인 에러 정정 디자인은, 예를 들어, 고정 코드를 선택하는데, 이 고정 코드는 특정 레이트 및 정정 능력을 가진다. 상이한 에러 보호 필요조건을 가지는 상이한 양의 데이터를 처리하기 위해 플렉시빌리티 (flexibility) 를 부가하기 위해, 이 레이트는 시변 (time varying) 채널 조건뿐만 아니라 불충분하게 알려진 파라미터에 대한 보상에 대해 적응된다.
플렉시블 채널 인코딩을 위해, 데이터 비트들은 사이즈를 변경시키는 블록들로 그루핑될 수도 있고, 이 블록들은 상이한 양의 리던던시로 인코딩될 수도 있다. 상이한 그룹의 비트들을 인코딩하기 위해 몇몇 개별적인 에러 정정 코드를 이용하는 것 대신에, 몇몇 레이트를 수용할 수도 있는 단일 부모 코드 (single parent code) 를 이용하는 것이 바람직하다. 이것은 레이트-호환가능 코딩으로서 지칭된다. 이동 통신 시스템의 급속한 발전에 따라서, 높은 쓰루풋을 가지는 하이브리드 ARQ (H-ARQ) 어플리케이션에 적절한 레이트-호환가능 LDPC 코드에 대한 필요성이 당업계에 남아있다.
LDPC 방법은 매우 노이지 (noisy) 한 환경에서 코드워드들을 회복할 수 있다. 통신 채널 모델의 2 개의 예는 이진 삭제 채널 (BEC; binary erasure channel) 및 이진 대칭 채널 (BSC; binary symmetric channel) 이다. 이 채널들은 도 1a 및 도 1b 에 도시된다. 입력은, 그 입력이 값 0 또는 1 을 가지는 비트들로 구성된 이진값이다.
출력에 대해, BEC 는 0, 1 또는 삭제의 출력을 갖는다. 비트가 정확하게 전송된 확률은 1-p 이고, 비트가 잘못 전송된, 즉, 삭제된 확률은 p 이다. BSC 에서는, 출력은 0 또는 1 이다. 비트가 정확하게 전송된 확률은 1-p 이고, 비트가 잘못 전송된, 즉, 1 이 전송되었을 때 0 이 수신된 또는 그 반대의 확률은 p 이다.
LDPC 코드는 스파스 이분 그래프 (sparse bipartite graph) 로부터 생성된 선형 코드이다. 바이그래프 (bigraph) 로도 지칭되는 이분 그래프는 2 개의 분해 세트로 분해된 그래프 버텍스 (vertex) 들의 세트이고, 동일한 세트 내의 2 개의 그래프 버텍스 중 어느 것도 이웃하지 않는다. 이분 그래프는 k-분 그래프에서 k=2 인 특정한 경우이다. 2 개의 세트들에서 p 및 q 개의 그래프 버텍스들이 있는 경우, 완전한 이분 그래프는 Kp , q 로 나타난다. LDPC 는, 패리티 체크 매트릭스 H 가 1 들의 저 밀도를 가지는 선형 블록 코드들의 특별한 경우이다. 이 스파시티 (sparsity) 는 낮은 복잡성의 디코딩을 렌더링하고, 간단한 구현으로 유도한다. 도 2 는 이러한 그래프의 일 예시이다. 이 그래프는 좌측에 V 가변 노드들, 즉, vi, 그리고 우측에 C 체크 노드들, 즉, cj 를 함유한다. V 가변 노드들은 메시지 또는 시스템 노드들로 지칭될 수도 있다.
이분 그래프는 C 로우 및 V 컬럼을 가지는 간략화된 이웃 매트릭스 H 로 표현될 수도 있다. 도 3 을 참조한다. 도 3 은 이진 스파스 C×V 패리티 체크 매트릭스 H 의 일 예시이다. j 번째 체크 노드가 에지에 의해 i 번째 가변 노드에 연결되는 경우, 즉, 이 2 개의 노드들이 이웃하는 경우, 패리티 체크 매트릭스 H 의 i 번째 컬럼 그리고 j 번째 로우에 하나가 있다. 즉, i 번째 로우 그리고 j 번째 컬럼의 인터섹션은, 에지가 대응하는 버텍스들과 결합하는 "1" 및 에지가 없는 "0" 을 포함한다. 가변 노드 및 제한 (또는 체크) 노드는 이들이 그래프에서 에지에 의해 연결되는 경우 이웃으로서 지칭된다. 그래프에서 에지들 E 는 가변 노드들을 제한 또는 체크 노드들에 연결하고, 각각의 에지는 패리티 체크 매트릭스에서 0 이 아닌 엔트리에 해당한다. 매트릭스 X 의 각각의 로우는 체크 노드에 대응하고 패리티 체크를 나타내며, 각각의 컬럼은 가변 노드의 하나에 해당하고 복조된 심볼을 나타낸다. 5 개의 가변 노드들과 3 개의 체크 노드들이 있기 때문에, 이 매트릭스는 5 개의 컬럼들 및 3 개의 로우들을 포함한다.
복조된 심볼 또는 가변 노드들의 수 N 은 LDPC 코드 길이이다. 로우 (컬럼) 에서 0 이 아닌 엘리먼트들의 수는 로우 (컬럼) 가중치 dc(dv) 로서 정의된다. 규칙적인 그래프 또는 코드는, 모든 가변 노드들이 동일한 디그리 (degree), 말하자면 j 를 가지고, 모든 제한 노드들이 동일한 디그리, 말하자면 k 를 가지는 것이다. 이 경우, 말하자면, 코드는 (j,k) 규칙 코드이다. 한편, 불규칙 코드는 상이한 디그리의 제한 노드 및/또는 가변 노드를 가진다. 예를 들어, 몇몇 가변 노드들은 디그리 4 일 수도 있고, 다른 것은 디그리 3 일 수도 있고, 또 다른 것은 디그리 2 일 수도 있다.
각각에 대해, 가변 노드는 코드워드의 일 비트와 관련된다. 가변 노드 시퀀스와 일-대-일로 관련된 비트 시퀀스는, 각각의 제한 노드에 대해, (가변 노드와의 관계를 통해서) 제약에 이웃하는 비트들이 0-modulo-2, 즉, 1 들의 짝수를 포함하는 수로 합계된다. 몇몇 경우, 이들 비트들 중 몇몇은 이하 후술되는 바와 같이 펑쳐링되고 알려질 수도 있다. 펑쳐링은 코드워드로부터 사실상, 더 짧은 코드워드들을 산출하기 위해 비트를 제거하는 동작이다. LDPC 그래프의 경우, 이는 그래프에서 가변 노드들의 몇몇이 실제로 송신되지 않은 비트들에 해당한다.
LDPC 코드워드를 디코딩하기 위해 이용된 디코더 및 디코딩 알고리즘은 에지를 따라 그래프 내에서 메시지들을 교환하고 도입 메시지들에 기초하여 노드에서 계산을 수행하여 이들 메시지들을 업데이트시킴으로써 동작한다. 이러한 방법은 메시지 통과 방법으로서 일반적으로 지칭될 것이다. 그래프의 각각의 가변 노드에는, 초기에, 예를 들어, 통신 채널에서 관찰함으로써 결정될 수도 있는 관련 비트의 값의 추정치를 나타내는 수신 값으로 지칭되는 소프트 비트가 제공된다. 이상적으로, 분리 비트들에 대한 추정치는 통계적으로 개별적이다. 이 이상은 실제로 방해될 수도 있다. 수신 워드는 수신된 값의 집합으로 구성된다.
노드의 디그리는 그 노드에 연결된 에지의 수를 지칭한다. 이 특징은, vi 에 따르는 에지의 수가 컬럼 i 의 에지의 수와 동일하고 가변 노드 디그리 d(vi) 로 지칭되는 도 3 에 도시된 매트릭스 H 에 도시된다. 유사하게, cj 와 연결된 에지의 수는 로우 j 의 에지의 수와 동일하고 체크 노드 디그리 d(cj) 로 지칭된다.
하이브리드 ARQ 어플리케이션에서, 모든 데이터 심볼은 제 1 송신 도중에 고 레이트 코드를 통해서 송신된다. 패킷이 성공적으로 디코딩되지 않는 경우, 송신기는 더 많은 리던던시 심볼을 전송하여 미리 송신된 패킷의 신뢰도를 개선시킨다. 사전에 수신된 패킷과 결합된 경우의 이 리던던시 심볼들은, 정보 비트가 첨가된 리던던시 심볼들에 의해 펑쳐링되기 때문에 상대적으로 저 레이트의 다른 코드워드를 만든다. 송신기는 리던던시 심볼들을 증가시켜 전송할 것이고, 이에 따라, 수신기가 패킷의 성공적인 디코딩을 인지할 때까지 송신된 패킷의 전반적인 레이트를 감소시킬 것이다. 종래 기술에서 레이트-호환가능 구조의 LDPC 코드는, 프로토그래프 레벨에서 정보 블록 크기가 일정하지 않아 H-ARQ 어플리케이션에 적절하지 않은 코드들을 만들 수도 있는 바람직하지 못한 특성을 가질 수도 있다. 또한, 종래 기술에서, 저 레이트 구조의 LDPC 코드는, 펑쳐링된 가변 노드들이 매우 높은 디그리를 가지는 바람직하지 못한 특성을 가질 수도 있다. 따라서, 고 레이트를 달성하기 위해 이들을 펑쳐링하는 것은 어려울 수도 있다.
전술한 관점에서, 본 발명의 구체적인 특징은 일반적으로 통신 스피치에 대한 하나 이상의 개선된 시스템, 방법 및/또는 장치에 관한 것이다.
일 실시형태에서, 본 특허 출원은 고 레이트 프로토그래프 (protograph) 로부터 저 레이트 프로토그래프를 생성하는 방법 및 장치를 포함하는데, 이 방법 및 장치는 기초 그래프를 카피하는 것; 기초 그래프의 카피본들에서 동일한 유형의 에지의 엔드 포인트들을 퍼뮤팅하여 퍼뮤팅된 그래프를 산출하는 것; 및 퍼뮤팅된 그래프에서의 시스템 입력 노드 및 이들에 연결된 에지들을 잘라내는 (pruning) 것을 포함한다.
다른 실시형태에서, 본 특허 출원은 저 레이트 코드들로부터 고 레이트 코드들을 생성하기 위한 방법 및 장치를 포함하는데, 이 방법 및 장치는 코드워드 비트들의 서브세트를 펑쳐링하는 것을 포함하고, 상기 코드워드 비트들의 서브세트를 펑쳐링하는 단계는 코드워드 비트들의 서브세트를 규칙적으로-불규칙적으로 펑쳐링하는 단계, 가변 노드들을 랜덤으로 펑쳐링하는 단계, 또는, 선행 코드로부터 원하는 코드를 획득하기 위해 가변 노드들을 순차 노드 펑쳐링하는 단계를 포함한다.
본 발명의 방법 및 장치의 적절성의 그 이상의 범위는 후술하는 구체적인 상세한 설명, 특허청구범위 및 도면으로부터 명백하게 될 것이다. 그러나, 본 발명의 취지 및 범위 내에서 다양한 변화 및 변경이 당업자에게는 명백하기 때문에, 본 발명의 바람직한 실시형태를 나타내는 동안, 구체적인 상세한 설명 및 특정 예시는 도시의 방법으로 나타난다.
본 명세서에 개시된 방법 및 장치의 특징, 목적, 및 이점은, 동일한 참조 번호가 전반적으로 대응하도록 식별되는 도면과 관련하여 취해진, 후술된 상세한 설명으로부터 더욱 명백하게 된다.
도 1a 는 삭제 확률 p 를 가지는 이진 삭제 채널 (BEC; Binary Erasure Channel) 의 일 예시이다.
도 1b 는 에러 확률 p 를 가지는 이진 시스템 채널 (BSC; Binary Symmetric Channel) 의 일 예시이다.
도 2 는 이분 그래프의 일 예시이다.
도 3 은 이진 스파스 M×N 패리티 체크 매트릭스 H 의 일 예시이다.
도 4 는 V=4 가변 노드들 및 C=3 체크 노드들로 이루어지고, E=8 에지들에 의해 연결된 프로토그래프의 일 예시이다.
도 5a 는 고 레이트 프로토그래프들로부터 저 레이트 프로토그래프들을 생성할 때 실행되는 단계들을 도시하는 플로우차트이다.
도 5b 는 디자인 레이트가 1/m 인 고 레이트 프로토그래프로부터 저 레이트 프로토 그래프를 생성할 때 실행되는 단계들을 도시하는 플로우차트이다.
도 6 은 기초 그래프 B 의 일 예시를 도시한다.
도 7 은 기초 그래프 B 의 n-1 개의 카피본 (여기서, n=4) 을 도시한다.
도 8 은 기초 그래프 B 의 n-1 개 카피본에서 동일한 유형의 에지들의 엔드 포인트들을 퍼뮤팅시킴으로써 생성된 기초 그래프 B_(n-1) 를 도시한다.
도 9 는 퍼뮤팅된 그래프 B_(n-1) 의 잘라낸 (pruned) 버전을 도시한다.
도 10 은 체크 노드 0 에서 가변 노드 8 로 에지를 추가시킴으로써 퍼뮤팅된 그래프 B_(n-1) 을 최적화시키는 것을 도시한다.
도 11a 는 프로토그래프 1/2 ARCA 코드를 나타낸다.
도 11b 는 2/3 레이트를 산출하여 펑쳐링된 가변 노드 3 를 가지는 프로토그래프를 나타낸다.
도 11c 는 2/3 레이트를 산출하여 펑쳐링된 가변 노드 4 를 가지는 프로토그래프를 나타낸다.
도 12 는 본 특허 출원의 규칙적인-불규칙적인 펑쳐링 방법에서 실행되는 단계들을 도시하는 플로우차트이다.
도 13a 는 레이트 1/2 의 비펑쳐링된 ARCA 코드 를 가지는 그래프를 나타낸다.
도 13b 는 레이트 0.6 코드에 대한 펑쳐링 패턴을 가지는 그래프이다.
도 13c 는 2/3 레이트에 대한 펑쳐링 패턴을 가지는 그래프이다.
도 14 는 본 특허 출원의 랜덤 탐색 방법에서 실행된 단계들을 도시하는 플로우차트이다.
도 15a 및 도 15b 는 본 특허 출원의 순차적인 노드로 펑쳐링 방법에서 실행된 단계들을 설명하는 플로우차트이다.
도 16 은 인코더, 디코더 및 통신 채널을 포함하는 시스템의 기능 블록도이다.
도 17 은 액세스 단말기의 일 실시형태를 도시하는 기능 블록도이다.
도 18a 는 고 레이트 프로토그래프로부터 저 레이트 프로토그래프를 생성할 때 실행되는 단계들을 도시하는 기능 블록도이다.
도 18b 는 디자인 레이트가 1/m 인 고 레이트 프로토그래프로부터 저 레이트 프로토그래프를 생성할 때 실행되는 단계들을 도시하는 기능 블록도이다.
도 19 는 본 특허 출원의 규칙적인-불규칙적인 펑쳐링 방법에서 실행된 단계를 도시하는 기능 블록도이다.
도 20 은 본 특허 출원의 랜덤 탐색 바법에서 실행된 단계들을 도시하는 기능 블록도이다.
도 21a 및 도 21b 는 본 특허 출원의 순차적인 노드로 펑쳐링 방법에서 실행된 단계들을 도시하는 기능 블록도이다.
본 출원은, 발명의 명칭이 "높은 쓰루풋 어플리케이션을 위해 H-ARQ 레이트 호환가능 코드를 제공하기 위한 시스템 및 방법 (System and Method for Providing H-ARQ Rate Compatible Codes for High Throughput Applications)" 로 2006년 1월 6일 출원된 미국 가출원 번호 제60/756,758호를 우선권 주장하며, 이 출원의 전체 개시는 본 출원에 원용된다.
여기에서 "예시적인" 이라는 용어는 "예, 예시, 또는 예증으로서 제공되는"의 의미로 사용된다. "예시적인" 것으로서 여기에서 설명되는 임의의 실시형태는 다른 실시형태에 비하여 반드시 바람직하거나 유리한 것으로서 해석할 필요는 없다.
액세스 단말기 (AT; 106) 로서 본 명세서에서 지칭된 HDR 가입자국은 이동국일 수도 있고 또는 고정국일 수도 있고, 본 명세서에 모뎀 풀 트랜시버 (MPT; Modem Pool Transceiver) 로서 지칭된 하나 이상의 HDR 기지국 (820) 과 통신할 수도 있다. 액세스 단말기 (106) 는 하나 이상의 모뎀 풀 트랜시버 (820) 를 통해서 데이터 패킷들을 본 명세서에서 모뎀 풀 컨트롤러 (MPC; Modem Pool Controller; 810) 로 지칭되는 HDR 기지국 컨트롤러 (810) 로 송신 및 수신한다. 모뎀 풀 트랜시버 (820) 및 모뎀 풀 컨트롤러 (810) 는 액세스 네트워크 (AN; 122) 로 지칭되는 네트워크의 일부이다. 액세스 네트워크 (122) 는 다수의 액세스 단말기 (106) 들 사이에서 데이터 패킷들을 이송한다. 액세스 네트워크 (122) 는 액세스 네트워크 (122) 외부의 추가적인 네트워크, 예를 들어, 통합 인트라넷 또는 인터넷에 더 연결될 수도 있고, 각각의 액세스 단말기 (106) 과 이러한 외부 네트워크 (122) 사이에서 데이터 패킷들을 이송할 수도 있다. 하나 이상의 모뎀 풀 트랜시버 (820) 를 통해서 활성 트래픽 채널 커넥션을 확립한 액세스 단말기 (106) 는 활성 액세스 단말기 (106) 로 지칭되고, 트래픽 상태에 있다고 설명된다. 하나 이상의 모뎀 풀 트랜시버 (820) 를 통해서 활성 트래픽 채널 커넥션을 확립하는 프로세스 과정의 액세스 단말기 (106) 는 커넥션 셋업 상태에 있다고 설명된다. 액세스 단말기 (106) 는 무선 채널 (556) 을 통해서 또는, 예를 들어, 광섬유 또는 광축 케이블을 통한 유선 채널을 통해서 통신하는 임의의 데이터 디바이스일 수도 있다. 또한, 액세스 단말기 (106) 는 PC 카드, 콤팩트 플래시, 외부 또는 내부 모뎀, 또는 무선 또는 유선 전화기를 포함하지만 이들에 한정하지 않는 수많은 유형의 디바이스일 수도 있다. 액세스 단말기 (106) 가 모뎀 풀 트랜시버 (820) 에 신호를 전송하는 통신 링크는 역방향 링크로 지칭된다. 모뎀 풀 트랜시버 (820) 가 액세스 단말기 (106) 로 신호를 전송하는 통신 링크는 순방향 링크로 지칭된다.
고 레이트 프로토그래프들로부터 레이트 프로토 그래프를 생성하는 방법
제 1 실시형태에서, 본 특허 출원은 저 레이트 구조의 LDPC 코드를 생성하기 위한 낮은 복잡성의 시스템 방법을 포함한다. 이들 저 레이트 코드는 표준 터보 코드들보다 성능이 뛰어날 수도 있고, 고속 병렬 디코딩 (high-speed parallel decoding) 에 적용가능한 고유 구조를 가질 수도 있다. 이 저 레이트 코드는 평균 백색 가우시안 노이즈 (AWGN; average white Gaussian noise) 채널에서 우수한 성능을 가지고, 삭제 및 펑쳐링에 대해 강력하다 (robust). 즉, 이러한 저 레이트 구조의 LDPC 코드들이 삭제 채널상에서 우수한 성능뿐만 아니라 AWGN 채널상에서 낮은 임계치를 가질 수도 있다. 저 레이트 코드는 또한 높은 쓰루풋 어플리케이션에 적합하다. 이들 코드는 하이브리드 ARQ 어플리케이션에 이용되는 레이트 호환가능 패밀리에서 부모 코드로서 기능할 수도 있다.
상대적으로 고 레이트를 가지는 프로토그래프 (10) 로부터 시작하여, 본 특허 출원은 더 저 레이트의 프로토그래프 (10) 를 구성하기 위한 시스템 방법을 개시한다. 저 레이트 프로토그래프 (10) 는, 더 큰 프로토그래프 (10) (즉, 저 레이트 프로토그래프 (10)) 가 순차적인 에지 성장 (PEG) 을 이용하여 고 레이트 프로토그래프 (또는 기초 그래프 (12)) 로부터 구성되어 프로토그래프 (10) 의 거스 (girth) 를 최대화시킬 뿐만 아니라 그 고유의 사이클 정보 기준을 개선시키는, 더욱 고 레이트의 프로토그래프로부터 카피-및-퍼뮤팅 접근방법을 이용하여 파생된다. 다음으로, 원하는 레이트에 도달하기 위해 입력 노드들 (20) 과 이들에 연결된 에지들 (15) 을 잘라내는 방법이 뒤따른다. AWGN 및 삭제 채널상의 밀도 진화에 기초하여, 프로토그래프 (10) 가 프로토그래프 (10) 의 매우 작은 수의 에지들 (15) 를 추가시키고/교환함으로써 더욱 최적화될 수도 있다. (밀도 진화 분석은, 디코딩이 큰 파생 그래프 (10) 의 임의의 작은 비트-에러 확률을 산출하는지를 판별하기 위해 프로토그래프 (10) 상에서 수행될 수도 있는 당업계에 알려진 방법이다. 이 기술에서, 메시지-통과 방법에서 정의된 메시지는 랜덤 변수로서 처리되고, 그 분포가 산정된다).
프로토그래프 (10) 는 임의의 이분 그래프일 수도 있다. 그러나, 작은 수의 노드들을 가지는 통상적인 그래프이다. 통상적인 프로토그래프 (10) 는 메시지 또는 가변 노드 (20) 의 세트, 체크 노드 (25) 의 세트, 에지 (15) 의 세트로 이루어져 있다. 각각의 에지 (15) 는 가변 노드 (20) 를 체크 노드 (25) 에 연결한다. 또한, 병렬 에지 (15) 가 허용되어, 매핑은 1:1 이 아닐 수도 있다.
간단한 예시로서, 도 4 의 프로토그래프 (10) 를 고려한다. 이 그래프는 E=8 에지 (15) 에 의해 연결된 V=4 가변 노드 (20) 및 C=3 체크 노드 (25) 로 이루어져 있다. 프로토그래프에서 4 개의 가변 노드 (20) 는 "v1, v2, v3, v4" 로 표시되고, 3 개의 체크 노드는 "c1, c2, c3" 로 표시된다. 그것만으로, 이 그래프 (10) 는 (n=4, k=1) LDPC 코드의 이분 그래프로서 인식될 수도 있고, 여기서, k 및 n 은 각각 정보 블록의 길이 및 코드워드의 길이이다. 도 4 의 이분 그래프는 길이 4 및 레이트 1/4 의 불규칙적인 LDPC 코드를 결정하는데 이용된다. 길이 4 는 4 개의 가변 노드 (20; v1, v2, v3, v4) 가 있는 것을 나타내고, 각각은 코드워드 x1, x2, x3, x4 의 하나의 비트로 식별된다 (이러한 경우 펑쳐링되지 않음). 레이트 1/4 는 3 개의 체크 노드 (25) 내지 4 개의 가변 노드 (40) 가 있다는 것을 나타낸다.
이 방법 및 장치의 이점은, 결과 프로토그래프 (10) 는 높은 커넥티비티를 가지는 높은 디그리의 펑쳐링된 가변 노드 V (20) 를 가지지 않는다는 것이다. 다른 이점은 프로토그래프 (10) 를 디자인하는 복잡성이 낮다는 것이다. H-ARQ 레이트 호환가능 코드를 구성하기 위해 펑쳐링하는 단계 및 확대하는 단계 모두에 대해 적절한 코드들을 획득할 수 있다. 이 코드의 구조는 고유의 병렬 및 고속 디코딩 구조 및 높은 쓰루풋을 초래한다. 그 결과물인 프로토그래프 (10) 가 구조화되고, 고속 인코딩 구조에서 결과로 야기되는 누산기 (accumulator), 반복기, 및 퍼뮤팅기의 용어로 표현될 수 있다.
더 고 레이트의 기초 코드로부터 우수한 저 레이트 코드를 생성하는 방법
이러한 우수한 저 레이트 코드를 생성할 때, 이하의 가정이 이루어진다.
기초 프로토그래프 B 는 N 개의 가변 노드 (20) 및 C 개의 체크 노드 (25) 를 갖는다. 가변 노드 (20) 의 Nt 가 펑쳐링된다 (숨겨진다).
기초 그래프 B (12) 의 가변 노드 (20) 및 체크 노드 (25) 의 수는 각각 N 및 C 이다.
기초 그래프 B (12) 는 N-C 개의 시스템 입력 노드 (20) 및 Nt 개의 펑쳐링된 리던던시 노드 (20) 를 가지고, 여기서 K=N-C 이다. 즉, 프로토그래프 B 에서 펑쳐링된 가변 노드 (20) 들의 수는 Nt 이다.
기초 (고 레이트) 프로토그래프의 레이트는 RB=K/(N-Nt) 이다.
도 5a 는 레이트 RB(90) 의 고 레이트 프로토그래프 (10) 로부터 레이트 RL 의 저 레이트 프로토그래프 (10) 를 생성할 때 실행되는 이하 단계들을 나타내는 플로우차트이다.
기초 그래프 (12) B 의 p 개의 카피본들을 생성한다 (단계 91).
프로토그래프 (10) 의 거스를 최대화시키기 위해 PEG 방법 또는 그 변형물을 이용하여 기초 그래프 B 의 p 개의 카피본으로부터 다른 프로토그래프 (10) Bp 를 구성한다 (단계 92).
Figure 112010033116009-pat00001
개의 시스템 입력 노드 (20) 및 프로토그래프 (10) 에 연결된 에지 (15) 를 잘라냄으로써 Bp 로부터 프로토그래프 (10) L 를 구성한다 (단계 93).
우수한 AWGN 및 삭제 임계치를 획득하기 위해 잘라낸 입력 노드 (20) 의 선택을 최적화시킨다 (단계 94).
상기 잘라낸 퍼뮤팅된 그래프 (10) 의 상기 에지 (15) 를 추가, 제거 및 교환하는 것과 같은 동작을 통해서 적은 수의 에지 (15) 를 이용함으로써 더욱 최적화가 수행될 수 있다 (단계 95).
PEG 방법 및 그 변형물은 그들 안에 몇몇 랜덤화를 가질 수도 있다. 이 경우, PEG 구성은 반복의 최대수에 도달될 때까지 반복될 수도 있다 (단계 (96)). 즉, 반복의 최대수에 도달될 때까지 단계 92 내지 단계 95 를 반복한다.
이하의 가정이 이루어지는 방법의 특정의 경우가 후술된다.
기초 그래프 (12) B 의 레이트는 0.5 이다.
디자인 레이트는 1/m (1/m<1/2) (m 은 코드의 길이인 n 과 혼동을 회피하기 위해 도입됨) 이다.
도 5b 는 고 레이트 프로토그래프 (10) 로부터 저 레이트 프로토그래프 (10) 를 생성할 때 실행되는 이하 단계들을 나타내는 플로우차트 (100) 이다.
단계 (110) - 기초 또는 부모 그래프 (12) B 를 m-1 번 카피한다. 도 6 은 기초 그래프 B (12) 의 일 예시이다. 도 7 은 기초 그래프 B (12) 의 m-1 개의 카피본을 도시하고, 여기서 m=4 이다.
단계 (120) - 기초 그래프 B (12) 의 n-1 개의 카피본들에서 동일한 유형의 에지 (15) 의 엔드 포인트들을 퍼뮤팅시킴으로써 퍼뮤팅된 그래프 B_(m-1) (14) 를 구성한다. 도 6 은 이 단계를 도시한다. 일 실시형태에서, 에지 (15) 의 퍼뮤팅은 그래프 (14) 의 거스를 최대화시키기 위해 순차적인 에지 성장 (PEG) 방법을 이용하여 구현된다. 순차적인 에지 성장은 에지-대-에지 방식으로 에지 (15) 또는 가변 (또는 심볼) 노드 (20) 및 체크 노드 (25) 사이의 연결의 확립을 수반한다. 근본적인 생각은 가장 멀리 떨어진 체크 노드 (25) 를 찾고 그 후 심볼 노드 (20) 와 가장 멀리 떨어진 체크 노드 (25) 를 연결하는 새로운 에지 (15) 를 위치시키는 것이다. 단계 (120) 에서, PEG 방법은 퍼뮤팅된 그래프 B_(m-1) (14) 를 구성하도록 이용되었다. ACE-PEG 방법, 순환-PEG 또는 순환-ACE-PEG 방법과 같은 PEG 방법의 다른 변형법이 에지를 퍼뮤팅하도록 이용될 수 있다.
이하 거스의 예시가 후술된다. 그래프에서 2 개의 버텍스 x 및 y 가 연결된 경우, 그 거리 d (x,y) 는 이들을 결합하는 가장 짧은 패스 (path) 의 길이 (에지들의 수) 로서 정의된다. x 로부터 시작하고 x 에서 종료하는 에지 (15) 를 가지는 폐쇄 패스는 x 의 사이클로 지칭된다. 거스 g 는 그래프에서 가장 짧은 사이클을 나타낸다.
단계 (110), 및 단계 (120) 를 설명하는 간단한 예시로서, 도 6 에 도시된 기초 그래프 (12) 를 고려한다. 이 그래프는 원으로 표현된 N=5 가변 노드 (20) 및 정사각형 박스로 표현된 C=3 체크 노드 (25) 로 이루어진다. 가변 노드 (20) 및 체크 노드 (25) 는 E=14 에지 (15) 에 의해 연결된다. 이것만으로, 이 그래프는(n=5, k=2) (k=N-C 임) LDPC 코드의 태너 (Tanner) 그래프로서 인식될 수도 있다.
1/4 의 타겟 레이트에 대해, m=4 이다. 도 7 및 도 8 에 도시된 카피-및-퍼뮤팅 동작에 의해 더 큰 그래프가 획득될 수 있다. 도 7 에서, 도 6 의 기초 그래프 B (12) 가 3 번 (m-1=3) 카피되어 있다. 여기서, 동일한 유형의 버텍스가 가까이 이웃하도록 3 개의 카피본들이 놓여있지만, 전반적인 그래프는 3 개의 연결되지 않은 서브그래프로 이루어진다.
도 8 에서, 기초 그래프 (12) 에서 각각의 에지 (15) 의 3 개의 카피본들의 엔드 포인트는 대응하는 가변 노드 (20) 및 체크 노드 (25) 의 3 개의 카피본들에서 퍼뮤팅되어 있다. 에지 (15) 의 엔드 포인트의 교환 이후에, 3 개의 기초 그래프 (12) 는 상호 연결되어 퍼뮤팅된 그래프 B_(m-1) (14) 를 산출한다.
단계 (125) - PEG 방법이 랜덤 시드 (random seed) 를 수반하는 경우, 반복의 한정된 수만큼 사전 단계 (즉, 반복의 최대수에 도달 (단계 127)) 를 반복하고, (가장 큰 거스를 가지는) 가장 작은 수의 가장 짧은 사이클을 가지는 퍼뮤팅된 그래프 B_(m-1) 을 고른다 (단계 129).
단계 (130) - 다른 프로토그래프, P (17) 를 획득하기 위해 이들에 연결된 퍼뮤팅된 프로토그래프 B_(m-1) (14) 및 에지 (15) 내의 (N-C)(m-2) 개의 시스템 입력 노드 (20) 를 잘라낸다. 4 개의 시스템 (또는 가변) 노드 (20) 가 잘라낸 퍼뮤팅된 그래프 B_(m-1) (14) 의 잘라낸 버전을 도시하는 도 9 를 참조한다. 잘라낸 노드는 어떠한 수도 포함하지 않고, 즉, 이들은 블랭크이다. 전술한 바와 같이, m=4, N=5 가변 노드 (20) 및 C=3 체크 노드 (25) 이고, K=5-3=2 이다. 따라서, (N-C)(m-2) = (5-3)(4-2) = (2)(2) = 4 이다. 단계 (130) 에서, 본 발명 및 장치는 시스템 입력 노드 (20) 의 (N-C)(m-2) 의 전체를 잘라낸다. 일반적으로, 이 노드들은 기초 프로토그래프 B (12) 에서 시스템 노드 (20) 의 임의의 (m-2) 카피본으로서 선택된다. 대부분의 경우, 잘라낸 카피본들의 선택은 이들 카피본들에 걸쳐서 프로토그래프 B_(m-1) (14) 에서의 대칭으로 인한 성능에 영향을 미치지 않는다. 그러나, 이러한 대칭이 존재하지 않는 경우, 시스템 입력 노드 (20) 의 모든 가능한 (N-C)(m-2) 조합을 시도하도록 그리고 가장 낮은 임계치를 제공하는 조합을 선별하도록 실행가능하게 한다. 이는, 가장 작은 크기의 프로토그래프 (10) 로 인한 것이고, 이는, 고속 프로세스의 밀도 진화를 이용하여 프로토그래프 (10) 의 임계치를 탐색하게 한다. 또한, 그라디언트 강하 또는 시뮬레이션된 어닐링 접근방법을 이용하여 랜덤으로 잘라낸 입력 시스템 노드 (20) 를 선택할 수 있다.
단계 (140) - 퍼뮤팅되었기 때문에, 잘라낸 그래프 P (17) 는 레이트 1/m 코드의 프로토그래프 (10) 이고, 잘라지고, 퍼뮤팅된 그래프 P (17) 의 에지들 (15) 을 추가, 제거 및 교환함으로써 프로토그래프 (10) 의 추가적인 최적화가 수행된다. 체크 노드 0 에서 가변 노드 8 까지 에지 (15) 를 추가함으로써 잘라지고, 퍼뮤팅된 그래프 P (17) 의 최적화를 도시하는 도 10 을 참조한다.
단계 (140) 에서, 매우 작은 수의 에지 (15) 를 조심스럽게 추가하는 것은 P (17) 의 임계치보다 나은 임계치를 가지는 다른 프로토그래프 (10) 를 획득하는데 충분하다. 이 단계는 수동으로 행해질 수도 있다. 그러나, 단계 (140) 가 자동화될 수도 있고, 즉, 에지 (15) 동작이 행해질 수도 있고, 더 낮은 임계치의 결과를 초래하는 경우 이를 유지할 수도 있고, 그리고, 이와 다르게 훼손시킬 수도 있다. 에지 (15) 동작은 에지 (15) 를 추가하고, 제거하고 에지 (15) 포인트들을 교환하는 것을 의미한다. 자동화된 프로세스에서, 에지 (15) 뿐만 아니라 에지 (15) 동작들은 랜덤으로 선택될 것이다.
N', C', Nt' 가 프로토그래프 P (17) 에서의 가변 노드 (20), 체크 노드 (25) 및 펑쳐링 가변 노드 (20) 라고 한다. 다음으로, 결과 프로토그래프의 레이트 P (17) 는 1/n 임을 증명할 수 있다
Figure 112010033116009-pat00002
식. 1
프로토그래프 P (17) 가 노드 (20) 및 에지 (15) 를 잘라냄으로써 B_(m-1) (14) 로부터 획득되기 때문에, P (17) 는 B_(m-1) (14) 의 서브그래프이다. 이는, P (17) 의 거스가 적어도 B_(m-1) (14) 의 거스만큼 크다는 것을 함축한다. B_(m-1) (14) 의 거스의 최대화는 P (17) 의 거스의 제한된 최대화와 동일하다. 더욱이, G 가 P (17) 로부터 구성된 리프팅된 (lifted) 그래프 (18) 인 경우, P (17) 이 루프 프리인 경우 G (18) 는 루프 프리이다. 또한, P (17) 의 거스가 더 큰 경우 더 큰 거스를 가지는 G (18) 를 구성하는 것이 가능하다. 즉, 이는, 더 큰 거스가 높은 신호-대-잡음 (SNR; signal-to-noise) 범위에서 낮은 에러 플로어에 해당하기 때문에 G (18) 에서 바람직한 특성이다.
코드의 원하는 페이로드 크기 k 에 따라서 카피본들의 수가 계산되는 카피 및 퍼뮤팅 접근방법에 의해 프로토그래프 B_(m-1) 로부터 레이트 1/m 의 새로운 코드가 구성된다.
펑쳐링을 이용하여 하이브리드 ARQ 어플리케이션에 대한 레이트 호환가능 코드를 생성하는 방법
본 특허 출원은 높은 쓰루풋을 가지는 하이브리드 ARQ 어플리케이션에 적절한 레이트 호환가능 (RC) LDPC 코드의 패밀리를 생성하도록 지시된다. 레이트-호환가능 코드들은, 더 고 레이트 코드로부터의 코드워드 비트들이 더 저 레이트 코드들에 내장된 상이한 레이트들을 가지는 집합 코드 (nested code) 들의 패밀리이고, 따라서, 단일 인코더/디코더 쌍을 이용하여 인코딩될 수 있다. 즉, 소정의 레이트를 가지는 코드의 코드워드의 모든 비트는 임의의 다 저 레이트 코드의 코드워드들 중 하나에 나타난다. 고도의 플렉시빌리티를 가지는 원하는 쓰루풋 효율을 달성하기 위해 포워드 에러 정정을 통한 자동 반복 요청 (ARQ/FEC) 와 같은 재송신 요청을 허용하는 패킷 데이터 시스템에서의 특정 인터레스트이다.
레이트-호환 코딩이 어떻게 작동하는지에 대한 일반적인 설명이 후술된다. i) 초기에, 송신기 (2608) 는 고 레이트 코드로부터의 코드워드를 노이지 채널을 통해서 전송한다 (즉, 송신기 (2608) 는 이 채널을 통해서 전송된 비트들의 수를 최소화하기 위해 시도함). ii) 수신된 훼손 코드워드가 주어지고, 수신기 (2610) 는 디코딩 (에러 정정 및 에러 검출) 을 수행하도록 시도한다. 수신기 (2610) 가 에러를 정정하고 원래 메시지를 회복하는 문제를 가지는 경우, 코드워드가 에러로부터 정보를 보호하기 위한 충분한 리던던시를 가지지 않고, 그 정보를 회복하도록 돕는 추가적인 비트를 요청하고 있다는 것을 송신기 (2608) 에 알려주는 피드백 메시지를 전송한다. 따라서, 피드백 정보에 따르면, 인코더 (552) 는 리던던시의 잉여 비트를 송신하거나 또는 다음 정보 블록으로 진행하거나 임의의 하나를 하도록 결정한다. iii) 송신기 (2608) 가 수신기 (2610) 로부터 요청을 수신하면, 더 저 레이트를 가지는 코드워드를 구성하고, 잉여 리던던시에 대응하는 추가적인 비트들만을 송신한다. RC 코드들의 집합 특성으로 인해, 사전에 전송된 더 고 레이트 코드로부터의 모든 비트들이 재송신될 필요가 없으며, 이러한 사실은, RC 코드를 매우 효율적으로 만든다는 것이 명시된다.
일 실시형태에서, 저 레이트 코드들은 레이트 호환가능 패밀리의 부모 코드들로서 이용된다. 이 방법 및 장치는 도시된 더 고 레이트의 코드들을 구성하기 위해 레이트 호환가능 방식으로 저 레이트 코드들을 펑쳐링하는 단계를 포함한다. 즉, 이 방법 및 장치는 저 레이트 모계 코드들로부터 양호한 고 레이트 코드들을 찾기 위해 레이트-호환가능 펑쳐링 패턴의 새로운 그리고 명백하지 않은 탐색 방법을 포함한다. 레이트-호환가능 코드를 구성하기 위해, 즉, 코드의 레이트를 더 고 레이트로 변경시키기 위해 펑쳐링이 이용되는 경우, 인코더는 코드워드 비트의 서브세트를 펑쳐링 (삭제) 한다. 개시된 장치에서, 인코더 (552) 는 완전한 세트의 패리티 비트를 생성하지만, 몇몇은 송신되지 않고, 즉, 몇몇은 펑쳐링된다. 디코더 (537) 는, 패리티가 펑쳐링되는 곳에 삭제 부분을 삽입하고, 비-펑쳐링된 경우에 디코딩 방법을 수행한다.
종래 기술에서, 저 레이트 구조의 LDPC 코드로부터 더 고 레이트 코드를 획득하기 위한 방법은 더 고 레이트 코드를 획득하기 위해 그래프 (10) 와 시스템 입력 데이터 노드 (20) 를 상호 연결하는 것에 의존하였다. (불규칙적인 LDPC 총체에 대해 제안된) 다른 접근방법은 더 저 레이트 코드를 획득하기 위해 더 고 레이트 코드로부터의 정보 심볼을 제거하는 (null) 것이다. 전술한 사항으로부터, 하이브리드 ARQ 레이트 호환가능 패밀리에서의 모든 코드들이 상이한 레이트들에 걸쳐 동일한 정보 블록 크기를 가질 수도 있기 때문에, 이들 접근방법은 히아브리드 ARQ 어플리케이션에 호환가능한 레이트가 아닐 수도 있다.
AWGN 임계치는, 블록 길이로서의 개념적 전파 디코딩 (Belief Propagation decoding) 하에서 에러 확률이 0 으로 진행할 수 있는 가장 작은 신호 대 잡음비 (SNR) 이며, 채널이 AWGN 채널일 때 반복의 수는 무한한 경향이 있다.
코드들의 레이트 호환가능 패밀리를 생성하는 이 방법의 일 실시형태는 전술한 방법에 의해 강력한 저 레이트 코드들을 디자인하는 것이다. 이 코드들은 레이트 호환가능 패밀리에 대한 부모 코드로서 기능할 것이다. 이 패밀리에서 더 고 레이트 코드들은 리던던시 심볼을 조심스럽게 펑쳐링함으로써 획득될 수도 있다. 패밀리에서 더욱 저 레이트 코드들은 리던던시 노드를 추가시키는 것을 통해서 코드를 확대함으로써 획득된다.
이 특허 출원은 패턴들을 펑쳐링하기 위한 상이한 실시형태들을 개시한다. LDPC 코드를 펑쳐링하는 아이디어는 전체적으로 새로운 것은 아니지만, 레이트 호환가능 방식에서 LDPC 구조의 코드를 펑쳐링하는 것은 종래 기술에 걸친 이 특허 출원의 하나의 이점이다. 또한, 종래 기술에 개시된 불규칙한 총체로부터 LDPC 코드를 펑쳐링하는 것은 LDPC 구조의 코드에 대해 직접적으로 공급되지 않을 수도 있다. 이는, 그래프 (10) 에서 다른 펑쳐링된 노드들의 존재가 고려되지 않는 다는 사실 때문이다.
또한, 소정의 디그리 분포를 가지는 불규칙적인 총체에 대한 펑쳐링 패턴은 일정한 디그리를 가지고 펑쳐링될 그래프 (10) 에서 가변 노드들 (20) 의 각각의 세트의 일부를 최적화시킴으로써 결정된다. 한편, LDPC 구조의 코드의 대부분의 경우, 비-시스템 비-펑쳐링된 가변 노드 (20) 는 동일한 디그리이다. 또한, 본 특허 출원에서 개발된 펑쳐링 방법은 LDOC 구조화된 코드뿐만 아니라 임의의 LDPC 코드에 적용한다.
프로토그래프 레벨상의 펑쳐링
통상적으로, LDPC 코드를 펑쳐링할 때, LDPC 코드는 레이트 Rp = k/n 이고, k 및 n 은 정보 블록 및 코드워드 각각의 길이이다. 새로운 레이트를 가지는 코드를 생성하기 위해, 코드워드들 내의 비트 (30) 의 서브세트를 펑쳐링하고, 비-펑쳐링된 비트들을 수신기 (2610) 로 전송한다. 디코더 (557) 는 코드워드에서의 펑쳐링된 비트 (30) 의 위치를 알려주는 것으로 가정된다.
LDPC 구조의 코드를 펑쳐링하기 위한 스트레이트-순방향 방법은 프로토그래프 (10) 레벨에서 원하는 가변 노드 (20) 를 펑쳐링하는 것이다. 펑쳐링 패턴은 리프팅된 그래프 (10) 상에서 규칙적이고 상이한 블록 크기에서 동일한 이점을 가질 것이다. 공교롭게도, 프로토그래프 (10) 의 작은 크기로 인해, 단지 한정된 수의 레이트들만이 프로토그래프 (10) 레벨상에서 펑쳐링함으로써 달성가능할 수도 있다. 또한, 축적-반복-체크-축적 (ARCA) 프로토그래프 (10) 를 분석함으로써 나타낼 수도 있고, 이는, 프로토그래프 (10) 레벨상의 펑쳐링이 우수한 코드들의 결과를 취하지 않을 수도 있다.
도 11a 내지 도 11c 는 간단한 레이트 1/2 ARCA 코드에 대한 프로토그래프 (10) 를 나타낸다. 도 11a 에서, 프로토그래프 (10) 가 2 개의 비-펑쳐링된 비-시스템 가변 노드 (V3 & V4) (20) 만을 가지기 때문에, 프로토그래프 (10) 레벨상에서 펑쳐링함으로써 달성가능한 레이트는 2/3 또는 1 의 임의의 하나이다. 기초 1/2 ARCA 코드에 대한 프로토그래프가 도 11a 에 도시된다. 도 11a 에서, 그 내부에 0 을 가지는 사각형 박스로 표시된 체크 노드 (25) C0 는 그 내부에 1 을 가지는 원으로 표현된 펑쳐링된 가변 노드 V1 (20) 를 향하는 더블 에지에 연결된다. 이는, 리프팅된 그래프에서 2 개의 펑쳐링된 가변 노드 (20) 들에 연결되는 것과 동일하다. 또한, 이는, 체크 노드 (25) C1 에 대한 경우이다. 그러나, 체크 노드 (25) C2 는 오직 하나의 펑쳐링된 가변 노드 (20) V1 에 연결된다. (LDPC 코드를 디코딩하기 위해 이용되는) 개념적 전파 (BP) 동등물을 관찰하는 것 그리고 펑쳐링된 가변 노드 (20) 의 신뢰도가 초기에 0 임을 리콜하는 것은 하나 이상의 펑쳐링된 가변 노드 (20) 에 연결된 체크 노드 (25) 로부터 전송된 메시지가 항상 0 일 수도 있다는 것으로 나타난다.
그러나, 체크 노드 (25) 가 오직 하나의 펑쳐링된 가변 노드 (20) V 인 경우, 이 펑쳐링된 가변 노드 (20) 의 신뢰도가 동일한 체크 노드 (25) 에 연결된 다른 가변 노드들 (20) 로부터의 메시지들에 의해 개선된다. 그 결과, 초기의 체크 노드 (25) C0 및 C1 는, 가변 노드 (20) V1 의 신뢰도가 체크 노드 (25) C2 로부터의 메시지에 전송된 정보에 의해 개선될 때까지 어떠한 정보도 전송하지 않을 것이다. 따라서, 반복 메시지 통과가 시작하고 BP 가 동작한다.
그러나, 2/3 의 레이트를 획득하기 위해 그 내부에서 각각 3 개 또는 4 개를 가지는 원으로 표현된 어느 하나의 가변 노드 (20) (V3 또는 V4) 를 펑쳐링하는 것은 체크 노드 (25) C2 로 하여금 도 11b 의 2 개의 펑쳐링된 가변 노드 (20) V1 또는 V3 에 연결되고 또는 도 11c 의 3 개의 가변 노드 V1 및 2 개의 가변 노드 V4 에 연결되게 하는 결과를 초래할 것이다. 도 11b 는 펑쳐링된 가변 노드 (20) V3 를 나타내고, 도 11c 는 펑쳐링된 가변 노드 (20) V4 를 나타낸다. 따라서, 그래프 내의 모든 체크 노드 (25) 는 하나 이상의 펑쳐링된 노드에 연결되고, 체크 노드들로부터 가변 노드 (20) 로 송신된 정보는 항상 0 이고, 반복 메시지 통과가 시작하지 않을 수도 있다. 따라서, 프로토그래프 (10) 레벨상에서 펑쳐링함으로써 규칙적인 펑쳐링은 바람직하지 않을 수도 있다.
규칙적인- 불규칙적인 펑쳐링 방법
프로토그래프 (10) 상에서 규칙적인 펑쳐링을 실행하는 대신에, 리프팅된 그래프 (10) 에서 리던던시 가변 노드 (20) 를 규칙적으로 펑쳐링할 수 있다. 이는, 요구된 레이트의 임의의 패밀리를 선택함으로써 플렉시빌리티를 부여한다. 펑쳐링 패턴은 패밀리의 선행 코드들에 대해 가능한 한 규칙적일 것이다. 더욱 고 레이트에 대해, 이는, 부모 코드에 대해 더욱 불규칙적이고 랜덤으로 된다. C{Rm} 은 레이트 Rm 을 가지는 레이트 호환가능 패밀리의 코드를 나타낸다. 규칙적인-불규칙적인 펑쳐링 방법 (200) 은 도 12 의 플로우차트에 도시된 이하의 단계를 실행한다.
단계 (210) - 원하는 기초 레이트 R0 를 가지는 부모 코드 C{R0} 를 선택, 여기서, C{R0} 는 레이트 R0 를 가지는 코드를 나타낸다.
단계 (220) - 원하는 레이트, R1, R2,...Rp, (Rp>...>R2>R1) 의 세트에서 각각의 레이트 Rm 에 대해, 선행 코드 C{Rm -1} 에서 비-펑쳐링된 리던던시 가변 노드 (20) Vr 의 세트를 찾음, 여기서, C{Rm -1} 는 코드 레이트 Rm - 1 를 가지는 선행 코드를 나타낸다. Rm -1 는 원하는 레이트 Rm 의 코드를 산출하기 위해 펑쳐링될 선행 코드의 레이트이다.
단계 (230) - C{Rm -1} 에서 비-펑쳐링된 리던던시 가변 노드 (20) Vr 의 세트의 카디널리티 (50) 는 rm - 1 이다. (카디널리티 rm -1 (50) 는 C{Rm -1} 에서 비-펑쳐링된 리던던시 가변 노드 (20) Vr 의 세트내의 멤버의 수를 나타내고, 여기서 C{Rm-1} 는 선행 코드를 나타내고, Rm -1 는 원하는 레이트 Rm 의 코드를 산출하기 위해 펑쳐링될 선행 코드의 레이트이다.)
단계 (240) - 수 pm 을 계산, 여기서, pm 은 선행 레이트 Rm - 1 로부터 원하는 레이트 Rm 로 펑쳐링될 가변 노드 (20) 들의 수이다.
pm = Floor(N­(N­C)/Rm - N_tm -1) 식. 2
여기서, Rm 은 원하는 레이트이고, N 및 C 는 각각 리프팅된 (lifted) 그래프에서 가변 노드들 (20) 의 수 및 체크 노드들 (25) 의 수이고, N_tm -1 는 선행 코드 C{Rm -1} 에 대응하는 상기 리프팅된 그래프 (10) 에서 상기 펑쳐링된 가변 노드 (20)들의 전체 수이며, Floor ( ) 는 괄호 내의 수보다 작거나 동일한 가장 큰 정수를 반환시키는 함수인 플로어 함수를 나타낸다.
단계 (250) - 비-펑쳐링된 세트에서 펑쳐링된 패턴이 규칙적이 되도록 알파 (52) 및 베타 (54) 를 계산한다.
단계 (253) - 알파 = Floor[(rm -1-pm)/(pm-1)] 식. 3
단계 (256) - 베타 = rm -1-알파(pm-1)-pm 식. 4
단계 (260) - 카디널리티 (50) rm - 1 의 비-펑쳐링된 세트의 함수 알파 (52) 및 베타 (54) 인 패턴을 펑쳐링한다. 비펑쳐링된 세트상에서 펑쳐링될 이러한 패턴의 일 예시가 후술된다.
[N1{알파 노드들}N2{알파 노드들}...Nm{베타 노드들}] 식. 5
N1, N2,...Np _m 는 카디널리티 rm - 1 의 비-펑쳐링된 리던던시 노드 (20) 의 세트 내의 펑쳐링된 가변 노드 (20) 의 인덱스이다. 즉, 노드 (20) 를 펑쳐링하고, 비-펑쳐링된 알파 노드 (20) 를 남겨둔다. pm 번째 가변 노드 (20) 를 펑쳐링할 때까지 반복될 것이다. 이는, 그 세트의 종료시점에서 비펑쳐링된 베타 노드 (20) 를 남겨둔다.
규칙적인-불규칙적인 펑쳐링 방법이 도 13a 내지 도 13c 에서 증명된다. 도 13a 는 레이트 1/2 의 구성된 축적 반복 체크 축적 (ARCA) 코드에서 비펑쳐링된 리던던시 노드 (20) 를 나타낸다. 도 13b 는 레이트 0.6 코드에 대한 펑쳐링 패턴을 나타낸다.
도 13c 에 도시된 레이트 2/3 코드에 대한 펑쳐링 패턴은 레이트 0.6 코드의 비-펑쳐링된 노드 (20) 에 대해 규칙적이지만, 레이트 0.5 코드의 비-펑쳐링된 노드에 대해서는 불규칙적이다. 이러한 이유로, 반복적인 디코딩이 시작할 때 이들에 연결된 하나보다 적은 펑쳐링된 가변 노드 (20) 를 가지는 몇몇 체크 노드 (25) 가 있다.
랜덤 펑쳐링 방법
사전 실시형태에 도시된 바와 같이, 규칙적인 그리고 불규칙적인 펑쳐링 패턴은 코드의 이상적인 패밀리만을 항상 결과로 초래하지 않을 수도 있다. 펑쳐링된 노드 (20) 가 디코딩 알고리즘의 관점으로부터 삭제 부분으로서 처리되기 때문에, 부모 코드가 AWGN 채널뿐만 아니라 삭제 채널 상에서 우수한 성능을 가지는 것이 바람직하다. 비-펑쳐링된 리던던시 가변 노드 (20) 에서의 랜덤 펑쳐링은 삭제 채널에서 랜덤 노이즈로서 나타날 것이고, 펑쳐링된 가변 노드 (20) 는 코드가 삭제 채널상에서 우수한 성능을 가지는 경우 회복될 것이다. 그러나, 종래 기술에서, 밀도 진화하에서 잘 수행하는, 부모 코드를 펑쳐링하는 것을 통해서 레이트 R>Rc 를 가지는 코드를 찾지 못할 수도 있도록, 코드의 디그리 분포 및 부모 코드의 레이트에 의존하는 컷오프 레이트 Rc 가 존재하는 것을 나타내는 삭제 채널의 분석이 후술된다.
종래 기술의 결함을 극복하기 위해, 이 특허 출원은 고속으로 리프팅된 그래프 (10) 상에서 가장 좋은 랜덤 펑쳐링 패턴에 대해 탐색함으로써 레이트 호환가능 패밀리를 구성하기 위한 방법을 포함하는 일 실시형태를 개시한다. 이 방법은 랜덤 탐색 방법 (300) 으로 지칭되고, 이하의 단계를 포함한다. 이 단계들은 도 14 의 플로우차트에 도시된다.
단계 (310) - 원하는 기초 레이트 R0 를 가지는 '우수한' 코드 C{R0} 로 시작, 즉, 원하는 기초 레이트 R0 를 가지는 부모 코드 C{R0} 를 선택하고, 여기서 C{R0} 는 레이트 R0 를 가지는 코드를 나타낸다.
win_snr 을 랜덤 탐색 방법으로부터 출력된 (위너 (winner)) 코드의 (AWGN 채널에 대한) 임계치 SNR 로 정의한다.
단계 (320) - 원하는 레이트, R1, R2,...Rp, (Rp > ...> R2 >R1 ) 의 세트에서 각각의 Rm 에 대해, SNR 의 초기 값, win_snr 을 무한대로 초기화하고, 여기서, R1, R2,...Rp 는 레이트 호환가능 패밀리에서 레이트들의 세트를 나타낸다.
win_snr = INF (무한대) 식. 6
단계 (330) - C{Rm -1} 에서 비-펑쳐링된 가변 리던던시 노드 (20) Vr 의 세트, T, 를 찾고, 여기서, C{Rm -1} 는 레이트 Rm - 1 를 가지는 코드를 나타낸다. Rm-1 는 새로운 원하는 레이트 Rm 를 생성하기 위해 펑쳐링되는 선행 레이트임을 나타낸다.
단계 (340) - (전술한 불규칙 방법에서와 같이) 레이트 Rm - 1 에서 레이트 Rm 로 펑쳐링될 가변 노드 (20) 들의 수 pm 을 계산한다.
단계 (350) - 비-펑쳐링 리던던시 가변 노드 (20) 의 세트 T 로부터 pm 개의 가변 노드들 (20) V 를 랜덤으로 선택하고, 여기서, pm 은 펑쳐링될 가변 노드 (20) 들의 수이다.
단계 (353) - pm 개의 가변 노드 (20) 를 펑쳐링함으로써 선행 레이트 Rm - 1 로부터의 코드를 구성한다.
단계 (357) - win_snr 과 동일한 신호 대 잡음비 (SNR) 에서 구성된 코드가 무시 가능한 에러를 달성하는지를 테스트하기 위해 밀도 진화를 시행한다.
단계 (359) - 구성된 코드가 win_snr 를 가지는 무시 가능한 에러를 달성하는가?
그렇다면,
단계 (360) - SNR 의 초기화된 값, win_snr 에 대해 -INF 의 SNR 범위에 걸쳐서 재구성된 코드의 신규 AWGN SNR 임계치 ([0091] 단락 참조) 에 대해 반복적으로 탐색한다. 일 실시형태에서, 테스트 SNR 을 선택하고, 테스트 SNR 이 밀도 진화 하에서 0 에러 확률을 달성하는지를 확인하기 위해, SNR 범위를 반복적으로 이분함으로써 수행된다. 이 프로세스는 SNR 에서의 원하는 정확도가 달성될 때까지 반복된다. win_snr 은 0 에러를 달성하는 이 코드의 임계치로 리셋된다. (win_snr 의 신규 값이 더 오래된 값보다 작은 것을 관찰할 수 있다.)
단계 (365) - 재구성된 코드를 위너 코드로서 설정한다.
단계 (367) - win_snr = 신규 임계치 식. 7
단계 (370) - 코드가 win_snr 을 가지는 무시 가능한 에러를 달성하지 못하는 경우, 즉, 단계 (359) 에서 그렇지 않음으로 되어, 단계 (372) 로 건너뛴다.
단계 (372) - 단계 (350) 으로 반환됨으로써 반복의 최대수가 될 때까지 랜덤 탐색 방법을 반복한다. 반복의 최대수는 가능한 리소스를 산정함으로써 결정된다. 일 구현에서, 반복의 최대수는 5 이다.
전술한 바와 같이, 랜덤 탐색 방법은, 디자인 레이트 R_{m-1} 에서 가장 좋은 코드를 찾은 후 각각의 디자인 레이트 R_m 에서 가장 좋은 코드에 대해 탐색하는 그리디 (greedy) 방법이다.
순차 노드 펑쳐링 방법 (400)
다른 실시형태는 순차적인 노드로 펑쳐링 (400) 을 이용한다. 순차적인 노드로 펑쳐링 (400) 을 통해서, 특정 디자인 레이트에 대해, 이하의 펑쳐링 패턴을 순차적으로 선택한다.
조건 A - 오직 하나의 펑쳐링된 가변 노드 (20) 에만 연결된 그래프 (10) 에서 체크 노드 (25) C 의 수를 최대화하고,
조건 B - 각각의 체크 노드 (25) 에 연결된 펑쳐링된 가변 노드 (20) 의 평균 수를 최소화하고, 그리고,
조건 C - 오직 하나의 펑쳐링된 가변 노드 (20) 에만 연결된 체크 노드 (25) 및 다른 펑쳐링 가변 노드 (20) 사이의 커넥티비티를 최대화한다.
이 방법 및 장치는 비-펑쳐링된 가변 노드 (20) 의 세트로부터 가변 노드 (20) 를 펑쳐링하고, 이 가변 노드 (20) 는 오직 하나의 펑쳐링된 가변 노드 (20) 에 차례로 연결된 체크 노드 (25) 의 최소수에 연결된다. 하나 이상의 이러한 가변 노드 (20) 가 존재하는 경우, 그 이웃 체크 노드 (25) 에 연결된 펑쳐링된 가변 노드 (20) 의 최소수를 가지는 세트로부터 가변 노드 (20) 를 펑쳐링한다. 하나 이상의 이러한 가변 노드 (20) 가 존재하는 경우, 하나의 가변 노드 (20) 를 랜덤으로 선택한다. 다른 펑쳐링 패턴을 가지지만 동일한 원하는 레이트의 다른 코드를 획득하기 위해 전체적인 프로세스가 반복될 수 있다. 그 후, 가장 높은 펑쳐링 스코어를 가지는 코드가 선택된다.
펑쳐링 노드 (20) 를 가지는 태너 그래프의 펑쳐링 스코어는 하나의 펑쳐링된 가변 노드 (20) 를 가지는 체크 노드 (25) 가 펑쳐링된 가변 노드 (20) 에 차례로 연결된 다른 체크 노드 (25) 에 얼마나 잘 연결되어 있는지를 나타내는 척도이다.
순차적인 노드로 펑쳐링의 일 이점은, 특정 레이트에 대한 펑쳐링 패턴을 할당하여 이 코드의 그 이상의 펑쳐링이 우수한 더 고 레이트 코드를 결과로 초래한다는 것이다. 디자인된 코드는, 전체 패밀리 범위에 걸친 우수한 AWGN 및 삭제 임계치뿐만 아니라 우수한 에러 플로어를 가질 것이다. 이는, 패밀리 내의 더욱 고 레이트 코드에 대해서는 특히 사실이다.
조건 A 하에서의 추론은 연결된 오직 하나의 펑쳐링된 가변 노드 (20) 를 가지는 (1 보다 큰 디그리의) 체크 노드 (25) 는 단일 펑쳐링된 가변 노드 (20) 에 0 이 아닌 정보를 송신할 것이고, 이 단일 펑쳐링된 가변 노드 (20) 는 에러로부터 회복할 수도 있다. 연결된 오직 하나의 펑쳐링된 가변 노드 (20) 를 가지는 체크 노드 (25) 의 수를 최대화하는 것은 체크 노드 (25) 에 연결된 큰 수의 펑쳐링된 노드 (20) 를 가지는 몇몇 다른 체크 노드 (25) 를 초래할 수 있다. 연결된 하나 이상의 펑쳐링된 가변 노드 (20) 를 가지는 체크 노드 (25) 는, 이들 펑쳐링된 가변 노드 (20) 중 한 개만 빼고 모두가 다른 체크 노드 (25) 로부터 통과하는 메시지에 의해 회복되지 않는 한, 모든 펑쳐링된 가변 노드 (20) 에 0 정보를 송신할 것이다. 따라서, 임의의 체크 노드 (25) 에 연결된 펑쳐링된 가변 노드 (20) 의 최대 수를 최소화하는 것이 바람직하고, 이는, 조건 B 를 함축한다. 또한, 펑쳐링된 가변 노드 (20) 들을 가지지 않는 체크 노드 (25) 또는 체크 노드 (25) 에 연결된 오직 하나의 펑쳐링된 가변 노드 (20) 는 하나 보다 많은 펑쳐링된 가변 노드 (20) 를 가지는 다른 체크 노드 (25) 에 대한 높은 접속성을 가지는 것이 바람직하다는 것을 함축하고 있고, 이는 조건 C 이다.
순차적인 노드로 펑쳐링 방법 (400) 을 이용할 때 실행되는 단계가 후술된다. 이 단계들은 도 15 의 플로우차트에서 설명된다.
단계 (410) - 원하는 레이트의 세트에서 각각의 원하는 레이트 Rm 에 대해, 카디널리티 (50) rm - 1 의 비-펑쳐링된 리던던시 가면 노드 (20) 의 세트 T 로부터의 pm 가변 노드 (20) 들을 순차적으로 펑쳐링함으로써 C{Rm -1} 로부터 C{Rm} 를 획득하고, 여기서 n 은 코드워드의 길이이고, pm -1 은 선행 그래프 (10) 에서 펑쳐링된 가변 노드 (20) 들의 전체 수이다. 또한, C{Rm} 는 레이트 Rm 를 가지는 코드를 나타내고, C{Rm -1} 는 레이트 Rm - 1 를 가지는 코드를 나타내며, Rm -1 는 새로운 원하는 레이트 Rm 를 생성하기 위해 펑쳐링되는 선행 레이트임을 나타낸다.
단계 (420) - 초기화
단계 (422) - (리던던시 가변 노드 (20) 에 연결된) 각각의 체크 노드 (25) 에 대해, F(C) = 체크 노드 (25) 에 연결된 펑쳐링된 리던던시 가변 노드 (20) 들의 수를 계산한다. (F(C)= 1 은 체크 노드 (25) 가 오직 하나의 펑쳐링된 가변노드 (20) 에만 연결된다는 것을 의미한다).
단계 (424) - 비-펑쳐링된 리던던시 가변 노드 (20) 의 세트 R 를 찾는다.
단계 (426) - 각각의 비-펑쳐링된 리던던시 가변 노드 (20) 에 대해, G(Vr) 는 F(C)=1 을 가지는 비-펑쳐링된 리던던시 가변 노드 (20) 에 대한 이웃 체크 노드 (25) 의 수, 즉, 비-펑쳐링된 리던던시 가변 노드 (20) 에 연결된 체크 노드 (25) 의 수이며, 여기서, 체크 노드 (25) 는 오직 하나의 펑쳐링된 리던던시 가변 노드 (20) 에 연결된다. 그리고,
단계 (428) - 각각의 비-펑쳐링된 리던던시 가변 노드 (20) 에 대해,
H(Vr) = Sum [F(C)|C는 Vr 의 이웃임] 식. 8
즉, H(Vr) 는 체크 노드 (25) 에 연결된 펑쳐링된 기던던시 가변 노드 (20) 의 수의 합계이고, 체크 노드 (25) 는 비-펑쳐링된 리던던시 가변 노드 (20) 에 연결된다.
단계 (430) - 펑쳐링된 가변 노드 (20) 를 찾음으로써 펑쳐링하고, p<pm (즉, 이 단계에서의 펑쳐링된 가변 노드 (20) 의 수 p < 원하는 레이트에 대한 펑쳐링된 가변 노드 (20) 의 수 pm) 이고, 이하의 단계를 포함한다:.
단계 (432) - T={Vr in R |G(Vr) = min[G(Vr)} 식.9
를 찾는다.
즉, 오직 하나의 비-펑쳐링된 가변 노드 (20) 에 연결된 이웃하는 체크 노드 (25) 의 수가 최소인 비-펑쳐링된 가변 노드 (20) R 의 세트에서 비-펑쳐링된 가변 노드 (20) 의 세트 T 를 찾는다.
단계 (434) - |T|=1 인 경우, Vp = T 이다. 식. 10
즉, 오직 하나의 비-펑쳐링 리던던트 가변 노드 (20) 가 G(Vr) 의 최소값을 가지는 경우, 단계 4a 에서 찾아진 세트 T 의 크기는 1 이고, 세트 T 에서 발견된 단일 가변 노드 (20) 가 되는 이 단계에서 펑쳐링될 가변 노드 (20) 를 설정한다.
단계 (435) - |T|>1 인 경우, 단계 (436 내지 439) 를 실행한다. 식. 11
즉, 단계 (432) 에서 발견된 세트 T 에서 하나 이상의 가변 노드 (20) 가 있는 경우, 단계 (436 내지 439) 를 실행한다.
단계 (436) - U={Vr in T|H(Vr) = min[H(Vr)|Vr in T} 식. 12
을 찾는다.
즉, 단계 (432) 에서 발견된, 세트 T 에서 비-펑쳐링된 가변 노드 (20) 의 서브세트 U 를 찾고, 여기서, 비-펑쳐링된 가변 노드 (20) 에 연결된 체크 노드 (25) 에 연결된 펑쳐링된 가변 노드 (20) 의 수의 합계는 최소이다.
단계 (437) - |U|=1 인 경우, Vp = U 식. 13
즉, 단계 (436) 에서 발견된 서브세트 U 의 크기가 1 인 경우, 세트 U 에서 펑쳐링된 가변 노드 (20) 를 단일 가변 노드 (20) 로 설정한다.
단계 (438) - |U|>1 인 경우, U 로부터 랜덤으로 Vp 선택 식. 14
즉, 단계 (436) 에서 발견된 세트 U 의 크기가 1 보다 큰 경우, 단계 (436) 로부터 서브세트 U 에서 비-펑쳐링된 가변 노드 (20) 로부터 펑쳐링될 가변 노드 (20) 를 랜덤으로 선택한다.
단계 (439) - 선택된 가변 노드 (20) 를 펑쳐링하고, 비-펑쳐링된 가변 노드 (20) R 의 세트로부터 선택되고 펑쳐링된 가변 노드 (20) 를 제거한다.
단계 (440) - 단계 (442 및 444) 를 수행함으로써 함수들을 업데이트한다.
단계 (442) - 펑쳐링된 가변 노드 (20) 에 이웃하는 각각의 체크 노드 (25) 에 대해, F(C) 를 업데이트, 여기서, F(C) 는 체크 노드 (25) 에 연결된 펑쳐링된 리던던시 가변 노드 (20) 의 수와 동일하다.
단계 (444) - 체크 노드 (25) 에 이웃하는 각각의 가변 노드 (20) 에 대해, G(Vr) 및 H(Vr) 를 업데이트, 여기서, G(Vr) = 비-펑쳐링된 리던던시 가변 노드 (20) 에 연결된 체크 노드 (25) 의 수이고, 여기서 체크 노드 (25) C 는 오직 하나의 펑쳐링된 가변 노드 (20) 에만 연결되고, H(Vr) = 체크 노드 (25) 에 연결된 펑쳐링된 리던던시 가변 노드 (20) 의 합계이고, 여기서, 체크 노드 (25) 는 비-펑쳐링된 리던던시 가변 노드 (20) 에 연결된다.
단계 (446) - p=p+1 식. 15
즉, 다음 반복으로 진행한다. 펑쳐링될 다음 노드를 찾는다. p=pm 일 때 반복은 중지, 즉, 이 레이트에서 펑쳐링될 모든 노드들이 펑쳐링되었다.
순차적인 노드로 펑쳐링 방법에서의 단계는 가변 노드 (20) 가 이에 접속되는 체크 노드 (25) 의 가장 작은 수로 펑쳐링되는 조건 A 및 조건 B 를 구현하고, 여기서 체크 노드 (25) 는 하나의 펑쳐링된 가변 노드 (20) 에 연결된다. 이는, 이 가변 노드 (20) 를 펑쳐링하는 것은 2 개의 펑쳐링된 가변 노드 (20) 에 연결되는 체크 노드 (25) 를 결과로 초래할 것이라는 사실로 인한 것이다. 하나 이상의 이러한 가변 노드 (20) 가 존재하는 경우, 이 가변 노드 (20) 로부터 확장된 지지 트리의 제 2 레벨에서 펑쳐링된 가변 노드 (20) 의 가장 작은 수를 가지는 가변 노드 (20) 를 선택한다. 이는, 조건 B 를 구현하는 효율적인 방법이다. 대부분의 실시형태에서, 선택될 펑쳐링을 위한 하나 이상의 후보 가변 노드 (20) 가 있다, 즉, |U|=1 이다. 전술한 순차적인 노드로 펑쳐링 방법에서, 펑쳐링될 가변 노드 (20) 는 이 세트에서 랜덤으로 선택된다.
다음으로, 체크 노드 (25) 의 지지 트리의 2 개의 레벨 확대에 의해 도달된 체크 노드 (25) 에 연결된 펑쳐링된 가변 노드 (20) 의 합계가 되는 체크 노드 (25) 의 펑쳐링 스코어, S(C) 를 정의하고, 이는 이하와 같이 계산된다.
S(C)=Sum[F(C') | 체크 노드 25 (C') 는 가변 노드 (20) V 의 이웃이고, 가변 노드 (20) V 는 체크 노드 (25) C 의 이웃이다].
그래프 (10) g 의 펑쳐링 스코어 Sg 는 펑쳐링된 이웃 가변 노드 (20) 의 오직 하나만을 가지는 모든 체크 노드 (25) 의 펑쳐링 스코어의 합계이다.
Sg=Sum[S(C)|C in g&F(C)=1] 식. 17
펑쳐링 스코어는, 하나의 펑쳐링된 가변 노드 (20) 를 가지는 체크 노드 (25) 가 펑쳐링된 가변 노드 (20) 를 가지는 다른 체크 노드 (25) 에 얼마나 잘 연결되어있는지를 측정하기 위한 근사치이고 효율적인 방법이다. 따라서, 순차적인 노드로 펑쳐링 방법 (400) 은 조건 C 를 구현하기 위해 이하에 리스팅된 후술하는 단계를 실행함으로써 변형된다.
순차적인 노드로 펑쳐링 방법 (외부 루프)
단계 (450) - 단계 (452 내지 459) 를 실행함으로써 오직 하나의 펑쳐링된 가변 노드 (20) 를 가지는 체크 노드와 다른 펑쳐링된 가변 노드 (20) 사이의 커넥티비티를 최대화시킨다.
단계 (452) - 초기화 : Sg,0 = 0, t=1 식. 18
즉, 그래프 (10) g 의 펑쳐링 스코어 Sg 를 제 1 반복, t=1 에서 0 으로 초기화한다.
(t<최대_반복) 하는 동안,
단계 (454) - 랜덤 시드를 변경한다.
단계 (456) - 원하는 펑쳐링 코드 Ct{Rm} 을 획득하기 위해 코드 C{Rm -1} 의 순차적인 노드로 펑쳐링 방법 (400) 을 시행하고, 여기서 C{Rm -1} 는 선행 레이트에 대한 코드이다.
단계 (458) - 원하는 펑쳐링된 코드 Ct{Rm} 와 관련된 그래프 (10) 의 펑쳐링 스코어, Sg, t 를 계산한다.
단계 (459) - Sg,t >Sg,t- 1 인 경우, C{Rm} 를 Ct{Rm} 로 설정한다. 식. 19
(가장 큰 펑쳐링 스코어를 가지는 펑쳐링 패턴을 선택한다), 즉, 원하는 펑쳐링 코드 Ct{Rm} 와 관련된 그래프 (10) 의 펑쳐링 스코어가 반복 t-1 에서 선행 그래프 (10) 의 펑쳐링 스코어보다 큰 경우, 가장 큰 펑쳐링 스코어를 가지는 펑쳐링 패턴을 선택한다.
단계 (460) - t=t+1 식. 20
즉, 다음 반복으로 진행한다.
도 16 은 인코더 (552), 디코더 (557) 및 통신 채널 (556) 을 포함하는 시스템 (550) 을 도시한다. 인코더 (552) 는 코드워드 X 를 산출하기 위해 입력 데이터 A 를 프로세싱하는 인코딩 회로 (553) 를 포함한다. 코드워드 X 는, 에러 검출 및/또는 정정의 목적을 위해, 몇몇 리던던시를 포함한다. 코드워드 X 는 통신 채널 (556) 에 걸쳐서 송신될 수도 있다. 통신 채널 (556) 에 의해 발생된 왜곡의 결과로서, 송신된 코드워드의 일부가 분실되거나 또는 오류가 발생할 수도 있다. 디코더의 관점에서, 펑쳐링된 비트 (30) 는 분실된 것으로 파악될 수도 있다.
수신기에서, 소프트 비트 (30) 는 분실되거나 펑쳐링된 비트 (30) 의 위치를 차지하기 위해 수신된 워드로 삽입된다. 삽입된 삭제 부분은 송신중에 분실된 비트 (30) 를 나타낸다.
디코더 (557) 는 수신된 워드 Y 로부터 완전한 코드워드 X 를 복구하도록 시도하고, 그 후, 복구된 코드워드 X 로부터 데이터 A 를 산출하기 위해 데이터 디코딩 동작을 수행한다.
디코더 (557) 는 수신된 워드 Y 로부터 완전한 코드워드 X 를 복구시키기 위한 채널 디코더 (558) 를 포함한다. 또한, 복구된 코드워드 X 로부터 원래의 입력 데이터 A 를 산출하기 위해 코드워드에 포함된 리던던트 정보를 제거하기 위한 데이터 디코더 (559) 를 포함한다.
LDPC 코딩과 관련되어 생성된 수신 워드는 원래의 코드워드의 복구된 버전을 생성시키기 위해 에러 정정 및 검출 동작과 같은 LDOC 디코딩 동작을 수행함으로써 프로세싱될 수 있다는 것이 명시된다. 그 후, 복구된 코드워드에는 코딩된 원래의 데이터를 회복시키기 위해 데이터 디코딩이 수행될 수 있다. 데이터 디코딩 프로세스는 복구된 코드워드로부터의 비트 (30) 의 특정 서브세트를 간단하게 선택하는 것일 수도 있다. 도 5, 도 12, 도 14, 도 15a 및 도 15b 에 도시된 단계들은 인코더 (552) 내의 메모리 (45) 에 위치된 소프트웨어 또는 펌웨어 (42) 의 형태로 명령으로서 저장될 수도 있다. 이러한 명령들은 인코딩 회로 (553) 에 의해 실행될 수도 있다. 도 5, 도 12, 도 14, 도 15a 및 도 15b 에 도시된 단계들은 디코더 (557) 내의 메모리 (46) 에 위치된 소프트웨어 또는 펌웨어 (43) 의 형태로 명령으로서 저장될 수도 있다. 이러한 명령들은 채널 디코더 (558) 에 의해 실행될 수도 있다.
도 17 은 AT (106) 의 일 실시형태를 도시하는 기능 블록도이다. AT (106) 는 AT (106) 의 동작을 제어하는 프로세서 (2602) 를 포함한다. 프로세서 (2602) 는 또한 CPU 로서 지칭될 수도 있다. ROM (read-only memory) 및 RAM (random access memory) 모두를 포함할 수도 있는 메모리 (2605) 는 명령 및 데이터를 프로세서 (2602) 에 제공한다. 메모리 (2605) 의 일부는 비휘발성 랜덤 액세스 메모리 (NVRAM) 를 포함할 수도 있다. 도 5, 도 12, 도 14, 도 15a 및 도 15b 에 도시된 단계들은 메모리 (2605) 에 위치된 소프트웨어 또는 펌웨어 (42) 의 형태로 명령으로서 저장될 수도 있다. 이러한 명령은 프로세서 (2602) 에 의해 실행될 수도 있다.
셀룰러 폰과 같은 무선 통신 디바이스에 내장될 수도 있는 AT (106) 는 AT (2606) 와 AN (122) 와 같은 원격 위치 사이의 무선 통신과 같은 데이터의 송신 및 수신을 허용하기 위해 송신기 (2608) 및 수신기 (2610) 를 포함하는 하우징 (2607) 을 포함할 수도 있다. 송신기 (2608) 및 수신기 (2610) 는 트랜시버 (2612) 로 조합될 수도 있다. 안테나 (2614) 는 하우징 (2607) 에 부착되고 트랜시버 (2612) 에 전기적으로 연결된다. 추가적인 안테나 (미도시) 가 이용될 수도 있다. 송신기 (2608), 수신기 (2610) 및 안테나 (2614) 의 동작은 당업계에 잘 공지되어 있고, 본 명세서에 설명될 필요가 없다.
또한, AT (106) 는 트랜시버 (2612) 에 의해 수신된 신호의 레벨을 검출하고 그 양을 정하기 위해 이용된 신호 검출기 (2616) 를 포함한다. 당업계에 알려진 바와 같이, 신호 검출기 (2616) 는 전체 에너지, 의사잡음 (PN) 칩 마다의 파일럿 에너지, 전력 스펙트럼 밀도, 및 다른 신호와 같은 신호를 검출한다.
AT (106) 의 상태 변경기 (2626) 는 트랜시버 (2612) 에 의해 수신되고 신호 검출기 (2616) 에 의해 검출된 현재 상태 및 추가적인 신호에 기초하여 무선 통신 디바이스의 상태를 제어한다. 무선 통신 디바이스는 수많은 상태 중 임의의 하나의 상태에서 동작할 수 있다.
또한, AT (106) 는 무선 통신 디바이스를 제어하고, 무선 통신 디바이스가 현재의 서비스 제공 시스템을 결정할 때 전송해야만 하는 서비스 제공 시스템이 부적절한지의 여부를 결정하기 위해 이용되는 시스템 결정기 (2628) 를 포함한다.
AT(106) 의 다양한 컴포넌트들이 전력 버스, 제어 신호 버스, 및 상태 신호 버스뿐만 아니라 데이터 버스를 포함할 수도 있는 버스 시스템 (2630) 에 의해 함께 연결된다. 그러나, 명백함을 위해, 다양한 버스들이 버스 시스템 (2630) 로서 도 7 에 도시된다. 또한, AT (106) 은 프로세싱 신호에 이용되는 디지털 신호 프로세서 (DSP; 2609) 를 포함할 수도 있다. 도 7 에 도시된 AT(106) 은 특정 컴포넌트의 리스팅 이외의 기능 블록도인 것이 당업자에게는 명백하다.
도시된 도 5a 의 방법 및 장치는 도 18a 에 도시된 수단 플러스 기능 블록에 대응시킴으로써 수행된다. 즉, 도 5a 의 단계 (90, 91, 92, 93, 94, 95 및 96) 는 도 18a 의 수단 플러스 기능 블록 (1090, 1091, 1092, 1093, 1094, 1095 및 1096) 에 대응한다.
전술한 도 5b 의 방법 및 장치는 도 18b 에 도시된 수단 플러스 기능 블록을 대응시킴으로써 수행된다. 즉, 도 5b 의 단계 (100, 110, 120, 125, 130 및 140) 는 도 18b 의 수단 플러스 기능 블록 (1100, 1110, 1120, 1125, 1130 및 1140) 에 대응한다.
전술한 도 12 의 방법 및 장치는 도 19 에 도시된 수단 플러스 기능 블록에 대응시킴으로써 수행된다. 즉, 도 12 의 단계 (200, 210, 220, 240, 250, 253, 256 및 260) 는 도 19 의 수단 플러스 기능 블록 (1200, 1210, 1220, 1240, 1250, 1253, 1256 및 1260) 에 대응한다.
전술한 도 14 의 방법 및 장치는 도 20 에 도시된 수단 플러스 기능 블록에 대응시킴으로써 수행된다. 즉, 도 14 의 단계 (300, 310, 320, 330, 340, 350, 353, 357, 359, 360, 365, 367 및 372) 는 도 20 의 수단 플러스 기능 블록 (1300, 1310, 1320, 1330, 1340, 1350, 1353, 1357, 1359, 1360, 1365, 1367 및 1372) 에 대응한다.
전술한 도 15a 의 방법 및 장치는 도 21 에 도시된 수단 플러스 기능 블록에 대응시킴으로써 수행된다. 즉, 도 15a 의 단계 (400, 410, 420, 422, 424, 426, 428, 430, 432, 434, 435, 436, 437, 438, 439, 440, 442, 444, 446 및 450) 는 도 21 의 수단 플러스 기능 블록 (1400, 1410, 1420, 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1442, 1444, 1446 및 1450) 에 대응한다.
전술한 도 15b 의 방법 및 장치는 도 22 에 도시된 수단 플러스 기능 블록에 대응시킴으로써 수행된다. 즉, 도 15b 의 단계 (452, 454, 456, 458, 459 및 460) 는 도 22 의 수단 플러스 기능 블록 (1452, 1454, 1456, 1458, 1459 및 1460) 에 대응한다.
당업자는 설명 전반에 걸쳐 참조될 수도 있는 데이터, 명령, 커맨드 (commands), 정보, 신호, 비트, 심볼, 및 칩은 전압, 전류, 전자기파, 자계 또는 자성 입자, 광계 또는 광자, 또는 이들의 임의의 조합으로 나타낼 수도 있다는 것을 이해한다. 또한, 당업자는 여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들을 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로 구현할 수도 있음을 알 수 있다. 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들을 주로 그들의 기능의 관점에서 상술하였다. 그러한 기능이 하드웨어로 구현될지 소프트웨어로 구현될지는 전체 시스템에 부과된 특정한 애플리케이션 및 디자인 제약조건들에 의존한다. 당업자는 설명된 기능을 각각의 특정한 애플리케이션에 대하여 다양한 방식으로 구현할 수도 있지만, 그러한 구현의 결정이 본 발명의 범위를 벗어나도록 하는 것으로 해석하지는 않아야 한다. 예를 들어, 여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들은 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 기타 프로그래머블 로직 디바이스, 별도의 게이트 또는 트랜지스터 로직, 예를 들어, 레지스터 및 FIFO 와 같은 별도의 하드웨어 컴포넌트들, 펌웨어 명령의 세트를 실행하는 프로세서, 임의의 종래 프로그래머블 소프트웨어 모듈 및 프로세서 또는 여기서 설명된 기능을 수행하도록 디자인된 이들의 임의의 결합으로 구현 또는 수행될 수도 있다. 프로세서는 마이크로프로세서일 수도 있지만, 다른 방법으로, 그 프로세서는 임의의 종래 프로세서, 제어기, 마이크로제어기, 프로그래머블 로직 디바이스, 로직 엘리먼트의 어레이, 또는 상태 머신일 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수도 있다. ASIC 는 전화기 또는 다른 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 전화기 또는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다. 프로세서는 DSP 및 마이크로프로세서의 결합, 또는 DSP 코어와 결합된 2 개의 마이크로프로세서들 등으로 구현될 수도 있다.
본 발명의 바람직한 실시형태가 나타나고 설명되어 있다. 그러나, 당업자는 수많은 변경이 본 발명의 취지 또는 범위를 벗어나지 않고 본 명세서에 개시된 실시형태들로 이루어질 수도 있다는 것을 이해한다. 따라서, 본 발명은 이하의 특허청구범위를 제외하고 제한되지 않는다.

Claims (12)

  1. 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 방법으로서,
    복수의 펑쳐링된 코드들을 구성하기 위해 코드워드 (codeword) 비트들의 서브세트를 펑쳐링 (puncturing) 하는 단계; 및
    랜덤 펑쳐링 및 신호-대-잡음비 (SNR) 임계치의 결정을 반복함으로써 상기 복수의 펑쳐링된 코드들 중 하나 이상을 위너 (winner) 코드로 설정하는 단계를 포함하고,
    상기 코드워드 비트들의 서브세트를 펑쳐링하는 단계는, 가변 노드들을 랜덤으로 펑쳐링하는 단계를 포함하며,
    상기 복수의 펑쳐링된 코드들 중 하나 이상을 위너 코드로 설정하는 단계는, 상기 코드워드 비트들의 상기 서브세트를 랜덤으로 탐색하는 단계를 포함하고,
    상기 랜덤으로 탐색하는 단계는:
    i) 원하는 기초 레이트를 가지는 부모 코드를 선택하는 단계;
    ii) 원하는 레이트들의 세트내의 각각의 원하는 레이트에 대한 제 1 신호-대-잡음비 임계치를 초기화시키는 단계;
    iii) 선행 레이트를 가지는 선행 코드에서 비-펑쳐링된 가변 노드들의 세트를 찾는 단계;
    iv) 상기 선행 레이트에서 원하는 레이트로 진행하기 위해 펑쳐링될 가변 노드들의 수를 계산하는 단계;
    v) 상기 비-펑쳐링된 가변 노드들의 세트로부터 상기 펑쳐링될 가변 노드들의 수를 랜덤으로 선택하는 단계;
    vi) 상기 선택된 수의 가변 노드들을 펑쳐링함으로써 상기 선행 레이트로부터 코드를 구성하는 단계;
    vii) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 제 1 에러를 달성하는지를 테스트하기 위해 밀도 진화 (density evolution) 를 시행하는 단계;
    viii) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 상기 제 1 에러를 달성하는 경우, 상기 제 1 신호-대-잡음비 임계치보다 낮은, 상기 구성된 코드의 새로운 신호-대-잡음비 임계치를 반복적으로 탐색하고, 상기 구성된 코드를 상기 위너 코드로서 설정하며, 상기 제 1 신호-대-잡음비 임계치를 상기 새로운 신호-대-잡음비 임계치와 동일하게 설정하는 단계; 및
    ix) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 상기 제 1 에러를 달성하지 않는 경우, 상기 단계 v) 내지 상기 단계 vii) 를 반복함으로써 상기 랜덤으로 탐색하는 단계를 반복하는 단계를 포함하는, 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 구성된 코드의 새로운 신호-대-잡음비 임계치를 반복적으로 탐색하는 단계는:
    a) 테스트 신호-대-잡음비를 선택하기 위해 범위를 반복적으로 이분하는 (bisecting) 하는 단계;
    b) 상기 밀도 진화 하에서, 상기 테스트 신호-대-잡음비가 제로 (zero) 에러 확률을 달성하는지를 판별하는 단계; 및
    c) 상기 테스트 신호-대-잡음비에서 원하는 정확도가 달성될 때까지 상기 단계 a) 및 단계 b) 를 반복하는 단계를 포함하는, 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 방법.
  4. 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 수단으로서,
    복수의 펑쳐링된 코드들을 구성하기 위해 코드워드 (codeword) 비트들의 서브세트를 펑쳐링 (puncturing) 하는 수단; 및
    랜덤 펑쳐링 및 신호-대-잡음비 (SNR) 임계치의 결정을 반복함으로써 상기 복수의 펑쳐링된 코드들 중 하나 이상을 위너 (winner) 코드로 설정하는 수단을 포함하고,
    상기 코드워드 비트들의 서브세트를 펑쳐링하는 수단은, 가변 노드들을 랜덤으로 펑쳐링하는 수단을 포함하며,
    상기 복수의 펑쳐링된 코드들 중 하나 이상을 위너 (winner) 코드로 설정하는 수단은, 상기 코드워드 비트들의 상기 서브세트를 랜덤으로 탐색하는 수단을 포함하고,
    상기 랜덤으로 탐색하는 수단은:
    i) 원하는 기초 레이트를 가지는 부모 코드를 선택하는 수단;
    ii) 원하는 레이트들의 세트내의 각각의 원하는 레이트에 대한 제 1 신호-대-잡음비 임계치를 초기화시키는 수단;
    iii) 선행 레이트를 가지는 선행 코드에서 비-펑쳐링된 가변 노드들의 세트를 찾는 수단;
    iv) 상기 선행 레이트에서 원하는 레이트로 진행하기 위해 펑쳐링될 가변 노드들의 수를 계산하는 수단;
    v) 상기 비-펑쳐링된 가변 노드들의 상기 세트로부터 상기 펑쳐링될 가변 노드들의 수를 랜덤으로 선택하는 단계;
    vi) 상기 선택된 가변 노드들의 수를 펑쳐링함으로써 상기 선행 레이트로부터 코드를 구성하는 수단;
    vii) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 제 1 에러를 달성하는지를 테스트하기 위해 밀도 진화 (density evolution) 를 시행하는 수단;
    viii) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 상기 제 1 에러를 달성하는 경우, 상기 제 1 신호-대-잡음비 임계치보다 낮은, 상기 구성된 코드의 새로운 신호-대-잡음비 임계치를 반복적으로 탐색하고, 상기 구성된 코드를 상기 위너 코드로서 설정하며, 상기 제 1 신호-대-잡음비 임계치를 상기 새로운 신호-대-잡음비 임계치와 동일하게 설정하는 수단; 및
    ix) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 상기 제 1 에러를 달성하지 않는 경우, 상기 수단 v) 내지 수단 vii) 을 반복함으로써 상기 랜덤으로 탐색하는 것을 반복하는 수단을 포함하는, 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 수단.
  5. 삭제
  6. 제 4 항에 있어서,
    상기 구성된 코드의 새로운 신호-대-잡음비 임계치를 반복적으로 탐색하는 수단은:
    a) 테스트 신호-대-잡음비를 선택하기 위해 범위를 반복적으로 이분하는 (bisecting) 하는 수단;
    b) 상기 밀도 진화 하에서, 상기 테스트 신호-대-잡음비가 제로 (zero) 에러확률을 달성하는지를 판별하는 수단; 및
    c) 상기 테스트 신호-대-잡음비에서 원하는 정확도가 달성될 때까지 상기 수단 a) 및 수단 b) 를 반복하는 수단을 포함하는, 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 수단.
  7. 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 인코더로서,
    메모리를 포함하고,
    상기 인코더는 상기 메모리에 저장된 명령들을 실행하는데 적합하며;
    상기 명령들은,
    복수의 펑쳐링된 코드들을 구성하기 위해 코드워드 비트들의 서브세트를 펑쳐링하는 명령; 및
    랜덤 펑쳐링 및 신호-대-잡음비 (SNR) 임계치의 결정을 반복함으로써 상기 복수의 펑쳐링된 코드들 중 하나 이상을 위너 (winner) 코드로 설정하는 명령을 포함하고,
    상기 코드워드 비트들의 서브세트를 펑쳐링하는 명령은, 가변 노드들을 랜덤으로 펑쳐링하는 명령을 포함하며,
    상기 복수의 펑쳐링된 코드들 중 하나 이상을 위너 코드로 설정하는 명령은, 상기 코드워드 비트들의 상기 서브세트를 랜덤으로 탐색하는 명령을 포함하고,
    상기 랜덤으로 탐색하는 명령은:
    i) 원하는 기초 레이트를 가지는 부모 코드를 선택하는 명령;
    ii) 원하는 레이트들의 세트내의 각각의 원하는 레이트에 대한 제 1 신호-대-잡음비 임계치를 초기화하는 명령;
    iii) 선행 레이트를 가지는 선행 코드에서 비-펑쳐링된 가변 노드들의 세트를 찾는 명령;
    iv) 상기 선행 레이트에서 원하는 레이트로 진행하기 위해 펑쳐링될 가변 노드들의 수를 계산하는 명령;
    v) 상기 비-펑쳐링된 가변 노드들의 세트로부터 상기 펑쳐링될 가변 노드들의 상기 수를 랜덤으로 선택하는 명령;
    vi) 상기 선택된 가변 노드들의 수를 펑쳐링함으로써 상기 선행 레이트로부터 코드를 구성하는 명령;
    vii) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 제 1 에러를 달성하는지를 테스트하기 위해 밀도 진화 (density evolution) 를 시행하는 명령;
    viii) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 상기 제 1 에러를 달성하는 경우, 상기 제 1 신호-대-잡음비 임계치보다 낮은, 상기 구성된 코드의 새로운 신호-대-잡음비 임계치를 반복적으로 탐색하고, 상기 구성된 코드를 상기 위너 코드로서 설정하며, 상기 제 1 신호-대-잡음비 임계치를 상기 새로운 신호-대-잡음비 임계치와 동일하게 설정하는 명령; 및
    ix) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 상기 제 1 에러를 달성하지 않는 경우, 상기 명령 v) 내지 상기 명령 vii) 을 반복함으로써 상기 랜덤으로 탐색하는 것을 반복하는 명령을 포함하는, 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 인코더.
  8. 삭제
  9. 제 7 항에 있어서,
    상기 구성된 코드의 새로운 신호-대-잡음비 임계치를 반복적으로 탐색하는 명령은:
    a) 테스트 신호-대-잡음비를 선택하기 위해 범위를 반복적으로 이분하는 (bisecting) 하는 명령;
    b) 상기 밀도 진화 하에서, 상기 테스트 신호-대-잡음비가 제로 (zero) 에러확률을 달성하는지를 판별하는 명령; 및
    c) 상기 테스트 신호-대-잡음비에서 원하는 정확도가 달성될 때까지 상기 명령 a) 및 명령 b) 를 반복하는 명령을 포함하는, 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 인코더.
  10. 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 액세스 단말기로서,
    송신기;
    상기 송신기에 동작가능하게 연결된 수신기;
    상기 송신기 및 상기 수신기에 동작가능하게 연결된 프로세서;
    상기 송신기 및 상기 수신기에 동작가능하게 연결된 안테나; 및
    상기 프로세스에 동작가능하게 연결된 메모리를 포함하고,
    상기 액세스 단말기는 상기 메모리에 저장된 소프트웨어 명령들을 실행하는데 적합하며,
    상기 소프트웨어 명령들은:
    복수의 펑쳐링된 코드들을 구성하기 위해 코드워드 비트들의 서브세트를 펑쳐링하는 명령; 및
    랜덤 펑쳐링 및 신호-대-잡음비 (SNR) 임계치의 결정을 반복함으로써 상기 복수의 펑쳐링된 코드들 중 하나 이상을 위너 (winner) 코드로 설정하는 명령을 포함하고,
    상기 코드워드 비트들의 서브세트를 펑쳐링하는 명령은, 가변 노드들을 랜덤으로 펑쳐링하는 명령을 포함하며,
    상기 복수의 펑쳐링된 코드들 중 하나 이상을 위너 코드로 설정하는 명령은, 상기 코드워드 비트들의 상기 서브세트를 랜덤으로 탐색하는 명령을 포함하고,
    상기 랜덤으로 탐색하는 명령은:
    i) 원하는 기초 레이트를 가지는 부모 코드를 선택하는 명령;
    ii) 원하는 레이트들의 세트내의 각각의 원하는 레이트에 대한 제 1 신호-대-잡음비 임계치를 초기화하는 명령;
    iii) 선행 레이트를 가지는 선행 코드에서 비-펑쳐링된 가변 노드들의 세트를 찾는 명령;
    iv) 상기 선행 레이트에서 원하는 레이트로 진행하기 위해 펑쳐링될 가변 노드들의 수를 계산하는 명령;
    v) 상기 비-펑쳐링된 가변 노드들의 상기 세트로부터 상기 펑쳐링될 가변 노드들의 수를 랜덤으로 선택하는 명령;
    vi) 상기 선택된 가변 노드들의 상기 선택된 수의 가변 노드들을 펑쳐링함으로써 상기 선행 레이트로부터 코드를 구성하는 명령;
    vii) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 제 1 에러를 달성하는지를 테스트하기 위해 밀도 진화 (density evolution) 를 시행하는 명령;
    viii) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 상기 제 1 에러를 달성하는 경우, 상기 제 1 신호-대-잡음비 임계치보다 낮은, 상기 구성된 코드의 새로운 신호-대-잡음비 임계치를 반복적으로 탐색하고, 상기 구성된 코드를 상기 위너 코드로서 설정하며, 상기 제 1 신호-대-잡음비 임계치를 상기 새로운 신호-대-잡음비 임계치와 동일하게 설정하는 명령; 및
    ix) 상기 구성된 코드가 상기 제 1 신호-대-잡음비 임계치에 대해서 상기 제 1 에러를 달성하지 않는 경우, 명령 v) 내지 명령 vii) 을 반복함으로써 상기 랜덤으로 탐색하는 것을 반복하는 명령을 포함하는, 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 액세스 단말기.
  11. 삭제
  12. 제 10 항에 있어서,
    상기 구성된 코드의 새로운 신호-대-잡음비 임계치를 반복적으로 탐색하는 명령은:
    a) 테스트 신호-대-잡음비를 선택하기 위해 범위를 반복적으로 이분하는 (bisecting) 하는 명령;
    b) 상기 밀도 진화 하에서, 상기 테스트 신호-대-잡음비가 제로 (zero) 에러확률을 달성하는지를 판별하는 명령; 및
    c) 상기 테스트 신호-대-잡음비에서 원하는 정확도가 달성될 때까지 상기 명령 a) 및 명령 b) 를 반복하는 명령을 포함하는, 저 레이트 코드들로부터 고 레이트 코드들을 생성하는 액세스 단말기.
KR1020107011317A 2006-01-06 2007-01-08 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트 호환가능 저 밀도 패리티-체크 (ldpc) 코드 KR101217925B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US75675806P 2006-01-06 2006-01-06
US60/756,758 2006-01-06
US11/480,597 2006-07-03
US11/480,597 US8132072B2 (en) 2006-01-06 2006-07-03 System and method for providing H-ARQ rate compatible codes for high throughput applications

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020087019330A Division KR101004584B1 (ko) 2006-01-06 2007-01-08 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트호환가능 저 밀도 패리티-체크 (ldpc) 코드

Publications (2)

Publication Number Publication Date
KR20100075657A KR20100075657A (ko) 2010-07-02
KR101217925B1 true KR101217925B1 (ko) 2013-01-02

Family

ID=37834144

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020087019330A KR101004584B1 (ko) 2006-01-06 2007-01-08 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트호환가능 저 밀도 패리티-체크 (ldpc) 코드
KR1020107011317A KR101217925B1 (ko) 2006-01-06 2007-01-08 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트 호환가능 저 밀도 패리티-체크 (ldpc) 코드
KR1020107011319A KR101223168B1 (ko) 2006-01-06 2007-01-08 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트 호환가능 저 밀도 패리티-체크 (ldpc) 코드
KR1020107011318A KR20100077038A (ko) 2006-01-06 2007-01-08 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트 호환가능 저 밀도 패리티-체크 (ldpc) 코드

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020087019330A KR101004584B1 (ko) 2006-01-06 2007-01-08 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트호환가능 저 밀도 패리티-체크 (ldpc) 코드

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020107011319A KR101223168B1 (ko) 2006-01-06 2007-01-08 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트 호환가능 저 밀도 패리티-체크 (ldpc) 코드
KR1020107011318A KR20100077038A (ko) 2006-01-06 2007-01-08 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트 호환가능 저 밀도 패리티-체크 (ldpc) 코드

Country Status (7)

Country Link
US (2) US8132072B2 (ko)
EP (4) EP2372919B1 (ko)
JP (3) JP5318583B2 (ko)
KR (4) KR101004584B1 (ko)
ES (1) ES2390489T3 (ko)
TW (2) TWI406530B (ko)
WO (1) WO2007082191A2 (ko)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8132072B2 (en) * 2006-01-06 2012-03-06 Qualcomm Incorporated System and method for providing H-ARQ rate compatible codes for high throughput applications
US20110173509A1 (en) * 2006-09-18 2011-07-14 Availink, Inc. Bit mapping scheme for an ldpc coded 16apsk system
WO2008034289A1 (en) * 2006-09-18 2008-03-27 Juntan Zhang Bit mapping scheme for an ldpc coded 32apsk system
RU2426241C2 (ru) * 2006-10-26 2011-08-10 Квэлкомм Инкорпорейтед Схемы кодирования для передач беспроводной связи
US8892979B2 (en) 2006-10-26 2014-11-18 Qualcomm Incorporated Coding schemes for wireless communication transmissions
KR101492595B1 (ko) * 2007-05-21 2015-02-11 라모트 앳 텔-아비브 유니버시티 리미티드 메모리 효율적인 ldpc 디코딩
US8117523B2 (en) * 2007-05-23 2012-02-14 California Institute Of Technology Rate-compatible protograph LDPC code families with linear minimum distance
US8347162B2 (en) * 2008-05-07 2013-01-01 Nec Laboratories America, Inc. Cognitive radio, anti-jamming coding retransmission methods and systems
US20090319860A1 (en) * 2008-06-23 2009-12-24 Ramot At Tel Aviv University Ltd. Overcoming ldpc trapping sets by decoder reset
US8370711B2 (en) * 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
US8726137B2 (en) * 2009-02-02 2014-05-13 Telefonaktiebolaget L M Ericsson (Publ) Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes
EP2244387A1 (en) * 2009-04-23 2010-10-27 Georgia Tech Research Corporation Method and transmitter for use in secure communication using error correction codes
US8386904B2 (en) * 2009-04-29 2013-02-26 Adeptence, Llc High speed low density parity check codes encoding and decoding
US8352846B2 (en) * 2009-05-07 2013-01-08 Adeptence, Llc Method an apparatus for low density parity check codes encoding and decoding
US8495450B2 (en) * 2009-08-24 2013-07-23 Samsung Electronics Co., Ltd. System and method for structured LDPC code family with fixed code length and no puncturing
US8560911B2 (en) * 2009-09-14 2013-10-15 Samsung Electronics Co., Ltd. System and method for structured LDPC code family
US8971261B2 (en) 2010-06-02 2015-03-03 Samsung Electronics Co., Ltd. Method and system for transmitting channel state information in wireless communication systems
US8732565B2 (en) 2010-06-14 2014-05-20 Samsung Electronics Co., Ltd. Method and apparatus for parallel processing in a gigabit LDPC decoder
US8689083B2 (en) * 2010-06-15 2014-04-01 California Institute Of Technology Rate-compatible protograph LDPC codes
KR101798181B1 (ko) 2010-08-05 2017-11-17 삼성전자주식회사 셔터 장치 및 그를 구비한 이미지 캡쳐 장치
US9634693B2 (en) 2010-08-12 2017-04-25 Samsung Electronics Co., Ltd Apparatus and method for decoding LDPC codes in a communications system
US8650456B2 (en) 2010-09-08 2014-02-11 Marvell World Trade Ltd. Decoder based data recovery
KR101113434B1 (ko) * 2010-10-29 2012-02-24 성균관대학교산학협력단 부호율-적응 저밀도 패리티 코드를 이용한 부호화 및 복호화 방법 및 이러한 방법을 사용하는 부호화기 및 복호화기
US8499218B2 (en) * 2011-09-30 2013-07-30 Mitsubishi Electric Research Laboratories, Inc. System and method for determining quasi-cyclic low-density parity-check codes having high girth
US8832520B2 (en) 2011-11-29 2014-09-09 California Institute Of Technology High order modulation protograph codes
WO2013081583A1 (en) * 2011-11-29 2013-06-06 California Institute Of Technology High order modulation protograph codes
JP5696068B2 (ja) * 2012-02-23 2015-04-08 株式会社東芝 符号化装置及び通信装置
US9203440B1 (en) 2013-01-29 2015-12-01 Xilinx, Inc. Matrix expansion
US9083383B1 (en) * 2013-01-29 2015-07-14 Xilinx, Inc. Parity check matrix
US20140229788A1 (en) 2013-02-13 2014-08-14 Qualcomm Incorporated Ldpc design for high rate, high parallelism, and low error floor
JP6431536B2 (ja) 2013-10-21 2018-11-28 マーベル インターナショナル リミテッド 最終レベルキャッシュシステム及び対応する方法
US11822474B2 (en) 2013-10-21 2023-11-21 Flc Global, Ltd Storage system and method for accessing same
US10097204B1 (en) * 2014-04-21 2018-10-09 Marvell International Ltd. Low-density parity-check codes for WiFi networks
JP5749784B2 (ja) * 2013-11-21 2015-07-15 日本電信電話株式会社 誤り訂正符号方法
US20150278729A1 (en) * 2014-03-28 2015-10-01 International Business Machines Corporation Cognitive scoring of asset risk based on predictive propagation of security-related events
KR102191303B1 (ko) 2014-04-17 2020-12-15 삼성전자 주식회사 부호어를 생성하는 방법 및 장치 그리고 부호어를 복원하는 방법 및 장치
EP3138099A1 (en) 2014-05-02 2017-03-08 Marvell World Trade Ltd. Caching systems and methods for hard disk drives and hybrid drives
CN104158550A (zh) * 2014-08-26 2014-11-19 重庆邮电大学 一种基于深空通信环境的码率兼容原模图ldpc码构造方法
US10784901B2 (en) * 2015-11-12 2020-09-22 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
WO2017115380A1 (en) * 2015-12-28 2017-07-06 Sathyanarayana Nittoor Vivek A system and method for generation of error-correcting codes in communication systems
US10644839B2 (en) * 2016-01-15 2020-05-05 Avago Technologies International Sales Pte. Limited Codeword puncturing for varying code rates
US10432232B2 (en) 2016-03-04 2019-10-01 Sandisk Technologies Llc Multi-type parity bit generation for encoding and decoding
US10725860B2 (en) 2016-03-04 2020-07-28 Sandisk Technologies Llc Storage system and method for handling a burst of errors
US11043966B2 (en) 2016-05-11 2021-06-22 Qualcomm Incorporated Methods and apparatus for efficiently generating multiple lifted low-density parity-check (LDPC) codes
US10454499B2 (en) 2016-05-12 2019-10-22 Qualcomm Incorporated Enhanced puncturing and low-density parity-check (LDPC) code structure
US9917675B2 (en) 2016-06-01 2018-03-13 Qualcomm Incorporated Enhanced polar code constructions by strategic placement of CRC bits
US10313057B2 (en) 2016-06-01 2019-06-04 Qualcomm Incorporated Error detection in wireless communications using sectional redundancy check information
US10469104B2 (en) 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
WO2018014249A1 (zh) 2016-07-20 2018-01-25 华为技术有限公司 低密度奇偶校验码基矩阵生成方法及装置
US20210281359A1 (en) 2016-07-27 2021-09-09 Qualcomm Incorporated Design of hybrid automatic repeat request (harq) feedback bits for polar codes
US10511328B2 (en) * 2016-11-04 2019-12-17 Qualcomm Incorporated Efficient list decoding of LDPC codes
KR102239527B1 (ko) * 2016-11-23 2021-04-13 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 통신 네트워크에서의 재송신 프로세스를 개선하는 방법, 데이터 신호, 통신 네트워크, 송신기 및 수신기
CN110073618B (zh) * 2016-12-13 2020-12-15 华为技术有限公司 产生用于增量冗余harq通信装置的低密度奇偶校验码的设备和方法
CN108809509B (zh) * 2017-05-05 2021-01-22 电信科学技术研究院 低密度奇偶校验码的基础图选择方法及装置
CN108988869B (zh) * 2017-05-31 2021-07-30 大唐移动通信设备有限公司 一种确定校验矩阵的方法及装置、计算机存储介质
WO2018225885A1 (ko) * 2017-06-09 2018-12-13 엘지전자 주식회사 Sc-ldpc 코드 부호화 방법 및 이를 위한 장치
US10312939B2 (en) 2017-06-10 2019-06-04 Qualcomm Incorporated Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code
EP3649755B1 (en) 2017-07-07 2023-09-20 QUALCOMM Incorporated Communication techniques applying low-density parity-check code base graph selection
CN107622092B (zh) * 2017-08-24 2019-11-12 河海大学 中国象棋基于多重优化、迭代加深剪枝的搜索方法
JP2019057806A (ja) 2017-09-20 2019-04-11 東芝メモリ株式会社 メモリシステム
CN108964973B (zh) * 2018-05-25 2021-10-29 浙江工业大学 面向Web基于Bigraph替换算法的服务质量监控方法
EP4345635A3 (en) 2018-06-18 2024-05-29 FLC Technology Group Inc. Method and apparatus for using a storage system as main memory
CN112701770B (zh) * 2020-12-10 2022-03-25 珠海格力电器股份有限公司 光伏发电系统及其功率控制方法、装置、介质及处理器
US11949436B2 (en) * 2022-08-12 2024-04-02 Qualcomm Incorporated Low-density parity-check coding scheme with varying puncturing pattern

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050035729A (ko) * 2003-10-14 2005-04-19 삼성전자주식회사 저밀도 패리티 검사 코드의 부호화 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001093431A2 (en) 2000-06-02 2001-12-06 Qualcomm Inc Method and apparatus for puncturing code symbols in a communications system
US6961888B2 (en) * 2002-08-20 2005-11-01 Flarion Technologies, Inc. Methods and apparatus for encoding LDPC codes
US7702986B2 (en) * 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
US7222284B2 (en) 2003-06-26 2007-05-22 Nokia Corporation Low-density parity-check codes for multiple code rates
US7395494B2 (en) * 2003-12-22 2008-07-01 Electronics And Telecommunications Research Institute Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
KR20050118056A (ko) 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
JP4437062B2 (ja) * 2004-08-10 2010-03-24 Kddi株式会社 低密度パリティ検査符号化方法および符号化装置、ならびに復号化装置
KR100703483B1 (ko) 2005-03-04 2007-04-03 삼성전자주식회사 저밀도 패러티 검사 부호의 천공 방법
KR101157246B1 (ko) 2005-05-16 2012-06-15 삼성전자주식회사 저밀도 패리티 검사 부호의 패딩 및 천공 방법
US7343539B2 (en) * 2005-06-24 2008-03-11 The United States Of America As Represented By The United States National Aeronautics And Space Administration ARA type protograph codes
US8132072B2 (en) * 2006-01-06 2012-03-06 Qualcomm Incorporated System and method for providing H-ARQ rate compatible codes for high throughput applications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050035729A (ko) * 2003-10-14 2005-04-19 삼성전자주식회사 저밀도 패리티 검사 코드의 부호화 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hossein P. et al. "Results on Puctured LDPC Codes," ITW 2004, 24-29 Oct. 2004. *
Hossein P. et al. "Results on Puctured LDPC Codes," ITW 2004, 24-29 Oct. 2004.*

Also Published As

Publication number Publication date
US8132072B2 (en) 2012-03-06
EP1977524A2 (en) 2008-10-08
JP2012090293A (ja) 2012-05-10
KR101004584B1 (ko) 2010-12-28
ES2390489T3 (es) 2012-11-13
JP2009522961A (ja) 2009-06-11
KR20100075657A (ko) 2010-07-02
JP5318583B2 (ja) 2013-10-16
TW201126961A (en) 2011-08-01
EP2323264A1 (en) 2011-05-18
KR20100077039A (ko) 2010-07-06
EP2372919A1 (en) 2011-10-05
EP2326015A1 (en) 2011-05-25
TW200803187A (en) 2008-01-01
EP2372919B1 (en) 2013-11-27
TWI406530B (zh) 2013-08-21
WO2007082191A2 (en) 2007-07-19
KR101223168B1 (ko) 2013-01-17
WO2007082191A3 (en) 2008-01-03
US20070162815A1 (en) 2007-07-12
JP2013219779A (ja) 2013-10-24
KR20100077038A (ko) 2010-07-06
EP1977524B1 (en) 2012-06-27
TWI379523B (en) 2012-12-11
US20120166917A1 (en) 2012-06-28
KR20080091213A (ko) 2008-10-09

Similar Documents

Publication Publication Date Title
KR101217925B1 (ko) 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트 호환가능 저 밀도 패리티-체크 (ldpc) 코드
Bae et al. An overview of channel coding for 5G NR cellular communications
KR101104653B1 (ko) 레이트-호환가능한 저밀도 패리티-체크 (ldpc) 코드
US10243592B2 (en) Method and apparatus for generating hybrid polar code
US7757150B2 (en) Structured puncturing of irregular low-density parity-check (LDPC) codes
US7222284B2 (en) Low-density parity-check codes for multiple code rates
RU2716044C1 (ru) Способы и системы кодирования и декодирования ldpc кодов
WO2018171516A1 (en) Method and apparatus for error-correction encoding using a polar code
CN108282259B (zh) 一种编码方法及装置
JPWO2009060627A1 (ja) 符号化方法および送信装置
KR20070046477A (ko) 반복 축적 타입-저밀도 패리티 검사 부호를 사용하는 통신시스템의 복호 장치 및 방법
KR102262186B1 (ko) 높은 레이트의 긴 ldpc 코드
EP2244387A1 (en) Method and transmitter for use in secure communication using error correction codes
JP2007512741A (ja) 信頼性のないメッセージの交換を取消す信念伝播復号化器
WO2021073338A1 (zh) 译码方法和译码器
CN111130564A (zh) 译码方法及装置
US7458003B2 (en) Low-complexity, capacity-achieving code for communication systems
KR101554488B1 (ko) 저밀도 패리티 체크 코드의 디코딩 방법 및 장치
CN101366184A (zh) 用于高吞吐量应用的h-arq率兼容的低密度奇偶校验

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 7