KR101856416B1 - 극 부호를 위한 저 복잡도 scl 복호 방법 및 장치 - Google Patents

극 부호를 위한 저 복잡도 scl 복호 방법 및 장치 Download PDF

Info

Publication number
KR101856416B1
KR101856416B1 KR1020170051744A KR20170051744A KR101856416B1 KR 101856416 B1 KR101856416 B1 KR 101856416B1 KR 1020170051744 A KR1020170051744 A KR 1020170051744A KR 20170051744 A KR20170051744 A KR 20170051744A KR 101856416 B1 KR101856416 B1 KR 101856416B1
Authority
KR
South Korea
Prior art keywords
decoding
bit
bits
source vector
paths
Prior art date
Application number
KR1020170051744A
Other languages
English (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 성균관대학교산학협력단
Priority to US15/907,365 priority Critical patent/US10608667B2/en
Application granted granted Critical
Publication of KR101856416B1 publication Critical patent/KR101856416B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

극 부호를 위한 저 복잡도 SCL 복호 방법이 제공된다. 방법은, 극 부호화 (polar encoding) 를 통해 생성된 부호어 (codeword) 벡터를 수신하는 단계 및 연속 제거 리스트 (successive cancellation list, SCL) 복호를 기반으로 앞서 수신한 부호어 벡터로부터 소스 벡터에 포함된 복수의 비트를 순차적으로 복호화하는 단계를 포함할 수 있고, 여기서 복호화하는 단계는 소스 벡터에 포함된 정보 비트 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들 간의 신뢰도 비교를 수행하지 않고 해당 비트의 신뢰도를 기반으로 부분 비트의 값을 결정할 수 있다. 따라서, 종래 기술과 거의 동일한 성능, 즉 약 0.03dB 이내의 성능 열화를 가지면서도 약 57 % 수준의 복잡도를 가지는 것이 가능하다.

Description

극 부호를 위한 저 복잡도 SCL 복호 방법 및 장치{A METHOD OF LOW COMPLEXITY SCL DECODING FOR POLAR CODES AND AN APPARATUS THEREOF}
본 발명은 극 부호의 복호 방법에 관한 것으로서, 보다 구체적으로는 저 복잡도를 가지는 극 부호의 연속 제거 리스트 (successive cancellation list, SCL) 기반의 복호 방법에 관한 것이다.
채널 부호 (channel codes) 는 잡음이 존재하는 통신 채널을 통한 데이터 전송에서의 오율 정정 (error correction) 을 위해 사용하는 기술로, 전송하고자 하는 데이터에 추가적인 비트 (redundancy bit) 를 함께 전송하여 오류 정정을 수행한다.
채널 부호 중 하나인 극 부호 (polar code) 는 채널 양극화 현상 (channel polarization) 을 이용하여 낮은 부/복호 (en/decoding) 복잡도로 점대점 (point-to-point) 채널 용량을 달성하는 최초의 채널 부호이다. 2009년 Arikan 에 의해 개발된 극 부호는 현재까지 활발히 연구 및 개발되어 우수한 오류율 성능 (error performance) 을 갖게 되었고, 최근에는 3GPP (3rd Generation Partnership Project) 5G 채널 부호 중 하나로 채택되었다. 그러나 극 부호는 다른 채널 부호 대비 높은 복호 복잡도를 갖는 것이 약점으로 지적되고 있다.
Arikan, "Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels", IEEE Trans. Inform. Theory, vol. 55, no. 7, pp. 3051-3073, July 2009. I. Tal and A. Vardy, "List decoding of polar codes," IEEE Trans. Inf. Theory, vol. 61, no. 5, pp. 2213-2226, May 2015.
전술한 문제점을 해결하기 위한 본 발명의 목적은 종래 극 부호 복호 알고리즘을 개선하여, 실제 극 부호 복호기의 계산량 저감에 따른 전력 소모량을 낮추고, 추가적으로 복호기 구현 방법에 따라 복호 처리량 (decoding throughput) 또한 증가시킬 수 있는 극 부호를 위한 저 복잡도 SCL 복호 방법을 제공하는 것이다.
전술한 문제점을 해결하기 위한 본 발명의 다른 목적은 종래 극 부호 복호 알고리즘을 개선하여, 실제 극 부호 복호기의 계산량 저감에 따른 전력 소모량을 낮추고, 추가적으로 복호기 구현 방법에 따라 복호 처리량 또한 증가시킬 수 있는 극 부호를 위한 저 복잡도 SCL 복호 장치를 제공하는 것이다.
전술한 문제점을 해결하기 위한 본 발명의 또 다른 목적은 종래 극 부호 복호 알고리즘을 개선하여, 실제 극 부호 복호기의 계산량 저감에 따른 전력 소모량을 낮추고, 추가적으로 복호기 구현 방법에 따라 복호 처리량 또한 증가시킬 수 있는 극 부호를 위한 저 복잡도 SCL 복호를 가능하게 하는 명령어들이 포함된 컴퓨터 판독 가능한 저장 매체를 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법은, 극 부호화 (polar encoding) 를 통해 생성된 부호어 (codeword) 벡터를 수신하는 단계; 및 연속 제거 리스트 (successive cancellation list, SCL) 복호를 기반으로 상기 부호어 벡터로부터 소스 벡터에 포함된 복수의 비트를 순차적으로 복호화하는 단계를 포함하고, 상기 복호화하는 단계는 상기 소스 벡터에 포함된 정보 비트 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들 간의 신뢰도 비교를 수행하지 않고 해당 비트의 신뢰도를 기반으로 상기 부분 비트의 값을 결정할 수 있다.
일 측면에 따르면, 상기 소스 벡터는 정보 비트 및 고정 비트를 포함하고, 상기 부분 비트는, 상기 정보 비트들에 대응하는 인덱스의 집합인 정보 집합의 부분 집합에 속하는 인덱스에 대응하는 비트를 나타낼 수 있다.
일 측면에 따르면, 상기 복호화하는 단계는, 상기 소스 벡터에 포함된 복수의 비트들 각각에 대한 순차적인 처리로서, 현재 비트가 고정 비트라는 결정에 응답하여 미리 정의된 비트 값을 현재 비트에 할당함으로써 후보 복호 경로 수를 유지하는 단계; 현재 비트가 부분 비트라는 결정에 응답하여 상기 현재 비트의 신뢰도를 기반으로 각 후보 복호 경로가 상기 현재 비트의 값을 독립적으로 결정함으로써 후보 복호 경로 수를 유지하는 단계; 또는 현재 비트가 부분 비트가 아닌 정보 비트라는 결정에 응답하여 상기 현재 비트의 후보 값들에 따라 후보 복호 경로 수를 증가시키는 단계 중 어느 하나를 포함할 수 있다.
일 측면에 따르면, 상기 후보 복호 경로 수를 증가시키는 단계는, 증가된 후보 복호 경로의 수가 미리 결정된 최대 경로 수를 초과한다는 결정에 응답하여 상기 후보 복호 경로들 각각의 신뢰도를 기반으로 상기 후보 복호 경로들을 정렬함으로써 상기 최대 경로 수를 초과하는 개수의 후보 복호 경로를 제거하는 단계를 포함할 수 있다.
일 측면에 따르면, 상기 복호화하는 단계는, 상기 소스 벡터에 포함된 복수의 비트들 중 최종 비트에 대한 처리의 완료 이후에, 후보 복호 경로들 중 가장 신뢰도가 높은 복호 경로를 선택함으로써 상기 소스 벡터에 포함된 복수의 비트에 대한 복호화를 완료하는 단계를 더 포함할 수 있다.
일 측면에 따르면, 상기 소스 벡터는 순환 중복 검사 (cyclic redundancy check, CRC) 부호 또는 패리티 검사 (parity-check) 부호 중 적어도 하나가 미리 적용된 소스 벡터일 수 있다.
일 측면에 따르면, 상기 부분 비트는 상기 정보 비트들의 신뢰도를 기반으로, 상기 정보 비트들 중 미리 결정된 상위 순위의 신뢰도를 가지는 비트들로 결정될 수 있다.
일 측면에 따르면, 상기 부분 집합의 크기는 상기 최대 경로 수, 부호 길이, 부호 율 또는 채널 품질 중 적어도 하나를 기반으로 결정될 수 있다.
일 측면에 따르면, 상기 부분 집합의 크기는 상기 최대 경로 수, 상기 부호 길이 및 상기 채널 품질에 비례하고, 상기 부호 율에 반비례할 수 있다.
일 측면에 따르면, 상기 소스 벡터는 천공 비트를 더 포함하고, 상기 정보 비트는 상기 소스 벡터의 복수의 비트들 중 상기 천공 비트가 아닌 벡터들 중에서 지정될 수 있다.
본 발명의 다른 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 장치는, 극 부호화 (polar encoding) 를 통해 생성된 부호어 (codeword) 벡터를 수신하는 수신부; 및 연속 제거 리스트 (successive cancellation list, SCL) 복호를 기반으로 상기 부호어 벡터로부터 소스 벡터에 포함된 복수의 비트를 순차적으로 복호화하는 복호화부를 포함하고, 상기 복호화부는 상기 소스 벡터에 포함된 정보 비트 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들 간의 신뢰도 비교를 수행하지 않고 해당 비트의 신뢰도를 기반으로 상기 부분 비트의 값을 결정할 수 있다.
일 측면에 따르면, 상기 소스 벡터는 정보 비트 및 고정 비트를 포함하고, 상기 부분 비트는, 상기 정보 비트들에 대응하는 인덱스의 집합인 정보 집합의 부분 집합에 속하는 인덱스에 대응하는 비트를 나타낼 수 있다.
일 측면에 따르면, 상기 복호화부는, 상기 소스 벡터에 포함된 복수의 비트들 각각에 대한 순차적인 처리로서, 현재 비트가 고정 비트라는 결정에 응답하여 미리 정의된 비트 값을 현재 비트에 할당함으로써 후보 복호 경로 수를 유지하는 것; 현재 비트가 부분 비트라는 결정에 응답하여 상기 현재 비트의 신뢰도를 기반으로 각 후보 복호 경로가 상기 현재 비트의 값을 독립적으로 결정함으로써 후보 복호 경로 수를 유지하는 것; 또는 현재 비트가 부분 비트가 아닌 정보 비트라는 결정에 응답하여 상기 현재 비트의 후보 값들에 따라 후보 복호 경로 수를 증가시키는 것 중 어느 하나를 수행하도록 구성될 수 있다.
일 측면에 따르면, 상기 후보 복호 경로 수를 증가시키는 것은, 증가된 후보 복호 경로의 수가 미리 결정된 최대 경로 수를 초과한다는 결정에 응답하여 상기 후보 복호 경로들 각각의 신뢰도를 기반으로 상기 후보 복호 경로들을 정렬함으로써 상기 최대 경로 수를 초과하는 개수의 후보 복호 경로를 제거하는 것을 포함할 수 있다.
일 측면에 따르면, 상기 복호화부는, 상기 소스 벡터에 포함된 복수의 비트들 중 최종 비트에 대한 처리의 완료 이후에, 후보 복호 경로들 중 가장 신뢰도가 높은 복호 경로를 선택함으로써 상기 소스 벡터에 포함된 복수의 비트에 대한 복호화를 완료하도록 더 구성될 수 있다.
일 측면에 따르면, 상기 소스 벡터는 순환 중복 검사 (cyclic redundancy check, CRC) 부호 또는 패리티 검사 (parity-check) 부호 중 적어도 하나가 미리 적용된 소스 벡터일 수 있다.
일 측면에 따르면, 상기 부분 비트는 상기 정보 비트들의 신뢰도를 기반으로, 상기 정보 비트들 중 미리 결정된 상위 순위의 신뢰도를 가지는 비트들로 결정될 수 있다.
일 측면에 따르면, 상기 부분 집합의 크기는 상기 최대 경로 수, 부호 길이, 부호 율 또는 채널 품질 중 적어도 하나를 기반으로 결정될 수 있다.
일 측면에 따르면, 상기 부분 집합의 크기는 상기 최대 경로 수, 상기 부호 길이 및 상기 채널 품질에 비례하고, 상기 부호 율에 반비례할 수 있다.
일 측면에 따르면, 상기 소스 벡터는 천공 비트를 더 포함하고, 상기 정보 비트는 상기 소스 벡터의 복수의 비트들 중 상기 천공 비트가 아닌 벡터들 중에서 지정될 수 있다.
본 발명의 또 다른 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호를 위한 프로세서 실행 가능한 명령어들을 포함하는 컴퓨터 판독 가능한 저장 매체에 있어서, 상기 명령어들은 상기 프로세서에 의해 실행되었을 때, 상기 프로세서로 하여금, 극 부호화 (polar encoding) 를 통해 생성된 부호어 (codeword) 벡터를 수신하고; 그리고 연속 제거 리스트 (successive cancellation list, SCL) 복호를 기반으로 상기 부호어 벡터로부터 소스 벡터에 포함된 복수의 비트를 순차적으로 복호화하도록 하며, 상기 복호화하는 것은 상기 소스 벡터에 포함된 정보 비트 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들 간의 신뢰도 비교를 수행하지 않고 해당 비트의 신뢰도를 기반으로 상기 부분 비트의 값을 결정할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
전술한 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법 및 장치에 따르면, 실제 극 부호 복호기의 계산량 저감에 따른 전력 소모량을 낮추고, 추가적으로 복호기 구현 방법에 따라 복호 처리량 (decoding throughput) 또한 증가시키는 것이 가능하다.
구체적으로, 종래의 연속 제거 리스트 (successive cancellation list, SCL) 복호 기술과 거의 동일한 성능, 즉 약 0.03dB 이내의 성능 열화를 가지면서도 종래 SCL 복호 기술 대비 약 57 % 수준의 복잡도를 가짐으로써 종래 기술의 극 부호는 다른 채널 부호 대비 높은 복호 복잡도를 가지는 문제점을 해결할 수 있다.
도 1 은 극 부호 복호를 위한 SCL 복호 트리 (L = 4) 를 나타낸다.
도 2 는 본 발명의 일 실시예에 따른 복호 기법의 동작 순서도를 나타낸다.
도 3 은 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법의 흐름도이다.
도 4 는 도 3 의 복호화하는 단계의 상세 흐름도이다.
도 5 는 신뢰도에 따라 정렬된 비트 인덱스 시퀀스의 예시도 (N=8) 이다.
도 6 은 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 장치의 구성을 나타내는 블록도이다.
도 7 은 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호를 위한 컴퓨팅 디바이스의 예시도이다.
도 8 은 종래 복호 기법과 본 발명의 일 실시예에 따른 복호 기법의 오류율 성능 비교 (N = 1024, 부호율 1/2) 를 나타낸다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
극 부호화와 연속 제거 리스트 복호
극 부호화 (polar encoding) 와 연속 제거 리스트 (successive cancellation list, SCL) 복호 설명에 필요한 파라미터들은 아래와 같이 나타낸다.
- N : 부호 길이 (block length)
- u : 이진 (binary) 값으로 구성된 길이 1 × N 의 소스 (source) 벡터
- G N : 비 특허문헌 1에서 정의된 N × N 크기의 극 부호화 생성 행렬 (generator matrix)
- x : 이진 값으로 구성된 길이 1 × N 의 부호어 (codeword) 벡터
- A : 정보 비트 (information bit) 에 대한 비트 인덱스 집합 ⊂ {1, 2, …, N}
- : 천공 비트에 대한 비트 인덱스 집합 ⊂ {1, 2, …, N}
극 부호화는 소스 벡터 u 와 생성 행렬 G N 의 이진 곱셈으로 수행된다. 극 부호화를 통한 부호어 벡터 x 는 아래 식과 같다.
Figure 112017039471837-pat00001
소스 벡터 u 는 송신자가 전송하고자 하는 정보 비트 (information bits) 와 고정 비트 (frozen bits)로 구성되어 있으며, 정보 비트에 해당하는 ui 들의 인덱스 집합을 정보 집합 (information set) 이라 하고, A 로 표기한다. 극 부호화를 통해 생성된 부호어 벡터는 채널을 통과하여 수신기에 수신되고, 복호기는 수신 벡터를 이용해 정보 비트에 대한 복호를 수행한다.
극 부호 복호를 위한 여러 가지 복호 방법이 있지만, 가장 우수한 오류율 성능을 갖는 복호기로 SCL 복호 방법이 있다. SCL 복호가 최종적으로 복호하고 싶은 소스 벡터를
Figure 112017039471837-pat00002
로 표기할 때, 복호기는 ui부터 uN 까지 한 비트씩 순차적으로 복호를 수행한다.
도 1 은 극 부호 복호를 위한 SCL 복호 트리 (L = 4), 즉, SCL 복호 알고리즘 설명을 위한 복호 트리 (decoding tree) 이다. SCL 복호는 복호 트리를 오른쪽으로 확장해가며 최대 L 개의 복호 경로 수 (이하, "최대 경로 수"라고도 함) 가 유지되도록 복호 경로를 관리한다. 여기서 복호 트리의 각 깊이 (depth) 는 ui의 복호에 해당한다. 최종적으로 모든 ui 비트에 대한 복호가 끝나면 L 개의 복호 경로 중 가장 신뢰도가 높은 복호 경로 하나를 선택함으로 복호를 종료한다.
도 1 을 참조하여, 보다 자세히 SCL 복호 알고리즘을 설명하면 다음과 같다. 예시에서의 리스트 크기 L = 4 이며, 정보집합 A = {3,5,6,…}인 경우이다. 먼저, 복호 트리의 왼쪽 끝점인 루트 (root) 에서 시작하여 u1이 정보 비트인지 아닌지를 판별한 후, 가지 (branch) 를 생성하여 경로 수를 확장할 것인지 여부를 결정한다. 도 1에서는 u1이 고정 (frozen) 비트이므로
Figure 112017039471837-pat00003
에 대한 하나의 복호 경로를 생성한다. 여기서, 고정 비트에 대해 할당되는 비트 값은 0 또는 1로서 미리 결정될 수 있고, 예시에서는 설명의 편의를 위해 고정 비트에 대해 0의 비트 값이 할당된다. 마찬가지로 u2도 고정 비트이기 때문에 단일 복호 경로가 유지된다. 그러나 u3은 정보 비트이기 때문에 u3 = 0 또는 1이 될 수 있고, 따라서 각 경우에 대한 가지를 생성하여 후보 복호 경로 수를 증가시킨다. 설명의 편의상 예를 들어 아래쪽 가지를 0, 위쪽 가지를 1로 지칭한다. 그리고 현재 단계에서의 후보 복호 경로의 개수가 미리 결정한 최대 경로 수 L을 초과하는지 판별하여, L 을 초과하지 않으면 복호 경로 수는 그대로 유지된다. 도 1의 예시에서는 L = 4 이고, 깊이 3에서는 복호 경로가 2개이기 때문에 모든 복호 경로가 다음 복호로 진행한다. 이와 같은 알고리즘으로 u5까지 복호 되고 경로 수는 4개까지 증가한다. 다음 u6는 정보 비트이기 때문에 각 경로에서 u6 = 0 또는 1에 대한 가지를 생성하여 총 8개의 복호 경로를 생성한다. 그러나 최대 경로 수 L = 4 이기 때문에 8개의 복호 경로 중 가장 낮은 신뢰도을 갖는 4개의 경로를 버린다. 그리고 신뢰도가 높은 나머지 4개의 경로를 이용해 다음 복호를 수행한다. 여기서 4개의 경로를 버리기 위해서는 8개의 경로에 대한 신뢰도를 계산하는 동작과 모든 신뢰도 값을 정렬 (sorting) 하는 동작을 수행하게 된다. 이후 나머지 ui 비트들의 복호는 복호의 대상이 되는 현재 비트가 정보 비트인지 여부에 따라 앞서 설명한 동작을 반복하게 된다. 마지막으로 모든
Figure 112017039471837-pat00004
에 대한 복호가 끝난 후에는 총 L 개의 복호 경로가 남아있게 되며, 복호기는 L 개의 복호 경로 중 가장 신뢰도가 높은 경로를 선택함으로써 복호를 종료하고 소스 벡터의 복수의 비트들에 대한 복호가 완료된다.
외부 부호가 연접된 극 부호화와 연속 제거 리스트 복호
극 부호의 오류율 성능 향상을 위해, 앞서 설명한 극 부호화 과정 이전 외부 부호화 (outer coding) 를 수행할 수도 있다. 대표적으로 순환 중복 검사 (cyclic redundancy check, CRC) 부호 또는 패리티 검사 (parity-check) 부호 등이 외부 부호로서 사용될 수 있다.
이와 같이 외부 부호가 극 부호에 연접된 경우에도 SCL 복호를 적용할 수 있다. 다만, CRC 또는 패리티 검사의 사용 여부에 따라 복호 중간에 외부 부호를 이용한 ui 비트 결정 방법 또는 복호 경로 제거 등의 동작이 추가될 수 있다. 그러나 기본적으로는 최대 경로 수인 L 개의 복호 경로를 유지하여 최종적으로 하나의 복호 경로를 선택하는 동작을 수행한다.
극 부호를 위한 저 복잡도 SCL 복호
통상적인 SCL 복호는 대부분의 정보 비트를 복호 할 때, 가장 신뢰도가 높은 L 개의 복호 경로 선택을 위해, 모든 경로의 신뢰도 값을 정렬하는 동작을 수행한다. SCL 복호의 하드웨어 구현을 고려했을 때, 정렬 복잡도는 리스트 크기 L의 값에 따라 전체 복호 복잡도에서 적지 않은 비중을 차지하게 되고, 특히 복호 지연을 저감하기 위해 병렬 정렬 (parallel sorting) 을 사용하면, 전체 복잡도에서 더 큰 비중을 차지하게 된다.
본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법은, 복호의 높은 복잡도를 저감하고, 최대한 오류율 성능을 유지함으로 SCL 복호의 실용성 제고를 목표로 한다. 특히, 작지 않은 리스트 크기를 사용하였을 때, 정렬 복잡도가 전체 복호 복잡도에 큰 비중을 차지하는 것에 초점을 두어, 정렬 동작을 간소화 하는 것을 목표로 한다.
관련하여, 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 기법은 앞서 언급한 정렬 복잡도의 저감을 통해 극 부호 복호의 복잡도를 감소시키고, 나아가 복호 지연을 줄일 수 있는 개선된 SCL 복호 기법에 관한 것이다. 통상적인 SCL 복호는 ui를 복호 함에 있어, 현재 비트가 정보 비트인가 여부를 판별한 후, 두 가지 다른 복호 동작을 수행한다. 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법은, 정보 집합 중 부분 집합에 해당하는 새로운 집합을 정의하여, 새로운 복호 동작을 수행함으로써 본 발명의 목적을 달성할 수 있다.
도 2 는 본 발명의 일 실시예에 따른 복호 기법의 동작 순서도를 나타낸다. 도 2 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 기법은 정보 집합의 부분 집합에 해당하는 새로운 집합 Ag를 정의하고, 세 개의 집합 A/Ag (A에서 Ag를 제외한 집합), Ag 및 Ac에 각각 속하는 ui 비트 복호에 대해 각기 다른 복호 동작을 수행할 수 있다. 도 2 에 도시된 바와 같이, 먼저, u1 비트의 복호를 위해 i = 1로 설정하고 (단계 10), i 가 소스 벡터의 부호 길이 N 보다 크지 않으면 (단계 20) 각 비트 ui 에 대한 복호를 수행한다. i 가 A/Ag 에 속하는 경우 (단계 30, 단계 40 및 단계 60 참조) 와 Ac에 속하는 경우 (단계 30 및 단계 31 참조) 의 ui 비트의 복호 동작은 통상적인 SCL 복호 동작과 동일하다. 그리고 Ag에 속한 ui 비트 복호 시 (단계 30, 단계 40 및 단계 50 참조) 에는 각 복호 경로가 독립적으로, ui 비트에 대한 신뢰도에 따라 비트 값을 결정할 수 있다. 통상적인 SCL 복호에서 수행하는 정렬 동작을 수행하지 않고 바로 비트를 결정하기 때문에 이러한 동작을 즉시 결정 (instant decision) 이라고 부른다. 즉시 결정을 하게 되면, 정렬 동작이 필요 없게 복잡도를 줄일 수 있고, 또한 정렬에 필요한 클럭 (clock) 수를 줄일 수 있어서 복호기 구현 방법에 따라 복호 지연도 줄일 수 있다. 또한, 즉시 결정을 하면 현재 복호 경로 수가 L 보다 작더라도 복호 경로 수는 유지된다. 한편, 다시 도 2 를 참조하면, 현재 비트에 대한 처리가 완료되면 i 가 i+1 값을 가지도록 하고 (단계 70), 부호 길이에 따라 소스 벡터의 모든 비트에 대해 처리가 완료되었다는 결정에 응답하여 (단계 20) 현재까지 남아 있던 최대 경로 수 L 개의 복호 경로에 대해 신뢰도가 가장 높은 하나의 복호 경로를 선택 (단계 21) 함으로써 소스 벡터의 복수의 비트들에 대한 복호를 완료할 수 있다.
여기서, Ag 의 크기 및 집합 구성에 따라 성능 열화가 발생할 수도 있기 때문에, 적절하게 선택하는 것이 중요하다. 여기서 Ag 결정을 위한 특정 기준으로서 한정하는 것은 아니지만, 설명을 위해 하나의 실시예로서 각 ui 에 대한 신뢰도가 기준이 될 수 있다. 즉, 정보 집합 A에 속한 ui 비트 중, ui 비트의 신뢰도가 상위 10% 또는 20% 비트를 Ag 로 결정할 수도 있다. 이와 같이 ui 에 대한 신뢰도를 기준으로 Ag를 선택하면 성능 열화를 최소화하는 동시에 복호 복잡도의 저감을 달성할 수 있다.
또한 Ag 의 크기는 리스트 복호기의 L 값, 부호 파라미터 (부호 길이, 부호 율 등) 또는 채널 품질 (수신 SNR 등) 에 따라 바뀔 수 있다. 상대적으로 L 값이 큰 경우, 부호 길이가 큰 경우, 부호 율이 낮은 경우, 채널 품질이 높은 경우에 Ag 의 크기를 보다 크게 설정할 수 있다.
예를 들어, 도 5 는 신뢰도에 따라 정렬된 비트 인덱스 시퀀스의 예시도 (N=8) 이다. 도 5 에 도시된 바와 같이 N=8에 대한 채널 인덱스 시퀀스가 신뢰도(reliability) 기준으로 정렬되어 있고, A={4,5,6,7,8}인 상황을 생각해보면, 이 때 L=8인 경우, Ag 는 높은 신뢰도의 인덱스부터 Ag ={6,7,8}로 설정되었다가, L=32인 경우에는 Ag ={4,6,7,8}로 변경될 수 있다. 앞서 언급한 다른 파라미터들에 대해서도 위의 예시와 비슷하게 Ag가 변경될 수 있다.
한편, 부호에 천공이 적용되는 경우에도 동일한 방법으로 Ag를 선택할 수 있다. 도 5 에 도시된 예시에서 천공되는 비트의 인덱스 집합을 P={4,6,8} 로 정의하면, 정보 집합은 P를 제외한 나머지 비트 인덱스들에 대해서 선택될 수 있다. 예를 들어 A={2,3,5,7} 이 될 수 있다. 이렇게 A가 결정되면, A 에 속한 인덱스들 중 신뢰도가 높은 인덱스들이 우선적으로 Ag 에 들어갈 수 있고, 그리고 복호기의 L 값, 부호 파라미터 또는 채널 품질에 따라 Ag 의 크기는 바뀔 수 있다.
한편, 이와 같은 즉시 결정 SCL 복호 기법은 앞서 언급 CRC 연접 극 부호나, 패리티 검사부호가 연접된 극 부호 등의 극 부호에 대하여 SCL 기반의 복호를 수행할 경우 모두 적용 가능하다.
도 3 은 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법의 흐름도이고, 도 4 는 도 3 의 복호화하는 단계의 상세 흐름도이다. 이하, 도 3 및 도 4 를 참조하여 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법을 보다 구체적으로 설명한다.
도 3 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법은 먼저, 극 부호화 (polar encoding) 를 통해 생성된 부호어 (codeword) 벡터를 수신할 수 있다 (단계 310). 앞서 설명한 바와 같이, 부호어 벡터는 송신 측에서 전송하고자 하는 길이 1 × N 의 소스 벡터에 예를 들어 비 특허문헌 1 에서 정의하고 있는 것과 같은 N × N 크기의 극 부호화 생성 행렬의 이진 곱셉을 통해 생성될 수 있다. 송신 측에서 송신한 상기 부호어 벡터를 수신 측에서 수신함으로써, 극 부호의 복호화가 개시될 수 있다.
이어서, 연속 제거 리스트 (successive cancellation list, SCL) 복호를 기반으로 하여, 상기 수신된 부호어 벡터로부터, 소스 벡터에 포함된 복수의 비트를 순차적으로 복호화할 수 있다 (단계 320). 여기서, 복호화하는 단계는 상기 소스 벡터에 포함된 정보 비트 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들 간의 신뢰도 비교를 수행하지 않고 해당 비트의 신뢰도를 기반으로 상기 부분 비트의 값을 결정, 즉, 즉시 결정을 적용하여 비트 값을 결정할 수 있다. 통상적인 연속 제거 리스트 복호의 경우, 최대 경로 수 L 을 초과하는 후보 복호 경로가 생성되었을 경우, 각 복호 경로들의 신뢰도를 계산하고 정렬하여 신뢰도가 낮은 후보 복호 경로를 제거하는 데 반해, 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법은 복수의 정보 비트들 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들의 신뢰도 비교 없이 바로 현재 비트의 신뢰도만을 기반으로 현재 비트의 값을 결정하므로, 복호 복잡도의 감소 측면에서 매우 유리하다.
보다 구체적으로, 송신 측에서 전송하고자 하는 소스 벡터는 "정보 비트 (information bits)" 및 "고정 (frozen) 비트"를 포함하고 있으며, 본 발명의 일 실시예에 따른 "부분 비트"는, 상기 정보 비트들에 대응하는 인덱스의 집합인 정보 집합의 부분 집합에 속하는 인덱스에 대응하는 비트를 나타낸다. 즉, 부분 비트든 복수의 고정 비트 중 적어도 일부를 선택함으로써 지정될 수 있다.
도 4를 참조하면, 복호화하는 단계 (단계 320) 는, 소스 벡터에 포함된 복수의 비트들 각각에 대해서 복호를 위한 순차적인 처리를 수행할 수 있으며, 이러한 처리는 i) 현재 비트가 고정 비트라는 결정에 응답하여 미리 정의된 비트 값 (예를 들어 0) 을 현재 비트에 할당함으로써 후보 복호 경로 수를 유지하는 단계 (단계 321), ii) 현재 비트가 부분 비트라는 결정에 응답하여 상기 현재 비트의 신뢰도를 기반으로 각 후보 복호 경로가 상기 현재 비트의 값을 독립적으로 결정 (예를 들어 각 후보 복호 경로의 현재 비트에서 0 또는 1 중 높은 신뢰도를 가지는 값) 함으로써 후보 복호 경로 수를 유지하는 단계 (단계323) 또는 iii) 현재 비트가 부분 비트가 아닌 정보 비트라는 결정에 응답하여 상기 현재 비트의 후보 값들에 따라 후보 복호 경로 수를 증가 (예를 들어, 현재 비트가 0 의 값을 가지는 경로 및 1 의 값을 가지는 경로로 각각의 후보 복호 경로들을 분할) 시키는 단계 (단계 325) 중 어느 하나를 포함할 수 있다. 여기서, 부분 비트가 아닌 정보 비트에 대해 후보 복호 경로 수를 증가시키는 단계 (단계 325) 는, 통상적인 SCL 복호 방법에서와 같이, 처리의 결과 증가된 후보 복호 경로들의 수가 미리 결정된 최대 경로 수 L 을 초과한다고 결정하면, 이러한 결정에 응답하여 후보 복호 경로들 각각의 신뢰도를 기반으로 상기 후보 복호 경로들을 정렬함으로써, 예를 들어 더 낮은 신뢰도를 가지는 후보 복호 경로부터 제거하는 방식으로, 최대 경로 수를 초과하는 개수의 후보 복호 경로를 제거하는 단계를 포함할 수 있다.
한편, 상기 복호화하는 단계 (단계 320) 는, 소스 벡터에 포함된 복수의 비트들 중 최종 비트에 대한 처리가 완료된 이후에, 아직까지 제거되지 않고 남아 있는 후보 복호 경로들 중 가장 신뢰도가 높은 복호 경로를 선택함으로써 소스 벡터에 포함된 복수의 비트에 대한 복호화를 완료할 수 있다.
앞서 언급한 바와 같이, 소스 벡터는 순환 중복 검사 (cyclic redundancy check, CRC) 부호 또는 패리티 검사 (parity-check) 부호 중 적어도 하나가 미리 적용된 소스 벡터일 수 있고, 극 부호의 오류율 성능이 더 향상될 수도 있다. 이와 같은 외부 부호가 연접된 극 부호화의 경우에도 극 부호를 위한 저 복잡도 SCL 복호 방법의 적용이 가능하고, 복호 중간에 외부 부호를 이용한 ui 비트 결정 방법이나 복호 경로 제거의 동작이 추가될 수도 있다.
전술한 바와 같이, 지나친 성능 열화 방지의 측면에서 부분 비트의 선정 기준이 중요하며, 예를 들어 부분 비트는 정보 비트들의 신뢰도를 기반으로, 정보 비트들 중 미리 결정된 상위 순위의 신뢰도를 가지는 비트들로 결정될 수 있다. 보다 구체적으로, 예를 들어 ui 비트의 신뢰도가 상위 10 % 또는 20 % 인 비트를 부분 비트로서 결정할 수도 있다. 아울러, 부분 집합의 크기는 상기 최대 경로 수, 부호 길이, 부호 율 또는 채널 품질 중 적어도 하나를 기반으로 결정될 수도 있으며, 보다 구체적으로 상기 부분 집합의 크기는 상기 최대 경로 수, 상기 부호 길이 및 상기 채널 품질에 비례하고, 상기 부호 율에 반비례할 수 있다.
또한, 소스 벡터는 천공 비트를 더 포함할 수 있으며, 부호에 천공이 적용되는 경우 정보 비트는 소스 벡터의 복수의 비트들 중 천공 비트가 아닌 벡터들 중에서 지정될 수 있다.
극 부호를 위한 저 복잡도 SCL 복호 장치
도 6 은 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 장치의 구성을 나타내는 블록도이다. 도 6 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 장치 (600) 는 수신부 (610) 및 복호화부 (620) 를 포함할 수 있다.
수신부 (610) 는 극 부호화 (polar encoding) 를 통해 생성된 부호어 (codeword) 벡터를 수신할 수 있고, 복호화부 (620) 는 연속 제거 리스트 (successive cancellation list, SCL) 복호를 기반으로 상기 부호어 벡터로부터 소스 벡터에 포함된 복수의 비트를 순차적으로 복호화할 수 있다. 여기서, 복호화부 (620) 는 소스 벡터에 포함된 정보 비트 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들 간의 신뢰도 비교를 수행하지 않고 해당 비트의 신뢰도를 기반으로 상기 부분 비트의 값을 결정할 수 있다.
한편, 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 장치 (600) 의 보다 구체적인 동작은 전술한 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법에 따를 수 있다.
전술한 본 발명에 따른 극 부호를 위한 저 복잡도 SCL 복호 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
도 7 은 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호를 위한 컴퓨팅 디바이스의 예시도이다. 도 7 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호를 위한 명령어들에 의해, 도 7 에 도시된 바와 같은 컴퓨팅 디바이스 (700) 가 극 부호를 위한 저 복잡도 SCL 복호를 수행하도록 할 수 있다.
보다 구체적으로, 극 부호를 위한 저 복잡도 SCL 복호를 위한 프로세서 실행 가능한 명령어들은 예를 들어 메모리 (720) 에 저장될 수 있으며, 명령어들은 컴퓨팅 디바이스 (700) 에 포함된 프로세서 (730) 에 의해 실행되었을 때, 프로세서 (730) 로 하여금, RF 부 (710) 를 경유하여 극 부호화 (polar encoding) 를 통해 생성된 부호어 (codeword) 벡터를 수신하도록 하고, 프로세서 (730) 가 연속 제거 리스트 (successive cancellation list, SCL) 복호를 기반으로 상기 부호어 벡터로부터 소스 벡터에 포함된 복수의 비트를 순차적으로 복호화하도록 할 수 있다.
여기서, 프로세서 (730) 가 복호화를 수행하는 데 있어서, 소스 벡터에 포함된 정보 비트 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들 간의 신뢰도 비교를 수행하지 않고 해당 비트의 신뢰도를 기반으로 상기 부분 비트의 값을 결정할 수 있다.
실험예
발명 기법의 효과를 확인하기 위해, 종래 SCL 복호와 발명 복호의 오류율 성능 및 복잡도 비교 결과를 제시한다. 도 8 은 종래 복호 기법과 본 발명의 일 실시예에 따른 복호 기법의 오류율 성능 비교 (N = 1024, 부호율 1/2) 를 나타낸다. 극 부호화 방법은 비특허문헌 2 에서 소개된 CRC 연접 극 부호화 방법을 사용하였다. 도 8 에서 볼 수 있듯이, 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 기법은 종래 기술과 거의 동일한 성능을 갖고, 약 0.03dB 이내의 성능 열화가 있음을 확인할 수 있다. 그리고 복잡도 비교는 복호에 필요한 덧셈 연산의 횟수로 비교하였는데, 종래 기술은 한 블록 복호에 약 625,500회의 덧셈 연산을 수행하고, 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 기법은 359,300회 덧셈 연산을 수행함을 확인하였다. 따라서 본 발명의 일 실시예에 따른 극 부호를 위한 저 복잡도 SCL 복호 기법이 종래 기술 대비 약 57% 수준의 복잡도를 가짐을 확인하였다.
이상, 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (21)

  1. 극 부호화 (polar encoding) 를 통해 생성된 부호어 (codeword) 벡터를 수신하는 단계; 및
    연속 제거 리스트 (successive cancellation list, SCL) 복호를 기반으로 상기 부호어 벡터로부터 소스 벡터에 포함된 복수의 비트를 순차적으로 복호화하는 단계를 포함하고,
    상기 복호화하는 단계는 상기 소스 벡터에 포함된 정보 비트 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들 간의 신뢰도 비교를 수행하지 않고 해당 비트의 신뢰도를 기반으로 상기 부분 비트의 값을 결정하는, 극 부호를 위한 저 복잡도 SCL 복호 방법.
  2. 제 1 항에 있어서,
    상기 소스 벡터는 정보 비트 및 고정 비트를 포함하고,
    상기 부분 비트는, 상기 정보 비트들에 대응하는 인덱스의 집합인 정보 집합의 부분 집합에 속하는 인덱스에 대응하는 비트를 나타내는, 극 부호를 위한 저 복잡도 SCL 복호 방법.
  3. 제 2 항에 있어서,
    상기 복호화하는 단계는, 상기 소스 벡터에 포함된 복수의 비트들 각각에 대한 순차적인 처리로서,
    현재 비트가 고정 비트라는 결정에 응답하여 미리 정의된 비트 값을 현재 비트에 할당함으로써 후보 복호 경로 수를 유지하는 단계;
    현재 비트가 부분 비트라는 결정에 응답하여 상기 현재 비트의 신뢰도를 기반으로 각 후보 복호 경로가 상기 현재 비트의 값을 독립적으로 결정함으로써 후보 복호 경로 수를 유지하는 단계; 또는
    현재 비트가 부분 비트가 아닌 정보 비트라는 결정에 응답하여 상기 현재 비트의 후보 값들에 따라 후보 복호 경로 수를 증가시키는 단계 중 어느 하나를 포함하는, 극 부호를 위한 저 복잡도 SCL 복호 방법.
  4. 제 3 항에 있어서,
    상기 후보 복호 경로 수를 증가시키는 단계는, 증가된 후보 복호 경로의 수가 미리 결정된 최대 경로 수를 초과한다는 결정에 응답하여 상기 후보 복호 경로들 각각의 신뢰도를 기반으로 상기 후보 복호 경로들을 정렬함으로써 상기 최대 경로 수를 초과하는 개수의 후보 복호 경로를 제거하는 단계를 포함하는, 극 부호를 위한 저 복잡도 SCL 복호 방법.
  5. 제 3 항에 있어서,
    상기 복호화하는 단계는,
    상기 소스 벡터에 포함된 복수의 비트들 중 최종 비트에 대한 처리의 완료 이후에, 후보 복호 경로들 중 가장 신뢰도가 높은 복호 경로를 선택함으로써 상기 소스 벡터에 포함된 복수의 비트에 대한 복호화를 완료하는 단계를 더 포함하는, 극 부호를 위한 저 복잡도 SCL 복호 방법.
  6. 제 1 항에 있어서,
    상기 소스 벡터는 순환 중복 검사 (cyclic redundancy check, CRC) 부호 또는 패리티 검사 (parity-check) 부호 중 적어도 하나가 미리 적용된 소스 벡터인, 극 부호를 위한 저 복잡도 SCL 복호 방법.
  7. 제 2 항에 있어서,
    상기 부분 비트는 상기 정보 비트들의 신뢰도를 기반으로, 상기 정보 비트들 중 미리 결정된 상위 순위의 신뢰도를 가지는 비트들로 결정되는, 극 부호를 위한 저 복잡도 SCL 복호 방법.
  8. 제 4 항에 있어서,
    상기 부분 집합의 크기는 상기 최대 경로 수, 부호 길이, 부호 율 또는 채널 품질 중 적어도 하나를 기반으로 결정되는, 극 부호를 위한 저 복잡도 SCL 복호 방법.
  9. 제 8 항에 있어서,
    상기 부분 집합의 크기는 상기 최대 경로 수, 상기 부호 길이 및 상기 채널 품질에 비례하고, 상기 부호 율에 반비례하는, 극 부호를 위한 저 복잡도 SCL 복호 방법.
  10. 제 2 항에 있어서,
    상기 소스 벡터는 천공 비트를 더 포함하고,
    상기 정보 비트는 상기 소스 벡터의 복수의 비트들 중 상기 천공 비트가 아닌 벡터들 중에서 지정되는, 극 부호를 위한 저 복잡도 SCL 복호 방법.
  11. 극 부호화 (polar encoding) 를 통해 생성된 부호어 (codeword) 벡터를 수신하는 수신부; 및
    연속 제거 리스트 (successive cancellation list, SCL) 복호를 기반으로 상기 부호어 벡터로부터 소스 벡터에 포함된 복수의 비트를 순차적으로 복호화하는 복호화부를 포함하고,
    상기 복호화부는 상기 소스 벡터에 포함된 정보 비트 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들 간의 신뢰도 비교를 수행하지 않고 해당 비트의 신뢰도를 기반으로 상기 부분 비트의 값을 결정하는, 극 부호를 위한 저 복잡도 SCL 복호 장치.
  12. 제 11 항에 있어서,
    상기 소스 벡터는 정보 비트 및 고정 비트를 포함하고,
    상기 부분 비트는, 상기 정보 비트들에 대응하는 인덱스의 집합인 정보 집합의 부분 집합에 속하는 인덱스에 대응하는 비트를 나타내는, 극 부호를 위한 저 복잡도 SCL 복호 장치.
  13. 제 12 항에 있어서,
    상기 복호화부는, 상기 소스 벡터에 포함된 복수의 비트들 각각에 대한 순차적인 처리로서,
    현재 비트가 고정 비트라는 결정에 응답하여 미리 정의된 비트 값을 현재 비트에 할당함으로써 후보 복호 경로 수를 유지하는 것;
    현재 비트가 부분 비트라는 결정에 응답하여 상기 현재 비트의 신뢰도를 기반으로 각 후보 복호 경로가 상기 현재 비트의 값을 독립적으로 결정함으로써 후보 복호 경로 수를 유지하는 것; 또는
    현재 비트가 부분 비트가 아닌 정보 비트라는 결정에 응답하여 상기 현재 비트의 후보 값들에 따라 후보 복호 경로 수를 증가시키는 것 중 어느 하나를 수행하도록 구성되는, 극 부호를 위한 저 복잡도 SCL 복호 장치.
  14. 제 13 항에 있어서,
    상기 후보 복호 경로 수를 증가시키는 것은, 증가된 후보 복호 경로의 수가 미리 결정된 최대 경로 수를 초과한다는 결정에 응답하여 상기 후보 복호 경로들 각각의 신뢰도를 기반으로 상기 후보 복호 경로들을 정렬함으로써 상기 최대 경로 수를 초과하는 개수의 후보 복호 경로를 제거하는 것을 포함하는, 극 부호를 위한 저 복잡도 SCL 복호 장치.
  15. 제 13 항에 있어서,
    상기 복호화부는,
    상기 소스 벡터에 포함된 복수의 비트들 중 최종 비트에 대한 처리의 완료 이후에, 후보 복호 경로들 중 가장 신뢰도가 높은 복호 경로를 선택함으로써 상기 소스 벡터에 포함된 복수의 비트에 대한 복호화를 완료하도록 더 구성되는, 극 부호를 위한 저 복잡도 SCL 복호 장치.
  16. 제 11 항에 있어서,
    상기 소스 벡터는 순환 중복 검사 (cyclic redundancy check, CRC) 부호 또는 패리티 검사 (parity-check) 부호 중 적어도 하나가 미리 적용된 소스 벡터인, 극 부호를 위한 저 복잡도 SCL 복호 장치.
  17. 제 12 항에 있어서,
    상기 부분 비트는 상기 정보 비트들의 신뢰도를 기반으로, 상기 정보 비트들 중 미리 결정된 상위 순위의 신뢰도를 가지는 비트들로 결정되는, 극 부호를 위한 저 복잡도 SCL 복호 장치.
  18. 제 14 항에 있어서,
    상기 부분 집합의 크기는 상기 최대 경로 수, 부호 길이, 부호 율 또는 채널 품질 중 적어도 하나를 기반으로 결정되는, 극 부호를 위한 저 복잡도 SCL 복호 장치.
  19. 제 18 항에 있어서,
    상기 부분 집합의 크기는 상기 최대 경로 수, 상기 부호 길이 및 상기 채널 품질에 비례하고, 상기 부호 율에 반비례하는, 극 부호를 위한 저 복잡도 SCL 복호 장치.
  20. 제 12 항에 있어서,
    상기 소스 벡터는 천공 비트를 더 포함하고,
    상기 정보 비트는 상기 소스 벡터의 복수의 비트들 중 상기 천공 비트가 아닌 벡터들 중에서 지정되는, 극 부호를 위한 저 복잡도 SCL 복호 장치.
  21. 극 부호를 위한 저 복잡도 SCL 복호를 위한 프로세서 실행 가능한 명령어들을 포함하는 컴퓨터 판독 가능한 저장 매체로서, 상기 명령어들은 상기 프로세서에 의해 실행되었을 때, 상기 프로세서로 하여금,
    극 부호화 (polar encoding) 를 통해 생성된 부호어 (codeword) 벡터를 수신하고; 그리고
    연속 제거 리스트 (successive cancellation list, SCL) 복호를 기반으로 상기 부호어 벡터로부터 소스 벡터에 포함된 복수의 비트를 순차적으로 복호화하도록 하며,
    상기 복호화하는 것은 상기 소스 벡터에 포함된 정보 비트 중 적어도 하나인 부분 비트에 대해서는 후보 복호 경로들 간의 신뢰도 비교를 수행하지 않고 해당 비트의 신뢰도를 기반으로 상기 부분 비트의 값을 결정하는, 컴퓨터 판독 가능한 저장 매체.
KR1020170051744A 2017-02-28 2017-04-21 극 부호를 위한 저 복잡도 scl 복호 방법 및 장치 KR101856416B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/907,365 US10608667B2 (en) 2017-02-28 2018-02-28 Method of low complexity SCL decoding for polar codes and apparatus thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170026661 2017-02-28
KR20170026661 2017-02-28

Publications (1)

Publication Number Publication Date
KR101856416B1 true KR101856416B1 (ko) 2018-05-09

Family

ID=62200618

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170051744A KR101856416B1 (ko) 2017-02-28 2017-04-21 극 부호를 위한 저 복잡도 scl 복호 방법 및 장치

Country Status (2)

Country Link
US (1) US10608667B2 (ko)
KR (1) KR101856416B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109921804A (zh) * 2019-03-22 2019-06-21 中国传媒大学 一种自适应融合串行抵消列表极化码译码方法及系统
CN111082812A (zh) * 2018-10-19 2020-04-28 三星电子株式会社 使用路径度量解码输入数据的设备及使用其的解码方法
CN112332864A (zh) * 2020-12-03 2021-02-05 北京壹思达惟信息技术有限公司 一种自适应有序移动剪枝列表的极化码译码方法及系统
KR20230094954A (ko) 2021-12-21 2023-06-28 아주대학교산학협력단 고속 간소화 연속 제거 목록 극 부호기의 경로 선택 최적화 장치 및 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10601450B2 (en) * 2017-03-29 2020-03-24 Qualcomm Incorporated List management for parallel operations of polar codes
US10742238B2 (en) * 2017-05-05 2020-08-11 Qualcomm Incorporated Frozen bits based pruning and early termination for polar decoding
WO2019174739A1 (en) * 2018-03-15 2019-09-19 Telefonaktiebolaget Lm Ericsson (Publ) Information decoder for polar codes
CN111224676B (zh) * 2018-11-26 2022-12-27 中国传媒大学 一种自适应串行抵消列表极化码译码方法及系统
CN110912568B (zh) * 2019-11-26 2023-04-21 华南理工大学 一种基于hm4sc的极化码自适应scl编译码方法
KR20210108789A (ko) * 2020-02-26 2021-09-03 삼성전자주식회사 채널 코딩에서 디코딩을 위한 장치 및 방법
CN111988045B (zh) * 2020-08-14 2024-04-05 中国计量大学 一种基于遗传算法的改进的极化码scf译码器
CN112039537B (zh) * 2020-08-26 2023-05-26 中山大学 一种基于右向信息处理的极化码译码方法及实现装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9503126B2 (en) * 2012-07-11 2016-11-22 The Regents Of The University Of California ECC polar coding and list decoding methods and codecs
KR101951663B1 (ko) 2012-12-14 2019-02-25 삼성전자주식회사 Crc 부호와 극 부호에 의한 부호화 방법 및 장치
KR102007770B1 (ko) 2012-12-14 2019-08-06 삼성전자주식회사 패킷의 부호화 방법과 그 복호화 장치 및 방법
KR102128471B1 (ko) 2014-03-11 2020-06-30 삼성전자주식회사 폴라 부호의 리스트 복호 방법 및 이를 적용한 메모리 시스템
KR102157667B1 (ko) 2014-05-15 2020-09-18 삼성전자주식회사 천공 장치 및 그의 천공 방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111082812A (zh) * 2018-10-19 2020-04-28 三星电子株式会社 使用路径度量解码输入数据的设备及使用其的解码方法
US10666290B2 (en) 2018-10-19 2020-05-26 Samsung Electronics Co., Ltd. Devices for decoding input data by using path metric and decoding methods using the same
CN111082812B (zh) * 2018-10-19 2024-04-05 三星电子株式会社 使用路径度量解码输入数据的设备及使用其的解码方法
CN109921804A (zh) * 2019-03-22 2019-06-21 中国传媒大学 一种自适应融合串行抵消列表极化码译码方法及系统
CN109921804B (zh) * 2019-03-22 2023-01-31 中国传媒大学 一种自适应融合串行抵消列表极化码译码方法及系统
CN112332864A (zh) * 2020-12-03 2021-02-05 北京壹思达惟信息技术有限公司 一种自适应有序移动剪枝列表的极化码译码方法及系统
CN112332864B (zh) * 2020-12-03 2023-09-08 北京壹思达惟信息技术有限公司 一种自适应有序移动剪枝列表的极化码译码方法及系统
KR20230094954A (ko) 2021-12-21 2023-06-28 아주대학교산학협력단 고속 간소화 연속 제거 목록 극 부호기의 경로 선택 최적화 장치 및 방법

Also Published As

Publication number Publication date
US10608667B2 (en) 2020-03-31
US20180248564A1 (en) 2018-08-30

Similar Documents

Publication Publication Date Title
KR101856416B1 (ko) 극 부호를 위한 저 복잡도 scl 복호 방법 및 장치
US10886950B2 (en) Method and apparatus for generating a code word
JP7026763B2 (ja) レートマッチング方法、符号化装置、および通信装置
CN108702290B (zh) 级联极化编码和滑动窗口极化编码
CN107370560B (zh) 一种极化码的编码和速率匹配方法、装置及设备
EP2802080B1 (en) Decoding method and decoding apparatus for polar code concatenated with cyclic redundancy check
US9319070B2 (en) Method and device for decoding polar codes
US9203525B2 (en) Encoding method and device
US20160013887A1 (en) Channel encoding and decoding method and apparatus
JP3923618B2 (ja) 誤り訂正符号を有する情報ビットの変換方法およびこの方法を実行する符号化器と復号化器
CN109547034B (zh) 译码方法及设备、译码器
CN108365914B (zh) Polar码编译码方法及装置
US20190081646A1 (en) Devices and methods implementing polar codes
KR102273110B1 (ko) 폴라 코드들의 코딩 및 디코딩 방법 및 장치
CN109983705B (zh) 用于生成极化码的装置和方法
CN110233698B (zh) 极化码的编码及译码方法、发送设备、接收设备、介质
WO2018021926A1 (en) Decoding of polar codes and polar subcodes
CN113242045A (zh) 一种极化码的高效译码方法、译码装置及计算机可读存储介质
CN114337683A (zh) 用于极化码的编码及译码方法、装置以及系统、介质
CN109802690B (zh) 译码方法、装置和计算机可读存储介质
Dai et al. Performance and implementation of enhanced multi CRC-LSC polar codes
CN114448448B (zh) 一种基于ca-scl的极化码编译码方法
EP4277133A2 (en) Channel encoding method and apparatus
Ivanov et al. Polar subcodes for encoding and blind decoding of variable-sized data blocks

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant