KR102539474B1 - Sc-ldpc codes for wireless communication systems - Google Patents

Sc-ldpc codes for wireless communication systems Download PDF

Info

Publication number
KR102539474B1
KR102539474B1 KR1020177018681A KR20177018681A KR102539474B1 KR 102539474 B1 KR102539474 B1 KR 102539474B1 KR 1020177018681 A KR1020177018681 A KR 1020177018681A KR 20177018681 A KR20177018681 A KR 20177018681A KR 102539474 B1 KR102539474 B1 KR 102539474B1
Authority
KR
South Korea
Prior art keywords
protograph
ldpc
code
sections
decoding
Prior art date
Application number
KR1020177018681A
Other languages
Korean (ko)
Other versions
KR20170092672A (en
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 KR20170092672A publication Critical patent/KR20170092672A/en
Application granted granted Critical
Publication of KR102539474B1 publication Critical patent/KR102539474B1/en

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
    • 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/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/1154Low-density parity-check convolutional codes [LDPC-CC]
    • 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
    • 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/1177Regular LDPC codes with parity-check matrices wherein all rows and columns have the same row weight and column weight, respectively
    • 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/6306Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy
    • 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

Abstract

이동국 또는 기지국과 같은 수신 노드가 제공된다. 수신 노드는 송신 노드로부터 공간적으로 결합된 저밀도 패리티 검사(spatially coupled low density parity check, SC-LDPC) 코드를 기반으로 하여 적어도 하나의 코드워드를 포함하는 신호들을 수신하도록 구성된 수신기, 및 슬라이딩 윈도우를 사용하여 적어도 하나의 코드워드를 디코딩하도록 구성된 디코더를 포함한다. 여기서, 슬라이딩 윈도우는 선택적으로 순방향 또는 역방향으로 이동한다.A receiving node such as a mobile station or base station is provided. The receiving node uses a receiver configured to receive signals including at least one codeword based on a spatially coupled low density parity check (SC-LDPC) code from the transmitting node, and a sliding window. and a decoder configured to decode the at least one codeword. Here, the sliding window selectively moves forward or backward.

Description

무선 통신 시스템을 위한 SC-LDPC 코드들{SC-LDPC CODES FOR WIRELESS COMMUNICATION SYSTEMS}SC-LDPC codes for wireless communication systems {SC-LDPC CODES FOR WIRELESS COMMUNICATION SYSTEMS}

본 발명은 일반적으로는 무선 통신, 보다 구체적으로는 무선 통신 시스템에서의 데이터 인코딩 및 디코딩에 관한 것이다.The present invention relates generally to wireless communications, and more particularly to data encoding and decoding in wireless communication systems.

정보 이론에서, 저밀도 패리티 검사(low-density parity-check, LDPC) 코드는 잡음이 많은 전송 채널을 통해 메시지를 전송하기 위한 오류 정정 코드이다. LDPC 코드들은 일종의 선형 블록 코드들이다. LDPC 및 다른 오류 정정 코드들은 완벽한 전송을 보장할 수 없지만, 정보가 손실될 확률은 원하는 만큼 작게 만들 수 있다. LDPC는 샤논 한계로 알려진 이론적인 최대값에 가까운 데이터 전송률을 허용하는 최초의 코드였다. LDPC 코드들은 0.0045 ㏈의 샤논 한계로 수행할 수 있다. LDPC는 1963년에 개발되었을 때 구현하기에는 비실용적이었다. 1993년에 발견된 터보 코드들은 1990년대 후반에 선택의 코딩 방식이 되었다. 터보 코드들은 딥-스페이스 위성 통신과 같은 어플리케이션들에 사용된다. LDPC는 복잡한 처리가 필요하지만 2007년 현재까지 발견된 가장 효율적인 방식이다. LDPC 코드들은 큰 최소 거리(이하 "dmin")를 산출하여 디코딩 복잡성을 줄일 수 있다.In information theory, low-density parity-check (LDPC) codes are error-correcting codes for transmitting messages over noisy transmission channels. LDPC codes are a type of linear block codes. LDPC and other error correcting codes cannot guarantee perfect transmission, but the probability of information loss can be made as small as desired. LDPC was the first code to allow data rates close to the theoretical maximum, known as the Shannon limit. LDPC codes can perform with a Shannon limit of 0.0045 dB. When LDPC was developed in 1963, it was impractical to implement. Discovered in 1993, turbo codes became the coding scheme of choice in the late 1990s. Turbo codes are used in applications such as deep-space satellite communications. Although LDPC requires complex processing, it is the most efficient method found so far in 2007. LDPC codes can reduce decoding complexity by yielding a large minimum distance (hereinafter "d min ").

본 개시의 일 양태는 종래의 저밀도 패리티 검사(low-density parity-check, LDPC) 코드들보다 높은 성능을 갖는 LDPC 코드들을 제공한다.One aspect of the present disclosure provides LDPC codes that have higher performance than conventional low-density parity-check (LDPC) codes.

제1 실시 예에서는 장치가 제공된다. 장치는 송신기로부터 프로토그래프 기반의 공간적으로 결합된 저밀도 패리티 검사(spatially coupled low density parity check, SC-LDPC) 코드를 수신하도록 구성된 입력 버퍼를 포함한다. 또한, 장치는 패리티 검사 행렬을 포함하는 SC-LDPC 코드에 대한 SC-LDPC 디코딩 동작을 수행하도록 구성된 디코더 처리 회로를 포함한다. SC-LDPC 디코딩 동작은 디코딩 계산들이 반복적으로 수행되는 프로토그래프 섹션들의 부분 집합을 포함하는 슬라이딩 윈도우를 포함한다. 또한, SC-LDPC 디코딩 동작은 슬라이딩 윈도우에서 하나 이상의 검사 노드(check node, CN)의 신드롬의 함수로서 디코딩 계산들을 중단시키도록 구성된 중지 규칙을 포함한다.
제2 실시 예에서는 방법이 제공된다. 방법은 송신기로부터 프로토그래프 기반의 SC-LDPC 코드를 수신하는 단계를 포함한다. 또한, 방법은 패리티 검사 행렬을 포함하는 SC-LDPC 코드에 대한 SC-LDPC 디코딩 동작을 수행하는 단계를 포함한다. SC-LDPC 디코딩 동작은 슬라이딩 윈도우를 포함한다. 슬라이딩 윈도우는 디코딩 계산들이 반복적으로 수행되는 프로토그래프 섹션들의 부분 집합을 포함한다. 또한, SC-LDPC 디코딩 동작은 슬라이딩 윈도우에서 하나 이상의 CN의 신드롬의 함수로서 디코딩 계산들을 중단시키도록 구성된 중지 규칙을 포함한다.
제3 실시 예에서는 수신기가 제공된다. 수신기는 적어도 하나의 안테나 및 슬라이딩 윈도우-디코더를 포함한다. 안테나는 송신기로부터 프로토그래프 기반의 SC-LDPC 코드를 수신하도록 구성된다. 슬라이딩 윈도우-디코더는 슬라이딩 윈도우를 사용하여 SC-LDPC 코드에 대한 SC-LDPC 디코딩 동작을 수행하도록 구성된다. SC-LDPC 코드는 패리티 검사 행렬을 포함한다. 슬라이딩 윈도우는 디코딩 계산들이 반복적으로 수행되는 프로토그래프 섹션들의 부분 집합을 포함한다. 슬라이딩 윈도우-디코더는 슬라이딩 윈도우에서 CN들의 신드롬의 함수로서 디코딩 계산들을 중단시키도록 구성된 중지 규칙을 수행한다.
제4 실시 예에서는 장치가 제공된다. 장치는 송신 노드로부터 SC-LDPC 코드를 기반으로 하여 적어도 하나의 코드워드를 포함하는 신호들을 수신하도록 구성된 수신기, 및 슬라이딩 윈도우를 사용하여 적어도 하나의 코드워드를 디코딩하도록 구성된 디코더를 포함한다. 슬라이딩 윈도우는 선택적으로 순방향 또는 역방향으로 이동한다.
제5 실시 예에서는 방법이 제공된다. 통신 시스템의 수신 노드를 동작시키는 방법은 송신 노드로부터 SC-LDPC 코드를 기반으로 하여 적어도 하나의 코드워드를 포함하는 신호들을 수신하는 단계, 및 슬라이딩 윈도우를 사용하여 적어도 하나의 코드워드를 디코딩하는 단계를 포함한다. 슬라이딩 윈도우는 선택적으로 순방향 또는 역방향으로 이동한다.
다른 기술적 특징들은 다음의 도면들, 설명들 및 청구항들로부터 당업자에게 쉽게 명백해질 수 있다.
아래의 상세한 설명에 들어가기 전에, 본 특허 문서 전체에서 사용되는 특정 단어 및 어구들의 정의를 기재하는 것이 본 발명을 이해하는데 도움이 될 수 있다. 용어 "커플(couple)" 및 그 파생어는 두 개 이상의 구성 요소 사이의 어떤 직접 또는 간접 통신을 나타내거나, 이들 요소가 서로 물리적으로 접촉하고 있는지의 여부를 나타낼 수 있다. 용어 "송신(transmit)", "수신(receive)" 그리고 "통신(communicate)"뿐만 아니라 그 파생어 또한, 이들의 직/간접 통신을 포함한다. 용어 "포함한다(include)" 및 "구성한다(comprise)" 뿐만 아니라 그 파생어 또한, 제한 없이 포함을 의미한다. 용어 "또는(or)"은 포괄적 의미로써, '및/또는'을 의미한다. 문구 "~와 관련되다(associated with)" 뿐만 아니라 그 파생어 또한 ~을 포함한다(include), ~에 포함된다(be included within), ~와 결합하다(interconnect with), ~을 함유하다(contain), ~에 함유되어 있다(be contained within), ~에 연결한다(connect to or with), ~와 결합하다(couple to or with), ~ 전달한다(be communicable with), 와 협력하다(cooperate with), ~를 끼우다(interleave), ~을 나란히 놓다(juxtapose), ~에 인접하다(be proximate to), 구속하다/구속되다(be bound to or with), 소유하다(have), 속성을 가지다(have a property of), ~와 관계를 가지다(have a relationship to or with) 등을 의미할 수 있다. 용어 "제어기(controller)"는 적어도 하나의 동작을 제어하는 어떤 장치, 시스템 또는 그 일부를 의미한다. 이러한 제어기는 하드웨어 또는 하드웨어와 소프트웨어의 조합 및/또는 펌웨어로 구현될 수 있다. 특정 제어기와 관련된 기능은 로컬 또는 원격으로 중앙 집중식으로(centralized) 또는 분산(distributed)처리될 수 있다. 문구 "적어도 하나"가 나열된 항목과 사용될 때, 나열된 항목 중 하나 이상의 상이한 조합이 사용될 수 있음을 의미한다. 예를 들어, "A, B, C 중 적어도 하나"는 A, B, C, A와 B, A와 C, B와 C, 그리고 A와 B와 C 결합들을 중 어느 하나를 포함한다.
특정 단어들 및 구문들의 정의가 본 개시 전반에 걸쳐서 제공되고, 통상의 기술자는 대부분의 경우에, 이러한 정의들이 정의된 단어들 및 구문들로 미래뿐 아니라 이전의 사용들에도 적용될 수 있음을 이해하여야 한다.
In a first embodiment, an apparatus is provided. The device includes an input buffer configured to receive a protograph-based spatially coupled low density parity check (SC-LDPC) code from a transmitter. The apparatus also includes decoder processing circuitry configured to perform an SC-LDPC decoding operation on an SC-LDPC code comprising a parity check matrix. The SC-LDPC decoding operation involves a sliding window containing a subset of protograph sections over which decoding calculations are repeatedly performed. Additionally, the SC-LDPC decoding operation includes a stopping rule configured to stop decoding calculations as a function of the syndrome of one or more check nodes (CN) in a sliding window.
In a second embodiment, a method is provided. The method includes receiving a protograph based SC-LDPC code from a transmitter. Also, the method includes performing an SC-LDPC decoding operation on the SC-LDPC codes that include parity check matrices. The SC-LDPC decoding operation includes a sliding window. The sliding window contains a subset of protograph sections over which decoding calculations are repeatedly performed. Additionally, the SC-LDPC decoding operation includes a stopping rule configured to stop decoding calculations as a function of the syndrome of one or more CNs in a sliding window.
In the third embodiment, a receiver is provided. The receiver includes at least one antenna and a sliding window-decoder. The antenna is configured to receive the protograph based SC-LDPC code from the transmitter. The sliding window-decoder is configured to perform SC-LDPC decoding operations on SC-LDPC codes using a sliding window. SC-LDPC codes include a parity check matrix. The sliding window contains a subset of protograph sections over which decoding calculations are repeatedly performed. The sliding window-decoder performs a stopping rule configured to stop decoding calculations as a function of the syndrome of CNs in the sliding window.
In a fourth embodiment, an apparatus is provided. The apparatus includes a receiver configured to receive signals including at least one codeword based on an SC-LDPC code from a transmitting node, and a decoder configured to decode the at least one codeword using a sliding window. The sliding window selectively moves forward or backward.
In the fifth embodiment, a method is provided. A method of operating a receiving node of a communication system includes receiving signals including at least one codeword based on an SC-LDPC code from a transmitting node, and decoding the at least one codeword using a sliding window. includes The sliding window selectively moves forward or backward.
Other technical features may be readily apparent to those skilled in the art from the following figures, descriptions and claims.
Before entering into the detailed description below, it may be helpful to understand the present invention to set forth definitions of certain words and phrases used throughout this patent document. The term “couple” and its derivatives may refer to any direct or indirect communication between two or more elements, or whether or not these elements are in physical contact with each other. The terms "transmit", "receive" and "communicate", as well as their derivatives, include direct and indirect communication thereof. The terms "include" and "comprise", as well as their derivatives, mean inclusion without limitation. The term "or" is inclusive and means 'and/or'. The phrase "associated with", as well as its derivatives, also include, be included within, interconnect with, contain , be contained within, connect to or with, couple to or with, be communicable with, cooperate with , interleave, juxtapose, be proximate to, be bound to or with, have, have properties It can mean a property of), have a relationship to or with. The term “controller” means any device, system, or part thereof that controls at least one operation. Such a controller may be implemented in hardware or a combination of hardware and software and/or firmware. Functions related to a particular controller may be centralized or distributed, either locally or remotely. When the phrase "at least one of" is used with a listed item, it means that different combinations of one or more of the listed items may be used. For example, “at least one of A, B, C” includes any one of A, B, C, A and B, A and C, B and C, and A and B and C combinations.
Definitions of certain words and phrases are provided throughout this disclosure, and skilled artisans should understand that, in most cases, these definitions are applicable to prior as well as future uses of the defined words and phrases. do.

디코딩 성능이 개선될 수 있다.Decoding performance can be improved.

본 개시 및 효과의 더 완벽한 이해를 위해, 첨부된 도면과 함께 다음의 상세한 설명이 참조되었으며, 도면의 참조 번호는 해당 부분을 나타낸다.
도 1은 본 개시에 따른 예시적인 무선 네트워크를 도시한다.
도 2a 및 도 2b는 본 개시에 따른 예시적인 무선 송신 및 수신 경로들을 도시한다.
도 3은 본 개시에 따른 예시적인 UE(user equipment)를 도시한다.
도 4는 본 개시에 따른 예시적인 eNB(enhanced NodeB)를 도시한다.
도 5a, 도 5b, 도 5c 및 도 5d는 예시적인 프로토그래프 기반의 SC-LDPC 코드 구조를 도시한다.
도 6은 본 개시에 따른 리프팅 팩터 Z=112를 갖는 (3, 6, 720) 프로토그래프 기반의 SC-LDPC 코드의 일 예를 도시한다.
도 7은 본 개시에 따른 슬라이딩 윈도우 디코더를 도시한다.
도 8은 본 개시에 따른 조기 중지 규칙을 갖는 슬라이딩 윈도우 디코더 800을 도시한다.
도 9는 본 개시에 따른 이러한 중지 규칙의 BER(bit error rate) 및 FER(frame error rate) 성능을 보여준다.
도 10a 및 도 10b는 본 개시에 따른 지그재그 윈도우 디코더 상태들을 도시한다.
도 10c및 도 10d는 본 개시에 따른 제안된 지그재그 윈도우 디코더에 대한 디코딩 윈도우 스케줄을 도시한다.
도 10e는 본 개시에 따른 슬라이딩 윈도우 디코더와 제안된 지그재그 윈도우 디코더를 비교한 일 예를 도시한다.
도 11a 및 도 11b는 본 개시에 따른 지그재그 윈도우 디코더의 1회 Z 라운드 및 2회 Z 라운드의 예를 도시한다.
도 12a 및 도 12b는 본 개시에 따른 각각의 지그재그 윈도우 디코더의 성능을 도시한다.
도 13은 본 개시에 따른 지그재그 윈도우 디코더의 1회 Z 라운드로 크기 x 프로토그래프 섹션들의 발산을 정정하는 확률을 도시한다.
도 14는 본 개시에 따른 상이한 Z 윈도우 크기를 갖는 지그재그 윈도우 디코더의 FER(점선) 및 BER(실선) 성능을 도시한다.
도 15는 본 개시에 따른 상이한 Z 윈도우 크기를 갖는 조기 코드워드 실패 검출 규칙을 적용한 지그재그 윈도우 디코더의 평균 반복 횟수 성능을 도시한다.
도 16은 본 개시에 따른 (3, 6) 프로토그래프 기반의 SC-LDPC 코드를 도시한다.
도 17은 본 개시에 따른 펑처링 패턴을 사용하여 레이트-3/4로 펑처링된 레이트-1/2 프로토그래프 기반의 SC-LDPC 코드를 도시한다.
도 18은 본 개시에 따른 디바이더 프로토그래프 섹션들을 사용하여 몇 개의 블록 LDPC 코드로 분할된 무한히 긴 SC-LDPC 코드를 도시한다.
도 19는 본 개시에 따른 동일하지 않은 오류 보호를 사용하여 몇 개의 블록 LDPC 코드로 분할된 매우 긴 SC-LDPC 코드를 도시한다.
도 20은 본 개시에 따른 디바이더 프로토그래프 섹션들을 생성하기 위해 더 강한 헤더 보호를 사용하는 방법을 도시한다.
도 21은 본 개시에 따른 패킷 헤더를 전달하기 위해 반복, 또는 단축 후 반복 프로세스를 사용하여 SC-LDPC 코드워드의 일부분을 강화하는 일 예를 도시한다.
도 22는 본 개시에 따른 SC-LDPC 코딩 방식을 사용하는 HARQ(hybrid automatic repeat request) 지원에 대한 일 예를 도시한다.
도 23은 본 개시에 따른 펑처링 행렬 [1, 0, 1; 1, 1, 0]을 사용하여 레이트-3/4로 (3, 6, L) SC-LDPC 앙상블을 펑처링하는 일 예를 도시한다.
도 24는 본 개시에 따른 레이트-4/5, 레이트-3/4, 레이트-2/3, 또는 레이트-ㅍ로 단축될 수 있는 레이트-5/6 (3, 18) LDPC 코드 프로토그래프를 도시한다.
도 25는 본 개시에 따른 레이트-4/5, 레이트-3/4, 레이트-2/3, 또는 레이트-ㅍ로 단축될 수 있는 레이트-5/6을 갖는 (3, 18, L) SC-LDPC 코드 프로토그래프를 도시한다.
도 26은 본 개시에 따른 펑처링된 코드 군과 단축된 코드 군의 FER 성능 비교를 도시한다.
도 27은 본 개시에 따른 펑처링된 코드 군과 단축된 코드 군의 반복 횟수 성능 비교를 도시한다.
도 28은 본 개시에 따른 단축을 기반으로 하는 예시적인 SC-LDPC 코드 군들을 도시한다.
도 29는 본 개시에 따른 수신 노드의 동작 프로세스를 도시한다.
For a more complete understanding of the present disclosure and effect, reference is made to the following detailed description in conjunction with the accompanying drawings, wherein reference numerals in the drawings indicate corresponding parts.
1 illustrates an exemplary wireless network in accordance with the present disclosure.
2A and 2B show exemplary wireless transmit and receive paths in accordance with the present disclosure.
3 illustrates an exemplary user equipment (UE) according to the present disclosure.
4 illustrates an exemplary enhanced NodeB (eNB) according to this disclosure.
5A, 5B, 5C and 5D show exemplary protograph based SC-LDPC code structures.
6 shows an example of a (3, 6, 720) protograph-based SC-LDPC code with a lifting factor Z = 112 according to the present disclosure.
7 illustrates a sliding window decoder according to the present disclosure.
8 illustrates a sliding window decoder 800 with an early stopping rule according to the present disclosure.
9 shows the bit error rate (BER) and frame error rate (FER) performance of this stopping rule according to the present disclosure.
10A and 10B show zigzag window decoder states according to the present disclosure.
10c and 10d show the decoding window schedule for the proposed zigzag window decoder according to the present disclosure.
10E shows an example of comparing a sliding window decoder according to the present disclosure and a proposed zigzag window decoder.
11A and 11B show examples of one Z round and two Z rounds of the zigzag window decoder according to the present disclosure.
12A and 12B show the performance of each zigzag window decoder according to the present disclosure.
13 shows the probability of correcting the divergence of size x protograph sections with one Z round of a zigzag window decoder according to the present disclosure.
14 shows the FER (dotted line) and BER (solid line) performance of a zigzag window decoder with different Z window sizes according to the present disclosure.
15 shows average iteration number performance of a zigzag window decoder applying an early codeword failure detection rule with different Z window sizes according to the present disclosure.
16 illustrates a (3, 6) protograph-based SC-LDPC code according to the present disclosure.
17 shows a rate-1/2 protograph based SC-LDPC code punctured at rate-3/4 using a puncturing pattern according to the present disclosure.
18 shows an infinitely long SC-LDPC code divided into several block LDPC codes using divider protograph sections according to the present disclosure.
19 shows a very long SC-LDPC code split into several block LDPC codes using unequal error protection according to the present disclosure.
20 illustrates a method of using stronger header protection to create divider protograph sections according to this disclosure.
21 illustrates an example of strengthening a portion of an SC-LDPC codeword using an iteration, or shortened then iterative process to convey packet headers according to this disclosure.
22 illustrates an example of hybrid automatic repeat request (HARQ) support using the SC-LDPC coding scheme according to the present disclosure.
23 is a puncturing matrix [1, 0, 1; 1, 1, 0] to show an example of puncturing a (3, 6, L) SC-LDPC ensemble at rate-3/4.
24 shows a rate-5/6 (3, 18) LDPC code protograph that can be shortened to rate-4/5, rate-3/4, rate-2/3, or rate-p according to the present disclosure; do.
25 is a (3, 18, L) SC- with rate-5/6 that can be shortened to rate-4/5, rate-3/4, rate-2/3, or rate-p according to the present disclosure. Shows the LDPC code protograph.
26 shows a comparison of FER performance of a punctured code group and a shortened code group according to the present disclosure.
27 shows a comparison of iteration count performances of a punctured code group and a shortened code group according to the present disclosure.
28 illustrates exemplary SC-LDPC code families based on shortening according to the present disclosure.
29 illustrates an operating process of a receiving node according to the present disclosure.

아래에 논의된 도 1 내지 도 29 및 본 개시의 원리를 설명하기 위해 이용되는 다양한 실시 예들은 단지 예시를 위한 것으로 어떠한 방식으로든 본 개시의 범위를 한정하는 의미로 해석되어서는 안 된다. 통상의 기술자들은 본 개시의 원리가 적절하게 배치된 무선 통신 시스템으로 구현될 수 있음을 이해할 것이다.
다음의 문헌들은 그 전체 내용이 본 개시에 기재된 것처럼 참조로 포함된다. D. J. Costello, Jr., L. Dolecek, T. E. Fuja, J. Kliewer, D. G. M. Mitchell, and R. Smarandache, "Spatially Coupled Sparse Codes on Graphs - Theory and Practice," arXive, October 2013 (REF-1); Michael Lentmaier, Maria Mellado Prenda, and Gerhard P. Fettweis, "Efficient Message Passing Scheduling for Terminated LDPC Convolutional Codes," IEEE ISIT, August 2011 (REF-2); Shrinivas Kudekar, Tom Richardsony and Rㄸudiger Urbanke , "Threshold Saturation via Spatial Coupling: Why Convolutional LDPC Ensembles Perform so well over the BEC," arXiv, October 2010 (REF-3); Vikram Arkalgud Chandrasetty, Sarah J. Johnson and Gottfried Lechner, "Memory Efficient Quasi-Cyclic Spatially Coupled LDPC Codes", arXive October 2013 (REF-4); and Najeeb ul Hassan, Michael Lentmaier, and Gerhard P. Fettweis, "Comparison of LDPC Block and LDPC Convolutional Codes Based on their Decoding Latency," IEEE ISTC August 2012 (REF-5); D. Hocevar, "A reduced complexity decoder architecture via layered decoding of LDPC codes," IEEE Workshop on Signal Processing Systems, 2004., pp. 107 - 112, Oct. 2004 (REF-6); Shadi Abu-Surra, Eran Pisek, Thomas Henige, and Sridhar Rajagopal, "Low-Power Dual Quantization-Domain Decoding for LDPC Codes," IEEE Globecom 2014 (REF-7); M. Davey and D. J. Mackay, "Low density parity check codes over GF(q)," IEEE Commun. Letters, vol. 2, pp. 165-167, Jun 1998 (REF-8); J. Chen, A Dholakia, E. Eleftheriou, M. Fossorier, "Reduced-Complexity Decoding of LDPC Codes," IEEE Trans. on Commun., vol. 53, pp. 1288-1299, Aug. 2005 (REF-9); R. G. Gallager, "Low-density parity-check codes", Cambridge, MA: MIT Press, 1963 (REF-10); D. J. C. MacKay and R. M. Neal, "Near Shannon limit performance of low density parity check codes," Electronics Letters, vol. 32, pp. 1645-1646, Aug. 1996 (REF-11); IEEE 802.11ad standard spec., Part 11: Wireless LAN medium access control(MAC) and physical layer(PHY) Specifications, Amendment 3: Enhancements for very high throughput in the 60 GHz Band, (REF-12); R. G. Gallager, "A simple derivation of the coding theorem and some applications," IEEE Trans. on Information Theory, vol. 11, pp. 3-18, Jan. 1965 (REF-13); IEEE 802.11n-2009 standard spec., Part 11: Wireless LAN Medium Access Control(MAC)and Physical Layer(PHY) Specifications Amendment 5: Enhancements for Higher Throughput, retrieved from the Internet <URL: http://standards.ieee.org/getieee802/download/802.11ad-2012.pdf> (REF-14); 3GPP, "Evolved Universal Terrestrial Radio Access (E-UTRA); Physical channels and modulation; (release 11)," 3GPP, 2013, retrieved from the Internet <URL: http://www.3gpp.org/ftp/Specs/html-info/36211.htm> (REF-15); D. J. Costello, Jr., L. Dolecek, T. E. Fuja, J. Kliewer, D. G. M. Mitchell, and R. Smarandache, "Spatially Coupled Sparse Codes on Graphs - Theory and Practice," arXive, October 2013, (REF-16); Michael Lentmaier, Maria Mellado Prenda, and Gerhard P. Fettweis, "Efficient Message Passing Scheduling for Terminated LDPC Convolutional Codes," IEEE ISIT, Aug. 2011, (REF-17); S. Abu-Surra, E. Pisek, and T. Henige, "Gigabit Rate Achieving Low-Power LDPC Codes: Design and Architecture," IEEE Wireless Commun. And Networking Conf., Mar. 2011, (REF-18); and D. Divsalar, S. Dolinar, and C. Jones, "Construction of Protograph LDPC Codes with Linear Minimum Distance," IEEE ISIT, Jul. 2006, (REF-19).
통신 시스템에서, 채널 코딩은 용량 접근 성능을 얻는 데 중요하다. 터보 코드 및 LDPC 블록 코드들과 같은 많은 방식들이 무선 통신 표준에 사용된다. 그러나, 이들 코딩 방식은 한계가 있다. 예를 들어, 터보 코드들의 구조는 매우 큰 기가비트/초(gigabits per second, GB/s) 처리량을 달성하는 데 필요한 충분한 병렬 처리 능력을 제공하지 못한다. 대안적으로, LDPC 블록 코드들의 구조는 큰 병렬 처리 팩터를 제공하지만, 그 세분성은 코드의 고정된 블록 크기에 의해 제한된다.
공간적으로 결합된 저밀도 패리티 검사(spatially-coupled low-density parity-check, SC-LDPC) 코드들은 터보 코드 및 LDPC 블록 코드 양쪽의 장점을 결합한 새로운 용량 달성 코드이다. SC-LDPC 코드들은 높은 데이터율을 달성할 가능성이 있으며, LDPC 블록 코드들에 비해 작은 세분성을 갖는다.
본 개시의 실시 예들은 SC-LDPC 코드들의 설계 및 디코딩과 관련된다. 본 개시의 특정 실시 예들은 SC-LDPC 코드 구조 (특히, 종료) 및 그것을 무선 통신 표준에서 실현하는 방법을 다룬다. 이들 실시 예의 일부는 WLAN 시스템에 맞춰져 있지만, 다른 실시 예들은 이동 통신 표준과 같은 다른 표준에서의 채택을 커버하기 위해 하위 레벨의 세부 사항들을 갖는다. 본 개시의 특정 실시 예들은 SC-LDPC 코드 성능을 개선하고 반복 횟수를 줄일 수 있는, 지그재그 윈도우 디코더로 지칭되는 새로운 디코더를 제안한다.
본 개시의 실시 예들은 통신 시스템에 SC-LDPC를 추가하기 위한 SC-LDPC 코드 체계를 제안한다. SC-LDPC 코드들은 낮은 전력 소비로 수 기가비트/초(gigabits per second, GB/s)를 달성할 수 있는 높은 병렬 팩터를 갖는다. 이들은 동적 무선 환경에서 높은 효율을 가능하게 하기 위해 낮은 세분성 및 확장 가능한 코드워드 길이를 갖는다. 또한, 본 개시의 특정 실시 예들은 슬라이딩 윈도우 디코더보다 좋은 성능을 달성할 수 있는 새로운 지그재그 윈도우 디코더에 의한 사용을 위해 구성된 것과 같은 새로운 디코딩 방식을 제안한다.
도 1은 본 개시에 따른 예시적인 무선 네트워크 100을 도시한다. 도 1에 도시된 무선 네트워크 100의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위에서 벗어나지 않고 무선 네트워크 100의 다른 실시 예들이 사용될 수 있다.
도 1에 도시된 바와 같이, 무선 네트워크 100은 eNB(eNodeB) 101, eNB 102, 및 eNB 103을 포함한다. eNB 101은 eNB 102 및 eNB 103과 통신한다. 또한, eNB 101은 인터넷, 전용 IP 네트워크, 또는 다른 데이터 네트워크와 같은 적어도 하나의 인터넷 프로토콜(internet protocol, IP) 네트워크 130과 통신한다.
네트워크 유형에 따라, "기지국" 또는 "액세스 포인트"와 같은 다른 잘 알려진 용어들이 "eNodeB" 또는 "eNB" 대신에 사용될 수 있다. 편의를 위해, 본 특허 문서에서 용어 "eNodeB" 및 "eNB"는 원격 단말들에 무선 액세스를 제공하는 네트워크 인프라구조 구성 요소들을 나타내기 위해 사용된다. 또한, 네트워크 유형에 따라, "이동국", "가입자국", "원격 단말", "무선 단말", 또는 "사용자 장치"와 같은 다른 잘 알려진 용어들이 "사용자 단말(user equipment)" 또는 "UE" 대신해 사용될 수 있다. 편의를 위해, 본 특허 문서에서 용어 "사용자 단말(user equipment)" 또는 "UE"는, UE가 (휴대폰 또는 스마트폰과 같은) 이동 장치이든, (데스크톱 컴퓨터 또는 자동 판매기와 같은) 고정 장치로 일반적으로 간주되든, eNB에 무선으로 액세스하는 원격 무선 단말을 나타내기 위해 사용된다.
eNB 102는 eNB 102의 커버리지 영역 120 내의 제1의 복수의 사용자 단말(user equipment, UE)에 네트워크 130에 대한 무선 광대역 액세스를 제공한다. 제1의 복수의 UE는 소기업(small business, SB)에 위치할 수 있는 UE 111, 대기업(enterprise, E)에 위치할 수 있는 UE 112, WiFi 핫스팟(hotspot, HS)에 위치할 수 있는 UE 113, 제1 거주지(residence, R)에 위치할 수 있는UE 114, 제2 거주지(residence, R)에 위치할 수 있는 UE 115, 및 휴대폰, 무선 랩톱, 또는 무선 PDA 등과 같은 이동 장치(mobile device, M)일 수 있는 UE 116을 포함한다. eNB 103은 eNB 103의 커버리지 영역 125 내의 제2의 복수의 UE에 네트워크 130에 대한 무선 광대역 액세스를 제공한다. 제2의 복수의 UE는 UE 115 및 UE 116을 포함한다. 일부 실시 예들에서, 하나 이상의 eNB 101 내지 103은 5G, LTE, LTE-A, WiMAX, 또는 다른 진화된 무선 통신 기술들을 사용하여 서로 및 UE 111 내지 UE 116과 통신할 수 있다.
점선은 단지 예시 및 설명을 위해 대략적인 원형으로 도시되는 커버리지 영역 120 및 커버리지 영역 125의 대략적인 범위를 나타낸다. 커버리지 영역 120 및 커버리지 영역 125와 같이, eNB들과 관련된 커버리지 영역들은 천연 및 인공 장애물들과 관련된 무선 환경에서의 변동 및 eNB들의 구성에 따라, 불규칙한 형상을 포함하여 다른 형상들을 가질 수 있다는 것을 명확히 이해해야 한다.
보다 상세히 후술되는 바와 같이, 하나 이상의 eNB 101 내지 103은 본 개시의 실시 예들에 기술된 바와 같은 지그재그 윈도우 및 SC-LDPC 코드들을 사용하여 데이터를 인코딩하도록 구성된다. 특정 실시 예들에서, 하나 이상의 eNB 101 내지 103은 본 개시의 실시 예들에 기술된 바와 같은 지그재그 윈도우 및 SC-LDPC 코드들을 사용하여 데이터를 디코딩하도록 구성된다. 특정 실시 예들에서, 하나 이상의 UE 111 내지 116은 본 개시의 실시 예들에 기술된 바와 같은 지그재그 윈도우 및 SC-LDPC 코드들을 사용하여 데이터를 인코딩하도록 구성된다. 특정 실시 예들에서, 하나 이상의 UE 111 내지 116은 본 개시의 실시 예들에 기술된 바와 같은 지그재그 윈도우 및 SC-LDPC 코드들을 사용하여 데이터를 디코딩하도록 구성된다.
도 1은 무선 네트워크 100의 일 예를 도시하지만, 도 1에 대해 다양한 변경 예들이 이루어질 수 있다. 예를 들어, 무선 네트워크 100은 모든 적절한 배치에서 임의의 개수의 eNB 및 임의의 개수의 UE를 포함할 수 있다. 또한, eNB 101은 임의의 개수의 UE와 직접 통신할 수 있고, 이들 UE에 네트워크 130에 대한 무선 광대역 액세스를 제공할 수 있다. 마찬가지로, eNB 102 및 eNB 103 각각은 네트워크 130과 직접 통신할 수 있고, UE들에 네트워크 130에 대한 직접적인 무선 광대역 액세스를 제공할 수 있다. 또한, eNB 101, eNB 102, 및/또는 eNB 103은 외부 전화 네트워크 또는 다른 유형의 데이터 네트워크들과 같은 다른 또는 추가적인 외부 네트워크들에 대한 액세스를 제공할 수 있다.
도 2a 및 도 2b는 본 개시에 따른 예시적인 무선 송신 경로 및 수신 경로를 도시한다. 다음의 설명에서, 송신 경로 200은 (eNB 102와 같이) eNB에서 구현되는 것으로 기술될 수 있고, 수신 경로 250은 (UE 116과 같이) UE에서 구현되는 것으로 기술될 수 있다. 그러나, 수신 경로 250이 eNB에서 구현될 수 있고, 송신 경로 200이 UE에서 구현될 수 있다는 것을 이해할 것이다. 특정 실시 예들에서, 송신 경로 200은 본 개시의 실시 예들에 기술된 바와 같이 지그재그 윈도우 및 SC-LDPC 코드들을 사용하여 데이터를 인코딩하도록 구성된다. 특정 실시 예들에서, 수신 경로 250은 본 개시의 실시 예들에 기술된 바와 같이 지그재그 윈도우 및 SC-LDPC 코드들을 사용하여 데이터를 디코딩하도록 구성된다.
송신 경로 200은 채널 코딩 및 변조 블록 205, 직렬-병렬 변환(serial-to-parallel, S-to-P) 블록 210, 크기 N의 역 고속 푸리에 변환(inverse fast fourier transform, IFFT) 블록 215, 병렬-직렬 변환(parallel-to-serial, P-to-S) 블록 220, 추가 순환 전치 블록 255, 및 업컨버터(up-converter, UC) 230을 포함한다. 수신 경로 250은 다운컨버터(down-converter, DC) 255, 제거 순환 전치 블록 260, 직렬-병렬 변환(serial-to-parallel, S-to-P) 블록 265, 크기 N의 고속 푸리에 변환(fast fourier transform, FFT) 블록 270, 병렬-직렬 변환(parallel-to-serial, P-to-S) 블록 275, 및 채널 디코딩 및 복조 블록 280을 포함한다.
송신 경로 200에서, 채널 코딩 및 변조 블록 205는 정보 비트들의 집합을 수신하고, (저밀도 패리티 검사(low-density parity check, LDPC) 코딩과 같은) 코딩을 적용하고, 주파수 도메인 변조 심볼들의 시퀀스를 생성하기 위해 (직교 위상 시프트 키잉(quadrature phase shift keying, QPSK) 또는 직교 진폭 변조(quadrature amplitude modulation, QAM) 등을 사용하여) 입력 비트들을 변조한다. 직렬-병렬 변환 블록 210은 N개의 병렬 심볼 스트림을 생성하기 위해 직렬 변조된 심볼들을 병렬 데이터로 (디멀티플렉싱하는 것과 같이) 변환하고, 여기서 N은 eNB 102 및 UE 116에서 사용되는 IFFT/FFT 크기이다. 크기 N의 IFFT 블록 215는 시간 도메인 출력 신호들을 생성하기 위해 N개의 병렬 심볼 스트림에 대해 IFFT 연산을 수행한다. 병렬-직렬 변환 블록 220은 직렬 시간 도메인 신호를 생성하기 위해 크기 N의 IFFT 블록 215로부터의 병렬 시간 도메인 출력 심볼들을 (멀티플렉싱하는 것과 같이) 변환한다. 추가 순환 전치 블록 225는 시간 도메인 신호에 순환 전치를 삽입한다. 업컨버터 230은 무선 채널을 통해 전송을 위한 RF 주파수로 추가 순환 전치 블록 225의 출력을 (업컨버팅하는 것과 같이) 변조한다. 또한, 신호는 RF 주파수로의 변환 전에 기저대에서 필터링될 수 있다.
eNB 102로부터의 전송된 RF 신호는 무선 채널을 통과한 후에 UE 116에 도달하고, eNB 102에서의 동작들에 대한 역 동작들이 UE 116에서 수행된다. 다운컨버터 255는 수신된 신호를 기저대 주파수로 다운컨버팅하고, 제거 순환 전치 블록 260은 직렬 시간 도메인 기저대 신호를 생성하기 위해 순환 전치를 제거한다. 직렬-병렬 변환 블록 265는 시간 도메인 기저대 신호를 병렬 시간 도메인 신호들로 변환한다. 크기 N의 FFT 블록 270은 N개의 병렬 주파수 도메인 신호들을 생성하기 위해 FFT 알고리즘을 수행한다. 병렬-직렬 변환 블록 275는 병렬 주파수 도메인 신호들을 변조된 데이터 심볼들의 시퀀스로 변환한다. 채널 디코딩 및 복조 블록 280은 원래의 입력 데이터 스트림을 복구하기 위해 변조된 심볼들을 복조하고 디코딩한다.
eNB 101 내지 eNB 103의 각각은 UE 111 내지 UE 116으로의 하향링크에서의 전송 단계와 유사한 송신 경로200을 구현할 수 있고, UE 111 내지 UE 116으로부터의 상향링크에서의 수신 단계와 유사한 수신 경로 250을 구현할 수 있다. 마찬가지로, UE 111 내지 UE 116의 각각은 eNB 101 내지 eNB 103으로의 상향링크에서의 전송 단계에 대한 송신 경로 200을 구현할 수 있고, eNB 101 내지 eNB 103으로부터의 하향링크에서의 수신 단계에 대한 수신 경로 250을 구현할 수 있다.
도2a 및 도 2b의 구성 요소들 각각은 하드웨어만을 사용하거나, 하드웨어와 소프트웨어/펌웨어의 조합을 사용하여 구현될 수 있다. 특정 예로서, 도 2a 및 도 2b의 구성 요소들 중 적어도 일부는 소프트웨어로 구현될 수 있는 반면에, 다른 구성 요소들은 구성 가능한 하드웨어, 또는 구성 가능한 하드웨어와 소프트웨어의 혼합체에 의해 구현될 수 있다. 예를 들어, FFT 블록 270 및 IFFT 블록 215는 구성 가능한 소프트웨어 알고리즘들로서 구현될 수 있고, 여기서, 크기 N의 값은 구현에 따라 수정될 수 있다.
또한, FFT 및 IFFT를 사용하여 기술하지만, 이것은 단지 예시를 위한 것이며 본 개시의 범위를 제한하는 것으로 해석되어서는 안된다. 이산 푸리에 변환(discrete fourier transform, DFT) 및 역 이산 푸리에 변환(inverse discrete fourier transform, IDFT) 함수와 같은 다른 유형의 변환들이 사용될 수 있다. DFT 및 IDFT 함수에 대한 변수 N의 값은 (1, 2, 3, 4 등과 같은) 임의의 정수일 수 있고, FFT 및 IFFT 함수에 대한 변수 N의 값은 (1, 2, 4, 8, 16 등과 같은) 2의 거듭제곱인 임의의 정수일 수 있다는 것을 이해할 것이다.
도 2a 및 도 2b는 무선 송신 및 수신 경로들의 예를 도시하지만, 다양한 변경 예들이 도2a 및 도 2b에 대해 이루어질 수 있다. 예를 들어, 도2a 및 도 2b에서의 다양한 구성 요소들은 결합되거나, 더 세분화되거나, 생략될 수 있고, 추가 구성 요소들이 특정 요구에 따라 추가될 수 있다. 또한, 도 2a 및 도 2b는 무선 네트워크에서 사용될 수 있는 송신 및 수신 경로 유형들의 예를 도시하기 위한 것이다. 다른 적합한 아키텍처들이 무선 네트워크에서의 무선 통신을 지원하기 위해 사용될 수 있다.
도 3은 본 발명에 따른 예시적인 UE 116을 도시한다. 도 3에 도시된 UE 116의 실시 예는 단지 예시를 위한 것이고, 도 1의 UE 111 내지 UE 115는 동일하거나 유사한 구성을 가질 수 있다. 그러나, UE들은 매우 다양한 구성을 가지며, 도 3은 UE의 특정 구현으로 본 발명의 범위를 제한하지 않는다.
UE 116은 안테나 305a 내지 305n, 무선 주파수(radio frequency, RF) 송수신기 310a 내지 310n, 송신(TX) 처리 회로 315, 마이크로폰320, 및 수신(RX) 처리 회로325를 포함한다. TX 처리 회로 315 및 RX 처리 회로 325는 각각 RF 송수신기 310a 내지 RF 송수신기 310n의 각각에 예를 들어, 안테나 305a, 안테나 305b 및 N번째 안테나 305n에 각각 결합되는 RF 송수신기 310a, RF 송수신기 310b 내지 N번째 RF 송수신기 310n에 결합된다. 특정 실시 예들에서, UE 116은 하나의 안테나 305a 및 하나의 RF 송수신기 310a를 포함한다. 또한, UE 116은 스피커 330, 메인 프로세서 340, 입출력(input/output, I/O) 인터페이스(interface, IF) 345, 키패드 350, 디스프레이 355, 및 메모리 360을 포함한다. 메모리 360은 기본 운영 체계(operating system, OS) 프로그램 361 및 하나 이상의 어플리케이션 362를 포함한다.
RF 송수신기들 310a 내지 310n은 네트워크 100의 eNB 또는 AP에 의해 전송된 입력 RF 신호를 각각의 안테나 305a 내지 305n으로부터 수신한다. 특정 실시 예들에서, 각각의 RF 송수신기 310a 내지 310n 및 각각의 안테나 305a 내지 305n은 특정 주파수 대역 또는 기술 유형에 맞게 구성된다. 예를 들어, 제1 RF 송수신기 310a 및 안테나 305a는 BLUETOOTH®과 같은 근거리 무선 통신을 통해 통신하도록 구성될 수 있는 반면에, 제2 RF 송수신기 310b 및 안테나 305b는 Wi-Fi와 같은 IEEE 802.11 통신을 통해 통신하도록 구성될 수 있고, 다른 RF 송수신기 310n 및 안테나 305n은 3G, 4G, 5G, LTE, LTE-A, 또는 WiMAX과 같은 셀룰러 통신을 통해 통신하도록 구성될 수 있다. 특정 실시 예들에서, 하나 이상의 RF 송수신기 310a 내지 310n 및 각각의 안테나 305a 내지 305n은 특정 주파수 대역 또는 동일한 기술 유형에 맞게 구성된다. RF 송수신기들 310a 내지 310n은 중간 주파수(intermediate frequency, IF) 또는 기저대 신호를 생성하기 위해 입력 RF 신호를 다운컨버팅한다. IF 또는 기저대 신호는 기저대 또는 IF 신호를 필터링, 디코딩, 및/또는 디지털화함으로써 처리된 기저대 신호를 생성하는 RF 처리 회로 325에 전송된다. RF 처리 회로 325는 (웹 브라우징 데이터 등에 대한) 추가 처리를 위해 메인 프로세서 340에 또는 (음성 데이터 등을 위해) 스피커 330에 처리된 기저대 신호를 전송한다.
TX 처리 회로 315는 마이크로폰 320으로부터 아날로그 또는 디지털 음성 데이터를 수신하거나, 메인 프로세서 340으로부터 (웹 데이터, 이메일, 또는 인터랙티브 비디오 게임 데이터와 같은) 다른 출력 기저대 데이터를 수신한다. TX 처리 회로 315는 처리된 기저대 또는 IF 신호를 생성하기 위해 출력 기저대 데이터를 인코딩, 멀티플렉싱, 및/또는 디지털화한다. RF 송수신기 310a 내지 310n은 TX 처리 회로 315로부터 출력 처리된 기저대 또는 IF 신호를 수신하고, 하나 이상의 안테나 305a 내지 305n을 통해 전송되는 RF 신호로 기저대 또는 IF 신호를 업컨버팅한다.
메인 프로세서 340은 하나 이상의 프로세서 또는 다른 처리 장치들을 포함할 수 있고, UE 116의 전체 동작을 제어하기 위해 메모리 360에 저장된 기본 OS 프로그램 361을 실행할 수 있다. 예를 들어, 메인 프로세서 340은 잘 알려진 원리들에 따라 RF 송수신기 310a 내지 310n, RX 처리 회로 325 및 TX 처리 회로 315에 의해 순방향 채널 신호들의 수신 및 역방향 채널 신호들의 전송을 제어할 수 있다. 일부 실시 예들에서, 메인 프로세서 340은 적어도 하나의 마이크로프로세서 또는 마이크로제어기를 포함한다. 메인 프로세서 340은 중지 기능을 갖는 슬라이딩 윈도우 인코더, 중지 기능을 갖는 슬라이딩 윈도우 디코더, 지그재그 윈도우 인코더, 지그재그 윈도우 디코더, 또는 이들의 조합 등을 포함하여 데이터 정보를 인코딩 또는 디코딩하도록 구성된 처리 회로를 포함한다.
또한, 메인 프로세서 340은 본 개시의 실시 예들에 기재된 바와 같이 지그재그 윈도우 및 SC-LDPC 코드들을 사용하기 위한 동작들과 같이 메모리 360에 상주하는 다른 프로세스 및 프로그램들을 실행할 수 있다. 메인 프로세서 340은 실행하는 프로세스에 의해 필요에 따라 메모리 360의 안으로 또는 밖으로 데이터를 이동시킬 수 있다. 일부 실시 예에서, 메인 프로세서 340은 작업자 또는 eNB들로부터 수신된 신호들에 응답하여, 또는 OS 프로그램 361을 기반으로 하여 어플리케이션 362를 실행하도록 구성된다. 또한, 메인 프로세서 340은 UE 116에 랩톱 컴퓨터 및 핸드헬드 컴퓨터들과 같은 다른 장치들에 연결하는 능력을 제공하는 I/O 인터페이스 345와 결합된다. I/O 인터페이스 345는 메인 프로세서 340과 이들 부속 장치 간의 통신 경로이다.
또한, 메인 프로세서 340은 키패드 350 및 디스플레이 유닛 355에 결합된다. UE 116의 사용자는 UE 116에 데이터를 입력하기 위해 키패드 350을 사용할 수 있다. 디스플레이 355는 액정 디스플레이 또는, 예를 들어 웹 사이트들로부터의 텍스트 또는 적어도 제한된 그래픽들을 랜더링할 수 있는 다른 디스플레이, 또는 이들의 조합일 수 있다.
메모리 360은 메인 프로세서 340에 결합된다. 메모리 360의 일부는 랜덤 액세스 메모리(random access memory, RAM)를 포함할 수 있고, 메모리 360의 다른 일부는 플래시 메모리 또는 다른 읽기 전용 메모리(read-only memory, ROM)를 포함할 수 있다.
도 3은 UE 116의 일 예를 도시하지만, 다양한 변경 예들이 도 3에 대해 이루어질 수 있다. 예를 들어, 도 3의 다양한 구성 요소들은 결합되거나, 더 세분화되거나, 생략될 수 있고, 추가 구성 요소들이 특정 요구에 따라 추가될 수 있다. 특정 예로서, 메인 프로세서 340은 하나 이상의 중앙 처리 유닛(central processing unit, CPU) 및 하나 이상의 그래픽 처리 유닛(graphics processing unit, GPU)과 같이 복수의 프로세서로 나뉠 수 있다. 또한, 도 3은 휴대 전화 또는 스마트폰으로서 구성된 UE 116을 도시하지만, UE들은 다른 유형의 이동 장치 또는 고정 장치들로서 동작하도록 구성될 수 있다.
도 4는 본 발명에 따른 예시적인 eNB 102를 도시한다. 도 4에 도시된 eNB 102의 실시 예는 단지 예시를 위한 것이고, 도 1의 다른 eNB들은 동일하거나 유사한 구성을 가질 수 있다. 그러나, eNB들은 매우 다양한 구성들을 가지며, 도 4는 eNB의 특정 구현으로 본 발명의 범위를 한정하지 않는다.
eNB 102는 복수의 안테나 405a 내지 405n, 복수의 RF 송수신기 410a 내지 410n, 송신(TX) 처리 회로 415, 및 수신(RX) 처리 회로 420을 포함한다. 또한, eNB 102는 제어기/프로세서 425, 메모리 430, 및 백홀 또는 네트워크 인터페이스 435를 포함한다.
RF 송수신기 410a 내지 410n은 UE 또는 다른 eNB들에 의해 전송된 신호들과 같은 입력 RF 신호들을 안테나 405a 내지 405n으로부터 수신한다. RF 송수신기 410a 내지 410n은 IF 또는 기저대 신호들을 생성하기 위해 입력 RF 신호들을 다운컨버팅한다. IF 또는 기저대 신호들은 기저대 또는 IF 신호들을 필터링, 디코딩, 및/또는 디지털화함으로써, 처리된 기저대 신호들을 생성하는 RF 처리 회로 420에 전송된다. RF 처리 회로 420은 추가 처리를 위해 제어기/프로세서 425에 처리된 기저대 신호들을 전송한다.
TX 처리 회로 415는 제어기/프로세서 425로부터 (음성 데이터, 웹 데이터, 이메일, 또는 인터랙티브 비디오 게임 데이터와 같은) 아날로그 또는 디지털 데이터를 수신한다. TX 처리 회로 415는 처리된 기저대 또는 IF 신호들을 생성하기 위해 출력 기저대 데이터를 인코딩, 멀티플렉싱, 및/또는 디지털화한다. RF 송수신기 410a 내지 410n은 TX 처리 회로 415로부터 출력 처리된 기저대 또는 IF 신호를 수신하고, 안테나 405a 내지 405n을 통해 전송되는 RF 신호들로 기저대 또는 IF 신호들을 업컨버팅한다.
제어기/프로세서 425는 eNB 102의 전체 동작을 제어하는 하나 이상의 프로세서 또는 다른 처리 장치들을 포함할 수 있다. 예를 들어, 제어기/프로세서 425는 잘 알려진 원리들에 따라 RF 송수신기 410a 내지 410n, RX 처리 회로 420, 및 TX 처리 회로 415에 의해 순방향 채널 신호들의 수신 및 역방향 채널 신호들의 전송을 제어할 수 있다. 제어기/프로세서 425는 본 개시의 실시 예들에 기재된 바와 같이 지그재그 윈도우 및 SC-LDPC 코드들을 사용하는 것과 같은 추가 기능들도 지원할 수 있다. 매우 다양한 다른 기능들 중 어느 하나가 제어기/프로세서 425에 의해 eNB 102에서 지원될 수 있다. 일부 실시 예들에서, 제어기/프로세서 425는 적어도 하나의 마이크로프로세서 또는 마이크로제어기를 포함한다. 제어기/프로세서 425는 중지 기능을 갖는 슬라이딩 윈도우 인코더, 중지 기능을 갖는 슬라이딩 윈도우 디코더, 지그재그 윈도우 인코더, 지그재그 윈도우 디코더, 또는 이들의 조합 등을 포함하여 데이터 정보를 인코딩 또는 디코딩하도록 구성된 처리 회로를 포함한다.
또한, 제어기/프로세서 425는 기본 OS와 같이 메모리430에 상주하는 다른 프로세스 및 프로그램들을 실행할 수 있다. 제어기/프로세서 425는 실행하는 프로세스에 의해 필요에 따라 메모리 430의 안으로 또는 밖으로 데이터를 이동시킬 수 있다.
또한, 제어기/프로세서 425는 백홀 또는 네트워크 인터페이스 435에 결합된다. 백홀 또는 네트워크 인터페이스 435는 eNB 102가 네트워크를 통해 또는 백홀 연결을 통해 다른 장치 또는 시스템들과 통신할 수 있도록 한다. 인터페이스 435는 모든 적합한 유선 또는 무선 연결(들)을 통해 통신을 지원할 수 있다. 예를 들어, eNB 102가 (5G, LTE, 또는 LTE-A를 지원하는 것과 같이) 셀룰러 통신 시스템의 일부로서 구현되는 경우, 인터페이스 435는 eNB 102가 유선 또는 무선 백호 연결을 통해 다른 eNB들과 통신할 수 있도록 할 수 있다. eNB 102가 액세스 포인트로서 구현되는 경우, 인터페이스 435는 eNB 102가 (인터넷과 같이) 더 큰 네트워크에 유선 또는 무선 연결을 통해 또는 유선 또는 무선 근거리 네트워크를 통해 통신할 수 있도록 할 수 있다. 인터페이스 435는 이터넷 또는 RF 송수신기와 같이 유선 또는 무선 연결을 통해 통신을 지원하는 모든 적합한 구조를 포함한다.
메모리 430은 제어기/프로세서 425에 결합된다. 메모리 430의 일부는 RAM을 포함할 수 있고, 메모리 430의 다른 일부는 플래시 메모리 또는 다른 ROM을 포함할 수 있다.
보다 상세히 후술되는 바와 같이, (RF 송수신기 410a 내지 410n, TX 처리 회로 415, 및/또는 RX 처리 회로 420을 사용하여 구현되는) eNB 102의 송신 경로 및 수신 경로는 FDD(frequency division duplexing) 셀 및 TDD(time division duplexing) 셀들의 집합과의 통신을 지원한다.
도 4는 eNB 102의 일 예를 도시하지만, 다양한 변경 예들이 도 4에 대해 이루어질 수 있다. 예를 들어, eNB 102는 도 4에 도시된 각각의 구성 요소의 임의의 개수를 포함할 수 있다. 특정 예로서, 액세스 포인트는 다수의 인터페이스 435를 포함할 수 있고, 제어기/프로세서 425는 상이한 네트워크 주소 간에 데이터를 라우팅하는 라우팅 기능들을 지원할 수 있다. 다른 특정 예로서, TX 처리 회로 415의 단일 인스턴스 및 RX 처리 회로 420의 단일 인스턴스를 포함하는 것으로 도시되지만, eNB 102는 (RF 송수신기 당 하나와 같이) 각각의 복수의 인스턴스를 포함할 수 있다.
LDPC 코드들은 최근에 많은 주목을 받았다. 이는 샤논 한계에 가까운 성능을 달성하는 그들의 능력, 하드웨어에서의 높은 병렬화를 용이하게 하는 코드들을 설계하는 능력, 및 그들의 높은 데이터율 지원 때문이다. LDPC 코드들의 가장 일반적으로 배치된 형태는 블록 LDPC 코드들이다. 그러나, 매우 동적인 무선 통신 시스템들에서, 채널 조건들 및 사용자 당 데이터 할당이 연속적으로 변화하는 경우, 블록 LDPC 코드들은 다소 제한된 유연성을 제공한다.
블록 LDPC 코드들을 사용하는 것은 불필요한 패딩을 피하기 위해 코드의 블록 길이의 배수로 데이터를 할당할 필요가 있고, 이는 링크 효율을 감소시킨다. 사양의 일부로 LDPC를 채택한 무선 표준 사이에서, 블록 LDPC 코드들의 세분성 제한을 처리하기 위해 다음의 세 가지 접근법이 언급될 수 있다: (1) IEEE 802.11ad와 같이 하나의 매우 짧은 블록 길이를 갖는 코드들의 사용, 블록 길이가 작을수록, 코드의 세분성이 미세해지지만, 짧은 블록 길이를 갖는 블록 LDPC 코드들은 성능이 부족하고, 이는 링크 효율을 또한 감소시킨다; 2) IEEE 802.11n과 같이 복수의 블록 길이를 갖는 블록 LDPC 코드들의 사용, 본 접근법은 복수의 코드를 지원하기 위한 요건으로 인해 보다 복잡한 디코더를 구현하는 대신에 성능 저하를 완화한다; 및 3) 3GPP와 같이 터보 코드들을 사용. 터보 코드들의 돌림형 구조는 디코더의 복잡성을 증가시키지 않고 높은 세분성을 갖는 확장 가능한 코드 길이를 제공할 수 있다. 그러나, 터보 코드들은 충분한 병렬 처리 능력을 제공하지 못하고, 이는 결국 수 기가비트/초(gigabits per second, Gb/s) 처리량을 달성하는 그들의 능력을 제한한다.
공간적으로 결합된 저밀도 패리티 검사(spacially-coupled low-density parity-check, SC-LDPC) 코드들은 새로운 용량 달성 코드들이다. SC-LDPC 코드들은 터보 코드들과 LDPC 블록 코드들 양쪽의 장점을 결합한다. SC-LDPC 코드들은 비교적 작은 신드롬 포머 메모리를 갖는 특별한 종류의 LDPC 코드들을 형성한다. 따라서, SC-LDPC 코드들은 돌림형 구조를 갖는 패리티 검사 행렬들을 갖는다. 이러한 구조는 다른 블록 LDPC 코드들에 비해 높은 세분성을 갖는 확장 가능한 코드 길이를 허용한다. 또한, SC-LDPC 코드들은 LDPC 코드들의 높은 병렬 처리 능력을 이어받기 때문에, 수 GB의 처리량을 지원할 수 있다.
임의의 다른 블록 LDPC 코드로서 종료된 SC-LDPC 코드들을 디코딩할 수 있지만, 그렇게 하는 것은 SC-LDPC 코드들의 미세한 세분성 및 유연한 길이의 장점들을 없앤다. 또한, 이러한 접근법의 대기 시간 및 하드웨어 복잡성은 매우 큰 블록 길이를 갖는 SC-LDPC 코드들에 대해서는 비실용적이다. SC-LDPC 코드 패트릭 검사 행렬의 돌림형 구조로 인해, 이러한 디코더는 그것이 수렴하기 전에 많은 횟수의 반복을 또한 필요로 한다. 대안적으로, SC-LDPC 코드들은 슬라이딩 윈도우 디코더를 사용하여 디코딩될 수 있다. 이러한 접근법은 전체 블록 디코더 문제들의 대부분을 완화시키는 것으로 보인다. 그러나, 해결해야 할 몇 가지 중요한 성능 문제들이 여전히 존재한다.
첫째, 현재의 SC-LDPC 디코더 평균 반복 횟수가 높다, 예를 들어, 윈도우 크기 15를 갖는 SC-LDPC 코드에 대해 슬라이딩 윈도우 디코더를 실행하면, 윈도우 당 고정된 10회 반복은 변수 노드(variable node, VN) 당 150회 반복을 실행한다. 처리량을 증가시키기 위해서는 슬라이딩 윈도우 디코더 내의 VN 당 평균 반복 횟수까지 감소시킬 필요가 있다. 또한, 현재의 윈도우의 디코딩을 종료하고 다음 윈도우의 디코딩을 시작하기 위해서는 간단한 조기 중지 규칙을 사용할 필요가 있다. VN에 대한 소프트 비트 표시기를 기반으로 하여 디코딩 윈도우 내의 BER(bit error rate)을 추정하는 조기 중지 규칙이 REF-4에서 제안되었다. 그러나, 이러한 규칙의 평가는 룩업 테이블 및 Nt개의 실수 추가를 필요로 하고, 여기서, Nt는 디코딩 윈도우 내의 타겟 변수 노드(variable node, VN) 개수이다. 대신에, 본 개시의 실시 예들은 부분 신드롬 계산을 기반으로 하는 간단한 중지 규칙을 제안하고 평가한다(섹션 Ⅲ 참조).
둘째, 전체 블록 디코더는 디코딩 임계값을 개선하기 위해 SC-LDPC 코드의 양쪽 종단을 사용하는 반면에, 슬라이딩 윈도우 디코더는 시작 종단만을 사용한다. 따라서, 전체 블록 디코더는 슬라이딩 윈도우 디코더를 능가한다. 두 개의 디코더 간의 갭을 더 줄이기 위해, 본 개시의 실시 예들은 지그재그 윈도우 디코더를 소개한다. 또한, 본 개시의 실시 예들은 지그재그 윈도우 디코더가 슬라이딩 윈도우 디코더보다 VN 당 평균 반복 횟수를 더 적게 필요로 한다는 것을 보여준다.
셋째, 동적 무선 채널에 적응하기 위해, 무선 시스템의 코딩 방식은 복수의 코드 레이트를 지원해야 한다. 본 개시의 실시 예들은 복수의 코드 레이트를 지원하는 SC-LDPC 코드 군을 설계하는 문제를 해결한다. 특히, 두 가지 접근법이 BER 성능 및 디코딩 복잡성 면에서 비교된다. 제1 접근법은 코드 펑처링을 사용하고, 제2 접근법은 코드 단축을 사용한다. 결과들은 단축을 기반으로 하는 SC-LDPC 코드 군이 펑처링을 기반으로 하는 SC-LDPC 코드 군보다 빠르게 수렴하고 우수한 오류 성능을 갖는다는 것을 보여준다.
SC-LDPC 코드들: 리뷰 및 예
도 5a, 도5b, 도 5c, 및 도 5d는 예시적인 프로토그래프 기반의 SC-LDPC 코드 구조를 도시한다. 도 5a 내지 도 5d에 도시된 SC-LDPC 코드 구조들의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
프로토그래프 기반의 SC-LDPC 코드는 비교적 적은 개수의 VN 505 및 검사 노드(check node, CN) 510을 갖는 태너 그래프인 프로토그래프 500으로 시작한다. 정규 (3,6) LDPC 코드 프로토그래프의 예가 도 5a에 도시된다. 도 5b에 도시된 바와 같이 (3, 6, L) SC-LDPC 코드 앙상블이 L개의 프로토그래프 복사본을 사용하여 생성된다. 도 5c에 도시된 바와 같이 프로토그래프들 500은 각각의 CN에 결합된 VN을 갖는 사이클들과 상호 연결되지 않는다. 오히려, 도 5d에 도시된 바와 같이 프로토그래프들 500은 체인 520에 결합된다. 체인 520에서 각각의 프로토그래프 500은 그 왼쪽으로 최대 m개의 프로토그래프 복사본 및 그 오른쪽으로 최대 m개의 프로토그래프 복사본에 결합되고, 여기서 m은 신드롬 포머 메모리, 또는 간단히 코드의 메모리라 불린다. 복수의 단계 리프팅을 갖는 프로토그래프 기반의 블록 LDPC 코드들과 대조적으로, SC-LDPC 코드들은 작은 코드의 메모리을 갖는, 즉, m<<L이며, 이는 SC-LDPC 코드들의 패리티 검사 행렬이 돌림형 구조임을 나타낸다. 처음 및 마지막의 m개의 프로토그래프 복사본 내의 CN들 510은 다른 프로토그래프 복사본 내의 그들의 해당 CN들 510보다 낮은 차수를 갖는다는 것을 유의해야 한다. 이것은 SC-LDPC 결합된 체인의 시작 및 끝에서 더 강한 CN들을 의미하고, 이것은 코드 레이트에서의 작은 감소의 비용으로 SC-LDPC 코드들의 반복적인 디코딩 임계값을 개선한다. 결합된 체인에서 처음 m개의 프로토그래프 복사본은 시작-종단 525로 불리고, 마지막 m개의 프로토그래프 복사본은 종료-종단 530으로 불리고, 이들은 도 5d에서 음영 처리된 색상으로 도시된다.
도 6은 본 개시에 따른 리프팅 팩터 Z=112를 갖는 (3, 6, 720) 프로토그래프 기반의 SC-LDPC 코드의 일 예를 도시한다. 도 6에 도시된 프로토그래프 기반의 SC-LDPC 코드의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
예를 들어, (3, 6, 720) SC-LDPC 코드 600은 도 5a에 도시된 프로토그래프를 사용하여 설계된다. 먼저, 도 5d에서와 같이 720개의 프로토그래프 복사본의 체인 520을 결합함으로써 코드 앙상블이 구성된 후, 리프팅 팩터 Z=112를 갖는 결합된 체인을 리프팅함으로써 코드가 구성된다. 설계된 SC-LDPC 코드 600에 대한 패리키 검사 행렬 605가 도 6에 도시된다. 패리티 검사 행렬 605에서 숫자 x는 x 위치들을 오른쪽으로 주기적으로 이동시킨 ZxZ 단위 행렬을 표시한다. 패리티 검사 행렬 605의 빈 항목들은 모든 원소가 0인 ZxZ 행렬이다. 패리티 검사 행렬의 각각의 두 개의 열은 번호로 표시되며, 이는 이들 2Z개의 VN이 속하는 프로토그래프 섹션을 표시한다. 각각의 프로토그래프 섹션에서, 처음 Z개의 VN은 정보 비트이고, 두 번째 Z개의 VN들은 패리티 비트이다. 설계된 SC-LDPC 코드 600은 주기가 3인 시변 준 순환(quasi-cyclic, QC) SC-LDPC 코드이다. 이러한 패리티 검사 행렬에서 순열 행렬들은 처음 9개의 프로토그래프 섹션의 거스를 극대화하기 위해 선택되었다. 이 코드의 주기가 3이기 때문에, 전체 코드의 거스는 처음 9개의 프로토그래프 섹션의 거스와 동일하다.
전형적으로, SC-LDPC 코드 패리티 검사 행렬들은 시작 이전의 항목들이 0이고, 끝 이후의 항목들이 0이라는 가정들로부터 기인한 처음과 끝 부분에서의 뷸규칙성을 갖는다. 패리티 검사 행렬 600은 처음의 시작 종단 610 및 종료 종단 615를 포함한다. SC-LDPC 코드 600은 다음의 두 섹션에서 성능 결과들을 생성하는 단계에서 사용될 것이다.
도 7은 본 개시에 따른 슬라이딩 윈도우 디코더 700을 도시한다. 도 7에 도시된 슬라이딩 윈도우 디코더 700의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
SC-LDPC 코드 600은 블록 LDPC 코드처럼 디코딩될 수 있지만, 매우 큰 길이의 SC-LDPC 코드워드들이 사용되면, 블록 LDPC 코드처럼 SC-LDPC 코드 600을 디코딩하는 것은 일반적으로 비실용적이다. 또한, 블록 디코더를 사용하는 것은 SC-LDPC 코드들의 미세한 세분성 및 유연한 길이의 장점들을 없앤다. 특정 시스템들은 SC-LDPC 코드들을 디코딩하기 위해 슬라이딩 윈도우 디코더를 사용한다. 슬라이딩 윈도우 디코더가 도 7에 도시된다. 디코더는 프로토그래프 섹션의 개수 W, 예를 들어, 크기 W 710으로 정의되는 윈도우 705에서 VN들을 처리한다. 디코더는 최대 반복 횟수를 실행하거나, 조기 종결 기준이 충족되면 중지한다. 그 후, 디코더는 제1 프로토그래프 섹션(또는, 처음 S개 섹션)의 값을 결정한 다음, 제1 프로토그래프 섹션(또는, 처음 S개 섹션)을 출력하고 디코딩 윈도우에서 마지막 섹션 이후의 프로토그래프 섹션(또는 S개 섹션)을 입력함으로써 디코딩 윈도우를 단계 S715에 의해 진행한다.
슬라이딩 윈도우 디코더 700에서, 크기 W 710의 디코딩 윈도우 705는 SC-LDPC 코드 600의 프로토그래프 섹션들을 따라 이동한다. 디코딩 윈도우 705의 위치 p는 윈도우 705의 해당 프로토그래프 섹션을 나타낸다. 슬라이딩 윈도우 디코더 700은 디코딩 윈도우 705가 제1 위치에 있는 경우, 즉 P=1인 경우에 반복적인 디코딩 알고리즘이 수행된 다음, 디코딩 윈도우 705가 제2 위치에 있는 경우, 즉 P=2인 경우에 반복적인 디코딩 알고리즘이 수행된 다음, 디코딩 윈도우 705가 제3 위치에 있는 경우, 즉 P=3인 경우에 반복적인 디코딩 알고리즘이 수행되는 등과 같이 실행된다.
특정 시스템에서, 디코딩 윈도우는 (중지 규칙 없이) 고정된 반복 횟수 후에 중지되거나, 그들은 VN들에 대한 소프트 비트 오류 표시기들의 계산을 필요로 하는 추정된 비트 오류율 메트릭을 사용한다. 평균 반복 횟수를 줄이기 위해(디코딩 전력 소비를 줄이기 위해), 조기 중지 규칙이 구현되어야 한다. 그러나, 다른 시스템들에서의 중지 규칙은 계산하기 복잡하다.
미리 결정된 반복 횟수의 사용은 매우 효율적이지 않지만, 최악의 채널 조건에 대해서는 설정되어야 한다. 대신에, BER을 추정하는 단계를 기반으로 하는 실시간 조기 중지 규칙이 디코딩 윈도우 내의 타겟 VN들의 로그 우도 비(log-likelihood-ratio, LLR)를 사용하여 제안되었다. 추정된 BER이 임계치의 BER보다 작거나, 최대 반복 횟수에 도달하는 경우, 디코딩 윈도우 705는 앞으로 이동한다. BER은 타겟 VN들의 소프트 비트 오류 표시기들의 평균을 구함으로써 추정되고, 여기서 LLR Γ를 갖는 VN에 대한 소프트 비트 오류 표시기는 1/(1+exp(|Γ|))이다. 그러나, 소프트 비트 오류 표시기의 평가는 룩업 테이블을 필요로 하고, 평균을 계산하는 단계는 각 반복 후에 Nt, 예를 들어, Nt=2Z·s번의 실 가산이 필요하다.
도 8은 본 개시에 따른 조기 중지 규칙을 갖는 슬라이딩 윈도우 디코더 800을 도시한다. 도 8에 도시된 슬라이딩 윈도우 디코더 800의 실시 예는 단지 예시를 위한 것이다. 슬라이딩 윈도우 디코더 800은 슬라이딩 윈도우 디코더 700과 동일할 수 있지만, 중지 규칙을 또한 포함한다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다. 슬라이딩 윈도우 디코더 800은 크기 W=10의 디코딩 윈도우705 및 크기 Ws=5의 부분 신드롬 검사 윈도우 810을 포함한다.
본 개시의 실시 예들은 디코딩 윈도우 내의 단지 몇 개의 CN에만 관련되는 코드의 신드롬의 일부만 검사하는 단계를 기반으로 하는 간단한 중지 규칙을 사용한다. 여기서, Ws는 도 8에 도시된 바와 같이 (프로토그래프 섹션의 개수에서) 부분 신드롬 검사 윈도우 폭 810으로 정의된다. 제안된 중지 규칙: 신드롬 검사를 통과하거나 최대 반복 횟수에 도달하면, Ws에서의 CN들에 대한 신드롬을 검사한 다음, S 내의 VN들에 대한 결정이 출력되고, 그 후, 슬라이딩 윈도우의 위치가 업데이트된다.
본 개시의 실시 예들은 디코딩 윈도우 705 내의 단지 몇 개의 CN의 신드롬을 검사하는 단계를 기반으로 하는 간단한 중지 규칙을 사용하도록 제안한다. 이러한 실시 예들에서, 크기 Ws의 부분 신드롬 검사 윈도우 810은 디코딩 윈도우 705에서 처음의 Ws개의 프로토그래프 섹션들로서 정의된다. 슬라이딩 윈도우 디코더 800에서, 크기 W의 디코딩 윈도우 705는 SC-LDPC 코드 600의 프로토그래프 섹션들을 따라 이동한다. 디코딩 윈도우의 위치, Pi는 윈도우에서의 제1 프로토그래프 섹션을 나타낸다. 업데이트된 슬라이딩 윈도우 디코더 800은 다음과 같다:
모든 윈도우 위치 pi=pi-1+s에 대해, 여기서 s는 윈도우 단계 크기, i=1,…,L 및 p1=1,
1) 최대 반복 회수 Iw에 대해,
- 반복적인 LDPC 코드 디코딩 알고리즘에 따라 디코딩 윈도우 805 내의 모든 VN 및 CN을 업데이트한다.
- 부분 신드롬 검사 윈도우 내의 CN들에 대한 신드롬을 계산한다. 모든 CN이 충족되거나 최대 반복 횟수에 도달하면, 다음 단계로 간다. 그렇지 않으면, 다음 반복을 계속한다.
2) 타겟 VN들의 값을 결정한다. 디코딩 윈도우의 처음 S개의 섹션 내의 VN들은 타겟 VN이라 불린다.
디코딩 윈도우 705 내에서, 합-곱(sum-product), 최소-합(min-sum), 이중 양자화 도메인(dual-quantization domain) 등과 같은 LDPC 코드들에 사용된 반복적인 디코딩 알고리즘들 중 어느 하나가 사용될 수 있다. 또한, 디코딩 윈도우 705 내의 CN들을 업데이트하는 단계는 디코딩 윈도우 외부의 VN들에 대한 외부 정보에 대한 액세스가 필요하다는 점에 유의해야 한다. 특히, 디코딩 윈도우 705 직전의 m개의 프로토그래프 섹션들 내의 VN들. 이들 VN은 이전 윈도우로부터의 마지막 업데이트를 기반으로 하여 그들의 외부 정보를 전송한다. 최대 반복 횟수는 윈도우 내에서의 타겟된 오류 확률을 달성하기 위해 선택될 수 있다. 이것은 밀도 진화 기술을 사용하여 수행될 수 있다.
도 9는 상이한 부분 신드롬 검사 윈도우 크기 Ws=5, Ws=4, 및 Ws=3을 갖고, W=15, s=1 및 Iw=90을 갖는 슬라이딩 윈도우 디코더 800을 사용하여 이러한 중지 규칙의 BER 및 FER(frame error rate) 성능을 보여준다. 또한, 결과들은 최대 1000회 반복되는 전체 블록 디코더를 사용한 결과와 비교되었다. 슬라이딩 윈도우 디코더의 FER 성능이 Ws<5에 대해 저하되기 시작한다는 것은 주목할 만하다. Ws>5에 대한 결과들은 Ws=5와 유사한 성능을 갖는 것으로 나타난다. 윈도우 705 내의 CN들이 타겟 VN들에 직접 연결되기 때문에, 이 코드에 대한 Ws 는 3 이상이어야 함을 유의해야 한다.
지그재그 윈도우 디코더
도 10a 및 도 10b는 본 개시에 따른 지그재그 윈도우 디코더 상태들을 도시한다. 지그재그 윈도우 디코더 상태들의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
슬라이딩 윈도우 디코더 800에서, 윈도우는 시작 종단 610에서 종료 종단 615로 한 방향으로 이동한다. 이것은 정보가 단지 한 방향으로 디코딩 윈도우들 705 사이에서 흐를 수 있게 하고, 이로 인해 전체 블록 디코더에 비해 성능이 약간 저하된다. 또한, 슬라이딩 윈도우 디코더 800을 사용한 시뮬레이션들은 디코딩 윈도우가 수렴하지 못할 때 즉, 최대 반복 횟수에 도달하고, 부분 신드롬 검사 윈도우 805 내의 CN들이 충족되지 못할 때, 몇 개의 연속적인 디코딩 윈도우가 또한 발산하지만, 그 이후, 슬라이딩 윈도우 디코딩 800은 올바른 결정으로 다시 수렴할 것이라는 것을 보여주었다. 이것은 도 10a에 도시되고, 여기서 원들은 슬라이딩 윈도우 디코더 800이 SC-LDPC 코드 600의 프로토그래프 섹션들을 따라 이동할 때의 디코딩 윈도우들의 상태를 나타낸다. 흰색 원 1005는 디코딩 윈도우가 올바른 결정에 수렴했음을 표시하고, 회색 원 1010은 디코딩 윈도우가 수렴하지 않았음을 표시한다. 여기서, 발산은 수렴에 실패한 연속적인 프로토그래프 섹션들의 집합으로 정의되고, 발산 크기는 발산 내의 프로토그래프 섹션의 개수로 정의된다. 예를 들어, 도 10a의 발산은 4의 크기를 갖는다.
특정 실시 예들은 지그재그 윈도우 디코더라고 불리는 새로운 디코더를 제공한다. 지그재그 윈도우 디코더에서, 디코딩 윈도우는 도 10c, 도 10d 및 도 10e에 도시된 바와 같이 두 개의 방향을 갖는다.
순방향: 조기 중지 규칙이 충족되거나 최대 반복 횟수에 도달하면, 디코딩 윈도우는 하나의 프로토그래프 섹션(또는, SW개의 섹션들)을 오른쪽으로 진행시켜서 정보를 왼쪽에서 오른쪽으로 밀어낸다. 조기 중지 규칙이 충족되면, 타겟된 프로토그래프 섹션(들)은 디코딩을 통과하도록 설정된다. 그렇지 않으면, 디코딩 실패로 설정한다. 디코딩에 실패한 연속적인 프로토그래프 섹션들은 발산이라고 불린다.
역방향: 발산의 끝에서, 디코딩 윈도우는 그 방향을 변경하여 정보를 오른쪽에서 왼쪽으로 밀어낸다. 이러한 방향은 디코딩 윈도우가 발산의 시작에 도달할 때까지 계속되고, 이후, 순방향으로 전환한다.
지그재그 윈도우 디코더에서, 디코딩 윈도우는 발산의 끝에서 정보를 발산의 끝에서의 올바른 상태에서 다시 발산으로 밀어냄으로써 발산을 교정하기 위해 그 방향을 역전시킨다. 도 10b는 지그재그 윈도우 디코더의 방향을 도시한다. 디코딩 윈도우는 두 개의 방향 즉, 디코딩 윈도우가 시작 종단에서 종료 종단 (오른쪽)으로 이동하는 순방향, 및 디코딩 윈도우가 종료 종단에서 시작 종단(왼쪽)으로 이동하는 역방향을 갖는다. 지그재그 윈도우 디코더 프로세스는 다음과 같다:
1) 윈도우 위치 p=1, window_direction=순반향, 및 previous_window_converged = 참을 설정한다.
2) 최대 반복 횟수 Iw에 대해,
- 반복적인 LDPC 코드 디코딩 알고리즘에 따라 디코딩 윈도우 내의 모든 VN 및 CN을 업데이트한다.
- 부분 신드롬 검사 윈도우 내의 CN들에 대한 신드롬을 계산한다.
- 모든 CN이 충족되면, window_converged = 참을 설정하고, 3 단계로 이동한다.
- 최대 반복 횟수에 도달하면, window_converged = 거짓을 설정하고, 3 단계로 이동한다.
3) 디코딩 윈도우 방향을 검사한다.
- window_direction = 순방향인 경우,
- window_converged = 거짓이고, previous_window_converged = 참인 경우,
- divergence_start_position = p.
- window_converged = 참, previous_window_converged = 거짓이고, Z 라운드 수는 최대 Z 라운드 수보다 적은 경우,
- divergence_end_position = p.
- window_direction = 역방향.
- p=p-2s.
- window_converged = 참인 경우,
- 타겟 VN들의 값을 결정한다.
- previous_window_converged = window_converged.
- p=p+s.
- window_direction = 역방향인 경우,
(a) p>divergence_start_position인 경우,
- p=p-s.
(b) 그밖에
- p=p+s.
- window_direction = 순방향.
- previous_window_converged = 참.
- p<L인 경우, 2단계로 이동하고, 그렇지 않으면, 중지한다.
제안된 지그재그 윈도우 디코더에서, Z 라운드는 발산이 발생할 때 순방향, 역방향, 그 다음 순방향 윈도우의 조합으로서 정의된다. 대안적으로, Z 라운드는 '윈도우 반복', '윈도우 라운드', '윈도우 역전' 등으로 언급될 수 있다. 특정 실시 예들에서, 발산에서의 일부 프로토그래프 섹션들이 Z 라운드의 제2 순방향 윈도우에서 수렴하지 않는 경우, 제2 Z 라운드는 제1 Z 라운드 내에 중첩된다. 이러한 개념의 예시가 도 11a 및 도 11b에 도시된다. 도 11a는 발산이 발생할 때 순방향 1115, 역방향 1120, 그 다음 순방향 1125 윈도우를 갖는 1회의 Z 라운드 1105를 도시한다. 도 11b는 발산이 발생할 때 순방향 1115, 역방향 1120, 제2 순방향 1125, 제2 역방향 1130 및 그 다음 제3 순방향 1135 윈도우를 갖는 1회의 Z 라운드 1110을 도시한다. 마찬가지로, 복수의 Z 라운드가 수행될 수 있다. 그러나, 낮은 SNR(signal to noise ratio) 영역에서 VN들의 집합 내에서의 무제한 바운싱을 방지하기 위해, 최대 Z 라운드 수는 지정되어야 한다.
지그재그 윈도우 디코더의 실제 구현은 Z 윈도우 1015라 불리는 미리 결정된 최대 발산 크기를 지원한다. Z 윈도우 1015는 지원된 최대 발산 크기이다. 특정 실시 예들에서, 구현 메모리는 W+Zw+m에 비례한다. 발산 크기>Z 윈도우인 경우, 지그재그 윈도우 디코더는 코드워드 디코딩을 종료하고, 재전송을 요청한다.
도 12a 및 도 12b는 본 개시에 따른 각각의 지그재그 윈도우 디코더의 성능을 도시한다. 도 12a는 1회의 Z 라운드, ZR=1에 대한 지그재그 윈도우 디코더의 성능을 도시하고, 도 12b는 2회의 Z 라운드, ZR=2에 대한 지그재그 윈도우 디코더의 성능을 도시한다. 도 12a 및 도 12b에 도시된 성능들은 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예 및 데이터들이 사용될 수 있다.
도 12a 및 도 12b는 상이한 최대 반복 횟수 Iw 및 상이한 최대 Z 라운드 수 ZR에 대한 지그재그 윈도우 디코더의 성능을 보여준다. 시뮬레이션은 AWGN(additive white gaussian noise) 채널을 통한 BPSK(binary phase shift keying) 변조를 사용하여 수행되고, 디코딩 윈도우 내에서 사용된 디코더는 플러딩 스케줄링으로 스케일링된 최소 합(min-sum)이다. ZR=0을 갖는 지그재그 윈도우 디코더는 슬라이딩 윈도우 디코더이다. 지그재그 윈도우 디코더는 정보가 발산의 끝에서 역방향으로 흐르는 것을 허용함을 유의해야 한다. 그에 따라, 지그재그 윈도우 디코더의 BER/FER 성능은 슬라이딩 윈도우 디코더보다 양호하다. 또한, 지그재그 윈도우 디코더는 BER 성능을 저하시키지 않고 슬라이딩 윈도우 디코더에 비해 작은 값의 최대 반복 횟수를 사용하는 것을 허용한다. ZR=1 및 IW=5를 갖는 지그재그 윈도우 디코더는 IW=90을 갖는 슬라이딩 윈도우 디코더보다 0.25 데시벨(decibel, dB) 양호함을 유의해야 한다. 또한, 도 12b는 ZR=1 및 IW=5를 갖는 지그재그 윈도우 디코더가 Iw=90을 갖는 슬라이딩 윈도우 디코더보다 적은 VN 당 평균 반복 횟수를 필요로 한다는 것을 보여준다. 마지막으로, 도 12a 및 도 12b는 ZR=1 이상으로 Z 라운드 수를 증가시키면 리턴이 감소한다는 것을 보여준다.
도 12a 및 도 12b의 결과들은 발산 크기에 제한이 없다고 가정한다. 그러나, 지그재그 윈도우 디코더의 실현 가능한 구현은 최대 발산 크기를 지정해야 한다. 지그재그 윈도우 디코더를 구현하기 위해 필요한 메모리는 지원된 최대 발산 크기를 증가시킬 때 증가한다. 최대 발산 크기는 Z 윈도우 크기, ZW라고 불린다. 필요한 구현 메모리는 W+ZW+m에 비례한다.
특정 실시 예들에서, 블록 LDPC 코드들을 디코딩하는 과정에서 사용된 디코딩 알고리즘들 중 어느 하나가 디코딩 윈도우 내의 VN 및 CN들을 업데이트 하는 데 사용될 수 있다. 일반적으로 사용된 디코더들의 일부는 곱-합(product-sum), 스케일링된 최소 합(scaled min-sum, SMS), 및 이중 양자화 도메인(dual-quantization domain, DQD)이다. 디코딩 윈도우 내의 알고리즘은 플러딩 또는 레이어드 스케줄링을 실행할 수 있다. 또한, 윈도우 내의 CN 및 VN들의 처리는 병렬 또는 직렬로 수행될 수 있다.
SC-LDPC 코드들은 유한한 코드의 메모리를 가지며, 다음과 같이 정의된다는 것을 상기한다: 임의로 주어진 프로토그래프 섹션 내의 비트들의 값이 해당 프로토그래프 섹션 이전 또는 이후의 최대 m개의 프로토그래프 섹션 내의 비트들의 값에 의존하는 경우, SC-LDPC 코드는 메모리 m을 갖는다. SC-LDPC 코드들에 대해, m은 전형적으로 작은 수이다, 예를 들어, 도 6에서 SC-LDPC 코드 600 메모리 m=2이다.
이러한 SC-LDPC 코드들의 속성은 SC-LDPC의 윈도우 W에서 작업하는 레이어드 디코딩 기계의 병렬 팩터를 증가시키기 위해 사용될 수 있다. 일반적으로, LDPC 코드들의 병렬 팩터는 Z이지만, SC-LDPC 코드 600의 구조는 Z보다 높은 병렬 팩터를 허용함을 유의해야 한다.
특정 실시 예들에서, 메모리 m의 SC-LDPC 코드는 ZxZ 순환 행렬을 사용하여 구성되고, 레이어드 스케줄링에서 크기 W의 디코딩 윈도우로 디코딩된다. 병렬 경합이 없는(두 개의 CN이 동시에 동일한 VN 메모리에 액세스할 필요가 없는) 상태에서 Z*floor(W/(m+1))개의 CN을 처리하는 것이 가능하다.
일 예로서, W=15의 지그재그 윈도우 디코더 (또는, 슬라이딩 윈도우 디코더)를 사용하는 SC-LDPC 코드 600은 전형적인 레이어드 디코더에서 반복 당 15개의 레이어를 필요로 한다(각각의 레이어가 Z=112개의 CN을 처리한다). 그러나, 상기의 실시 예에 따르면, 3개의 레이어에서 반복을 끝내는 것이 가능하다. 제1 레이어에서 디코딩 윈도우의 1행, 4행, 7행, 10행, 및 13행의 112*5개의 CN을 처리한다. 제2 레이어에서 디코딩 윈도우의 2행, 5행, 8행, 11행, 및 14행의 112*5개의 CN을 처리한다. 제3 레이어에서 디코딩 윈도우의 3행, 6행, 9행, 12행, 및 15행의 112*5개의 CN을 처리한다.
도 13은 본 개시에 따른 지그재그 윈도우 디코더의 1회의 Z 라운드를 갖는 크기 x의 프로토그래프 섹션들의 발산을 정정할 확률을 도시한다. 도 14는 본 개시에 따른 상이한 Z 윈도우 크기를 갖는 지그재그 윈도우 디코더의 FER(점선) 및 BER(실선) 성능을 도시한다. 도 13 및 도 14에 도시된 예들은 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예 및 데이터들이 사용될 수 있다.
도 13은 발산을 정정할 확률이 그 크기에 따라 감소한다는 것을 보여준다. 도 14는 상이한 Z 윈도우 크기(Zw=5, Zw=10, Zw=15, Zw=20, 및 무한대)에 대한 지그재그 윈도우 디코더의 성능을 보여준다. 결과들은 증가하는 Z 윈도우 크기가 성능을 개선하지만, 더 많은 구현 메모리를 필요로 한다는 것을 보여준다. Zw 및 Iw의 선택을 최적하기 위해서는 향후 연구가 필요하다. 예를 들어, 성능을 유지하기 위해 Zw는 감소시키고 Iw는 증가시키는 것이 가능하다.
특정 실시 예들에서, 지그재그 윈도우 디코더는 코드워드 실패 검출 규칙을 포함한다. Zw보다 큰 크기의 발산을 관찰하는 유한한 Z 윈도우 크기 Zw를 갖는 지그재그 윈도우 디코더는 블록 디코딩 실패의 조기 표시로서 사용된다. 이 경우, 지그재그 윈도우 디코더는 SC-LDPC 코드워드의 나머지를 디코딩하는 단계를 중지할 수 있고, 이후 수신기는 송신기로부터 SC-LDPC 코드워드의 재전송을 요청할 수 있다. 이러한 조기 코드워드 실패 검출 규칙은 특히 낮은 SNR에서 평균 반복 횟수를 감소시킨다, 예를 들어, 도 15를 참조하면, 이는 디코더의 전력 소비를 감소시킨다. 또한, 조기 코드워드 실패 검출 규칙은 수신기가 자동 반복 요청(automatic repeat request, ARQ) 또는 하이브리드 ARQ(hybrid ARQ, HARQ)를 통해 재전송을 빠르게 요청하는 것을 허용하고, 이는 피드백 오류 정정 방식의 대기 시간을 감소시킨다.
레이트-1/2 프로토그래프 기반의 SC-LDPC 코드 설계:
도 16은 본 개시에 따른 (3,6) 프로토그래프 기반의 SC-LDPC 코드를 도시한다. 도 16에 도시된 (3,6) 프로토그래프 기반의 SC-LDPC 코드 1600의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
본 개시의 실시 예들은 모두 0인 행렬들에 대해 공백 대신에 "ZZ" 값들을 갖는 도 6의 SC-LDPC 코드 600과 동일하거나 유사할 수 있는 SC-LDPC 코드 1600을 참조하여 설명된다. SC-LDPC 코드 1600 또는 SC-LDPC 코드 600은 본 발명 전반에 걸쳐 예로서 사용된다. 그러나, 본 개시의 실시 예들은 본 예에 국한되지 않고, 모든 SC-LDPC 코드에 적용될 수 있다.
SC-LDPC 코드 1600은 (3,6) 정규 프로토그래프의 여러 개의 복사본으로부터 구성된다. 리프팅 팩터는 Z=112이고, 도 16의 행렬은 SC-LDPC 코드 1600을 구성하는 순환 순열 행렬들에 대한 ID(identifier)를 보여준다. 도 16에 도시된 예에서, A(1), A(2),…, 및 A(18)은 각각 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 6, 14, 12, 28, 21 및 39의 값을 갖는다. ID 0을 갖는 순환 순열 행렬은 ZxZ 단위 행렬임을 유의해야 한다. 또한, ID i를 갖는 순환 순열 행렬은 i 위치를 오른쪽으로 주기적으로 시프트시킨 ZxZ 단위 행렬이다. 또한, 도 16에 도시된 예에서, ZZ는 모든 원소가 0인 ZxZ 행렬을 나타낸다. 이러한 행렬의 행들은 검사 노드(check node, CN)에 해당하고, 열들은 변수 노드(variable node, VN)에 해당한다.
순환 순열들의 두 개의 열 각각은 번호로 표시되고, 이는 이들 2Z개의 VN이 속하는 프로토그래프 섹션을 표시한다. 각각의 프로토그래프 섹션에서, 첫 번째 Z의 VN들은 정보 비트를 나타내고, 두 번째 Z의 VN들은 패리티 비트를 나타낸다. 또한, 패리티 비트를 나타내는 첫 번째 Z의 VN 및 정보 비트를 나타내는 두 번째 Z의 VN들을 갖는 것도 가능하다. 도 16은 720개의 프로토그래프 섹션들을 도시하지만, 이러한 SC-LDPC 코드 1600의 길이는 하나의 코드워드에서 인코딩될 필요가 있고 이용 가능한 정보 비트의 양에 따라 달라질 수 있다. 일반적으로, 코드워드(codeword, CW)의 길이는 실(ceil)(정보 비트의 #/Z)*Z/R이고, 여기서 R은 코드 레이트(본 예에서 R = 1/2)이다. 이러한 코드의 작은 세분성(세분성=Z개의 정보 비트) 및 CW 길이 유연성을 유의하는 것이 중요하고, 이는 무선 통신 표준화에서 프로토그래프 기반의 SC-LDPC 코드들을 채택하기 좋게 만든다. 프로토그래프 기반의 SC-LDPC 코드들은 돌림형/터보 코드들의 CW 길이 유연성 및 작은 세분성을 갖고, 프로토그래프 기반의 SC-LDPC 코드들은 높은 처리량 시스템들에서 필요한 LDPC 코드들의 높은 병렬화 팩터를 갖는다.
또한, CW 길이가 증가함에 따라 반복되는 SC-LDPC 코드 1600을 구성하기 위해 단지 18개의 순환 순열들이 사용됨을 유의해야 한다. 예를 들어, 섹션 1 1605의 프로토그래프에서 사용된 순환 순열들은 프로토그래프 섹션 4 1620, 섹션 7 1635, 섹션 10 등에서 재사용되고, 섹션 2 1610의 프로토그래프에서 사용된 순환 순열들은 프로토그래프 섹션 5 1625, 섹션 8 1640, 섹션 11 등에서 재사용되고, 프로토그래프 섹션 3 1615에서 사용된 프로토그래프 섹션들은 섹션 6 1630, 섹션 9 1645, 섹션 12 등에서 사용된다.
더 높은 레이트를 얻기 위해 설계된 레이트-1/2 SC-LDPC를 펑처링하는 단계:
도 17은 본 개시에 따른 펑처링 패턴을 사용하여 레이트-3/4 로 펑처링된 레이트-1/2 프로토그래프 기반의 SC-LDPC 코드를 도시한다. 도 17에 도시된 SC-LDPC 코드 1700의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
프로토그래프 기반 코드들은 더 높은 레이트를 갖는 코드들을 얻기 위해 펑처링될 수 있다. 예를 들어, SC-LDPC 코드 1600은 레이트-1/2를 갖지만, SC-LDPC 코드 1600은 펑처링 패턴 [1, 0; 1, 1]을 사용하여 레이트-2/3으로, 펑처링 패턴 [1, 0, 1; 1, 1, 0]을 사용하여 레이트-3/4 로, 또는 펑처링 패턴 [1, 0, 1, 0, 1; 1, 1, 0, 1, 0]을 사용하여 레이트-5/6으로 펑처링될 수 있다. 이들 패턴은 돌림형 코드들을 평처링하기 위해 일반적으로 사용된 패턴들과 유사해 보이지만, 여기서 펑처링 패턴은 프로토그래프 섹션들에 적용된다. 예를 들어, 펑처링 패턴 [1, 0, 1; 1, 1, 0]은 SC-LDPC 코드 1600의 세 개의 연속적인 프로토그래프 섹션마다 적용된다. 세미콜론 이전의 값들은 각각의 프로토그래프 섹션의 Z개의 정보 비트를 전송할 지 펑처링할 지를 표시한다. 세미콜론 이후의 값들은 각각의 섹션의 Z개의 패리티 비트를 전송('1'의 값)할 지 펑처링('0'의 값)할 지를 표시한다.
프로토그래프 기반의 SC-LDPC 코드들의 종료:
일반적으로, 블록 LDPC 코드에 대한 SC-LDPC 코드 이득은 SC-LDPC 코드의 종료로부터 온다. 이러한 종료는 전형적으로 코드의 그래프의 가장자리에서 낮은 차수의 CN들로 표시된다. 예를 들어, 도 16의 SC-LDPC 코드 1600에서, 모든 CN은 프로토그래프 섹션 1, 프로토그래프 섹션 2, 프로토그래프 섹션 721 및 프로토그래프 섹션 722의 CN들을 제외하고, 차수 6을 갖는다(섹션 1 및 섹션 722의 CN들은 차수 2를 갖고, 프로토그래프 섹션 2 및 프로토그래프 섹션 721의 CN들은 차수 4를 갖는다). 다른 관점에서, 도 16의 SC-LDPC 코드 1600은 무한히 긴 코드로부터의 섹션으로서 보일 수 있지만, 프로토그래프 섹션 0, 프로토그래프 섹션 -1, 프로토그래프 섹션 -2,… 및 프로토그래프 섹션 721, 프로토그래프 섹션 722, 프로토그래프 섹션 723,…내의 정보 및 패리티 비트들은 0의 값을 갖는다.
특정 실시 예들에서, SC-LDPC 코드 1600과 같은 SC-LDPC 코드는 무한히 긴 SC-LDPC 코드로부터의 섹션으로 볼 수 있지만, 시작 종단 프로토그래프 섹션들 이전 및 종료 종단 프로토그래프 섹션들 이후의 프로토그래프 섹션들 내의 정보 및 패리티 비트들은 고정되거나 (확실하게 패턴을 알고 있다). 예를 들어, SC-LDPC 코드 1600에서 프로토그래프 섹션 0, 프로토그래프 섹션 -1, 프로토그래프 섹션 -2,… 및 프로토그래프 섹션 721, 프로토그래프 섹션 722, 프로토그래프 섹션 723,…내의 비트는 고정되고 알려진 값들을 갖는다. SC-LDPC 코드의 코드워드들은 사용한 고정된 패턴에 의존한다는 것을 유의해야 한다. 이들 고정된 값을 바꾸면 코드의 코드워드가 바뀐다(코드를 바꾼다).
특정 실시 예들에서, SC-LDPC 코드워드는 디바이더 프로토그래프 섹션들의 종료 비트들을 변경함으로써 바꿀 수 있다. 이들 비트는 암호화되어 보안 링크를 통해 수신기로 전송될 수 있다. 특정 실시 예들에서, 이들 비트는 수신된 SC-LDPC 코드워드를 디코딩할 수 있도록 SC-LDPC 디코더를 초기화하는 데 사용된다.
SC-LDPC 코드들은 다음과 같이 정의되는 유한한 코드의 메모리(즉, 신드롬 포머 메모리)를 갖는다: SC-LDPC 코드는 임의로 주어진 프로토그래프 섹션의 비트들의 값이 해당 프로토그래프 섹션 이전 또는 이후의 최대 m개의 프로토그래프 섹션의 비트들의 값에 의존하는 경우 메모리 m을 갖는다. 도 16의 SC-LDPC 코드 1600에서, 코드의 메모리 m=2이다.
도 18은 본 개시에 따른 디바이더 프로토그래프 섹션들을 사용하여 몇 개의 블록 LDPC 코드로 분할된 무한히 긴 SC-LDPC 코드를 도시한다. 도 18에 도시된 분할된 SC-LDPC 코드 1800의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
특정 실시 예들에서, 메모리 m을 갖는 SC-LDPC 코드는 무한히 긴 SC-LDPC 코드로부터의 섹션으로 보이지만, 시작 종단 프로토그래프 섹션들의 이전 및 종료 종단 프로토그래프 섹션들 이후의 m개의 프로토그래프 섹션들 내의 정보 및 패리티 비트들은 고정되거나 긍정적으로 알려진 패턴을 갖는다. 예를 들어, 도 16의 SC-LDPC 코드 1600에서, 프로토그래프 섹션 0, 프로토그래프 섹션 -1, 프로토그래프 섹션 721, 및 프로토그래프 섹션 722 내의 비트들은 고정되고 알려진 값들을 갖는다. 이는 -1 이전 및 722 이후의 프로토그래프 섹션들 내의 비트들의 값에 상관없이 참이다. 알려진 비트 값들을 갖는 임의의 m개의 연속적인 프로토그래프 섹션들은 디바이더 프로토그래프 섹션들 1805로 지칭된다. 두 개의 디바이더 프로토그래프 섹션 1805 사이의 SC-LDPC 코드의 프로토그래프 섹션들은 블록 LDPC 코드 1810을 형성한다는 것을 유의해야 한다. 전형적인 블록 LDPC 코드들과 달리, 분할된 SC-LDPC 코드 1800은 디바이더 프로토그래프 섹션들 1805의 이전 및 이후의 프로토그래프 섹션들과 공동으로 SC-LDPC 디코더를 사용하여 디코딩될 수 있다. 도 18에 도시된 예에서, LDPC 블록들 1810의 길이는 동일할 필요가 없다는 것을 유의해야 한다.
디바이더 프로토그래프 섹션들 1805에서 '0'의 값(또는 알려진 고정된 패턴)의 사용은 코드의 레이트를 감소시킨다.
특정 실시 예들에서, 디바이더 프로토그래프 섹션들 내의 알려진 고정 패턴을 사용하는 대신에, 디바이더 프로토그래프 섹션 1805는 몇 가지 방법을 사용하여 정확성을 위해 검사할 수 있는 정보 및 패리티 비트들을 전달할 수 있다. 일 예로서, 전송된 패킷들은 일반적으로 패킷 정확성을 검사하기 위해 순환 중복 검사(cyclic redundancy check, CRC)를 수행한다. CRC 코드워드의 일부인 m개의 연속적인 프로토그래프 섹션들 내의 비트들이 CRC 검사를 통과하면, 이들 비트는 비트의 알려진 고정된 패턴, 다시 말해서 디바이더 프로토그래프 섹션들 1805로서 처리될 수 있다.
도 19는 본 개시에 따른 동일하지 않은 오류 보호를 사용하여 몇 개의 블록 LDPC 코드로 분할된 매우 긴 SC-LDPC 코드를 도시한다. 도 19에 도시된 분할된 SC-LDPC 코드 1900의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
특정 실시 예들에서, 디바이더 프로토그래프 섹션들 1805 내의 알려진 고정된 패턴을 사용하는 대신에, 디바이더 섹션 1805는 코드워드 내의 다른 비트들보다 작은 비트 오류 확률을 갖는 정보 및 패리티 비트들을 전달한다. 예를 들어, 도 19에 도시된 예에 도시된 바와 같은 디바이더 프로토그래프 섹션들을 생성하기 위해 동일하지 않은 오류 보호 방법들이 사용될 수 있다. 이들 방법은 a) 더 낮은 변조 및 코딩 방식(modulation and coding scheme, MCS), 즉 더 낮은 변조 차수 및/또는 낮은 코딩 레이트; b) 더 좁은 아날로그 빔; 및 c) MIMO 전송의 경우 더 적은 수의 MIMO(multiple input multiple output) 스트림을 포함한다.
도 20은 본 개시에 따른 디바이더 프로토그래프 섹션들을 생성하기 위해 더 강한 헤더 보호를 사용하는 방법을 도시한다. 도 21은 본 개시에 따른 패킷 헤더를 전송하기 위해 반복, 또는 단축 후 반복 프로세스를 사용하여 SC-LDPC 코드워드의 일부를 강화하는 일 예를 도시한다. 도 20 및 도 21에 도시된 실시 예들은 단지 예시를 위한 것이다. 본 개시를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
특정 실시 예들에서, WLAN IEEE 802.11과 같은 패킷 기반 통신 시스템에서 각각의 패킷 2000은 헤더 2005 및 데이터(페이로드) 2010으로 구성된다. 헤더가 데이터보다 더 많이 보호되어야 한다는 것이 일반적이다. 특정 실시 예들에서, 하나의 파일 전송 또는 하나의 데이터 스트림과 같은 큰 덩어리에 속하는 모든 패킷들의 경우, 패킷들 2000은 하나의 SC-LDPC 코드워드 2015로서 인코딩된다. 패킷들 2000의 헤더 2005는 디바이더 프로토그래프 섹션들로서의 역할을 할 것이다. 헤더 2005는 낮은 변조 차수(QPSK), 펑처링 없음, 반복, 단축 또는 이들 방법의 조합을 사용하여 더 잘 보호될 수 있다. 도 21에 도시된 예에서, 헤더 정보 비트들은 단지 예시 목적을 위해 하나의 프로토그래피 섹션을 점유한다. 실제 시스템에서, 헤더 정보 비트들은 하나 이상의 프로토그래프 섹션을 점유할 수 있고, 프로토그래프 섹션들에 맞추기 위해 패딩이 필요할 수 있다.
특정 실시 예들에서, 헤더 2005는 내부 코드를 사용하여 먼저 인코딩될 수 있고, 이후, 내부 코드의 정보 및 패리티 비트들이 SC-LDPC 코드를 사용하여 인코딩된다. 이 경우, SC-LDPC는 헤더 섹션에 관한 외부 코드일 것이다.
헤더 2005가 패킷 데이터 2010을 복조하고 디코딩하는 방법에 관한 정보를 포함하기 때문에, 헤더 2005가 헤더 2005 다음의 데이터 2010과 무관하게 디코딩될 수 있어야 한다는 점을 지적하는 것은 중요하다. 이는 몇 가지 방법으로 수행될 수 있다 즉, 하나의 방법은 헤더가 적어도 W개의 프로토그래프 섹션(하나의 디코딩 가능한 윈도우의 크기)를 점유한다는 것을 확실히 하고, 이후 섹션들이 반복 및 패리티 비트들을 전달하는 동안 헤더 정보 비트를 처음 몇 개의 섹션에 넣는 것이다. 대안적으로, 헤더 2005를 디코딩하기 위해 내부 코드를 사용하고 나서, 디바이더 프로토그래프 섹션으로서 데이터 2010을 디코딩하기 위해 복구된 헤더를 사용할 수 있다.
특정 실시 예들에서, 하나의 SC-LDPC 코드워드를 사용하여 하나로 여러 개의 패킷 2000을 인코딩하는 도 20 및 도 21에 도시된 구조는 해당 패킷 다음에 연속 패킷이 존재한다는 것을 표시하거나 해당 패킷 다음에 연속 패킷이 존재하지 않음을 표시하기 위해 패킷 헤더 2005의 필드를 사용하여 시그널링될 수 있다. 대안적으로, 공동으로 인코딩된 패킷 수, 종료 유형, 종료 빈도, 데이터 변조 및 코딩 방식 등과 같은 SC-LDPC 인코딩 구조를 셋업하는 MAC 레벨 메시지들과 같은 상위 레벨 시그널링이 존재할 수 있다.
도 22는 본 개시에 따른 SC-LDPC 코딩 방식을 사용하는 HARQ 지원에 대한 일 예를 도시한다. 도 22에 도시된 SC-LDPC 코딩 방식 2200의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
특정 실시 예들에서, SC-LDPC 코딩 방식은 다음의 방법으로 하이브리드 자동 반복 요청(hybrid automatic repeat request, HARQ)을 지원한다: 이들 섹션 내의 정보 비트들을 복구할 수 있는 한 수신기는 SC-LDPC 코드 1600의 프로토그래프 섹션들을 디코딩한다. 디코더가 실패하면 2205, 디코더는 관련 패킷의 재전송을 요청한 후, 디코더는 수신된 정보를 계속 버퍼링하면서 재전송된 정보를 기다린다. 대안적으로, 디코더는 적어도 실패한 패킷, 모든 패킷, 또는 실패의 시작에서부터의 섹션들을 버퍼링할 수 있고, 다음 패킷의 헤더를 디코딩하기 시작할 수 있다.
재전송은
(1) (예를 들어, 수신기에서 결합된 체이스가 되는) 실패한 패킷과 관련된 모든 비트의 재전송
(2) 해당 패킷과 관련된 (만약 있다면) 펑처링된 비트의 일부 또는 전부를 전송하는 것에 의한 증분 중복 재전송
(3) 실패한 프로토그래프 섹션 및 실패한 패킷의 끝까지의 모든 다음 섹션들과 관련된 모든 비트(또는 증분 중복)의 재전송
(4) 실패한 프로토그래프 섹션과만 관련되거나 그 이후의 몇 개의 섹션과 관련된 모든 비트(또는 증분 중복)의 재전송일 수 있다.
위의 재전송 방식 3 및 재전송 방식 4는 수신기가 프로토그래프 섹션이 실패한 것에 대한 정보를 피드백하도록 요구한다.
코드 군 설계: 단축 대 펑처링
본 섹션에서는 복수의 코드 레이트를 지원하는 SC-LDPC 코드들의 군을 설계하는 문제가 해결된다. 다음의 두 가지 후보 접근법이 고려된다: 1) 낮은 코드 레이트를 갖는 SC-LDPC 앙상블을 설계한 후, 더 높은 코드 레이트를 갖는 코드들을 얻기 위해 그것을 펑처링한다. 이 접근법은, 여기서의 펑처링이 비트 레벨에서 보다는 프로토그래프 섹션 레벨에서 수행되는 것을 제외하고, 돌림형 코드들과 함께 사용된 방법과 유사하다 즉, SC-LDPC 코드 내의 VN 유형이 펑처링되면, 리프팅된 SC-LDPC 코드 내의 해당 유형의 모든 Z개의 VN이 펑처링될 것이다. 2) 높은 코드 레이트를 갖는 SC-LDPC 코드 앙상블을 설계한 후, 그것을 더 낮은 코드 레이트를 갖는 코드들로 단축시킨다. 이 접근법은 참조 19에서 논의된 AR4JA LDPC 코드 군을 설계하는 과정에서 사용된 방법과 유사하다.
본 개시의 실시 예들은 (접근법 당 하나씩) SC-LDPC 코드들의 두 가지 예시 군을 설계하고 시뮬레이션함으로써 두 개의 코드 군 설계 방법들을 도시하고 비교한다. 그리고 그렇게 제시된 결과들은 BER 성능 및 수렴 속도면에서 이들 두 가지 접근법을 비교하는 방법 및 그것이 계산 복잡성으로 변화되는 방법에 대한 이해를 돕기 위한 것이다. 또한, 본 개시에서는 (종단들을 제외하고 규칙적인) 규칙적인 차수 분포를 갖는 코드들만 고려된다. 규칙적인 SC-LDPC 코드들은 최적화된 불규칙한 설계들과 견줄 만한 좋은 디코딩 임계값을 갖는다.
도 23은 본 개시에 따른 펑처링 행렬 [1, 0, 1; 1, 1, 0]을 사용하여 레이트-3/4로 (3, 6, L) SC-LDPC 앙상블을 펑처링하는 일 예를 도시한다. 도 23에 도시된 펑처링된 코드 구조 2200의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
제1 코드 군에서, (3, 6, 720) SC-LDPC 코드 1600은 가장 낮은 레이트 (~ 레이트-1/2)를 갖는다. SC-LDPC 코드 1600은 각각 펑처링 패턴 [1, 0; 1, 1], [1, 0, 1; 1, 1, 0], 또는 [1, 0, 1, 0, 1; 1, 1, 0, 1, 0]을 사용하여 "대략" 레이트-2/3, 레이트-3/4, 또는 레이트-5/6으로 펑처링된다. 레이트-3/4로 (3, 6, 720) SC-LDPC 코드 1600을 펑처링하는 것에 대한 일 예가 도 23에 주어지고, 여기서 회색 원 2305는 펑처링된 VN들을 표시하고, 흰색 원 2310은 전송된 VN들을 표시한다.
도 24는 본 개시에 따른 레이트-4/5, 레이트-3/4, 레이트-2/3 또는 레이트-1/2로 단축될 수 있는 레이트-5/6 (3,18) LDPC 코드 프로토그래프를 도시한다. 도 24에 도시된 프로토그래프 2400의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
제2 코드 군에서, (3, 18, L) SC-LDPC 코드 앙상블이 도 24의 프로토그래프 2400을 기반으로 하여 설계된다. 그 다음, 이 코드는 Z=112 순환 순열 행렬들을 사용하여 주기가 3인 시변 준 순환 SC-LDPC 코드로 리프팅된다. 설계된 코드에 대한 패리티 검사 행렬 2500이 도 25에 도시된다. 순열 행렬들은 계층적 방법으로 선택되었다: 먼저, 코드의 처음 9개의 프로토그래프 섹션들의 거스를 극대화하기 위해 i1 2405 및 p1 2410, 제5 열 및 제6 열 2505를 리프팅하는 순열 행렬들이 선택되었고, 여기서 모든 다른 순열들은 모든 원소가 0인 ZxZ 행렬로 설정되었다. 그 다음, 거스를 극대화하기 위해 i2 2415, i3 2420, i4 2425, 및 마지막으로 i5 2430을 리프팅하는 순열 행렬들이 추가되었다. 이 코드를 레이트-4/5 코드로 단축시키기 위해, 모든 제1 열 2510이 삭제되었다(즉, i5의 모든 VN을 '0'으로 설정한 후, 전송 전에 이들을 삭제). 코드를 레이트-3/4 코드로 단축시키기 위해, 모든 제1 열 2510 및 제2 열 2515가 삭제되는 등, 레이트-2/3 코드 및 레이트-1/2 코드를 얻기 위해서 코드는 더 단축될 수 있다.
펑처링된 코드 군에서, 코드워드 내의 정보 비트 수는 고정되고 80416 비트와 동일하다. 단축된 코드 군에서, 프로토그래프 복사본의 개수 L은 코드워드 내의 정보 비트 수 80416을 유지하기 위해 각각의 코드 레이트에 맞게 조정된다. 따라서, 레이트-1/2, 레이트-2/3, 레이트-3/4 및 레이트-5/6에 대해 각각 L=720, L=360, L=240, 및 L=144이다. 또한, 공정한 비교를 유지하려고 노력하면, 디코딩 윈도우의 크기는 디코딩 윈도우 내의 VN의 개수가 30이 되도록 달라진다. 즉, 펑처링된 코드 군 내의 모든 코드에 대해 W=15이고, 단축된 코드 군의 레이트-1/2, 레이트-2/3, 레이트-3/4 및 레이트-5/6 각각에 대해 W=15, W=10, W=7 및 W=5이다(레이트-3/4인 경우, W는 7.5이어야 하지만, 7로 근사치를 계산하였다).
도 26 및 도 27의 FER 및 평균 반복 횟수 결과들은 펑처링된 코드 군 및 단축된 코드 군의 레이트-1/2 코드들은 유사한 성능을 갖는다는 것을 보여준다. 단축된 코드 군의 레이트-2/3 코드는 펑처링된 코드 군의 레이트-2/3 코드보다 약간 더 잘 수행된다. 단축된 코드 군의 레이트-3/4 코드는 FER 성능 면에서 0.6dB 만큼 펑처링된 코드 군의 레이트-3/4 코드를 능가하고, 임의로 주어진 SNR 포인트에서 VN 당 평균 12회 이상의 반복 감소를 제공한다. 단축된 코드 군의 레이트-5/6 코드는 단축된 코드 군이 펑처링된 코드 군보다 더 잘 수행되도록 설계된 FER 면에서 0.9dB 만큼 펑처링된 코드 군의 레이트-5/6을 능가한다.
단축된 코드 군의 코드들은 VN 당 평균 반복 횟수가 적지만, 이것이 반드시 계산 복잡성을 낮출 수 있는 것은 아니다. 단축된 코드 군의 코드들은 펑처링된 코드 군의 코드들보다 큰 차수의 CN들을 갖는다는 것을 유의해야 하고, 이것은 계산 복잡성 비교에서 고려되어야 한다. 계산 복잡성의 경우, (반복 당) 차수 dc를 갖는 CN이 스케일링을 위해 두 가지 추가 연산 즉, 최소값을 찾기 위한 3(dc-2)번의 비교 연산 및 부호를 계산하기 위한 2dc-1번의 XOR 연산을 필요로 하는 스케일링된 최소-합(Min-Sum) 디코더의 사용을 가정한다. 또한, 차수 dv를 갖는 VN은 반복 당 2dv-1번의 추가 연산이 필요하다. 또한, 한 번의 추가 연산 한 번의 비교 연산, 또는 8번의 XOR 연산에 해당한다고 가정하면, 단축된/펑처링된 복합성 비는 펑처링된 코드 군의 VN을 디코딩하는 단계마다의 XOR(exclusive-or) 연산의 횟수로 나뉜 단축된 코드 군의 VN을 디코딩하는 단계마다의 XOR 연산의 횟수로서 정의된다. 또한, 비교는 동일한 SNR 포인트 또는 동일한 FER 성능에서 이루어질 수 있다. 복잡성 비는 표 1에 요약된다.
본 개시의 실시 예들은 SC-LDPC 코드들의 윈도우 디코딩에 대한 조기 중지 규칙을 제공한다. 조기 중지 규칙은 XOR 연산들만을 수행하는 부분 신드롬 검사를 기반으로 한다. 또한, 본 개시의 실시 예들은 발산의 끝에서 뒤로 정보를 밀어낼 수 있는 지그재그 윈도우 디코더를 제안한다. 제안된 조기 중지 규칙과 함께 제안된 지그재그 윈도우 디코더는 전체 블록 디코더와 유사한 FER 성능을 가지며, VN 당 평균 반복 횟수를 FER=1e-2에서 전체 블록 디코더에 대한 55회에서 30회로 감소시킨다.
펑처링 또는 단축을 통해 상이한 레이트를 지원하는 코드 군들의 두 가지 예를 비교하였다. 결과들은 단축된 코드 군이 펑처링된 코드 군보다 잘 수행되고, 특히 높은 레이트 코드들의 경우 더 낮은 계산 복잡성을 가짐을 보여준다.
도 28은 본 개시에 따른 단축을 기반으로 하는 예시적인 SC-LDPC 코드 군들을 도시한다. 도 28에 도시된 SC-LDPC 코드 군들 2800의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다.
도 28은 군에서 가장 높은 코드 레이트를 갖는 코드에 대한 패리티 검사 행렬의 세 가지의 프로토그래프 섹션을 도시하고, 여기서 ZZ는 모든 원소가 0인 ZxZ행렬을 나타내고, 값 A(i,j)는 (리프팅 팩터 Z에 따라) 아래의 행렬들의 i번째 행과 j번째 열에서 취한다.
Z=112인 경우, 리프팅 행렬의 일 예는 아래의 표와 같다.

Figure 112017065243114-pct00044

Z=42인 경우, 리프팅 행렬의 일 예는 아래의 표와 같다.
Figure 112017065243114-pct00045

Z=27인 경우, 리프팅 행렬의 일 예는 아래의 표와 같다.
Figure 112017065243114-pct00046

Z=24인 경우, 리프팅 행렬의 일 예는 아래의 표와 같다.
Figure 112017065243114-pct00047

도 29는 본 개시에 따른 수신 노드의 동작 프로세스를 도시한다. 흐름도는 순차적인 일련의 단계들을 도시하지만, 명시적으로 언급하지 않는 한, 수행의 구체적인 순서, 중복 방식 또는 동시적이 아닌 순차적인 단계들 또는 그의 부분들의 수행, 또는 개입 또는 중간 단계들의 발생 없이 독점적으로 도시되는 단계들의 수행과 관련하여 해당 순서로부터 어떠한 추론도 이끌어내어서는 안된다. 도시된 예에 도시된 프로세스는 예를 들어 기지국 또는 단말기와 같은 수신 노드에서 구현된다.
도 29를 참조하면, 단계 2901에서, 수신 노드는 송신 노드로부터 SC-LDPC 코드를 기반으로 하여 적어도 하나의 코드워드를 포함하는 신호들을 수신한다. 적어도 하나의 코드워드는 SC-LDPC 코드를 사용하여 송신 노드에 의해 생성된다. 적어도 하나의 코드워드는 헤더 및 페이로드를 포함하는 패킷을 포함하고, 헤더는 하나 이상의 SC-LDPC 코드의 프로토그래프 섹션들을 분할하기 위한 디바이더 프로토그래프 섹션으로서 구성된다.
그 후, 단계 2903에서, 수신 노드는 슬라이딩 윈도우를 사용하여 적어도 하나의 코드워드를 디코딩한다. 여기서, 슬라이딩 윈도우는 선택적으로 순방향 또는 역방향으로 이동한다. 슬라이딩 윈도우는 현재의 슬라이딩 윈도우에서 하나 이상의 CN의 신드롬을 기반으로 하여 역방향으로 이동한다. 특히, 수신 노드는 중지 규칙이 충족될 때까지 반복적으로 디코딩 계산들을 수행한다. 중지 규칙은 현재의 슬라이딩 윈도우에서 하나 이상의 CN의 신드롬의 함수로서 정의된다.
SC-LDPC 코딩 방식은 HARQ를 지원한다. 이 경우, 수신 노드는 디코더가 프로토그래프 섹션들 내의 정보 비트들을 복구할 수 있는 한 SC-LDPC 코드의 프로토그래프 섹션들을 디코딩하고, 관련 패킷의 재전송을 요청하고, 디코더 실패에 응답하여 재전송된 관련 패킷을 기다리는 동안 수신된 정보를 계속 버퍼링한다. 다른 실시 예에서, 수신 노드는 적어도 실패한 패킷, 모든 패킷, 또는 실패의 시작부터의 섹션들을 버퍼링하고, 디코더 실패에 응답하여 다음 패킷의 헤더를 디코딩하기 시작한다, 재전송은 실패한 패킷과 관련된 모든 비트의 재전송, 패킷과 관련된 펑처링된 비트의 일부 또는 전부의 전송을 포함하는 증분 중복 재전송, 실패한 프로토그래프 섹션 및 실패한 패킷의 끝까지의 모든 다음 섹션들과 관련 모든 비트 또는 증분 중복의 재전송, 및 실패한 프로토그래프 섹션과만 관련되거나 실패한 프로토그래프 섹션 이후의 몇 개의 섹션들과 관련된 모든 비트 또는 증분 중복의 재전송 중 하나이다. 또한, 수신 노드는 단축 동작에 의해 SC-LDPC 코드의 레이트를 감소시킬 수 있다.
특허청 및 본 출원에 공표된 모든 특허의 독자들이 첨부된 청구 범위들을 해석하는 것을 돕기 위해, 출원인들은 "~를 위한 수단" 또는 "~를 위한 단계"라는 단어들이 특정 청구 범위에 명시적으로 사용되지 않는 한, 첨부된 청구 범위 또는 청구 범위 요소들의 어느 것도 35U.S.C.§112(f)를 적용하는 것을 의도하지 않는다는 점을 유의하기를 바란다. 청구 범위 내에서 "메커니즘", "모듈", "장치", "유닛", "구성 요소", "요소", "부재", "장치", "기계", "시스템", "프로세서", 또는 "제어기"를 제한 없이 포함하여 모든 다른 용어의 사용은 당업자들에게 알려진 구조들을 언급하는 것으로 출원인들에 의해 이해되며, 35U.S.C.§112(f)를 적용하기 위해 의도된 것은 아니다.
본 개시는 예시적인 실시 예로 설명되었지만, 다양한 변경 예 및 수정 예가 당업자에게 제안될 수 있다. 본 개시는 첨부된 청구 범위의 범위 내에 속하는 이러한 변경 예 및 수정 예들을 포함하는 것으로 의도된다.1 through 29 discussed below and the various embodiments used to explain the principles of the present disclosure are for illustrative purposes only and should not be construed as limiting the scope of the present disclosure in any way. Those skilled in the art will appreciate that the principles of this disclosure may be implemented in any suitably arranged wireless communication system.
The following documents are incorporated by reference as if set forth in this disclosure in their entirety. DJ Costello, Jr., L. Dolecek, TE Fuja, J. Kliewer, DGM Mitchell, and R. Smarandache, "Spatially Coupled Sparse Codes on Graphs - Theory and Practice," arXive, October 2013 (REF-1); Michael Lentmaier, Maria Mellado Prenda, and Gerhard P. Fettweis, "Efficient Message Passing Scheduling for Terminated LDPC Convolutional Codes," IEEE ISIT, August 2011 (REF-2); Shrinivas Kudekar, Tom Richardsony and Rødiger Urbanke, "Threshold Saturation via Spatial Coupling: Why Convolutional LDPC Ensembles Perform so well over the BEC," arXiv, October 2010 (REF-3); Vikram Arkalgud Chandrasetty, Sarah J. Johnson and Gottfried Lechner, "Memory Efficient Quasi-Cyclic Spatially Coupled LDPC Codes", arXive October 2013 (REF-4); and Najeeb ul Hassan, Michael Lentmaier, and Gerhard P. Fettweis, "Comparison of LDPC Block and LDPC Convolutional Codes Based on their Decoding Latency," IEEE ISTC August 2012 (REF-5); D. Hocevar, "A reduced complexity decoder architecture via layered decoding of LDPC codes," IEEE Workshop on Signal Processing Systems, 2004., pp. 107-112, Oct. 2004 (REF-6); Shadi Abu-Surra, Eran Pisek, Thomas Henige, and Sridhar Rajagopal, "Low-Power Dual Quantization-Domain Decoding for LDPC Codes," IEEE Globecom 2014 (REF-7); M. Davey and DJ Mackay, "Low density parity check codes over GF(q)," IEEE Commun. Letters, vol. 2, p. 165-167, Jun 1998 (REF-8); J. Chen, A Dholakia, E. Eleftheriou, M. Fossorier, "Reduced-Complexity Decoding of LDPC Codes," IEEE Trans. on Commun., vol. 53, pp. 53; 1288-1299, Aug. 2005 (REF-9); RG Gallager, "Low-density parity-check codes", Cambridge, MA: MIT Press, 1963 (REF-10); DJC MacKay and RM Neal, "Near Shannon limit performance of low density parity check codes," Electronics Letters, vol. 32, pp. 32; 1645-1646, Aug. 1996 (REF-11); IEEE 802.11ad standard spec., Part 11: Wireless LAN medium access control (MAC) and physical layer (PHY) Specifications, Amendment 3: Enhancements for very high throughput in the 60 GHz Band, (REF-12); RG Gallager, "A simple derivation of the coding theorem and some applications," IEEE Trans. on Information Theory, vol. 11, p. 3-18, Jan. 1965 (REF-13); IEEE 802.11n-2009 standard spec., Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 5: Enhancements for Higher Throughput, retrieved from the Internet <URL: http://standards.ieee. org/getieee802/download/802.11ad-2012.pdf>(REF-14); 3GPP, "Evolved Universal Terrestrial Radio Access (E-UTRA); Physical channels and modulation; (release 11)," 3GPP, 2013, retrieved from the Internet <URL: http://www.3gpp.org/ftp/Specs/ html-info/36211.htm>(REF-15); DJ Costello, Jr., L. Dolecek, TE Fuja, J. Kliewer, DGM Mitchell, and R. Smarandache, "Spatially Coupled Sparse Codes on Graphs—Theory and Practice," arXive, October 2013, (REF-16); Michael Lentmaier, Maria Mellado Prenda, and Gerhard P. Fettweis, "Efficient Message Passing Scheduling for Terminated LDPC Convolutional Codes," IEEE ISIT, Aug. 2011, (REF-17); S. Abu-Surra, E. Pisek, and T. Henige, "Gigabit Rate Achieving Low-Power LDPC Codes: Design and Architecture," IEEE Wireless Commun. And Networking Conf., Mar. 2011, (REF-18); and D. Divsalar, S. Dolinar, and C. Jones, "Construction of Protograph LDPC Codes with Linear Minimum Distance," IEEE ISIT, Jul. 2006, (REF-19).
In a communication system, channel coding is important to achieve capacity access performance. Many schemes such as turbo codes and LDPC block codes are used in wireless communication standards. However, these coding schemes have limitations. For example, the structure of turbo codes does not provide sufficient parallelism to achieve very large gigabits per second (GB/s) throughput. Alternatively, the structure of LDPC block codes provides a large parallelism factor, but the granularity is limited by the fixed block size of the code.
Spatially-coupled low-density parity-check (SC-LDPC) codes are new capacity achieving codes that combine the advantages of both turbo codes and LDPC block codes. SC-LDPC codes have the potential to achieve high data rates and have a small granularity compared to LDPC block codes.
Embodiments of this disclosure relate to the design and decoding of SC-LDPC codes. Certain embodiments of this disclosure address the SC-LDPC code structure (specifically, termination) and how to realize it in a wireless communication standard. While some of these embodiments are geared towards WLAN systems, other embodiments have lower level details to cover adoption in other standards, such as mobile communication standards. Certain embodiments of the present disclosure propose a new decoder, referred to as a zigzag window decoder, capable of improving SC-LDPC code performance and reducing the number of iterations.
Embodiments of the present disclosure propose an SC-LDPC code scheme for adding SC-LDPC to a communication system. SC-LDPC codes have a high parallel factor that can achieve several gigabits per second (GB/s) with low power consumption. They have low granularity and extensible codeword length to enable high efficiency in dynamic radio environments. In addition, certain embodiments of the present disclosure propose a new decoding scheme, such as one configured for use by a new zigzag window decoder, that can achieve better performance than a sliding window decoder.
1 depicts an exemplary wireless network 100 in accordance with the present disclosure. The embodiment of the wireless network 100 shown in FIG. 1 is for illustration only. Other embodiments of the wireless network 100 may be used without departing from the scope of the present disclosure.
As shown in FIG. 1 , a wireless network 100 includes an eNodeB (eNB) 101 , an eNB 102 , and an eNB 103 . eNB 101 communicates with eNB 102 and eNB 103 . The eNB 101 also communicates with at least one internet protocol (IP) network 130, such as the Internet, a dedicated IP network, or other data network.
Depending on the network type, other well-known terms such as "base station" or "access point" may be used instead of "eNodeB" or "eNB". For convenience, the terms “eNodeB” and “eNB” are used in this patent document to denote network infrastructure components that provide wireless access to remote terminals. Also, depending on the type of network, other well-known terms such as "mobile station", "subscriber station", "remote terminal", "wireless terminal", or "user equipment" may also be used to refer to "user equipment" or "UE". can be used instead. For convenience, the term “user equipment” or “UE” in this patent document refers to whether a UE is a mobile device (such as a mobile phone or smartphone) or a fixed device (such as a desktop computer or vending machine). Whether considered as , it is used to indicate a remote wireless terminal wirelessly accessing an eNB.
The eNB 102 provides wireless broadband access to a network 130 to a first plurality of user equipment (UEs) within a coverage area 120 of the eNB 102 . The first plurality of UEs include UE 111 that may be located in a small business (SB), UE 112 that may be located in a large enterprise (E), and UE 113 that may be located in a WiFi hotspot (HS). , UE 114 that can be located in the first residence (residence, R), UE 115 that can be located in the second residence (residence, R), and mobile devices such as mobile phones, wireless laptops, or wireless PDAs (mobile devices, M) UE 116, which may be The eNB 103 provides wireless broadband access to the network 130 to a second plurality of UEs within a coverage area 125 of the eNB 103 . The second plurality of UEs include UEs 115 and UEs 116 . In some embodiments, one or more eNBs 101 - 103 may communicate with each other and with UEs 111 - 116 using 5G, LTE, LTE-A, WiMAX, or other evolved wireless communication technologies.
Dotted lines indicate approximate extents of coverage area 120 and coverage area 125, which are drawn approximately circular for illustration and description only. It should be clearly understood that coverage areas associated with eNBs, such as coverage area 120 and coverage area 125, may have different shapes, including irregular shapes, depending on the configuration of the eNBs and variations in the wireless environment related to natural and man-made obstacles. do.
As described in more detail below, one or more eNBs 101 to 103 are configured to encode data using zigzag windows and SC-LDPC codes as described in embodiments of the present disclosure. In certain embodiments, one or more eNBs 101 - 103 are configured to decode data using zigzag windows and SC-LDPC codes as described in embodiments of this disclosure. In certain embodiments, one or more UEs 111 - 116 are configured to encode data using zigzag windows and SC-LDPC codes as described in embodiments of this disclosure. In certain embodiments, one or more UEs 111 - 116 are configured to decode data using zigzag windows and SC-LDPC codes as described in embodiments of this disclosure.
Although FIG. 1 shows an example of a wireless network 100 , various changes may be made to FIG. 1 . For example, wireless network 100 may include any number of eNBs and any number of UEs in all suitable arrangements. In addition, eNB 101 may communicate directly with any number of UEs and provide wireless broadband access to network 130 to these UEs. Similarly, each of eNB 102 and eNB 103 can communicate directly with network 130 and provide direct wireless broadband access to network 130 for UEs. Additionally, eNB 101 , eNB 102 , and/or eNB 103 may provide access to other or additional external networks, such as an external telephone network or other types of data networks.
2A and 2B show exemplary wireless transmit and receive paths according to the present disclosure. In the description that follows, transmit path 200 may be described as being implemented in an eNB (such as eNB 102) and receive path 250 may be described as being implemented in a UE (such as UE 116). However, it will be appreciated that receive path 250 can be implemented in an eNB and transmit path 200 can be implemented in a UE. In certain embodiments, transmit path 200 is configured to encode data using zigzag windows and SC-LDPC codes as described in embodiments of this disclosure. In certain embodiments, receive path 250 is configured to decode data using zigzag windows and SC-LDPC codes as described in embodiments of this disclosure.
Transmit path 200 includes channel coding and modulation block 205, serial-to-parallel (S-to-P) block 210, size N inverse fast fourier transform (IFFT) block 215, parallel - includes a parallel-to-serial (P-to-S) block 220, an additional cyclic prefix block 255, and an up-converter (UC) 230. Receive path 250 includes a down-converter (DC) 255, a rejection cyclic prefix block 260, a serial-to-parallel (S-to-P) block 265, a fast fourier transform of size N transform (FFT) block 270, parallel-to-serial (P-to-S) block 275, and channel decoding and demodulation block 280.
On transmit path 200, channel coding and modulation block 205 receives a set of information bits, applies coding (such as low-density parity check (LDPC) coding), and generates a sequence of frequency domain modulation symbols. modulates the input bits (eg using quadrature phase shift keying (QPSK) or quadrature amplitude modulation (QAM)) to Serial-to-parallel conversion block 210 converts (such as demultiplexing) serial modulated symbols to parallel data to produce N parallel symbol streams, where N is the IFFT/FFT size used in eNB 102 and UE 116. . IFFT block 215 of size N performs IFFT operations on the N parallel symbol streams to generate time domain output signals. Parallel-to-serial conversion block 220 converts (such as multiplexing) the parallel time domain output symbols from IFFT block 215 of size N to produce a serial time domain signal. Add cyclic prefix block 225 inserts a cyclic prefix into the time domain signal. Upconverter 230 modulates (such as upconverts) the output of additional cyclic prefix block 225 to an RF frequency for transmission over a wireless channel. Additionally, the signal may be filtered at baseband prior to conversion to the RF frequency.
The transmitted RF signal from the eNB 102 arrives at the UE 116 after passing through the radio channel, and reverse operations to those at the eNB 102 are performed at the UE 116 . Downconverter 255 downconverts the received signal to baseband frequency, and remove cyclic prefix block 260 removes the cyclic prefix to produce a serial time domain baseband signal. Serial-to-parallel conversion block 265 converts the time domain baseband signals to parallel time domain signals. FFT block 270 of size N performs an FFT algorithm to generate N parallel frequency domain signals. Parallel-to-serial conversion block 275 converts the parallel frequency domain signals into a sequence of modulated data symbols. Channel decoding and demodulation block 280 demodulates and decodes the modulated symbols to recover the original input data stream.
Each of eNB 101 to eNB 103 can implement a transmit path 200 similar to a transmit step in downlink to UE 111 to UE 116, and a receive path 250 similar to a receive step in uplink from UE 111 to UE 116. can be implemented Similarly, each of UE 111 to UE 116 may implement a transmit path 200 for a transmit step in uplink to eNB 101 to eNB 103, and a receive path for a receive step in downlink from eNB 101 to eNB 103. 250 can be implemented.
Each of the components of FIGS. 2A and 2B may be implemented using only hardware or a combination of hardware and software/firmware. As a specific example, at least some of the components of FIGS. 2A and 2B may be implemented in software, while other components may be implemented by configurable hardware or a mixture of configurable hardware and software. For example, FFT block 270 and IFFT block 215 can be implemented as configurable software algorithms, where the value of size N can be modified depending on the implementation.
Also, although described using FFT and IFFT, this is for illustrative purposes only and should not be construed as limiting the scope of the present disclosure. Other types of transforms may be used, such as discrete fourier transform (DFT) and inverse discrete fourier transform (IDFT) functions. The value of variable N for DFT and IDFT functions can be any integer (such as 1, 2, 3, 4, etc.), and the value of variable N for FFT and IFFT functions is (1, 2, 4, 8, 16, etc.) like) can be any integer that is a power of 2.
2A and 2B show examples of wireless transmit and receive paths, various modifications may be made to FIGS. 2A and 2B. For example, various components in FIGS. 2A and 2B may be combined, further subdivided, or omitted, and additional components may be added according to specific needs. 2A and 2B are also intended to illustrate examples of the types of transmit and receive paths that may be used in a wireless network. Other suitable architectures may be used to support wireless communication in a wireless network.
3 shows an exemplary UE 116 in accordance with the present invention. The embodiment of the UE 116 shown in FIG. 3 is for illustrative purposes only, and the UEs 111 to 115 of FIG. 1 may have the same or similar configuration. However, UEs come in a wide variety of configurations, and FIG. 3 does not limit the scope of the present invention to a particular implementation of a UE.
The UE 116 includes antennas 305a through 305n, radio frequency (RF) transceivers 310a through 310n, transmit (TX) processing circuitry 315, a microphone 320, and receive (RX) processing circuitry 325. TX processing circuit 315 and RX processing circuit 325 are respectively RF transceiver 310a to RF transceiver 310n respectively, for example, RF transceiver 310a, RF transceiver 310b to Nth RF coupled to antenna 305a, antenna 305b and Nth antenna 305n, respectively coupled to the transceiver 310n. In certain embodiments, UE 116 includes one antenna 305a and one RF transceiver 310a. In addition, the UE 116 includes a speaker 330, a main processor 340, an input/output (I/O) interface (IF) 345, a keypad 350, a display 355, and a memory 360. The memory 360 includes a basic operating system (OS) program 361 and one or more applications 362 .
RF transceivers 310a through 310n receive an input RF signal transmitted by an eNB or AP of network 100 from respective antennas 305a through 305n. In certain embodiments, each RF transceiver 310a through 310n and each antenna 305a through 305n is configured for a particular frequency band or technology type. For example, a first RF transceiver 310a and antenna 305a may be configured to communicate via short-range wireless communication such as BLUETOOTH®, while a second RF transceiver 310b and antenna 305b may be configured to communicate via IEEE 802.11 communication such as Wi-Fi. The other RF transceiver 310n and antenna 305n may be configured to communicate via cellular communication such as 3G, 4G, 5G, LTE, LTE-A, or WiMAX. In certain embodiments, one or more RF transceivers 310a through 310n and each antenna 305a through 305n are configured for a particular frequency band or the same technology type. RF transceivers 310a through 310n downconvert the input RF signal to generate an intermediate frequency (IF) or baseband signal. The IF or baseband signal is sent to RF processing circuitry 325 which generates a processed baseband signal by filtering, decoding, and/or digitizing the baseband or IF signal. The RF processing circuitry 325 sends the processed baseband signal to the main processor 340 for further processing (such as for web browsing data) or to the speaker 330 (such as for voice data).
TX processing circuitry 315 receives analog or digital voice data from microphone 320, or other output baseband data (such as web data, e-mail, or interactive video game data) from main processor 340. TX processing circuitry 315 encodes, multiplexes, and/or digitizes the output baseband data to generate a processed baseband or IF signal. The RF transceivers 310a to 310n receive the output-processed baseband or IF signals from the TX processing circuit 315 and upconvert the baseband or IF signals to RF signals transmitted through one or more antennas 305a to 305n.
The main processor 340 may include one or more processors or other processing units, and may execute a basic OS program 361 stored in the memory 360 to control the overall operation of the UE 116 . For example, main processor 340 may control reception of forward channel signals and transmission of reverse channel signals by RF transceivers 310a through 310n, RX processing circuitry 325 and TX processing circuitry 315 according to well-known principles. In some embodiments, main processor 340 includes at least one microprocessor or microcontroller. The main processor 340 includes processing circuitry configured to encode or decode data information, including a sliding window encoder with a pause function, a sliding window decoder with a pause function, a zigzag window encoder, a zigzag window decoder, or a combination thereof.
In addition, the main processor 340 may execute other processes and programs residing in the memory 360, such as operations for using zigzag windows and SC-LDPC codes as described in embodiments of the present disclosure. The main processor 340 can move data into or out of the memory 360 as needed by the executing process. In some embodiments, main processor 340 is configured to execute application 362 in response to signals received from workers or eNBs, or based on OS program 361 . The main processor 340 is also coupled with an I/O interface 345 that provides the UE 116 with the ability to connect to other devices such as laptop computers and handheld computers. The I/O interface 345 is a communication path between the main processor 340 and these accessory devices.
Also, the main processor 340 is coupled to the keypad 350 and display unit 355. A user of UE 116 can use keypad 350 to enter data into UE 116 . Display 355 may be a liquid crystal display or other display capable of rendering text or at least limited graphics, for example from web sites, or a combination thereof.
Memory 360 is coupled to main processor 340 . A portion of the memory 360 may include random access memory (RAM), and another portion of the memory 360 may include flash memory or other read-only memory (ROM).
Although FIG. 3 shows an example of UE 116 , various modifications may be made to FIG. 3 . For example, various components of FIG. 3 may be combined, further subdivided, or omitted, and additional components may be added according to specific needs. As a specific example, main processor 340 may be divided into multiple processors, such as one or more central processing units (CPUs) and one or more graphics processing units (GPUs). Further, although FIG. 3 shows UE 116 configured as a mobile phone or smartphone, UEs may be configured to operate as other types of mobile or stationary devices.
4 depicts an exemplary eNB 102 in accordance with the present invention. The embodiment of eNB 102 shown in FIG. 4 is for illustrative purposes only, and other eNBs in FIG. 1 may have the same or similar configuration. However, eNBs come in a wide variety of configurations, and FIG. 4 does not limit the scope of the present invention to a particular implementation of an eNB.
The eNB 102 includes a plurality of antennas 405a through 405n, a plurality of RF transceivers 410a through 410n, transmit (TX) processing circuitry 415, and receive (RX) processing circuitry 420. The eNB 102 also includes a controller/processor 425 , memory 430 , and a backhaul or network interface 435 .
RF transceivers 410a through 410n receive input RF signals, such as signals transmitted by UEs or other eNBs, from antennas 405a through 405n. RF transceivers 410a through 410n downconvert the input RF signals to generate IF or baseband signals. The IF or baseband signals are sent to RF processing circuitry 420 which generates processed baseband signals by filtering, decoding, and/or digitizing the baseband or IF signals. RF processing circuitry 420 sends the processed baseband signals to controller/processor 425 for further processing.
TX processing circuitry 415 receives analog or digital data (such as voice data, web data, e-mail, or interactive video game data) from controller/processor 425. TX processing circuitry 415 encodes, multiplexes, and/or digitizes the output baseband data to generate processed baseband or IF signals. The RF transceivers 410a to 410n receive the output-processed baseband or IF signals from the TX processing circuit 415 and upconvert the baseband or IF signals to RF signals transmitted through the antennas 405a to 405n.
The controller/processor 425 may include one or more processors or other processing devices that control the overall operation of the eNB 102 . For example, controller/processor 425 may control the reception of forward channel signals and the transmission of reverse channel signals by RF transceivers 410a through 410n, RX processing circuitry 420, and TX processing circuitry 415 according to well-known principles. The controller/processor 425 may also support additional functions such as using zigzag windows and SC-LDPC codes as described in embodiments of this disclosure. Any of a wide variety of different functions may be supported in the eNB 102 by the controller/processor 425 . In some embodiments, controller/processor 425 includes at least one microprocessor or microcontroller. The controller/processor 425 includes processing circuitry configured to encode or decode data information, including a sliding window encoder with a pause function, a sliding window decoder with a pause function, a zigzag window encoder, a zigzag window decoder, or a combination thereof. .
Additionally, the controller/processor 425 may execute other processes and programs residing in memory 430, such as a basic OS. Controller/processor 425 can move data into or out of memory 430 as needed by the executing process.
A controller/processor 425 is also coupled to a backhaul or network interface 435. The backhaul or network interface 435 allows the eNB 102 to communicate with other devices or systems over a network or via a backhaul connection. Interface 435 may support communication over any suitable wired or wireless connection(s). For example, if eNB 102 is implemented as part of a cellular communication system (such as supporting 5G, LTE, or LTE-A), interface 435 allows eNB 102 to communicate with other eNBs via wired or wireless backhoe connections. can make it possible When eNB 102 is implemented as an access point, interface 435 can enable eNB 102 to communicate over a wired or wireless connection to a larger network (such as the Internet) or over a wired or wireless local area network. Interface 435 includes any suitable structure that supports communication over a wired or wireless connection, such as an Ethernet or RF transceiver.
A memory 430 is coupled to the controller/processor 425. Part of memory 430 may include RAM, and another part of memory 430 may include flash memory or other ROM.
As described in more detail below, the transmit and receive paths of the eNB 102 (implemented using RF transceivers 410a through 410n, TX processing circuitry 415, and/or RX processing circuitry 420) are frequency division duplexing (FDD) cells and TDD (time division duplexing) supports communication with a set of cells.
4 shows an example of an eNB 102 , various modifications may be made to FIG. 4 . For example, eNB 102 may include any number of each component shown in FIG. 4 . As a specific example, an access point may include multiple interfaces 435 and a controller/processor 425 may support routing functions to route data between different network addresses. As another particular example, while shown as including a single instance of TX processing circuitry 415 and a single instance of RX processing circuitry 420 , eNB 102 may include multiple instances of each (such as one per RF transceiver).
LDPC codes have recently received a lot of attention. This is due to their ability to achieve performance close to the Shannon limit, their ability to design codes that facilitate high parallelism in hardware, and their high data rate support. The most commonly deployed form of LDPC codes are block LDPC codes. However, in highly dynamic wireless communication systems, where channel conditions and per-user data allocation change continuously, block LDPC codes offer rather limited flexibility.
Using block LDPC codes requires allocating data in multiples of the code's block length to avoid unnecessary padding, which reduces link efficiency. Among wireless standards that have adopted LDPC as part of their specifications, the following three approaches can be cited to address the granularity limitation of block LDPC codes: (1) Codes with one very short block length, such as IEEE 802.11ad. In use, the smaller the block length, the finer the granularity of the code, but the block LDPC codes with short block length lack performance, which also reduces the link efficiency; 2) the use of block LDPC codes with multiple block lengths like IEEE 802.11n, this approach mitigates performance degradation instead of implementing a more complex decoder due to the requirement to support multiple codes; and 3) using turbo codes like 3GPP. The circular structure of turbo codes can provide scalable code length with high granularity without increasing the complexity of the decoder. However, turbo codes do not provide sufficient parallelism, which in turn limits their ability to achieve multi-gigabits per second (Gb/s) throughput.
Spatially-coupled low-density parity-check (SC-LDPC) codes are new capacity achieving codes. SC-LDPC codes combine the advantages of both turbo codes and LDPC block codes. SC-LDPC codes form a special kind of LDPC codes with a relatively small syndrome former memory. Thus, SC-LDPC codes have parity check matrices with a circular structure. This structure allows for scalable code length with high granularity compared to other block LDPC codes. In addition, since SC-LDPC codes inherit the high parallel processing capability of LDPC codes, they can support a throughput of several gigabytes.
It is possible to decode terminated SC-LDPC codes as any other block LDPC code, but doing so negates the fine granularity and flexible length advantages of SC-LDPC codes. Also, the latency and hardware complexity of this approach makes it impractical for SC-LDPC codes with very large block lengths. Due to the circular structure of the SC-LDPC code Patrick's check matrix, this decoder also requires a large number of iterations before it converges. Alternatively, SC-LDPC codes can be decoded using a sliding window decoder. This approach appears to alleviate most of the full block decoder problems. However, there are still some important performance issues that need to be addressed.
First, the average number of iterations of the current SC-LDPC decoder is high. For example, if we run a sliding window decoder on an SC-LDPC code with a window size of 15, a fixed 10 iterations per window is a variable node. 150 repetitions per VN). To increase the throughput, it is necessary to reduce the average number of iterations per VN in the sliding window decoder. In addition, it is necessary to use a simple early stopping rule to end decoding of the current window and start decoding of the next window. An early stopping rule to estimate the bit error rate (BER) within the decoding window based on the soft bit indicator for VN was proposed in REF-4. However, evaluation of these rules requires a lookup table and the addition of N t real numbers, where N t is the number of target variable nodes (VN) within the decoding window. Instead, embodiments of the present disclosure propose and evaluate a simple stopping rule based on partial syndrome computation (see Section III).
Second, the full block decoder uses both ends of the SC-LDPC code to improve the decoding threshold, whereas the sliding window decoder uses only the start end. Thus, full block decoders outperform sliding window decoders. To further reduce the gap between the two decoders, embodiments of the present disclosure introduce a zigzag window decoder. In addition, embodiments of the present disclosure show that a zigzag window decoder requires fewer average number of iterations per VN than a sliding window decoder.
Third, in order to adapt to a dynamic radio channel, a coding scheme of a radio system must support a plurality of code rates. Embodiments of the present disclosure solve the problem of designing an SC-LDPC code family that supports multiple code rates. In particular, the two approaches are compared in terms of BER performance and decoding complexity. The first approach uses code puncturing and the second approach uses code shortening. The results show that the SC-LDPC code family based on shortening converges faster and has better error performance than the SC-LDPC code family based on puncturing.
SC-LDPC codes: review and examples
5A, 5B, 5C, and 5D show exemplary protograph-based SC-LDPC code structures. The embodiments of the SC-LDPC code structures shown in FIGS. 5A to 5D are for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
The protograph-based SC-LDPC code starts with Protograph 500, a Tanner graph with a relatively small number of VN 505 and check node (CN) 510. An example of a regular (3,6) LDPC code protograph is shown in FIG. 5A. As shown in Fig. 5b, (3, 6, L) SC-LDPC code ensembles are generated using L copies of the protograph. As shown in FIG. 5C, protographs 500 are not interconnected with cycles having VN coupled to each CN. Rather, as shown in FIG. 5D , protographs 500 are coupled to chain 520 . Each protograph 500 in chain 520 is coupled to at most m copies of the protograph to its left and at most m copies of the protograph to its right, where m is called the syndrome former memory, or simply the memory of code. In contrast to protograph-based block LDPC codes with multiple step lifting, SC-LDPC codes have a small code memory, i.e., m<<L, which means that the parity check matrix of SC-LDPC codes has a circular structure. indicates that It should be noted that the CNs 510 in the first and last m copies of the protograph have lower order than their corresponding CNs 510 in the other copies of the protograph. This means stronger CNs at the beginning and end of the SC-LDPC combined chain, which improves the iterative decoding threshold of SC-LDPC codes at the cost of a small reduction in code rate. The first m copies of the protograph in the combined chain are called start-to-end 525 and the last m copies of the protograph are called end-to-end 530, and these are shown in shaded colors in FIG. 5D.
6 shows an example of a (3, 6, 720) protograph-based SC-LDPC code with a lifting factor Z = 112 according to the present disclosure. The embodiment of the protograph-based SC-LDPC code shown in FIG. 6 is for illustrative purposes only. Other embodiments may be used without departing from the scope of the present disclosure.
For example, (3, 6, 720) SC-LDPC code 600 is designed using the protograph shown in FIG. 5A. First, a code ensemble is constructed by combining chains 520 of 720 protograph copies as shown in FIG. 5D, and then a code is constructed by lifting the combined chains having a lifting factor Z=112. A parity check matrix 605 for the designed SC-LDPC code 600 is shown in FIG. 6 . The number x in the parity check matrix 605 denotes a ZxZ identity matrix with x positions shifted cyclically to the right. Empty entries of the parity check matrix 605 are a ZxZ matrix in which all elements are zero. Each of the two columns of the parity check matrix is marked with a number, which indicates the protograph section to which these 2Z VNs belong. In each protograph section, the first Z VNs are information bits, and the second Z VNs are parity bits. The designed SC-LDPC code 600 is a quasi-cyclic (QC) SC-LDPC code with a period of 3. The permutation matrices in this parity check matrix were chosen to maximize the gus of the first 9 protograph sections. Since the period of this code is 3, the gus of the whole code is the same as the gus of the first 9 protograph sections.
Typically, SC-LDPC code parity check matrices have irregularities at the beginning and end resulting from assumptions that entries before the start are 0 and entries after the end are 0. The parity check matrix 600 includes an initial start end 610 and an end end 615 . The SC-LDPC code 600 will be used in generating performance results in the next two sections.
7 illustrates a sliding window decoder 700 according to the present disclosure. The embodiment of the sliding window decoder 700 shown in FIG. 7 is for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
SC-LDPC code 600 can be decoded like a block LDPC code, but if SC-LDPC codewords of very large length are used, it is generally impractical to decode SC-LDPC code 600 like a block LDPC code. Also, using a block decoder eliminates the fine granularity and flexible length advantages of SC-LDPC codes. Certain systems use a sliding window decoder to decode SC-LDPC codes. A sliding window decoder is shown in FIG. 7 . The decoder processes VNs in a window 705 defined by the number W of protograph sections, e.g. size W 710. The decoder runs the maximum number of iterations or stops when the early termination criterion is met. After that, the decoder determines the value of the first protograph section (or the first S sections), then outputs the first protograph section (or the first S sections) and the protograph section after the last section in the decoding window. (or S sections) to advance the decoding window to step S715.
In the sliding window decoder 700, a decoding window 705 of size W 710 moves along the protograph sections of the SC-LDPC code 600. Position p of the decoding window 705 represents the corresponding protograph section of the window 705. The sliding window decoder 700 performs an iterative decoding algorithm when the decoding window 705 is at the first position, that is, when P=1, and then when the decoding window 705 is at the second position, that is, when P=2. An iterative decoding algorithm is performed, and then an iterative decoding algorithm is performed when the decoding window 705 is in the third position, that is, when P=3, and so forth.
In certain systems, decoding windows either stop after a fixed number of iterations (with no stopping rule), or they use an estimated bit error rate metric that requires the calculation of soft bit error indicators for VNs. To reduce the average number of iterations (to reduce decoding power consumption), an early stopping rule should be implemented. However, the stopping rule in other systems is complex to compute.
The use of a predetermined number of iterations is not very efficient, but should be set for worst case channel conditions. Instead, a real-time early stopping rule based on estimating BER has been proposed using the log-likelihood-ratio (LLR) of target VNs within the decoding window. When the estimated BER is less than the BER of the threshold or the maximum number of iterations is reached, the decoding window 705 moves forward. The BER is estimated by averaging the soft bit error indicators of target VNs, where the soft bit error indicator for a VN with LLR Γ is 1/(1+exp(|Γ|)). However, evaluation of the soft bit error indicator requires a lookup table, and calculating the average requires N t , eg, N t =2Z·s real additions after each iteration.
8 illustrates a sliding window decoder 800 with an early stopping rule according to the present disclosure. The embodiment of the sliding window decoder 800 shown in FIG. 8 is for illustration only. The sliding window decoder 800 can be the same as the sliding window decoder 700, but also includes a stopping rule. Other embodiments may be used without departing from the scope of the present disclosure. The sliding window decoder 800 includes a decoding window 705 of size W=10 and a partial syndrome checking window 810 of size W s =5.
Embodiments of the present disclosure use a simple stopping rule based on examining only some of the syndromes of the code related to only a few CNs within the decoding window. Here, W s is defined as the partial syndrome test window width 810 (in the number of protograph sections) as shown in FIG. 8 . Suggested stopping rule: if the syndrome check is passed or the maximum number of iterations is reached, the syndrome is checked for the CNs in W s , then the decision for the VNs in S is output, after which the position of the sliding window is updated
Embodiments of this disclosure suggest using a simple stopping rule based on checking the syndromes of only a few CNs within the decoding window 705. In these embodiments, a partial syndrome check window 810 of size W s is defined as the first W s protograph sections in the decoding window 705 . In the sliding window decoder 800, a decoding window 705 of size W moves along the protograph sections of the SC-LDPC code 600. The position of the decoding window, Pi denotes the first protograph section in the window. The updated sliding window decoder 800 is:
For all window locations p i =p i-1 +s, where s is the window step size, i=1,… ,L and p 1 =1,
1) For the maximum number of iterations I w ,
- Update all VNs and CNs in the decoding window 805 according to the iterative LDPC code decoding algorithm.
- Calculate syndromes for CNs within the partial syndrome check window. When all CNs are satisfied or the maximum number of iterations is reached, go to the next step. Otherwise, continue with the next iteration.
2) Determine the values of the target VNs. The VNs in the first S sections of the decoding window are called target VNs.
Within the decoding window 705, any one of the iterative decoding algorithms used for LDPC codes such as sum-product, min-sum, dual-quantization domain, etc. can be used It should also be noted that updating the CNs within the decoding window 705 requires access to external information about VNs outside the decoding window. In particular, the VNs in the m protograph sections immediately before the decoding window 705. These VNs transmit their extrinsic information based on the last update from the previous window. The maximum number of iterations can be selected to achieve a targeted error probability within the window. This can be done using density evolution techniques.
Figure 9 shows such a stop using a sliding window decoder 800 with different partial syndrome check window sizes W s =5, W s =4, and W s =3, W = 15, s = 1 and I w =90. Shows the BER and frame error rate (FER) performance of the rule. Also, the results were compared with those using a full-block decoder with up to 1000 iterations. It is noteworthy that the FER performance of the sliding window decoder starts to degrade for W s < 5. Results for W s >5 appear to have similar performance to W s =5. It should be noted that W s for this code must be greater than or equal to 3, since CNs in window 705 are directly connected to target VNs.
Zigzag Window Decoder
10A and 10B show zigzag window decoder states according to the present disclosure. The embodiment of the zigzag window decoder states is for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
In the sliding window decoder 800, the window moves in one direction from the start end 610 to the end end 615. This allows information to flow between decoding windows 705 in only one direction, resulting in a slight performance degradation compared to a full block decoder. In addition, simulations using the sliding window decoder 800 show that several successive decoding windows also diverge when the decoding window does not converge, i.e., the maximum number of iterations is reached, and the CNs in the partial syndrome check window 805 are not satisfied. After that, sliding window decoding 800 showed that it would converge back to the correct decision. This is shown in Fig. 10a, where the circles represent the state of the decoding windows as the sliding window decoder 800 moves along the protograph sections of the SC-LDPC code 600. A white circle 1005 indicates that the decoding window has converged on the correct decision, and a gray circle 1010 indicates that the decoding window has not converged. Here, divergence is defined as a set of consecutive protograph sections that fail to converge, and divergence size is defined as the number of protograph sections within divergence. For example, the divergence in FIG. 10A has a magnitude of 4.
Certain embodiments provide a new decoder called a zigzag window decoder. In the zigzag window decoder, the decoding window has two directions as shown in Figs. 10c, 10d and 10e.
Forward: When the early stopping rule is met or the maximum number of iterations is reached, the decoding window advances one protograph section (or SW sections) to the right, pushing information from left to right. If the early stopping rule is met, the targeted protograph section(s) are set to pass decoding. Otherwise, it is set to decoding failure. Consecutive protograph sections that fail to decode are called divergence.
Reverse direction: At the end of divergence, the decoding window changes its direction, pushing information from right to left. This direction continues until the decoding window reaches the beginning of the divergence, after which it turns forward.
In a zigzag window decoder, the decoding window reverses its direction to correct the divergence by pushing the information at the end of the divergence back into the divergence from the correct state at the end of the divergence. Figure 10b shows the direction of the zigzag window decoder. The decoding window has two directions, a forward direction in which the decoding window moves from the start end to the end end (right), and a reverse direction in which the decoding window moves from the end end to the start end (left). The zigzag window decoder process is as follows:
1) Set window position p = 1, window_direction = forward, and previous_window_converged = true.
2) For the maximum number of iterations I w ,
- Update all VNs and CNs in the decoding window according to the iterative LDPC code decoding algorithm.
- Calculate syndromes for CNs within the partial syndrome check window.
- If all CNs are met, set window_converged = true, and go to step 3.
- When the maximum number of iterations is reached, set window_converged = false and go to step 3.
3) Check the decoding window direction.
- if window_direction = forward direction,
- If window_converged = false and previous_window_converged = true,
- divergence_start_position = p.
- If window_converged = true, previous_window_converged = false, and the number of Z rounds is less than the maximum number of Z rounds,
- divergence_end_position = p.
- window_direction = reverse.
- p=p-2s.
- If window_converged = true,
- Determine the value of the target VNs.
- previous_window_converged = window_converged.
- p=p+s.
- If window_direction = reverse,
(a) If p > divergence_start_position,
-p=ps.
(b) else
- p=p+s.
- window_direction = forward direction.
- previous_window_converged = True.
- If p<L, go to step 2, otherwise stop.
In the proposed zigzag window decoder, a Z round is defined as a combination of forward, backward, and then forward windows when divergence occurs. Alternatively, Z rounds may be referred to as 'window iteration', 'window round', 'window reversal', and the like. In certain embodiments, if some protograph sections in divergence do not converge in the second forward window of Z round, the second Z round overlaps within the first Z round. An example of this concept is shown in FIGS. 11A and 11B . 11A shows one Z round 1105 with forward 1115, backward 1120, then forward 1125 windows when divergence occurs. 11B shows one Z round 1110 with a forward 1115, backward 1120, second forward 1125, second backward 1130 and then third forward 1135 window when divergence occurs. Similarly, multiple Z rounds may be performed. However, to prevent unlimited bouncing within a set of VNs in a low signal to noise ratio (SNR) region, the maximum number of Z rounds must be specified.
Actual implementations of the zigzag window decoder support a predetermined maximum divergence size called Z window 1015. Z window 1015 is the maximum divergence size supported. In certain embodiments, implementation memory is proportional to W+Z w +m. If divergence size>Z window, the zigzag window decoder ends codeword decoding and requests retransmission.
12A and 12B show the performance of each zigzag window decoder according to the present disclosure. Fig. 12a shows the performance of the zigzag window decoder for one Z round, Z R =1, and Fig. 12b shows the performance of the zigzag window decoder for two Z rounds, Z R =2. The capabilities shown in FIGS. 12A and 12B are for illustration only. Other embodiments and data may be used without departing from the scope of the present disclosure.
12a and 12b show the performance of the zigzag window decoder for different maximum number of iterations I w and different maximum number of Z rounds Z R . The simulation is performed using binary phase shift keying (BPSK) modulation over an additive white gaussian noise (AWGN) channel, and the decoder used within the decoding window is min-sum scaled with flood scheduling. A zigzag window decoder with Z R =0 is a sliding window decoder. It should be noted that the zigzag window decoder allows information to flow backwards at the end of the divergence. Accordingly, the BER/FER performance of the zigzag window decoder is better than that of the sliding window decoder. In addition, the zigzag window decoder allows the use of a smaller maximum number of iterations compared to the sliding window decoder without degrading the BER performance. It should be noted that the zigzag window decoder with Z R =1 and I W =5 is 0.25 decibel (dB) better than the sliding window decoder with I W =90. 12b also shows that the zigzag window decoder with Z R =1 and I W =5 requires fewer average number of iterations per VN than the sliding window decoder with I w =90. Finally, Figures 12a and 12b show that increasing the number of Z rounds beyond Z R =1 reduces returns.
The results in FIGS. 12A and 12B assume that there is no limit on divergence magnitude. However, a feasible implementation of a zigzag window decoder must specify a maximum divergence size. The memory required to implement the zigzag window decoder increases as you increase the maximum divergence size supported. The maximum divergence size is called the Z window size, Z W . The implementation memory required is proportional to W+Z W +m.
In certain embodiments, any of the decoding algorithms used in the process of decoding the block LDPC codes may be used to update the VNs and CNs within the decoding window. Some of the commonly used decoders are product-sum, scaled min-sum (SMS), and dual-quantization domain (DQD). Algorithms within the decoding window may perform flooding or layered scheduling. Also, processing of CNs and VNs within a window can be performed in parallel or serially.
Recall that SC-LDPC codes have a finite memory of codes, and are defined as follows: the value of bits in an arbitrarily given protograph section is the value of bits in up to m protograph sections before or after that protograph section. Depending on , the SC-LDPC code has memory m. For SC-LDPC codes, m is typically a small number, eg SC-LDPC code 600 memory m=2 in FIG.
This property of SC-LDPC codes can be used to increase the parallelism factor of a layered decoding machine working in window W of SC-LDPC. In general, the parallelism factor of LDPC codes is Z, but it should be noted that the structure of the SC-LDPC code 600 allows for parallelism factors higher than Z.
In certain embodiments, an SC-LDPC code in memory m is constructed using a ZxZ circulant matrix and decoded with a decoding window of size W in layered scheduling. It is possible to process Z*floor(W/(m+1)) CNs without parallel contention (two CNs do not need to access the same VN memory at the same time).
As an example, SC-LDPC code 600 using a zigzag window decoder (or sliding window decoder) with W = 15 requires 15 layers per iteration in a typical layered decoder (each layer has Z = 112 CNs). process). However, according to the above embodiment, it is possible to end repetition in three layers. In the first layer, 112*5 CNs in rows 1, 4, 7, 10, and 13 of the decoding window are processed. In the second layer, 112*5 CNs in rows 2, 5, 8, 11, and 14 of the decoding window are processed. In the third layer, 112*5 CNs of rows 3, 6, 9, 12, and 15 of the decoding window are processed.
13 shows the probability of correcting the divergence of protograph sections of size x with one Z round of a zigzag window decoder according to the present disclosure. 14 shows the FER (dotted line) and BER (solid line) performance of a zigzag window decoder with different Z window sizes according to the present disclosure. The examples shown in FIGS. 13 and 14 are for illustrative purposes only. Other embodiments and data may be used without departing from the scope of the present disclosure.
Figure 13 shows that the probability of correcting divergence decreases with its magnitude. 14 shows the performance of the zigzag window decoder for different Z window sizes (Z w =5, Z w =10, Z w =15, Z w =20, and infinity). Results show that increasing Z window size improves performance, but requires more implementation memory. Future work is needed to optimize the choice of Zw and Iw . For example, it is possible to decrease Z w and increase I w to maintain performance.
In certain embodiments, the zigzag window decoder includes a codeword failure detection rule. A zigzag window decoder with a finite Z window size Z w observing a divergence of magnitude greater than Z w is used as an early indication of block decoding failure. In this case, the zigzag window decoder can stop decoding the remainder of the SC-LDPC codeword, and then the receiver can request retransmission of the SC-LDPC codeword from the transmitter. This early codeword failure detection rule reduces the average number of iterations, especially at low SNRs, e.g., see Fig. 15, which reduces the power consumption of the decoder. In addition, the early codeword failure detection rule allows the receiver to quickly request retransmission through automatic repeat request (ARQ) or hybrid ARQ (HARQ), which reduces the latency of feedback error correction schemes. Decrease.
SC-LDPC code design based on rate-1/2 protograph:
16 illustrates a (3,6) protograph-based SC-LDPC code according to the present disclosure. The embodiment of the SC-LDPC code 1600 based on the (3,6) protograph shown in FIG. 16 is for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
Embodiments of the present disclosure are described with reference to SC-LDPC code 1600, which may be the same as or similar to SC-LDPC code 600 of FIG. 6 with “ZZ” values instead of blanks for all zero matrices. SC-LDPC code 1600 or SC-LDPC code 600 are used as examples throughout this invention. However, embodiments of the present disclosure are not limited to this example and may be applied to all SC-LDPC codes.
SC-LDPC code 1600 is constructed from multiple copies of the (3,6) regular protograph. The lifting factor is Z = 112, and the matrix of FIG. 16 shows IDs (identifiers) for cyclic permutation matrices constituting the SC-LDPC code 1600. In the example shown in FIG. 16, A(1), A(2),... , and A(18) have values of 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 6, 14, 12, 28, 21 and 39, respectively. It should be noted that the cyclic permutation matrix with ID 0 is a ZxZ identity matrix. In addition, the cyclic permutation matrix with ID i is a ZxZ identity matrix in which the position of i is shifted to the right periodically. Also, in the example shown in Fig. 16, ZZ denotes a ZxZ matrix in which all elements are 0. Rows of this matrix correspond to check nodes (CN), and columns correspond to variable nodes (VN).
Each of the two columns of cyclic permutations is marked with a number, which indicates the protograph section to which these 2Z VNs belong. In each protograph section, the VNs of the first Z represent information bits, and the VNs of the second Z represent parity bits. It is also possible to have the VNs of the first Z representing the parity bits and the VNs of the second Z representing the information bits. Figure 16 shows 720 protograph sections, but the length of this SC-LDPC code 1600 may vary depending on the amount of information bits available and need to be encoded in one codeword. In general, the length of a codeword (CW) is ceil (#/Z of information bits)*Z/R, where R is the code rate (R = 1/2 in this example). It is important to note the small granularity of these codes (granularity = Z information bits) and CW length flexibility, which makes protograph-based SC-LDPC codes favorable for adoption in wireless communication standardization. Protograph-based SC-LDPC codes have CW length flexibility and small granularity of spiral/turbo codes, and protograph-based SC-LDPC codes have a high parallelization factor of LDPC codes required in high throughput systems.
Also, it should be noted that only 18 cyclic permutations are used to construct SC-LDPC code 1600 that repeats as the CW length increases. For example, cyclic permutations used in the protograph of section 1 1605 are reused in protograph section 4 1620, section 7 1635, section 10, etc., cyclic permutations used in the protograph of section 2 1610 are re-used in protograph section 5 1625, Protograph sections reused in section 8 1640, section 11, etc., used in protograph section 3 1615, are used in section 6 1630, section 9 1645, section 12, etc.
Puncturing the designed rate-1/2 SC-LDPC to get higher rates:
17 shows a rate-1/2 protograph based SC-LDPC code punctured at rate-3/4 using a puncturing pattern according to the present disclosure. The embodiment of the SC-LDPC code 1700 shown in FIG. 17 is for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
Protograph based codes can be punctured to obtain codes with higher rates. For example, SC-LDPC code 1600 has rate-1/2, but SC-LDPC code 1600 has a puncturing pattern [1, 0; 1, 1] at rate-2/3, puncturing pattern [1, 0, 1; 1, 1, 0] at a rate-3/4, or the puncturing pattern [1, 0, 1, 0, 1; 1, 1, 0, 1, 0] can be punctured at rate-5/6. These patterns look similar to those commonly used for puncturing round codes, but here the puncturing pattern is applied to protograph sections. For example, the puncturing pattern [1, 0, 1; 1, 1, 0] applies to every three consecutive protograph sections of SC-LDPC code 1600. The values before the semicolon indicate whether to transmit or puncture the Z information bits of each protograph section. Values after the semicolon indicate whether to transmit ('1' value) or puncture ('0' value) Z parity bits of each section.
End of protograph based SC-LDPC codes:
In general, the SC-LDPC code gain for a block LDPC code comes from the termination of the SC-LDPC code. This termination is typically indicated by low-order CNs at the edges of the graph of the code. For example, in the SC-LDPC code 1600 of FIG. 16 , all CNs have degree 6, except for the CNs of protograph section 1, protograph section 2, protograph section 721 and protograph section 722 (sections 1 and 722). CNs of section 722 have degree 2, and CNs of protograph section 2 and protograph section 721 have degree 4). From another point of view, SC-LDPC code 1600 of FIG. 16 can be seen as sections from an infinitely long code, but protograph section 0, protograph section -1, protograph section -2, . . . and protograph section 721, protograph section 722, protograph section 723, . . . The information and parity bits in have a value of 0.
In certain embodiments, an SC-LDPC code such as SC-LDPC code 1600 can be viewed as a section from an infinitely long SC-LDPC code, but with a protograph section before the beginning ending protograph sections and after the ending ending protograph sections. The information and parity bits in s are either fixed (reliably know the pattern). For example, in SC-LDPC code 1600, protograph section 0, protograph section -1, protograph section -2,… and protograph section 721, protograph section 722, protograph section 723, . . . The bits in are fixed and have known values. It should be noted that the codewords of the SC-LDPC code depend on the fixed pattern used. Changing these fixed values changes the codeword of the code (changes the code).
In certain embodiments, the SC-LDPC codeword can be changed by changing the end bits of the divider protograph sections. These bits can be encrypted and transmitted over a secure link to a receiver. In certain embodiments, these bits are used to initialize the SC-LDPC decoder so that it can decode the received SC-LDPC codeword.
SC-LDPC codes have a finite memory of codes (i.e. syndrome former memory) defined as It has a memory m if it depends on the values of the bits of the protograph section. In the SC-LDPC code 1600 of FIG. 16, the code's memory m=2.
18 shows an infinitely long SC-LDPC code divided into several block LDPC codes using divider protograph sections according to the present disclosure. The embodiment of the divided SC-LDPC code 1800 shown in FIG. 18 is for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
In certain embodiments, an SC-LDPC code with memory m is seen as a section from an infinitely long SC-LDPC code, but the information in m protograph sections before the beginning ending protograph sections and after the ending ending protograph sections and the parity bits have a fixed or positively known pattern. For example, in SC-LDPC code 1600 of FIG. 16, the bits in protograph section 0, protograph section -1, protograph section 721, and protograph section 722 have fixed and known values. This is true regardless of the value of the bits in the protograph sections before -1 and after 722. Any m consecutive protograph sections with known bit values are referred to as divider protograph sections 1805. It should be noted that the protograph sections of the SC-LDPC code between the two divider protograph sections 1805 form the block LDPC code 1810. Unlike typical block LDPC codes, the split SC-LDPC code 1800 can be decoded using an SC-LDPC decoder in conjunction with the protograph sections before and after the divider protograph sections 1805. It should be noted that in the example shown in FIG. 18 , the lengths of the LDPC blocks 1810 need not be the same.
The use of a value of '0' (or a known fixed pattern) in the divider protograph sections 1805 reduces the rate of the code.
In certain embodiments, instead of using a known fixed pattern within the divider protograph sections, divider protograph section 1805 may use some method to convey parity bits and information that can be checked for correctness. As an example, transmitted packets typically undergo a cyclic redundancy check (CRC) to check packet correctness. If the bits in m contiguous protograph sections that are part of the CRC codeword pass the CRC check, then these bits can be treated as a known fixed pattern of bits, namely divider protograph sections 1805.
19 shows a very long SC-LDPC code split into several block LDPC codes using unequal error protection according to the present disclosure. The embodiment of the divided SC-LDPC code 1900 shown in FIG. 19 is for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
In certain embodiments, instead of using a known fixed pattern in divider protograph sections 1805, divider section 1805 conveys information and parity bits that have a bit error probability less than other bits in a codeword. For example, non-identical error protection methods can be used to create divider protograph sections as shown in the example shown in FIG. 19 . These methods include a) a lower modulation and coding scheme (MCS), ie a lower modulation order and/or a lower coding rate; b) a narrower analog beam; and c) fewer multiple input multiple output (MIMO) streams in the case of MIMO transmission.
20 illustrates a method of using stronger header protection to create divider protograph sections according to this disclosure. 21 illustrates an example of strengthening a portion of an SC-LDPC codeword using an iteration, or shortened then iterative process to transmit packet headers according to this disclosure. The embodiments shown in FIGS. 20 and 21 are for illustration only. Other embodiments may be used without departing from this disclosure.
In certain embodiments, each packet 2000 in a packet-based communication system such as WLAN IEEE 802.11 consists of a header 2005 and data (payload) 2010. It is common that headers should be protected more than data. In certain embodiments, for all packets belonging to a large chunk, such as one file transfer or one data stream, packets 2000 are encoded as one SC-LDPC codeword 2015. Header 2005 of packets 2000 will serve as divider protograph sections. Header 2005 may be better protected using low modulation order (QPSK), no puncturing, repetition, shortening, or a combination of these methods. In the example shown in Figure 21, the header information bits occupy one protography section for illustrative purposes only. In a real system, header information bits may occupy more than one protograph section, and padding may be required to fit the protograph sections.
In certain embodiments, header 2005 may be first encoded using an inner code, and then the information and parity bits of the inner code are encoded using an SC-LDPC code. In this case, SC-LDPC will be the outer code for the header section.
It is important to point out that since header 2005 contains information about how to demodulate and decode packet data 2010, header 2005 should be able to be decoded independently of data 2010 following header 2005. This can be done in several ways: one way is to ensure that the header occupies at least W protograph sections (the size of one decodable window), then while the sections carry repetition and parity bits. Putting header information bits into the first few sections. Alternatively, one can use the inner code to decode header 2005 and then use the recovered header to decode data 2010 as a divider protograph section.
In certain embodiments, the structure shown in FIGS. 20 and 21 encoding multiple packets 2000 into one using one SC-LDPC codeword indicates that there is a successive packet following the corresponding packet, or It can be signaled using a field in the packet header 2005 to indicate that the packet is not present. Alternatively, there may be higher level signaling such as MAC level messages that set up the SC-LDPC encoding structure such as number of jointly encoded packets, termination type, termination frequency, data modulation and coding scheme, etc.
22 illustrates an example of HARQ support using the SC-LDPC coding scheme according to the present disclosure. The embodiment of the SC-LDPC coding scheme 2200 shown in FIG. 22 is for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
In certain embodiments, the SC-LDPC coding scheme supports hybrid automatic repeat request (HARQ) in the following way: A receiver capable of recovering the information bits in these sections Decode protograph sections. If the decoder fails, 2205, the decoder requests retransmission of the related packet, then the decoder continues to buffer the received information and waits for the retransmitted information. Alternatively, the decoder can buffer at least the failed packet, all packets, or sections from the start of the failure, and start decoding the header of the next packet.
retransmission is
(1) retransmission of all bits associated with the failed packet (e.g. resulting in a combined chase at the receiver);
(2) Incremental redundancy retransmission by transmitting some or all of the punctured bits (if any) associated with that packet.
(3) Retransmission of all bits (or incremental redundancy) associated with the failed protograph section and all subsequent sections to the end of the failed packet.
(4) It may be a retransmission of all bits (or incremental redundancy) that relate only to the failing protograph section, or to several sections after that.
Retransmission method 3 and retransmission method 4 above require the receiver to feed back information about the failure of the protograph section.
Code family design: shortening versus puncturing
In this section, the problem of designing a family of SC-LDPC codes supporting multiple code rates is addressed. The following two candidate approaches are considered: 1) Design an SC-LDPC ensemble with a low code rate, then puncture it to obtain codes with a higher code rate. This approach is similar to that used with round codes, except that the puncturing here is done at the protograph section level rather than at the bit level, i.e., if the VN type in the SC-LDPC code is punctured, then All Z VNs of that type in the lifted SC-LDPC code will be punctured. 2) After designing the SC-LDPC code ensemble with high code rate, shorten it to codes with lower code rate. This approach is similar to the method used in designing the AR4JA LDPC code family discussed in Ref. 19.
Embodiments of this disclosure illustrate and compare two code family design methods by designing and simulating two example families of SC-LDPC codes (one per approach). And the results so presented are intended to help understand how these two approaches compare in terms of BER performance and convergence speed and how that translates into computational complexity. Also, only codes with a regular degree distribution (regular except for the ends) are considered in this disclosure. Regular SC-LDPC codes have good decoding thresholds comparable to optimized irregular designs.
23 is a puncturing matrix [1, 0, 1; 1, 1, 0] to show an example of puncturing a (3, 6, L) SC-LDPC ensemble at rate-3/4. The embodiment of the punctured code structure 2200 shown in FIG. 23 is for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
In the first code family, (3, 6, 720) SC-LDPC code 1600 has the lowest rate (˜rate-1/2). SC-LDPC code 1600 is a puncturing pattern [1, 0; 1, 1], [1, 0, 1; 1, 1, 0], or [1, 0, 1, 0, 1; 1, 1, 0, 1, 0] is punctured at "approximately" rate-2/3, rate-3/4, or rate-5/6. An example of puncturing (3, 6, 720) SC-LDPC code 1600 at rate-3/4 is given in FIG. 23 , where gray circles 2305 indicate punctured VNs and white circles 2310 transmit displayed VNs.
24 is a rate-5/6 (3,18) LDPC code protograph that can be shortened to rate-4/5, rate-3/4, rate-2/3 or rate-1/2 according to the present disclosure. show The embodiment of protograph 2400 shown in FIG. 24 is for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
In the second code group, a (3, 18, L) SC-LDPC code ensemble is designed based on the protograph 2400 of FIG. 24 . Then, this code is lifted to a time-varying quasi-cyclic SC-LDPC code with period 3 using Z=112 cyclic permutation matrices. A parity check matrix 2500 for the designed code is shown in FIG. 25 . The permutation matrices were chosen in a hierarchical way: first, permutation matrices lifting i 1 2405 and p 1 2410, 5th and 6th columns 2505 were chosen to maximize the sur of the first 9 protograph sections of the code, Here all other permutations are set as ZxZ matrices with all elements zero. Then, permutation matrices were added lifting i 2 2415, i 3 2420, i 4 2425, and finally i 5 2430 to maximize the GUS. To shorten this code to a rate-4/5 code, all first column 2510 were deleted (i.e. set all VNs of i5 to '0' and then delete them before transmission). To shorten the code to a rate-3/4 code, all first column 2510 and second column 2515 are deleted, etc., the code can be further shortened to obtain a rate-2/3 code and a rate-1/2 code. there is.
In the punctured code group, the number of information bits in a codeword is fixed and equal to 80416 bits. In the shortened code family, the number L of protograph copies is adjusted for each code rate to maintain 80416 number of information bits in the codeword. Thus, L=720, L=360, L=240, and L=144 for Rate-1/2, Rate-2/3, Rate-3/4, and Rate-5/6, respectively. Also, trying to keep a fair comparison, the size of the decoding window is varied such that the number of VNs within the decoding window is 30. That is, W=15 for all codes in the punctured code group, and W=1/2, rate-2/3, rate-3/4, and rate-5/6 respectively in the shortened code group. 15, W = 10, W = 7 and W = 5 (for rate-3/4, W should be 7.5, but was approximated to 7).
The results of FER and average number of iterations in Figs. 26 and 27 show that the rate-1/2 codes of the punctured code group and the shortened code group have similar performance. Rate-2/3 codes from the shortened code family perform slightly better than rate-2/3 codes from the punctured code family. The rate-3/4 codes of the shortened code family outperform the rate-3/4 codes of the punctured code family by 0.6 dB in FER performance and provide an average reduction of more than 12 repetitions per VN at any given SNR point. do. The rate-5/6 codes of the shortened code family outperform the rate-5/6 of the punctured code family by 0.9 dB in terms of the FER designed so that the shortened code family performs better than the punctured code family.
Codes in the shortened code family have a low average number of iterations per VN, but this does not necessarily reduce computational complexity. It should be noted that the codes of the shortened code family have CNs of higher order than the codes of the punctured code family, and this should be taken into account in the computational complexity comparison. For computational complexity, a CN of degree d c (per iteration) requires two additional operations for scaling: 3(d c- 2) comparison operations to find the minimum and 2d c- 1 operations to compute the sign. Assume the use of a scaled Min-Sum decoder requiring an XOR operation. Also, a VN of degree d v requires 2d v - 1 additional operations per iteration. In addition, assuming that one addition operation, one comparison operation, or eight XOR operations correspond to each other, the shortened/punctured complexity ratio is XOR (exclusive-or) for each step of decoding the VN of the punctured code group. It is defined as the number of XOR operations per step of decoding the VN of the shortened code group divided by the number of operations. Also, the comparison can be made at the same SNR point or the same FER performance. The complexity ratios are summarized in Table 1.
Embodiments of the present disclosure provide an early stopping rule for window decoding of SC-LDPC codes. The early stopping rule is based on partial syndrome checking that only performs XOR operations. In addition, embodiments of the present disclosure propose a zigzag window decoder capable of pushing back information at the end of divergence. The proposed zigzag window decoder with the proposed early stopping rule has similar FER performance to the full-block decoder and reduces the average number of iterations per VN from 55 to 30 for the full-block decoder at FER=1e-2.
Two examples of code families supporting different rates through puncturing or shortening were compared. The results show that the shortened code family performs better than the punctured code family and has lower computational complexity, especially for high rate codes.
28 illustrates exemplary SC-LDPC code families based on shortening according to the present disclosure. The embodiment of the SC-LDPC code families 2800 shown in FIG. 28 is for illustration only. Other embodiments may be used without departing from the scope of the present disclosure.
28 shows three protograph sections of the parity check matrix for the code with the highest code rate in the group, where ZZ denotes a ZxZ matrix with all elements zero, and the value A(i,j) is ( according to the lifting factor Z) in the i-th row and j-th column of the matrices below.
When Z = 112, an example of a lifting matrix is shown in the table below.
Figure 112017065243114-pct00044

When Z = 42, an example of a lifting matrix is shown in the table below.
Figure 112017065243114-pct00045

When Z = 27, an example of a lifting matrix is shown in the table below.
Figure 112017065243114-pct00046

When Z = 24, an example of a lifting matrix is shown in the table below.
Figure 112017065243114-pct00047

29 illustrates an operating process of a receiving node according to the present disclosure. A flow diagram depicts a sequential series of steps, but, unless explicitly stated otherwise, in a specific order of performance, in a redundant manner, or in a non-concurrent, sequential performance of steps or parts thereof, or exclusively without intervening or occurring intervening steps. No inference should be drawn from the sequence as to the performance of the steps shown. The process shown in the illustrated example is implemented at a receiving node, for example a base station or terminal.
Referring to FIG. 29 , in step 2901, the receiving node receives signals including at least one codeword based on the SC-LDPC code from the transmitting node. At least one codeword is generated by a transmitting node using an SC-LDPC code. At least one codeword comprises a packet comprising a header and a payload, and the header is configured as a divider protograph section for dividing protograph sections of one or more SC-LDPC codes.
Then, in step 2903, the receiving node decodes at least one codeword using a sliding window. Here, the sliding window selectively moves forward or backward. The sliding window moves backward based on the syndrome of one or more CNs in the current sliding window. In particular, the receiving node repeatedly performs decoding calculations until the stopping rule is satisfied. A stopping rule is defined as a function of the syndrome of one or more CNs in the current sliding window.
The SC-LDPC coding scheme supports HARQ. In this case, the receiving node decodes the protograph sections of the SC-LDPC code as long as the decoder is able to recover the information bits in the protograph sections, requests retransmission of the related packet, and retransmits the related packet in response to the decoder failure. Continue buffering received information while waiting for In another embodiment, the receiving node buffers at least the failed packet, all packets, or sections from the start of the failure and, in response to the decoder failure, begins decoding the header of the next packet. Retransmission of all bits associated with the failed packet Retransmission, incremental redundancy retransmission, including transmission of some or all of the punctured bits associated with the packet, retransmission of the failed protograph section and all subsequent sections to the end of the failed packet and all associated bits or incremental redundancy, and failed protograph Either retransmission of all bits or incremental redundancy involving only the section or several sections after the failed protograph section. Also, the receiving node may reduce the rate of the SC-LDPC code by shortening operation.
To assist readers of the Patent Office and any patents published herein in interpreting the appended claims, applicants request that the words "means for" or "steps for" not be expressly used in any particular claim. It should be noted that none of the appended claims or claim elements are intended to apply 35U.SC §112(f) unless otherwise specified. "mechanism", "module", "device", "unit", "component", "element", "member", "apparatus", "machine", "system", "processor", or Use of all other terms, including but not limited to "controller", is understood by Applicants to refer to structures known to those skilled in the art, and is not intended to apply 35U.SC §112(f).
Although the present disclosure has been described with exemplary embodiments, various changes and modifications may be suggested to those skilled in the art. This disclosure is intended to cover such changes and modifications as fall within the scope of the appended claims.

Claims (15)

무선 통신 시스템에서 수신 노드 장치에 있어서,
적어도 하나의 송수신부와,
상기 적어도 하나의 송수신부와 기능적으로 결합된 적어도 하나의 프로세서를 포함하고,
상기 적어도 하나의 프로세서는, 송신 노드로부터 공간적으로 결합된 저밀도 패리티 검사(spatially coupled low density parity check, SC-LDPC) 코드에 기반하는 적어도 하나의 코드워드를 포함하는 신호들을 수신하고, 슬라이딩 윈도우를 사용하여 상기 적어도 하나의 코드워드를 디코딩하도록 제어하고,
상기 슬라이딩 윈도우는, 순방향 또는 역방향으로 이동하고,
상기 적어도 하나의 코드워드는, 헤더 및 페이로드를 포함하는 패킷을 포함하고,
상기 헤더는, 하나 이상의 SC-LDPC 코드의 프로토그래프 섹션들을 분할하기 위해 디바이더 프로토그래프 섹션으로서 구성되고, 내부 코드를 사용하여 먼저 인코딩되고, 상기 내부 코드의 정보 및 상기 정보의 정확성을 검사하기 위한 패리티 비트들은 상기 SC-LDPC 코드를 사용하여 인코딩되며,
상기 헤더는, 복수의 프로토그래프 섹션을 점유하도록 상기 헤더를 구성하는 단계, 이후의 섹션들이 반복 및 상기 패리티 비트들을 전달하는 동안, 처음 몇 개의 섹션에 헤더 정보 비트들을 배치하는 단계, 상기 헤더를 디코딩하기 위해 상기 내부 코드를 사용한 후, 디바이더 프로토그래프 섹션으로서 및 패킷 데이터를 디코딩하기 위해 디코딩된 헤더를 사용하는 단계 중 적어도 하나에 의해 상기 헤더 다음의 상기 패킷 데이터와 무관하게 디코딩 가능하도록 구성되는 장치.
In the receiving node device in a wireless communication system,
at least one transceiver; and
including at least one processor functionally coupled to the at least one transceiver;
The at least one processor receives signals including at least one codeword based on a spatially coupled low density parity check (SC-LDPC) code from a transmission node, and uses a sliding window. to control decoding of the at least one codeword;
The sliding window moves in a forward or reverse direction,
The at least one codeword includes a packet including a header and a payload,
The header is configured as a divider protograph section to divide protograph sections of one or more SC-LDPC codes, and is first encoded using an inner code, information of the inner code and parity to check the correctness of the information. Bits are encoded using the SC-LDPC code,
constructing the header so that it occupies a plurality of protograph sections, placing header information bits in the first few sections, while subsequent sections repeat and carry the parity bits, decoding the header and then using the decoded header as a divider protograph section and after using the inner code to decode the packet data independently of the packet data following the header.
제1 항에 있어서,
상기 슬라이딩 윈도우는, 현재의 슬라이딩 윈도우 내의 하나 이상의 검사 노드(check node, CN)의 신드롬을 기반으로 하여 상기 역방향으로 이동하는 장치.
According to claim 1,
The sliding window moves in the reverse direction based on the syndrome of one or more check nodes (check nodes, CNs) within the current sliding window.
제1 항에 있어서,
상기 적어도 하나의 프로세서는, 중지 규칙이 충족될 때까지 반복적으로 디코딩 계산들을 수행하도록 제어하고,
상기 중지 규칙은, 현재의 슬라이딩 윈도우 내의 하나 이상의 검사 노드(check node, CN)의 신드롬의 함수로서 정의되는 장치.
According to claim 1,
Controls the at least one processor to repeatedly perform decoding calculations until a stopping rule is satisfied;
wherein the stopping rule is defined as a function of a syndrome of one or more check nodes (CN) within a current sliding window.
제3 항에 있어서,
상기 적어도 하나의 프로세서는, 상기 하나 이상의 CN에 대한 부분 신드롬을 검사하고, 신드롬 검사를 통과하거나 최대 반복 횟수에 도달하는 경우에는 각각의 프로토그래프 섹션들 내의 변수 노드(variable node, VN)들에 대한 결정을 출력하고, 상기 슬라이딩 윈도우의 위치를 업데이트함으로써 상기 중지 규칙이 충족되는 지 여부를 결정하도록 제어하는 장치.
According to claim 3,
The at least one processor checks a partial syndrome for the one or more CNs, and if the syndrome check passes or the maximum number of iterations is reached, variable nodes (VNs) in each protograph section are checked. A device for outputting a decision and controlling to determine whether the stopping rule is satisfied by updating the position of the sliding window.
제1 항에 있어서,
상기 순방향은, 상기 슬라이딩 윈도우가 적어도 하나의 프로토그래프 섹션에 의해 오른쪽으로 진행하는 방향이고,
상기 역방향은, 상기 슬라이딩 윈도우가 상기 적어도 하나의 프로토그래프 섹션에 의해 왼쪽으로 진행하는 방향인 장치.
According to claim 1,
The forward direction is a direction in which the sliding window proceeds to the right by at least one protograph section,
wherein the reverse direction is a direction in which the sliding window proceeds to the left by the at least one protograph section.
삭제delete 제1 항에 있어서,
상기 헤더가 낮은 변조 차수, 펑처링 없음, 반복, 및 단축 중 적어도 하나를 사용하여 보호되거나
패킷 데이터의 복조 및 디코딩에 대한 정보를 포함하는 헤더 정보 비트들이 하나 이상의 프로토그래프 섹션을 점유하는 것 중 적어도 하나인 장치.
According to claim 1,
or the header is protected using at least one of low modulation order, no puncturing, repetition, and shortening;
At least one of header information bits containing information about demodulation and decoding of packet data occupy one or more protograph sections.
삭제delete 제1 항에 있어서,
다수의 패킷들은 하나의 SC-LDPC 코드워드를 사용하여 하나로 인코딩되고, 연속 패킷이 상기 패킷 다음에 온다는 것과 상기 연속 패킷이 상기 패킷 다음에 오지 않는 것 중 하나를 표시하기 위해 상기 헤더의 필드를 사용하여 시그널링되는 장치.
According to claim 1,
Multiple packets are encoded into one using one SC-LDPC codeword, and a field in the header is used to indicate either that a continuation packet follows the packet or that the continuation packet does not follow the packet. device that is signaled by
제1 항에 있어서,
SC-LDPC 코딩 방식은, 하이브리드 자동 반복 요청(hybrid automatic repeat request, HARQ)을 지원하고,
상기 적어도 하나의 프로세서는, 상기 프로토그래프 섹션들 내의 상기 헤더 정보 비트들을 복구할 수 있는 한 SC-LDPC 코드의 상기 프로토그래프 섹션들을 디코딩하고, 디코딩 실패에 응답하여, 관련 패킷의 재전송을 요청하고, 상기 재전송된 관련 패킷을 기다리는 동안 수신된 정보를 계속 버퍼링하거나 적어도 실패한 패킷, 모든 패킷, 또는 실패의 시작부터의 섹션들을 버퍼링하고, 다음 패킷의 헤더를 디코딩하기 시작하도록 제어하는 장치.
According to claim 1,
The SC-LDPC coding scheme supports hybrid automatic repeat request (HARQ),
the at least one processor decodes the protograph sections of an SC-LDPC code as long as it can recover the header information bits in the protograph sections, and in response to a decoding failure, requests retransmission of a related packet; A device for controlling to continue buffering received information or at least buffer a failed packet, all packets, or sections from the beginning of a failure while waiting for the retransmitted related packet, and start decoding the header of the next packet.
제10 항에 있어서, 상기 적어도 하나의 프로세서는, 단축 동작에 의해 상기 SC-LDPC 코드의 레이트를 감소시키도록 더 구성되는 장치.
11. The apparatus of claim 10, wherein the at least one processor is further configured to reduce a rate of the SC-LDPC code by a shortening operation.
제10 항에 있어서, 상기 재전송은, 실패한 패킷과 관련된 모든 비트의 재전송, 상기 패킷과 관련된 펑처링된 비트의 일부 또는 전부의 전송을 포함하는 증분 중복의 재전송, 실패한 프로토그래프 섹션 및 상기 실패한 패킷의 끝까지의 모든 다음 섹션들과 관련된 모든 비트 또는 증분 중복의 재전송, 및 상기 실패한 프로토그래프 섹션과만 관련되거나 상기 실패한 프로토그래프 섹션 이후의 몇 개의 섹션과 관련된 모든 비트 또는 증분 중복의 재전송 중 하나인 장치.
11. The method of claim 10, wherein the retransmission includes retransmission of all bits associated with the failed packet, incremental redundant retransmission including transmission of some or all of the punctured bits associated with the packet, a failed protograph section, and the failed packet. One of retransmission of all bits or incremental redundancy related to all following sections to the end, and retransmission of all bits or incremental redundancy related only to the failed protograph section or several sections after the failed protograph section.
무선 통신 시스템에서 수신 노드의 동작 방법에 있어서,
송신 노드로부터 공간적으로 결합된 저밀도 패리티 검사(spatially coupled low density parity check, SC-LDPC) 코드에 기반하는 적어도 하나의 코드워드를 포함하는 신호들을 수신하는 과정과,
슬라이딩 윈도우를 사용하여 상기 적어도 하나의 코드워드를 디코딩하는 과정을 포함하고,
상기 슬라이딩 윈도우는, 순방향 또는 역방향으로 이동하고,
상기 적어도 하나의 코드워드는, 헤더 및 페이로드를 포함하는 패킷을 포함하고,
상기 헤더는, 하나 이상의 SC-LDPC 코드의 프로토그래프 섹션들을 분할하기 위해 디바이더 프로토그래프 섹션으로서 구성되고, 내부 코드를 사용하여 먼저 인코딩되고, 상기 내부 코드의 정보 및 상기 정보의 정확성을 검사하기 위한 패리티 비트들은 상기 SC-LDPC 코드를 사용하여 인코딩되며,
상기 헤더는, 복수의 프로토그래프 섹션을 점유하도록 상기 헤더를 구성하는 단계, 이후의 섹션들이 반복 및 상기 패리티 비트들을 전달하는 동안, 처음 몇 개의 섹션에 헤더 정보 비트들을 배치하는 단계, 상기 헤더를 디코딩하기 위해 상기 내부 코드를 사용한 후, 디바이더 프로토그래프 섹션으로서 및 패킷 데이터를 디코딩하기 위해 디코딩된 헤더를 사용하는 단계 중 적어도 하나에 의해 상기 헤더 다음의 상기 패킷 데이터와 무관하게 디코딩 가능하도록 구성되는 방법.
In the method of operating a receiving node in a wireless communication system,
Receiving signals including at least one codeword based on a spatially coupled low density parity check (SC-LDPC) code from a transmitting node;
decoding the at least one codeword using a sliding window;
The sliding window moves in a forward or reverse direction,
The at least one codeword includes a packet including a header and a payload,
The header is configured as a divider protograph section to divide protograph sections of one or more SC-LDPC codes, and is first encoded using an inner code, information of the inner code and parity to check the correctness of the information. Bits are encoded using the SC-LDPC code,
constructing the header so that it occupies a plurality of protograph sections, placing header information bits in the first few sections, while subsequent sections repeat and carry the parity bits, decoding the header and then using the decoded header as a divider protograph section and after using the inner code to decode the packet data independently of the packet data following the header.
제13 항에 있어서,
상기 슬라이딩 윈도우는, 현재의 슬라이딩 윈도우 내의 하나 이상의 검사 노드(check node, CN)의 신드롬을 기반으로 하여 상기 역방향으로 이동하는 방법.
According to claim 13,
The sliding window is moved in the reverse direction based on the syndrome of one or more check nodes (check node, CN) within the current sliding window.
제13 항에 있어서,
중지 규칙이 충족될 때까지 반복적으로 디코딩 계산들을 수행하는 과정을 더 포함하고,
상기 중지 규칙은, 현재의 슬라이딩 윈도우 내의 하나 이상의 검사 노드(check node, CN)의 신드롬의 함수로서 정의되는 방법.
According to claim 13,
Iteratively performing decoding calculations until the stopping rule is satisfied;
wherein the stopping rule is defined as a function of the syndrome of one or more check nodes (CN) within the current sliding window.
KR1020177018681A 2014-12-05 2015-12-04 Sc-ldpc codes for wireless communication systems KR102539474B1 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462087912P 2014-12-05 2014-12-05
US62/087,912 2014-12-05
US201562109404P 2015-01-29 2015-01-29
US62/109,404 2015-01-29
US14/823,744 US9712187B2 (en) 2014-12-05 2015-08-11 SC-LDPC codes for wireless communication systems: framework and zigzag-window decoder
US14/823,744 2015-08-11
PCT/KR2015/013215 WO2016089157A1 (en) 2014-12-05 2015-12-04 Sc-ldpc codes for wireless communication systems

Publications (2)

Publication Number Publication Date
KR20170092672A KR20170092672A (en) 2017-08-11
KR102539474B1 true KR102539474B1 (en) 2023-06-02

Family

ID=56092022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177018681A KR102539474B1 (en) 2014-12-05 2015-12-04 Sc-ldpc codes for wireless communication systems

Country Status (4)

Country Link
US (1) US9712187B2 (en)
EP (1) EP3228034B1 (en)
KR (1) KR102539474B1 (en)
WO (1) WO2016089157A1 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10367530B2 (en) * 2016-01-14 2019-07-30 Qualcomm Incorporated Unified code block segmentation providing a cyclic redundancy check for low density parity check code codewords
US20170279464A1 (en) * 2016-03-22 2017-09-28 Lg Electronics Inc. Method of ldpc code encoding for reducing signal overhead and apparatus therefor
EP3264610A1 (en) * 2016-06-27 2018-01-03 Alcatel Lucent Forward error correction with variable coding rate
EP3829092B1 (en) * 2016-11-23 2023-10-04 Koninklijke Philips N.V. Receiver, transmitter, communication network, data signal and method improving a retransmission process in a communication network
US10735138B2 (en) 2017-05-02 2020-08-04 Futurewei Technologies, Inc. Multi-label offset lifting method
KR101835341B1 (en) * 2017-06-09 2018-03-07 엘지전자 주식회사 Method for two-way sliding window decoding of sc-ldpc code and apparatus therefor
US11271591B2 (en) * 2017-06-09 2022-03-08 Lg Electronics Inc. SC-LDPC code encoding method and device therefor
US10877842B2 (en) * 2017-09-08 2020-12-29 Intel Corporation Detecting silent data corruption for mass storage devices
CN109787641B (en) 2017-11-15 2024-02-06 中兴通讯股份有限公司 Method, device and storage medium for decoding sta-irecase code
KR102475279B1 (en) 2017-12-18 2022-12-07 삼성전자주식회사 A memory controller for performing encoding and decodung using a convolutional type low density parity check code, memory system including the same, and operation method thereof
US10979072B2 (en) * 2019-03-19 2021-04-13 Western Digital Technologies, Inc. Punctured bit estimation and bit error rate estimation
WO2020250390A1 (en) * 2019-06-13 2020-12-17 三菱電機株式会社 Decoding device
US11159175B2 (en) * 2019-06-21 2021-10-26 Intel Corporation Non-uniform iteration-dependent min-sum scaling factors for improved performance of spatially-coupled LDPC codes
US20210152282A1 (en) * 2019-11-15 2021-05-20 Nvidia Corporation Scheduling method for ldpc decoding
WO2021118395A1 (en) * 2019-12-13 2021-06-17 Huawei Technologies Co., Ltd. Spatially coupled forward error correction encoding method and device using generalized error locating codes as component codes
CN112234998A (en) * 2020-08-17 2021-01-15 西安电子科技大学 Method and device for decoding space coupling LDPC code by using sliding window
CN112165333A (en) * 2020-08-17 2021-01-01 西安电子科技大学 Method and device for eliminating error propagation of decoder of space coupling LDPC code
CN112737598B (en) * 2020-12-01 2024-04-09 西安电子科技大学 Self-adaptive doping method, system, storage medium, computer equipment and application
US20240031055A1 (en) * 2022-07-19 2024-01-25 Qualcomm Incorporated Mutual information based channel decoder power savings

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012220334B3 (en) * 2012-11-08 2013-11-28 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for restoring lost and corrupted data transmitted from transmission apparatus to receiver, involves performing calculation-, transmission and stopping processes until number of iterations is reached such that window position is moved

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254769B2 (en) * 2002-12-24 2007-08-07 Electronics And Telecommunications Research Insitute Encoding/decoding apparatus using low density parity check code
EP2282433A1 (en) 2009-08-04 2011-02-09 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost and/ or corrupted data
JP5992916B2 (en) * 2012-03-13 2016-09-14 パナソニック株式会社 Wireless communication device
JP2013198017A (en) * 2012-03-21 2013-09-30 Toshiba Corp Decoding device and communication device
GB2506159A (en) 2012-09-24 2014-03-26 Ibm 2 Stage RLL coding, standard coding with global/interleave constraints, then sliding window substitution with sequences having different constraints

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012220334B3 (en) * 2012-11-08 2013-11-28 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for restoring lost and corrupted data transmitted from transmission apparatus to receiver, involves performing calculation-, transmission and stopping processes until number of iterations is reached such that window position is moved

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Spatially coupled sparse codes on graphs: theory and practice (IEEE communications magazine, July 2014)*

Also Published As

Publication number Publication date
EP3228034A1 (en) 2017-10-11
EP3228034A4 (en) 2018-01-03
US9712187B2 (en) 2017-07-18
US20160164538A1 (en) 2016-06-09
WO2016089157A1 (en) 2016-06-09
EP3228034B1 (en) 2023-02-01
KR20170092672A (en) 2017-08-11

Similar Documents

Publication Publication Date Title
KR102539474B1 (en) Sc-ldpc codes for wireless communication systems
US9362956B2 (en) Method and system for encoding and decoding data using concatenated polar codes
US8560911B2 (en) System and method for structured LDPC code family
EP3231094B1 (en) Method and apparatus for parallel concatenated ldpc convolutional codes enabling power-efficient decoders
US8495450B2 (en) System and method for structured LDPC code family with fixed code length and no puncturing
US8627166B2 (en) LDPC code family for millimeter-wave band communications in a wireless network
US9634693B2 (en) Apparatus and method for decoding LDPC codes in a communications system
US9100052B2 (en) QC-LDPC convolutional codes enabling low power trellis-based decoders
CN109417392B (en) Coding and decoding method and system of LDPC code
US9264073B2 (en) Freezing-based LDPC decoder and method
US20230275696A1 (en) Method and apparatus for encoding/decoding channel in communication or broadcasting system
JP6936854B2 (en) LDPC code transmission method using a row-orthogonal structure and a device for that purpose.
US11082061B2 (en) High-rate long LDPC codes
KR101998199B1 (en) Method and apparatus for selecting LDPC base code from multiple LDPC codes
Maunder The 5G channel code contenders
US11082060B2 (en) LPDC code transmission method using row-orthogonal structure and apparatus therefor
US8726122B2 (en) High throughput LDPC decoder
AU2018288953A1 (en) Method and apparatus for channel encoding and decoding in communication or broadcasting system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant