KR102684139B1 - 생성기 행렬의 삼각 인수분해를 사용한 오류 정정 코딩 방법 및 장치 - Google Patents

생성기 행렬의 삼각 인수분해를 사용한 오류 정정 코딩 방법 및 장치 Download PDF

Info

Publication number
KR102684139B1
KR102684139B1 KR1020227003083A KR20227003083A KR102684139B1 KR 102684139 B1 KR102684139 B1 KR 102684139B1 KR 1020227003083 A KR1020227003083 A KR 1020227003083A KR 20227003083 A KR20227003083 A KR 20227003083A KR 102684139 B1 KR102684139 B1 KR 102684139B1
Authority
KR
South Korea
Prior art keywords
block
decoder
data
external
transformation matrix
Prior art date
Application number
KR1020227003083A
Other languages
English (en)
Other versions
KR20220028031A (ko
Inventor
에르달 아리칸
Original Assignee
폴라란 하베르레스메 테크놀로질레리 아노님 시르케티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 폴라란 하베르레스메 테크놀로질레리 아노님 시르케티 filed Critical 폴라란 하베르레스메 테크놀로질레리 아노님 시르케티
Publication of KR20220028031A publication Critical patent/KR20220028031A/ko
Application granted granted Critical
Publication of KR102684139B1 publication Critical patent/KR102684139B1/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/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/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/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/2933Coding, 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 a block and a convolutional code
    • 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
    • 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/6572Implementations using a tree structure, e.g. implementations in which the complexity is reduced by a tree structure from O(n) to O (log(n))
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0065Serial concatenated codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

통신 시스템(100)에서 소스 데이터 블록 d의 신뢰할 수 있는 전송을 위한 인코더 장치(110, 210)는 데이터 컨테이너 블록 v를 수신하고 외부 변환 블록 u를 계산하도록 구성된 외부 변환(212)을 포함한다- 외부 변환 행렬 Gout에 대해 u=임-. 인코더 장치는 또한 외부 변환 블록 u를 수신하고 전송 코드 블록 x를 계산하도록 구성된 내부 변환(213)을 포함한다- 내부 변환 행렬 Gin에 대해 x=임-. 데이터 컨테이너 블록 v는 소스 데이터 블록 d와 미리 결정된 심볼 블록인 동결된 데이터 블록 a로부터 획득된다. 외부 변환 행렬 Gout 및 내부 변환 행렬은 변환 행렬 G의 삼각 인수분해를 형성하는 반면, 외부 변환 행렬 Gout 및 내부 변환 행렬 Gin은 각각 엄격한 상삼각 행렬과 엄격한 하삼각 행렬이다.

Description

생성기 행렬의 삼각 인수분해를 사용한 오류 정정 코딩 방법 및 장치
본 개시는 일반적으로 통신 시스템에서 오류 정정 코딩을 위한 방법 및 장치에 관한 것으로, 보다 상세하게는, 코드 생성기 행렬의 삼각 인수분해를 사용한 오류 정정 코딩을 위한 인코딩 및 디코딩 방법 및 장치에 관한 것이다.
현대의 디지털 데이터 전송(무선 전화, 무선 데이터 전송, 플레이어에 광 디스크 전송, 음악 데이터를 수신하는 음악 플레이어 등)에서, 채널 인코더는 소스 데이터를 수신하고, 소스 데이터에 리던던시(redundancy)를 추가하여 전송 채널의 노이즈로부터 소스 데이터를 보호할 수 있다. 전송 채널의 다른 쪽 끝에 있는 수신기는 채널 노이즈 및/또는 왜곡에 의해 손상된 인코딩된 데이터를 수신하고, 채널 디코더를 사용하여 소스 데이터를 복구한다. 그런 다음, 디코딩된 데이터는, 예를 들어, 디코딩된 데이터를 오디오로 재생하는 음악 플레이어 또는 디코딩된 데이터를 파일로 저장하는 저장 디바이스와 같은 목적지로 전달된다.
채널 인코딩은 일반적으로 "소스 데이터 블록(SDB)"이라고 하는 통신하려는 데이터 조각을, "전송 코드 블록(TCB)"이 파생된 SDB보다 오류로부터 더 잘 보호되고 따라서 SDB보다 전송에 더 적합한 "전송 코드 블록(TCB)"을 생성하기 위한 변환을 통해, 전송함으로써 작동한다. 본 목적에 대해, 행렬을 사용하여 SDB를 곱하는, 선형 블록 인코더가 필요한 계산량 측면에서 충분히 "낮은 복잡성"을 가지면서도 노이즈(일반적으로 노이즈로 인한 프레임 오류율(FER)과 같은 오류율로 표현됨)에 대한 상당한(절대적이지는 않지만) 보호를 제공하는 허용 가능한 트레이드오프를 달성할 수 있기 때문에 이 목적에 사용되었다고 말할 수 있다. 수신된 신호의 FER을 줄이지만, 기대 데이터 전송 속도를 위한 너무 많은 계산을 필요로 하는 더 복잡한 인코딩 방식은 거의 실용적이지 않다.
폴라 코드(Polar codes). 선행 기술의 선형 블록 코드 유형은 폴라 코드[ARI2009]로, 복잡도가 낮은 인코딩 및 디코딩 알고리즘을 사용하여 채널 용량을 달성할 수 있어 관심을 끌고 있다. 폴라 코드는 채널 편극(channel polarization)이라는 현상을 기초로 한다. 본 개시는 폴라 코드보다 더 효과적으로 채널 편극을 이용하고 우수한 FER 성능을 제공하는 새로운 유형의 코드를 제시하는 것을 목적으로 한다. 폴라 코딩의 최신 기술을 검토하는 것으로 시작한다.
폴라 코드의 검토를 단순하게 유지하기 위해, 인코더가 이진 필드(binary field) 상의 벡터에서 작동하는, 이진 케이스만 고려할 것이다. [ARI2009]에서 볼 수 있듯이, 모든 정수 에 대해 코드 블록 길이가 이고 임의의 정수 1≤K≤N에 대해 레이트 R=K/N인 폴라 코드가 존재한다. 코드 블록 길이가 N이고 레이트 R=K/N인 폴라 코드는 폴라 변환 행렬 , 데이터 인덱스 집합 및 동결된(frozen) 데이터 블록(FDB) a로 정의되고, 폴라 변환 행렬 G는 커널 행렬 의 크로네커 거듭제곱 이고, 데이터 인덱스 집합 는 카디널리티 를 갖는 {1, 2,…, N}의 부분집합이고, FDB a는 에서 임의의 고정된 행 벡터이다. 파라미터 를 갖는 폴라 코드에 대한 인코더는 SDB 를 입력으로 수신하고, 행렬 곱셈 x=uG를 수행함으로써 TCB 을 생성하며, 은 데이터 파트 및 동결된 파트 를 포함하는 변환 입력 블록이다. (라는 표기는 인덱스가 에 없는 u의 모든 좌표를 버리고 남은 u의 일부를 나타낸다.) 폴라 코드의 성능은 데이터 인덱스 집합 의 선택에 따라 크게 달라진다. 폴라 코딩에서, 데이터 인덱스 집합 채널 편극이라는 현상을 기초로 선택된다. FDB a는 일반적으로 모두 0인 벡터로 설정된다.
채널 편극에 대해 좀 더 자세히 논의하기위해, 입력 알파벳 , 출력 알파벳 Y, xX및 yY에 대한 전이 확률 W(y|x)을 갖는 주어진 이진 입력 메모리리스 채널(BMC) W를 통해 데이터를 전송하기 위한, 파라미터)를 갖는 폴라 코드의 설계를 고려한다. 메모리리스 채널 가정으로 인해, 채널 입력 블록 이 BMC W를 통해 전송된다고 가정하면, 채널 출력 블록 이 수신될 조건부 확률은 곱-형 전이 확률 로 주어진다. 폴라 코딩에서, BMC W의 N개의 독립적인 카피(copy)로부터 N개의 비트 채널을 합성한다. 비트 채널은 1부터 N까지의 정수로 인덱싱되며, i번째 비트 채널은 다음 전이 확률을 갖는다.
, , , , , 이다. i번째 비트 채널 은 입력 알파벳 , 출력 알파벳 , 및 , 에 대해 전이 확률 를 갖는 BMC로 해석될 수 있다. 작동에서, i번째 비트 채널 은 i번째 변환 입력 를 출력 심볼(에 연결하고 은 인터페이스로서 작용한다. 수신기 측에서는, 연속 제거(SC) 디코딩[ARI2009]이라는 특정 유형의 디코딩 하에서 비트 채널에 액세스할 수 있다. 데이터 인덱스 집합 를 선택하는 권장 방법은 비트 채널의 대칭 용량 계산을 요구하며, 임의의 BMC W의 대칭 용량은 다음 공식으로 정의된다.
을 수치 정밀도에 관계없이 계산하는 효율적인 방법이 알려져 있다[PED2011], [TAL2013]. 을 계산한 후, 비트 채널 은 대칭 용량의 내림차순으로 나열되고, 정렬된 목록의 첫 번째 K 비트 채널의 인덱스는 데이터 인덱스 집합 로서 선택된다. 데이터 인덱스 집합 A를 선택하는 이 방법은 SDB 비트가 가장 큰 대칭 용량을 가진 비트 채널에 의해 전달되도록 한다.
[ARI2009]의 주요 편극 정리는 N이 커질수록 비트 채널에 대한 대칭 용량 이, 점근적으로 사라지는 일부를 제외하고, 0 또는 1로 수렴한다고 명시하고 있다. 이 현상을 채널 편극이라고 한다. N이 커질수록, 대칭 용량이 1로 편광되는 비트 채널의 부분(fraction)은 I(W)에 근접하고, 대칭 용량이 0으로 편광되는 비트 채널의 부분은 1-I(W)에 근접한다. 이 점근적 결과와 그 정제를 기초로, [ARI2009], [ARI2009b]에서는 폴라 코드가 에서 대략 기하급수적으로 0이 되는 오류 확률과 인코딩 및 디코딩 복잡도 를 가지는 I(W)에 근접하는 데이터 전송 속도로 작동할 수 있음을 보여준다.
폴라 코드는 코드 블록 길이 N이 증가함에 따라 Shannon 한계를 점근적으로 달성하지만, 실제 블록 길이 N에서의 성능은 실망스러웠다. 실제 블록 길이에서 폴라 코드의 상대적으로 열등한 성능은 부분적으로, 연속 제거[ARI2009] 및 신뢰 전파(belief propagation)[ARI2008] 디코딩 알고리즘과 같은 폴라 코드와 함께 일반적으로 사용되는 낮은 복잡성 디코딩 방법의 약점 때문이다. 그러나, 최적의 최대 우도(ML) 디코딩에서도, 폴라 코드는 오류 정정 코딩[ARI2009c]에서의 선행 기술에 비해 경쟁력이 없다. 이 상황을 해결하기 위해, 복잡성을 희생시키면서 폴라 코드의 성능을 향상시키는 여러 방법이 제안되었다. 이러한 방법을 조사하기 전에, 본 원리 이면의 주요 아이디어뿐만 아니라 최신 폴라 코딩에 대한 적절한 관점을 위해 폴라에 대한 선구 코딩 방식에 대해 논의할 것이다.
순차 디코딩이 폴라 코딩의 발전에 중요한 역할을 했고, 현재 원리에 대해서도 비슷한 역할을 할 것이기 때문에, 순차 디코딩에 대한 설명으로 시작한다. 순차 디코딩은 원래 Wozencraft[WOZ1961]에 의해 도입된 컨볼루션 코드(보다 일반적으로 모든 종류의 트리 코드)에 대한 디코딩 알고리즘이다. 순차 디코딩의 잘 알려진 버전은 Fano 알고리즘[FAN1963]과 스택 알고리즘[ZIG1966], [JEL1969]이다. 본질적으로, 순차 디코딩은 주어진 채널 출력에서 트리 코드에서 전송된 코드워드를 찾기 위한 깊이 우선 트리 탐색 휴리스틱이다. 순차 디코딩에서 탐색 복잡도는 채널의 노이즈의 심각도에 따라 변하는 것으로 알려져 있다[JAC1967]. 순차 디코딩에서 계산의 가변적 특성은 동일한 채널의 대칭 용량보다 훨씬 작을 수 있는 채널 파라미터인, 컷오프 레이트 미만의 코딩 레이트로 실제 적용 가능성을 제한한다. 임의의 BMC W의 컷오프 레이트는 다음과 같이 정의된다.
R0(W)는 단일 순차 디코더가 코드를 디코딩하는 데 사용되는 경우에만 순차 디코딩의 컷오프 레이트에 대한 제한임이 밝혀졌다. 디코딩 문제가 여러 개의 더 작은 디코딩 문제로 분할되고 각각의 더 작은 디코딩 문제에 별도의 순차 디코더가 할당되면, [ARI2006]에서 나타난 바와 같이 새로운 방식의 컷오프 레이트가 더 이상 R0(W)에 의해 제한되지 않는다. [ARI2016]에서 자세히 논의한 바와 같이, 폴라 코딩은 많은 순차 디코더를 갖는 다중 외부 컨볼루션 코드를 사용하는 GCC(generalized concatenated coding) 방식(GCC 방식에 대한 설명은 아래 참조)의 내부 코드로 개발되었다. 이 GCC 방식은 BMC W의 N개의 독립적인 카피의 컷오프 레이트를 에서 로 높였다. 또한, 채널 편극 현상으로 인해, 정규화된 합 컷오프 레이트 는 N이 커질수록, 대칭 용량 I(W)에 접근했다. 따라서, GCC 방식은 용량-달성 방식이었으나, 실용화되기에는 너무 복잡하였다. 한편, 채널 편극은 또한, N이 커질수록 외부 컨볼루션 코드와 순차 디코더를 제거함으로써, GCC 방식이 대폭 단순화될 수 있음을 의미하였다. 충분히 큰 N의 경우, 비트 채널 의 NI(W)에 가까운 대칭 용량 은 1에 너무 가깝기 때문에 해당 비트 채널에서 코딩되지 않은 전송이 높은 신뢰성으로 지원될 수 있다. 나머지 비트 채널의 대칭 용량의 합은 전체 대칭 용량 NI(W)의 무시할 수 있는 일부였고, 따라서 나머지 비트 채널에 대한 입력은 어떠한 상당한 용량 손실 없이 0으로 고정될 수 있으며, 또한 디코더가 해당 비트 채널에서 결정 오류를 만들지 않도록 한다. 이러한 방식으로 GCC 방식이 외부 인코더와 디코더를 제거한 후에 나온 것이 독립형 폴라 코드였다. 불행히도, 독립형 폴라 코드는 채널 코딩에서 최신 기술과 경쟁할 만큼 충분히 강력하지 않았다. 폴라 코드 성능을 강화하기 위해 몇 가지 방법이 이후에 제안되었다. 이제 본 개시 내용과 가장 관련이 있는 것으로 보이는 이들 선행 기술 방법 중 일부를 검토할 것이다.
연접 코딩(concatenated coding). 폴라 코딩의 성능 향상에 매우 효과적인 것으로 입증된 방법은 연접 코딩으로, 두 개 이상의 코드를 한줄(tandem)로 결합하여 보다 강력한 코드를 생성하는 방법이다. 연접 코딩의 아이디어는 Elias[ELI1954]의 곱셈 코딩(product coding) 방법으로 거슬러 올라갈 수 있다. 연접 코딩에 대한 획기적인 연구는 Forney의 논문[FOR1966]이다. Forney의 연접 방식에서, 소스 데이터 블록은 먼저 외부 인코더에 의해 외부 코드에서 외부 코드워드로 인코딩되고, 외부 코드워드는 내부 인코더에 의해 내부 코드에서 내부 코드워드로 인코딩된다. 참고 문헌 [SEI2010], [SEI2013], [TRI2013], [TAL2015], [HUA2016], [WAN2016], [CHE2017], [WUX2018], [ZHA2018]은 폴라 코드를 내부 코드로, 다양한 패리티-체크 코드를 외부 코드로 연접 코딩을 적용하고 있다. 특히, 1에 가까운 레이트의 단순한 순환 중복 검사(CRC) 코드를 외부 코드로 사용하는 [TAL2015]의 방식은 3GPP NR 표준[3GP2018], [BIO2018]의 일부로 폴라 코드가 채택될 정도로 폴라 코드 성능 향상에 매우 효과적임이 입증되었다. [TAL2015]의 디코더는 목록 디코딩과 연속 제거 디코딩을 결합하며 일반적으로 CRC-지원 연속 제거 목록(CA-SCL) 디코더라고 한다. [TAL2015]의 스킴(scheme)을 일반화한 것이 [WAN2016]에 나타나며, 이는 SCL 디코딩 하에서 폴라 코드 성능을 개선하는 데 도움이 되도록 폴라 인코더의 입력 워드단어에 패리티-체크 비트를 삽입하기 위한 다양한 휴리스틱 방법을 사용하여 검사한다.
연접 코딩 방식의 전체 레이트는 으로 주어지며, Rout 및 Rin은 각각 외부 및 내부 코드의 레이트이다. 따라서, 모든 연접 코딩 시스템에서, Rout R과 Rin R을 모두 가져야 한다. Rout=1 또는 Rin=1인 연접 코딩 방식은 외부 코드 또는 내부 코드가 본질적으로 존재하지 않는 극단적인 경우이다. 일반적인 연접 코딩 방식에서, Rout>R 및 Rin>R이며, 선행 기술의 모든 연접 폴라 코딩 시스템은 Rout>R 및 Rin>R 영역에서 동작하도록 설계된다. Rin>R을 갖는 것은 레이트 R인 원래의 것보다 더 강력한 코딩 문제를 해결하는 것에 해당하며, 이는 내부 디코더의 복잡성을 증가시킬 가능성이 있다(SCL 디코더가 SC 디코더보다 더 복잡한 것처럼). 본 원리의 목적은 일반적인 연접 코딩으로 인해 발생하는 레이트 인플레이션 Rin>R을 피하는 것이다. 이를 위해, 그들의 바람직한 실시예에서 본 원리는 Rout=R 및 Rin=1을 갖는 연접 코딩의 극단적 형태로서 동작하는 것을 목표로 한다.
일반화 연접 코딩(GCC). 폴라 코드의 성능을 향상시키기 위해 사용된 두 번째 방법은 GCC 방법으로, Blokh와 Zyablov[BLO1974]가 여러 외부 인코더와 디코더를 허용함으로써 Forney의 연접 코딩 방식을 일반화하여 개발했다. (사실, 위에서 보았듯이, 폴라 코드는 원래 GCC 방식의 일부로서 개발되었다.) 일반적인 GCC 방식에서, 소스 데이터는 먼저 의 j번째 행이 길이가 M(모든 외부 코드에 대한 공통 M)인 j번째 외부 코드(블록 또는 컨볼루션)의 코드워드가 되도록 이진 심볼의 2차원 어레이 , , 로 인코딩된다. j번째 외부 코드의 레이트 Rj는 수신기 측에서 j번째 디코더에 사용할 수 있는 상호 정보의 양 또는 컷오프 레이트와 같은 일부 디자인 메트릭에 따라 선택된다[WAC1999]. 그런 다음 어레이 U는 블록 길이 N 및 레이트 J/N의 내부 코드를 사용하여 U의 각 열을 인코딩함으로써 코드워드 어레이 X=(Xi,m), 1≤i≤N, 1≤m≤M로 인코딩된다. GCC 시스템의 디코더는 내부 디코더의 M개의 복사본으로 구성된 내부 디코더 모듈(X의 각 열에 하나씩)과 J개의 외부 디코더로 구성된 외부 디코더 모듈(U의 각 행에 하나씩)의 두 가지 기능적인 모듈로 나뉜다. 내부 및 외부 디코더 모듈은 일반적으로 [IMA1977]과 같은 다단계 디코딩 방식을 사용하여 조정된 방법으로 디코딩 작업을 수행하기 위해 정보를 교환한다. GCC 코딩의 본질적인 아이디어는 코드의 2차원 구조에 의해 영향을 받는 인터리빙 동작을 통해 외부 코드에 메모리리스 채널을 제공하는 것이며, 이는 다시 곱셈 코딩으로 돌아가는 아이디어이다[ELI1954].
폴라 코드의 맥락에서 GCC를 연구한 논문의 예로는 [ARI2009d], [BAK2010], [TRI2011], [MAH2014], [WAN2015]가 있다. 이러한 참고 문헌에서, 내부 코드는 폴라 코드이고 외부 코드의 유형은 다양하다. GCC의 주요 단점은 높은 복잡성이다. GCC 방식의 각 외부 코드는 다른 레이트로 작동하며 해당 코드 레이트에 맞게 맞춤화된 별도의 디코더가 필요하다. 또한, GCC는 전체 코드의 길이를 독립 실행형 내부 코드의 경우의 N에서 GCC 방식의 MN까지 증가시켜 전체 시스템 복잡성을 더 추가한다. 본 원리의 목적은 GCC 방식으로 인한 길이 인플레이션 및 이에 수반되는 복잡성 패널티를 방지하는 것이다.
디코딩 방법. 선행 기술의 세 번째 작업은 폴라 코드에 대한 벤치마크 디코딩 알고리즘인 SC 디코딩보다 더 강력한 디코딩 알고리즘을 사용하여 폴라 코드의 성능을 향상시키는 것을 목표로 한다. 그러한 디코딩 알고리즘의 통합된 처리를 위해, 폴라 코드의 디코딩을 주어진 채널 출력에 대해 전송된 경로일 가능성이 가장 높은 경로를 코드 트리에서 찾는 것이 목적인 트리 탐색 문제로 보는 것이 유익하다. 트리 탐색 관점은 트리 형태로 표현될 수 있는 코드에 대한 디코더로서 트리 탐색 알고리즘을 사용하는 길을 열어준다. 실제로, 폴라 코드에 대해 잘 알려진 일부 디코더는 특정 트리 탐색 알고리즘과 연관될 수 있다. 예를 들어, SC 디코더는 역추적(backtracking)이 없는 깊이 우선 트리 탐색 알고리즘이다. SCL 디코더는 빔 검색으로 알려진 너비 우선 탐색 알고리즘이다(p. 84, [WIN1984] 참조). 순차 디코딩 알고리즘은 역추적을 포함하는 깊이 우선 탐색 알고리즘이다. (순차 디코딩은 [NIU2012], [TRI2017], [JEO2019]에 의해 폴라 코드에 적용되었다.)
본 원리. 선행 기술을 검토한 후, 이제 본 원리의 일부 필수 특징을 설명한다. 본 원리는 폴라 코딩의 성능을 향상시키기 위해 어떤 형태의 연결이 필요하다는 것을 인식한다. 이를 위해, 본 개시는 삼각 인수분해(TF) 코드라고 하는 새로운 클래스의 선형 블록 코드를 도입한다. TF 코드의 인코딩 동작은 폴라 코드의 인코딩 동작과 유사하다. TF 코딩에서, SDB 는 행렬 곱셈 x=vG에 의해 TCB 에 매핑되며, 는 비-자명(non-trivial) 삼각 인수분해를 갖는 임의의 행렬이고, 은 데이터 파트 vA=d와 동결된 파트 를 포함하는 벡터이다. 비-자명 삼각 인수분해는, 예를 들어 G=GoutGin 형식의 인수분해를 의미하며, Gout은 상삼각 행렬이고 Gin은 하삼각 행렬이다. TF 코딩에서, Gin의 역할은 글로벌 채널 정보를 수집하여 채널 편극을 생성하는 것이고, Gout의 역할은 트리 탐색 알고리즘을 사용하여 디코딩될 수 있는 트리 코드를 생성하는 것이다. 여기서 동기는 로(raw) 채널 정보보다 더 신뢰할 수 있는 편극 채널 정보를 제공함으로써 트리 탐색 알고리즘을 돕는 것이다.
TF 코드 구성의 중요한 부분은 TF 인코더로 유입되는 새로운 정보의 흐름 레이트를 조절하는 데이터 인덱스 집합 A의 선택이다. 본 원리는 순차적 디코더로 외부 트리 코드를 디코딩하는 과정에서 정보 병목 현상을 줄이기 위해 TF 인코더의 정보 유입을 내부 디코더에서 이용 가능한 채널 정보와 매칭시키기 위해 데이터 인덱스 집합 A를 선택하는 것을 가능하게 하는 프레임워크를 제시한다.
선행 기술과의 비교. 위에서 언급한 바와 같이, TF 코드는 Rout=R 및 Rin=1인 연접 코딩의 극단적인 형태로 동작하는 것을 목표로 하며, 바람직한 실시예에서는 이를 달성하는 데 근접한다. TF 코딩은 내부 코드의 오류 정정 기능에 의존하지 않는다. TF 코딩에서 내부 코드의 역할은 외부 코드가 보다 효율적으로 디코딩될 수 있도록 편극을 생성하는 것이다. 대조적으로, 이 섹션에서 검토된 모든 연접 또는 일반화된 연접 코딩 방식은 내부 코드의 오류 정정 기능에 의존한다.
순차 디코딩은 [NIU2012], [TRI2017], [JEO2019]에서 폴라 코드들과 함께 사용되었지만 폴라 코드를 디코딩하는 데에 사용되었다. 가장 바람직한 실시예의 본 원리는 채널 편극기로서 작용하는 레이트 1의 내부 폴라 코드를 사용하여 외부 트리 코드를 디코딩하기 위해 순차 디코더를 사용하는 것이다. 내부 폴라 코드가 있는 연접 코딩 방식에 대한 선행 기술 기술과 달리, 본 원리는 내부 폴라 코드를 오류 정정 목적이 아니라 편극을 생성하는 수단으로 사용하여 외부 트리 코드가 순차 디코더(또는 다른 트리 탐색 휴리스틱)에 의해 보다 효율적으로 탐색될 수 있도록 한다.
본 원리의 신규성 및 유용성에 관한 추가 증거는 본 원리의 상세한 설명 후에 아래에서 제공될 것이다. 시뮬레이션 연구는 본 원리에 따라 구성된 코드가 폴라 코딩에 대한 선행 기술 방식의 FER 성능을 크게 향상시킬 수 있음을 보여줄 것이다.
마지막으로, 컨볼루션 폴라 코딩(convolutional polar coding)이라는 용어가 본 원리와 무관한 의미로 문헌에서 사용되었다는 점을 유의해야 한다. [FER2017]에서는, 표준 폴라 코드의 커널을 새로운 유형의 커널로 대체하여 새로운 유형의 폴라 코드를 정의했으며, 결과 코드를 컨볼루션 폴라 코드라고 하였다. 본 원리는 일반(regular) 폴라 코딩 커널을 사용한다.
참고 문헌
[3GP2018] 3GPP, "3GPP TS 38.212: 'Multiplexing and channel coding (Release 15).'" 3GPP, 2018년 6월.
[ARI2006] E. Arikan, "Channel combining and splitting for cutoff rate improvement," IEEE Transactions on Information Theory, vol. 52, no. 2, pp. 628-639, 2006년 2월.
[ARI2008] E. Arikan, "A Performance Comparison of Polar Codes and Reed-Muller Codes," IEEE Communications Letters, vol. 12, no. 6, pp. 447-449, 2008년 6월.
[ARI2009] E. Arikan, "Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels," IEEE Transactions on Information Theory, vol. 55, no. 7, pp. 3051-3073, 2009년 7월.
[ARI2009b] E. Arkan and E. Telatar, "On the rate of channel polarization," IEEE International Symposium on Information Theory, 2009. ISIT 2009, 2009년, pp. 1493-1495.
[ARI2009c] E. Arikan, H. Kim, G. Markarian, U. Ozgur, and E. Poyraz, "Performance of short polar codes under ML decoding," Proc. ICT-Mobile Summit 2009, Santander, Spain., 2009년.
[ARI2009d] E. Arikan and G. Markarian, "Two-dimensional polar coding," Proc. Tenth International Symposium on Coding Theory and Applications (ISCTA'09), Ambleside, UK, 2009년.
[ARI2016] E. Arikan, "On the Origin of Polar Coding," IEEE Journal on Selected Areas in Communications, vol. 34, no. 2, pp. 209-223, 2016년 2월.
[BAK2010] M. Bakshi, S. Jaggi, and M. Effros, "Concatenated Polar codes," 2010 IEEE International Symposium on Information Theory Proceedings (ISIT), 2010년, pp. 918-922.
[BIO2018] V. Bioglio, C. Condo, and I. Land, "Design of Polar Codes in 5G New Radio," arXiv:1804.04389 [cs, math], 2018년 4월.
[BLO1974] Blokh, E. L. and Zyablov, V. V., "Coding of Generalized Concatenated Codes," Problems Inform. Transmission, vol. 10, no. 3, pp. 218-222, 1974년.
[CHE2017] J. Chen, Y. Chen, K. Jayasinghe, D. Du, and J. Tan, "Distributing CRC Bits to Aid Polar Decoding," 2017 IEEE Globecom Workshops (GC Wkshps), 2017년, pp. 1-6.
[ELI1954] P. Elias, "Error-free Coding," Transactions of the IRE Professional Group on Information Theory, vol. 4, no. 4, pp. 29-37, 1954년 9월.
[FAN1963] R. Fano, "A heuristic discussion of probabilistic decoding," IEEE Transactions on Information Theory, vol. 9, no. 2, pp. 64-74, 1963년 4월.
[FER2017] A. J. Ferris, C. Hirche, and D. Poulin, "Convolutional Polar Codes," arXiv:1704.00715 [cs, math], 2017년 4월.
[FOR1966] G. D. Forney Jr, Concatenated Codes. The MIT Press, 1966년.
[HUA2016] Huawei HiSilicon, "Details of the polar code design," Reno, USA, R1-1611254, 2016년 11월.
[IMA1977] H. Imai and S. Hirakawa, "A new multilevel coding method using error-correcting codes," IEEE Transactions on Information Theory, vol. 23, no. 3, pp. 371-377, 1977년 5월.
[JAC1967] I. Jacobs and E. Berlekamp, "A lower bound to the distribution of computation for sequential decoding," IEEE Transactions on Information Theory, vol. 13, no. 2, pp. 167-174, 1967년 4월.
[JEL1969] F. Jelinek, "Fast Sequential Decoding Algorithm Using a Stack," IBM Journal of Research and Development, vol. 13, no. 6, pp. 675-685, 1969년 11월.
[JEO2019] M.-O. Jeong and S.-N. Hong, "SC-Fano Decoding of Polar Codes," arXiv:1901.06791 [cs, eess, math], 2019년 1월.
[MAH2014] H. Mahdavifar, M. El-Khamy, J. Lee, and I. Kang, "Performance Limits and Practical Decoding of Interleaved Reed-Solomon Polar Concatenated Codes," IEEE Transactions on Communications, vol. 62, no. 5, pp. 1406-1417, 2014년 5월.
[NIU2012] K. Niu and K. Chen, "Stack decoding of polar codes," Electronics Letters, vol. 48, no. 12, pp. 695-697, 2012년.
[PED2011] R. Pedarsani, S. H. Hassani, I. Tal, and E. Telatar, "On the construction of polar codes," 2011 IEEE International Symposium on Information Theory Proceedings (ISIT), 2011년, pp. 11-15.
[SEI2010] M. Seidl and J. B. Huber, "Improving successive cancellation decoding of polar codes by usage of inner block codes," 2010 6th International Symposium on Turbo Codes and Iterative Information Processing (ISTC), 2010년, pp. 103-106.
[SEI2013] M. Seidl and J. B. Huber, "An efficient length- and rate-preserving concatenation of polar and repetition codes," arXiv:1312.2785 [cs, math], 2013년 12월.
[TAL2013] I. Tal and A. Vardy, "How to Construct Polar Codes," IEEE Transactions on Information Theory, vol. 59, no. 10, pp. 6562-6582, 2013년 10월.
[TAL2015] I. Tal and A. Vardy, "List Decoding of Polar Codes," IEEE Transactions on Information Theory, vol. 61, no. 5, pp. 2213-2226, 2015년 5월.
[TRI2011] P. Trifonov and P. Semenov, "Generalized concatenated codes based on polar codes," 2011 8th International Symposium on Wireless Communication Systems (ISWCS), 2011년, pp. 442-446.
[TRI2013] P. Trifonov and V. Miloslavskaya, "Polar Codes with Dynamic Frozen Symbols and Their Decoding by Directed Search," arXiv e-print 1307.2352, 2013년 7월.
[TRI2017] P. Trifonov, V. Miloslavskaya, and R. Morozov, "Fast Sequential Decoding of Polar Codes," arXiv:1703.06592 [cs, math], 2017년 3월.
[WAC1999] U. Wachsmann, R. F. H. Fischer, and J. B. Huber, "Multilevel codes: theoretical concepts and practical design rules," IEEE Transactions on Information Theory, vol. 45, no. 5, pp. 1361-1391, 1999년 7월.
[WAN2015] Y. Wang, K. R. Narayanan, and Y. C. Huang, "Interleaved Concatenations of Polar Codes with BCH and Convolutional Codes," IEEE Journal on Selected Areas in Communications, vol. PP, no. 99, pp. 1-1, 2015년.
[WAN2016] T. Wang, D. Qu, and T. Jiang, "Parity-Check-Concatenated Polar Codes," IEEE Communications Letters, vol. 20, no. 12, pp. 2342-2345, 2016년 12월.
[WIN1984] P. H. Winston, Artifical Intelligence, 2nd ed. Addison-Wesley, Reading MA, 1984년.
[WOZ1961] J. M. Wozencraft and B. Reiffen, Sequential Decoding. MIT Press: Cambridge, Mass., 1961년.
[ZHA2018] H. Zhang et al., "Parity-Check Polar Coding for 5G and Beyond," 2018 IEEE International Conference on Communications (ICC), 2018년, pp. 1-7.
*[ZIG1966] Zigangirov, K. Sh., "Some Sequential Decoding Procedures," Problems Inform. Transmission, vol. 2, no. 4, pp. 1-10, 1966년.
상기에 기재된 간행물은 본 명세서에 참고로 포함된다.
WO 2018/196765는, 도 4에서, 인코딩된 비트 시퀀스를 획득하기 위해 행렬 G를 사용하여 정보 U를 인코딩하는 것을 묘사한다.
WO 2018/060961은 블록-단위(block-wise) 상삼각 행렬 또는 밴드형 테플리츠 생성기 행렬을 사용하여, 상이한 블록 길이를 인코딩하기 위해 상이한 조합으로 다수의 구성 폴라 코드(constituent polar codes)를 "공간적으로" 결합하는 것을 기술하고 있다.
통신 시스템에서 소스 데이터 블록 d의 신뢰할 수 있는 전송을 위한 인코더 장치는 데이터 컨테이너 블록 v를 수신하고 외부 변환 블록 u를 계산하도록 구성된 외부 변환을 포함한다- 외부 변환 행렬 Gout에 대해 u=임-. 인코더 장치는 또한 외부 변환 블록 u를 수신하고 전송 코드 블록 x를 계산하도록 구성된 내부 변환을 포함한다- 내부 변환 행렬 Gin에 대해 x=임-. 데이터 컨테이너 블록 v는 소스 데이터 블록 d와 동결된 데이터 블록 a로부터 획득된다. 동결된 데이터 블록 a는 미리 결정된 심볼 블록이다. 외부 변환 행렬 Gout 및 내부 변환 행렬 Gin은 변환 행렬 G의 삼각 인수분해를 형성하고, G=GoutGin 이다. 변환 행렬 G는 비-삼각 행렬이다. 외부 변환 행렬 Gout은 선택적으로 엄격한 상삼각 행렬이다. 내부 변환 행렬 Gin은 선택적으로 엄격한 하삼각 행렬이다. 외부 변환 행렬 Gout은 선택적으로 인과적 임펄스 응답 에 의해 정의된 테플리츠 행렬이다. m>0, c0 0, cm 0이다. 내부 변환 행렬 Gin은 선택적으로 크로네커 곱 의 형태를 가지며, Li는 i=1, …, n 각각에 대한 하삼각 행렬이며, Li는 각각의 i=1, …, n에 대해 과 같을 수 있다. 데이터 컨테이너 블록은 선택적으로 데이터 인덱스 집합 A로 표시된 좌표의 부분 집합에서 소스 데이터 블록 d를 투명하게 전달하고, 데이터 인덱스 집합 A에 상보적인 좌표에서 동결된 데이터 블록 a를 전달한다. 데이터 인덱스 집합 A는 스코어 함수에 따라 좌표의 순위를 매기는 기준에 의해 선택될 수 있다. 스코어 함수는 해밍 스코어 함수일 수 있다.
디코더 장치는 수신 코드 블록을 디코딩하고, 수신 코드 블록은 전송 코드 블록의 노이즈 버전을 나타내고, 전송 코드 블록은, 데이터 컨테이너 블록 v를 수신하고 외부 변환 블록 u를 계산하도록 구성된 외부 변환 - 외부 변환 행렬 Gout에 대해 임-, 및 외부 변환 블록 u를 수신하고 전송 코드 블록 x를 계산하도록 구성된 내부 변환- 내부 변환 행렬 Gin에 대해 임- 을 포함하는 미리 결정된 인코더에 의해, 소스 데이터 블록을 인코딩함으로써 획득되며, 데이터 컨테이너 블록 v는 소스 데이터 블록 d 및 동결된 데이터 블록 a로부터 획득되며, 동결된 데이터 블록 a는 미리 결정된 심볼 블록이고, 외부 변환 행렬 Gout 및 내부 변환 행렬 Gin은 변환 행렬 G의 삼각 인수분해를 형성하고, G=GoutGin이고 변환 행렬 G는 비-삼각 행렬이다. 디코더 장치는 내부 디코더 및 외부 디코더를 포함한다. 내부 디코더는 수신 코드 블록을 수신하고, 외부 디코더로부터 노드 메트릭 요청을 수신하고, 계산된 노드 메트릭을 외부 디코더로 전송하도록 구성된다. 외부 디코더는 노드 메트릭 요청을 내부 디코더로 전송하고, 내부 디코더로부터 계산된 노드 메트릭을 수신하고, 디코딩된 데이터 컨테이너 블록을 계산하도록 구성된다. 디코더 장치는 디코딩된 데이터 컨테이너 블록으로부터 디코딩된 소스 데이터 블록을 추출하도록 추가적으로 구성된다. 내부 디코더는 선택적으로 폴라 코드에 대한 연속 제거 디코더에 따라 노드 메트릭 값을 생성한다. 외부 디코더는 노드 메트릭을 사용하는 트리 탐색 알고리즘을 사용함으로써 디코딩된 데이터 컨테이너 블록을 선택적으로 계산한다. 트리 탐색 알고리즘은 깊이 우선 트리 탐색 알고리즘일 수 있다. 노드 메트릭은 Fano 메트릭일 수 있다.
도 1은 본 개시 내용의 실시예에 따른 오류 정정 코딩을 사용하는 통신 시스템의 기능 블록도이다.
도 2는 본 개시 내용의 실시예에 따른 삼각 인수분해 코딩을 사용하는 통신 시스템의 기능 블록도이다.
도 3은 도 2의 시스템과 함께 사용하기 위한 예시적인 하드웨어 데이터 삽입기를 구현하기 위한 회로이다.
도 4는 도 2의 시스템과 함께 사용하기 위한 소프트웨어에서 예시적인 데이터 삽입기를 구현하기 위한 의사 코드(pseudo-code)이다.
도 5는 본 개시 내용의 실시예에 따른 오류 정정 코딩을 사용하는 통신 시스템에서 사용하기 위한 예시적인 외부 변환이다.
도 6은 본 개시 내용의 실시예에 따른 오류 정정 코딩을 사용하는 통신 시스템에서 사용하기 위한 예시적인 폴라 변환 회로이다.
도 7은 본 개시 내용의 실시예에 따른 오류 정정 코딩을 사용하는 통신 시스템에서 사용하기 위한 스택 디코더에 대한 흐름도이다.
도 8a는 폴라 코딩에서 선행 기술에 비해 본 원리의 성능 이점을 입증하는 시뮬레이션 결과를 나타내는 그래프이다.
도 8b는 본 원리와 선행 기술에 대한 정보 및 레이트 할당 프로파일을 비교하는 그래프이다.
도 9는 본 개시에 따라 오류 정정 코딩이 구현될 수 있는 예시적인 무선 네트워크를 도시한다.
도 10a는 본 개시에 따라 오류 정정 코딩이 구현될 수 있는 예시적인 사용자 장비 네트워크를 도시한다.
도 10b는 본 개시에 따라 오류 정정 코딩이 구현될 수 있는 예시적인 eNB (Enhanced NodeB) 네트워크를 도시한다.
이하에서 논의되는 도 1 내지 도 10b 및 본 특허 명세서에서 본 개시의 원리를 설명하기 위해 사용된 다양한 실시예는 단지 예시적인 것이며 본 개시의 범위를 제한하는 것으로 해석되어서는 안된다. 당업자는 본 개시의 원리가 적절히 구성된 통신 시스템에서 구현될 수 있다는 것을 이해할 것이다.
표기법. 집합 와 정수 m1에 대해 Am에 대한 m-튜플(m-tuples) 집합을 나타낸다. 이고 i,j가 1≤i≤j≤m을 만족하는 정수라면, 표기법 을 i에서 j까지의 좌표로 구성된 a의 부분 의 약어로 사용할 것이다. j<i인 경우 를 null로 해석한다. 및 a의 인덱스(좌표)의 임의의 집합 S{1,2,…, m}가 주어지면, 표기법 aS을 사용하여 S의 인덱스가 있는 a의 요소로 구성된 튜플 을 나타낸다; 표기법 은 Sc의 인덱스가 있는 a의 요소로 구성된 벡터를 나타낸다. Sc는 집합 S에 상보적인 인덱스의 집합을 나타낸다. 예를 들어 m=8 및 S={1,2,3,5,8}로 둔다. 그러면, 이고, 이다. (우리는 aS가 S의 요소가 나열되는 순서에 의존하지 않도록 aS를 정의한다. 예를 들어, .)에 대해 이다.)
소수의 거듭제곱(prime power)인 q의 임의의 유한 필드 에 대한 행렬을 고려한다. 표기법 은 Fq에 요소가 있는 모든 m x n 행렬의 집합을 나타낸다. 따라서, 은 A가 m개의 행과 n개의 열로 구성된 행렬임을 나타낸다. 의 요소를 참조할 필요가 있을 때, 1≤i≤m, 1≤j≤n 에 대해 A의 i번째 행과 j번째 열에 있는 요소를 표시하기 위해 표기법 ai,j을 사용한다. 행렬 은 P가 각 행과 각 열에 정확히 하나의 1을 갖는 0-1 행렬인 경우 순열 행렬이라고 한다. 행렬 은 모든 1≤i<j≤n에 대해 ai,j=0이면 하삼각 행렬이라고 한다. 행렬 은 모든 1≤j<i≤n에 대해 ai,j=0이면 상삼각 행렬이라고 한다. 모든 1≤i<j≤n에 대해 ai,j=0이고 인덱스가 1≤j<i≤n인 적어도 하나의 ai,j에 대해 ai,j≠0인 경우, 행렬 을 엄격한 하삼각이라고 한다. 모든 1≤j<i≤n에 대해 ai,j=0이고 인덱스가 1≤i<j≤n인 적어도 하나의 ai,j에 대해 ai,j≠0인 경우 행렬 을 엄격한 상삼각이라고 한다. 모든 i≠j에 대해 ai,j=0이면 행렬 A를 대각 행렬이라고 한다. 대각선에 1이 있는 대각 행렬을 단위 행렬이라고 하며 I로 표시한다. 행렬 은 AB=BA=I인 행렬 (A의 역행렬이라고 함)가 있는 경우 비-특이(non-singular) 행렬 또는 가역(invertible) 행렬이라고 한다. 존재하는 경우, A의 역은 A-1로 표시된다. A가 상삼각 행렬이고 ji에 대해 ai,j=cj-i인 경우, 즉, A가 다음 형식을 갖는 경우, 행렬 은 임펄스 응답 를 갖는 상삼각 Toeplitz라고 한다.
.
두 행렬 의 크로네커 곱은 다음 행렬로 정의된다.
행렬 A의 n번째 크로네커 거듭제곱 은 n2에 대해 로 귀납적으로 정의된다.
먼저 도 1을 참조하면, 본 원리의 실시예가 사용될 수 있는 통신 시스템(100)이 도시된다. 통신 시스템(100)은 소스로부터 소스 데이터 블록(SDB) d를 수신하고 이를 디코딩된 소스 데이터 블록(DSDB) 로서 목적지에 전달한다. (소스와 목적지는 도면에 표시되어 있지 않으며, 본 원리의 범위를 벗어난다.) 프레임 오류는 DSDB 가 SDB d와 정확히 일치하지 않을 때, 즉, ≠d일 때 발생한다고 한다. 통신 시스템(100)에 대한 성능 기준은 결정 오류의 확률 Pr(≠d)로 정의되는 프레임 오류 레이트(FER)이다. 일반적으로 채널 대역폭, 장비 비용, 시스템 레이턴시(latency), 데이터 처리량 등에 대한 제약 내에서 가능한 한 작은 FER을 갖는 통신 시스템(100)을 갖는 것이 바람직하다. 통신 시스템(100)은 송신기 측에 위치하는 인코더(110), 송신기 측을 수신기 측에 연결하는 채널(120), 및 수신기 측의 디코더(130)를 포함한다. 통신 시스템(100)의 인코더(110)는 SDB d를 수신하고 그것을 전송 코드 블록(TCB) x로 인코딩한다. 채널(120)은 채널 입력 및 채널 출력을 포함한다. 인코더(110)는 TCB x를 채널 입력에 인가한다. 채널은 채널 입력에 인가된 TCB x를 수신하고 응답으로 채널 출력에서 수신 코드 블록(RCB) y를 생성한다. 디코더(130)는 채널 출력으로부터 RCB y를 수신하고 RCB y를 처리하여 DSDB 를 생성한다.
채널(120)이 통신 시스템의 동작에 필수적인 많은 기능 블록들(변조기, 디지털-아날로그 변환기, 전력 증폭기, 송수신 안테나, 신호 수집 및 동기화 회로, 아날로그-디지털 변환기, 복조기 등과 같은)을 통합한다는 것은 당업자에게 명백할 것이다. 본 원리는 주로 인코더(110) 및 디코더(130)의 설계에 관한 것이다.
SDB를 벡터 로 나타낼 것이며, K는 소스 블록 길이이다. 마찬가지로, DSDB를 벡터 로 표시할 것이다. 일반적으로, SDB d와 DSDB 는 모두 공통 알파벳의 벡터이다. TCB를 벡터 로 나타낼 것이며, N은 코드 블록 길이이다. 인코더(110)가 SDB d를 TCB x로 인코딩한 후, TCB x는 채널(120)의 N회의 연속 사용에 의해 채널(120)을 통해 전송되고 채널은 특정 확률로 RCB 을 생성한다.
통신 시스템(100)을 분석할 목적으로, 확률적 설정을 사용하고 시스템의 다양한 신호를 랜덤 신호의 샘플로서 모델링한다. 특히, SDB d, TCB x, RCB y 및 DSDB 를 각각 D, X, Y 및 의 샘플로서 간주하고 표준 표기법을 사용하여 결합 및 조건부 확률을 나타낸다. 예를 들어, 는 D=d 및 Y=y일 확률을 나타내고 는 D =d가 주어졌을 때 Y=y인 조건부 확률을 나타낸다. 달리 지정하지 않는 한, 는 SDB d의 가능한 값 범위에 대한 균일 분포라고 가정한다.
확률적 설정을 사용하여, 통신 시스템(100)에 대한 FER )은 공식을 사용하여 계산된다. 인코더(110) 및 채널(120)이 주어지면, FER은 디코더(130)에 의존한다. 디코더의 중요한 유형은 DSDB 를 최대화하는 값 d'로 설정하는 최대 가능성(ML) 디코더이다. PD(d)가 균일하다는 가정하에, ML 디코더는 FER을 최소화한다. 일반적으로, ML 디코더는 구현하기에 너무 복잡하다; 그것들은 주로 다른 보다 실용적인 디코더에 의해 달성 가능한 최상의 성능을 평가하기 위한 벤치마크로서의 역할을 수행한다.
중요한 채널 모델은 이산 메모리리스 채널(DMC) 모델이다. DMC는 입력 알파벳 X, 출력 알파벳 Y 및 x∈X, y∈Y에 대한 전이 확률 W(y|x)로 특징지어진다. 전이 확률 W(y|x)는 x∈X가 채널 입력에서 전송되는 경우 채널 출력에서 y∈Y가 수신될 조건부 확률이다. DMC는 입력 블록 이 전송될 때 출력 블록 을 수신할 조건부 확률이 곱셈-형태 표현식 에 의해 주어진다는 점에서 메모리리스이다. 다음에서는, q=2가 가장 중요한 경우인 X=Fq인 DMC 모델로 주의를 제한한다. 채널(120)에 대한 DMC 채널 모델은 방정식 에 의해 통신 시스템(100)에 대한 확률 모델의 일부를 정의한다는 점에 유의해야 한다.
SBD d에서 TCB x로의 매핑 d x를 나타내기 위해 코드라는 용어를 사용할 것이다. 인코더(110) 및 디코더(130)는 특정 코드를 인코딩 및 디코딩하도록 설계된다. 컨볼루션 코드(convolutional code) 및 폴라 코드(polar code)와 같이, 선행 기술에는 많은 유형의 코드가 있다. 본 개시는 삼각 인수분해(TF) 코드라 불리는 새로운 코드의 패밀리를 도입한다. TF 코드는 이제 우리가 정의하는, 보다 광범위한 코드의 패밀리의 서브 클래스로서 도입될 것이다.
변환 코드. 유한 필드 에 대한 변환 코드는 변환 행렬 , 데이터 인덱스 집합 A, 동결된 데이터 블록(FDB) 을 특징으로 하는 코드이며, N은 코드 블록 길이, K는 소스 블록 길이, 데이터 인덱스 집합 A는 카디널리티 를 갖는 {1, 2,…, N}의 부분 집합이며, FDB a는 고정되지만 임의의 벡터이다. 다음 전체에서 Ac는 {1, 2,…, N}에서 데이터 인덱스 집합 A의 보수를 나타넨다. 파라미터(G,A,a)가 있는 변환 코드의 인코더는 SDB 를 TCB 에 매핑하며, x=vG이고, 은 데이터 파트 및 동결된 파트 .를 포함하는 데이터 컨테이너 블록(DCB)이다. 변환 코드에 대한 디코딩 작업은 RCB y 및 FDB a에 대한 지식을 기초로 SDB d를 추정하는 것이다.
변환 코드의 디코딩은 두 단계로 구성된 것으로 생각될 수 있다. 첫 번째 단계는 RCB y를 처리함으로써 DDCB 를 생성하는 것이다. 두 번째 단계는 를 설정함으로써 DSDB 를 구하는 것이다. (두 단계는 시간을 절약하고 장비 복잡성을 줄이기 위해 디코더를 구현할 때 동시에 수행될 수 있다.) 변환 코드에 대한 ML 디코더는 제약 조건 에 따라 에 대해 를 최대화함으로써, DDCB 를 계산하여 위 절차의 첫 번째 단계를 수행할 수 있다.
폴라 코드와의 관계. 폴라 코드가 변환 코드의 서브클래스라는 것은 폴라 코딩 분야의 당업자에게 명백할 것이다. 특히, 에 대한 표준 폴라 코드는 파라미터 )를 갖는 변환 코드이며, , , 는 상호 정보와 같은 정보 이론적인 기준과 관련하여 선택되고, a는 일반적으로 모두 제로 벡터 0으로 설정된다.
선형 코드와의 관계. FDB a가 모두 제로 벡터, a=0인 파라미터) 를 갖는 변환 코드는 선형 코드로 축소되며, 이는 선행 기술에서 매우 광범위하고 잘 알려진 코드 클래스이다. 선형 코드의 경우 SDB d 및 TCB x는 생성기 행렬 에 대해 x=dG'에 의해 관련된다. 변환 코드(G,A,a=0)에 해당하는 선형 코드의 생성기 행렬 G'는 로 주어지며, 은 각 에 대해 G의 i번째 행을 삭제하여 G로부터 얻은 행렬로 정의된다. 일반적으로, 변환 코드에 의해 정의된 인코더 매핑은 형식을 가지며, 이다. 반대로, 생성기 행렬 G'가 있는 선형 코드가 주어지면, 와 같이 임의의 행렬로 G를 선택하여 등가 변환 코드 를 구성할 수 있다.
복잡성 고려 사항. 등가 선형 코드의 인코딩을 구현하기 위해 변환 코드에 인코더를 사용하는 것은 인코딩 복잡성을 크게 줄일 수 있다. 주어진 선형 코드에 대한 매핑 x=dG'(벡터 행렬 곱으로)의 직접 구현은 vA=d, 인 등가 변환 x=vG를 계산하는 것보다 더 복잡할 수 있다. G'는 x=dG'를 계산하는 데 이용될 수 있는 구조가 부족할 수 있지만, 파라미터 A 및 의 선택에서 사용될 수 있는 추가 자유도를 사용함으로써 변환 행렬 G에 계산적으로 유용한 구조를 구축하는 것이 가능할 수 있다. 예를 들어, , 인 표준 폴라 코드의 경우, 변환 x=vG를 계산하는 것의 복잡성은 이며, 반면에 G의 구조를 이용하지 않고 를 계산하는 것은 O(NK) 단계를 취하여, 보다 상당히 높을 수 있다. 본 원리는 변환 행렬 G에서 특별히 설계된 구조를 이용함으로써 낮은 복잡성에서 인코딩 및 디코딩될 수 있는 변환 코드 를 찾는 동시에 선행 기술에서 비교 가능한 차원의 코드에 비해 성능 이점을 제공하는 것을 목표로 한다. 본 원리는 이러한 목표를 달성하기 위해 행렬의 삼각 인수분해를 이용한다.
삼각 인수분해. 행렬의 삼각 인수분해는 모든 분야의 선형 대수학에서 잘 알려진 주제이다. 본 명세서에서 변환 코드의 생성기 행렬 G의 삼각 인수분해에 대해 고려한다. 우리는 증명 없이 이러한 인수분해에 대한 많은 사실을 진술할 것이다. (증명을 위해, R. A. Horn과 C. R. Johnson의 "Matrix Analysis, Cambridge University Press, 1985"의 섹션 3.5를 참조한다.)
생성기 행렬 (특이 또는 비-특이)가 있는 변환 코드가 주어지면, G=PULQ가 되는 상삼각 행렬 , 하삼각 행렬 및 순열 행렬 , 및 가 존재한다. G가 비-특이 행렬이면, 이 대각선에 1이 있는 상삼각 행렬, 은 대각선에 1이 있는 하삼각 행렬이고 은 0이 아닌 대각선 요소들을 갖는 대각 행렬이 되는, G=UDL 형태의 고유 인수분해가 존재한다. 특히, G가 (이진 케이스)에 속하고 비-특이인 경우, 고유 인수분해 G=UL이 존재하며, 은 상삼각 행렬(대각선에 1이 있음)이고 은 하삼각 행렬(대각선에 1이 있음)이다.
삼각 인수분해는 선형 방정식 시스템을 풀기 위한 효율적인 방법으로 선형 대수학에서 사용된다. 본 원리는 삼각 인수분해 방법을 오류 정정 코딩 영역에 적용한다. 다음에서는, Gout, Gin 및 G가 G=GoutGin 형태의 삼각 인수분해에 의해 관련될 때, 변환 코드(G,A,a)를 참조하는 보다 구체적인 방법으로서, 파라미터(Gout, Gin, A, a)가 있는 삼각 인수분해(TF) 코드라는 용어를 사용한다. 변환 코드(G,A,a)의 변환 행렬의 각 삼각 인수분해 G=GoutGin 는 대응하는 삼각 인수분해 코드를 정의한다. 삼각 인수분해는 주로 통신 시스템에서 인코딩 또는 디코딩 기능을 구현하기 위한 템플릿으로서 중요하다. 본 원리는 삼각 인수분해 G=GoutGin 을 사용하여 변환 행렬 G를 설계하는 것을 목표로 하여, 결과 변환 코드가 충분히 신뢰할 수 있는 데이터 전송을 제공하도록 하는 것과 동시에 Gout 및 Gin으로 설계된 특수 구조를 활용하는 낮은 복잡성 인코딩 및 디코딩 절차를 갓도록 한다. 그들의 바람직한 실시예에서 본 원리는 이것이 어떻게 수행될 수 있는지를 설명할 것이다.
도 2를 참조하면, TF 코딩 시스템(200)을 나타내는 블록도를 볼 수 있으며, TF 코딩 시스템(200)은 TF 코드의 인코딩 및 디코딩에 대한 통신 시스템(100)의 적응이고, Gout은 외부 변환 행렬, Gin은 내부 변환 행렬, A는 데이터 선택기 집합, a는 동결된 데이터 블록(FDB)이다. TF 코딩 시스템(200)은 TF 인코더(210), 채널(120)(도 1과 동일), 및 TF 디코더(230)를 포함한다. TF 인코더(210)는 데이터 삽입기(211), 외부 변환(212) 및 내부 변환(213)을 포함하고, 데이터 삽입기(211)는 SDB d를 수신하고 가 되도록 데이터 컨테이너 블록(DCB) v를 생성한다. 외부 변환(212)은 DCB v를 수신하고 외부 변환 블록(OTB) u를 생성하며 u=vGout이 된다. 내부 변환(213)은 OTB u를 수신하고 TCB x를 생성하며 x=uGin이 된다. TF 인코더(210)는 TCB x를 채널(120)로 전송한다. 채널(120)은 TCB x를 수신하고, 응답으로 채널 출력에서 수신 코드 블록(RCB) y를 생성한다. TF 디코더(230)는 내부 디코더(231), 외부 디코더(232) 및 데이터 추출기(233)를 포함한다. TF 디코더(230)는 채널 출력으로부터 RCB y를 수신하고 이를 내부 디코더(231)로 전달한다. 내부 디코더(231)와 외부 디코더(232)는 메시지 인터페이스를 통해 서로 메시지를 교환한다. 메시지 인터페이스를 통해 외부 디코더(232)에 의해 전송된 각각의 노드 메트릭 요청에 응답하여, 내부 디코더(231)는 노드 메트릭을 계산하고 메시지 인터페이스를 통해 외부 디코더(232)에 노드 메트릭을 전송한다. 각 노드 메트릭은 노드 식별자 및 RCB y를 포함하는 복수의 변수의 함수이다. 외부 디코더(232)는 내부 디코더(231)에 의해 생성된 노드 메트릭을 수신하고, 디코딩된 데이터 컨테이너 블록(DDCB) 을 계산하고, DDCB 를 데이터 추출기(233)에 전달한다. 데이터 추출기(233)는 DDCB 를 수신하고 로 설정하여 DSDB 를 추출한다. 잘 설계된 TF 코딩 시스템에서, DSDB 는 높은 확률로 SDB d의 정확한 복제본(replica)이다.
TF 코딩 시스템(200)의 중요한 측면은, 내부 디코더(231) 및 외부 디코더(232)를 서로 독립적으로 구현하는 것이 가능하다는 점에서, 모듈식 구조이다. 보다 정확하게는, 내부 디코더(231)는 외부 변환 Gout과 독립적으로 구현될 수 있고 외부 디코더(232)는 내부 변환 Gin과 독립적으로 구현될 수 있다. TF 디코더(230)의 구현에서 이러한 모듈성을 갖는 것은 TF 디코더(230)의 모든 부분을 재설계할 필요 없이 내부 변환 또는 외부 변환을 변경할 수 있기 때문에 유리하다. 이하에서는, TF 코딩 시스템(200)의 각 부분에 대해 보다 상세하게 논의하고, 각 부분에 대한 예시적인 실시예를 제시할 것이다.
도 3은 예시적인 데이터 삽입기(300)를 도시하며, 예시적인 데이터 삽입기(300)는 특정 케이스 N=8, )에 대한 데이터 삽입기(211)를 구현하는 디지털 논리 회로이다. 따라서, 예시적인 데이터 삽입기(300)는 , , , , , , , 및 가 되도록 SDB ,로부터 DCB )를 생성한다. 예시적인 데이터 삽입기(300)는 SDB d를 수신 및 저장하기 위한 SDB 레지스터(301), FDB a를 저장하기 위한 FDB 레지스터(302), 및 DCB v를 형성 및 저장하기 위한 DCB 레지스터(303)를 포함한다. 예시적인 데이터 삽입기(300)의 동작은 세 단계를 포함한다. 첫 번째 단계에서, SDB d는 클록(도면에 도시되지 않음)의 제어 하에 SDB 레지스터(301)에 직렬로 로드된다. 두 번째 단계에서, SDB d 및 FDB a는 각각의 레지스터(301 및 302)로부터 DCB 레지스터(303)로 병렬로 로드된다. 세 번째 단계에서, DCB v는 DCB 레지스터(303) 밖으로 직렬로 시프트된다. 디지털 회로 또는 저장된 프로그램 컴퓨터를 사용하여 주어진 한 쌍의 파라미터(N,A,a)에 대응하는 데이터 삽입기 기능의 많은 다른 대안적 구현이 있다는 것은 당업자에게 명백할 것이다. 예를 들어, 지연이 중요한 곳에서는 직렬 연산 대신 병렬 논리 연산이 사용될 수 있다.
데이터 삽입기(211)는 범용 프로세서에서도 구현될 수 있으며, 이는 데이터 삽입기(211)가 파라미터의 다른 설정으로 재구성될 수 있는 것이 요구될 때 더 나은 옵션일 수 있다. 도 4를 참조하면, 범용 저장 프로그램 컴퓨터를 사용하여 데이터 삽입기(211)를 구현하기 위한 예시적인 데이터 삽입기 알고리즘(400)을 볼 수 있으며, 알고리즘(400)은 의사 코드(pseudo-code)로 작성된 명령어 시퀀스이고 임의의 주어진 파라미터의 집합으로 작동하도록 재구성 가능하며, N은 코드 블록 길이, A는 데이터 인덱스 집합, a는 FDB이다. 알고리즘(400)은 입력으로서 SDB d를 수신하고 출력으로서 DCB v를 생성하고, 이에 의해 가 된다. 당업자는 예시적인 데이터 삽입기 알고리즘(400)의 논리에 따라 저장된 프로그램 컴퓨터에서 데이터 삽입기(211)를 구현하는 데 어려움이 없을 것이다.
데이터 인덱스 집합 A. TF 코드의 성능은 데이터 인덱스 집합 의 선택에 따라 크게 달라진다. 데이터 인덱스 집합 의 선택은 일회성 설계 문제이므로, 최적 또는 최적에 가까운 를 찾는 것의 복잡성은 주요 관심사가 아니다. 그러나, 검색 공간의 기하급수적인 크기를 고려할 때 최상의 데이터 인덱스 집합 에 대한 철저한 검색은 실현 가능하지 않다. 본 원리는 데이터 인덱스 집합 를 선택하는 모든 방법과 함께 사용될 수 있다; 그러나, 데이터 인덱스 집합 를 구성하는 데 선호되는 방법은 스코어 함수 접근 방식이다.
스코어 함수(Score functions). 를 데이터 인덱스 집합으로서 허용될 수 있는 집합, 즉, 및 ||=K라고 한다. 와 연관된 스코어 함수는 각 인덱스 i{1, 2,…, N}에 실수(스코어)를 할당하는 함수 (실수)이다. 스코어 함수 접근 방식에서, 데이터 인덱스 집합은, 모든 iA에 대한 의 최소값이 가능한 한 크도록, 허용 가능한 로 선택된다. 즉, 스코어 함수 접근 방식에서는, 최대값이 모든 허용 가능한 보다 큰 최적화 문제 를 해결하려고 한다. 아래에 정의된 스코어 함수는 DCB v의 좌표가 TF 디코더(230)에서 1에서 N까지의 자연 순서로 디코딩될 것이라고 가정한다. 당업자는 TF 디코더(230)에서 디코딩의 다른 순서가 사용되는 경우 아래의 스코어 함수를 적절하게 변경하는 데 어려움이 없을 것이다.
포인트와이즈(pointwise)윈도우(windowed)의 두 가지 유형의 스코어 함수를 고려할 것이다. 포인트와이즈 스코어 함수는 폴라 코드 및 리드-뮬러(Reed-Muller) 코드를 구성하기 위해 선행 기술에서 사용되었다. 윈도우 스코어 함수는 새로운 접근 방식이다. 두 가지 유형의 스코어 함수는 본 원리와 함께 선행 기술을 개선하기 위해 사용될 수 있다. 먼저 포인트와이즈 스코어 함수의 세 가지 예를 제공한다.
해밍 스코어 함수(Hamming score function)로 정의되며, wH는 정수(아래 정의됨)의 해밍 가중치이고 는 집합 A의 인디케이터 함수이다(즉, 이면 이고 이면 ). 정수 k0의 해밍 가중치는 로 정의되며, 는 이진 표현 의 계수이다. 예를 들어, 13=1+22+23이므로, wH(13)=3이다. 해밍 스코어 함수는 채널(120)의 파라미터와 독립적인 특성을 갖는다. 당업자는 해밍 스코어 함수가 , 인 변환 코드의 특수한 케이스에 대해 리드-뮬러 코드를 생성한다는 것을 인식할 것이다. Reed-Muller 코드는 일 때 주어진 레이트의 모든 코드에 대해 가능한 가장 큰 최소 해밍 거리를 갖는다. 최소 해밍 거리는 높은 신호 대 잡음비(signal-to-noise ratio)에서 코드의 FER 성능을 결정하는 중요한 파라미터이다. 아래에 보고된 시뮬레이션 연구에서, 해밍 스코어 함수가, 본 원리의 일부로 사용될 때, 폴라 코딩 및 리드-뮬러 코딩의 선행 기술을 향상시키는 FER 성능을 생성한다는 것을 알 수 있다.
상호 정보 스코어 함수(mutual-information score function)로 정의되며, 이때,
는 Vi-1이 주어졌을 때의 Vi와 Y 사이의 조건부 상호 정보이다. 여기서, Vi는 DCB v의 i번째 좌표에 대응하는 랜덤 변수이고, Vi-1은 DCB v의 초기 세그먼트 vi-1와 연관된 랜덤 벡터, Vi=(Vi-1, Vi), Y는 RCB y에 대응하는 랜덤 벡터이다. 당업자는 상호 정보 스코어 함수가 , 인 변환 코드의 특수한 케이스에 대한 표준 폴라 코드를 생성한다는 것을 인식할 것이다.
갤러거 스코어 함수(Gallager score function)로 정의되며, 이때,
ρ>0은 자유 파라미터이다(ρ의 각 값에 대해 다른 스코어 함수가 있음). 갤러거 함수와 그 속성의 중요성에 대한 논의는 R. Gallager, "A simple derivation of the coding theorem and some applications," IEEE Transactions on Information Theory, vol. 11, no. 1, pp. 3-18, 1965년 1월"을 참조한다. 함수 는 일반화된 조건부 정보이다. ρ0일 때, 이므로 갤러거 스코어 함수에는 다음과 같은 상호 정보 스코어 함수가 특별한 케이스로서 포함된다. 갤러거 스코어 함수의 또 다른 중요한 특별한 케이스는 ρ=1에서 발생한다. 이며, 은 조건부 컷오프 레이트이다. 갤러거 스코어 함수는 ρ가 증가함에 따라 코드 최소 거리에 더 중점을 둔다.
위의 스코어 함수의 계산은 외부 변환 Gout이 상삼각 비-특이 행렬일 때 용이하다. 이 경우, Gout의 역도 비-특이 행렬이며 상삼각이고, DCB v의 초기 세그먼트 vi와 OTB u의 ui는 일대일 방식으로 서로 관련된다. 따라서, 이다. 밀도-진화 기법은 내부 변환이 충분한 구조를 가질 때(예를 들어, , 일 때) 를 효율적으로 계산하는 데 사용될 수 있다.
위의 스코어 함수는 sA(i)가 포인트와이즈 리소스 함수 q(i)와 포인트와이즈 레이트 함수 χA(i)의 두 함수의 차이로 정의된다는 점에서 포인트와이즈이다. 포인트와이즈 리소스 값 q(i)는 코드 구성에 사용된 특정 삼각 인수분해 G=GoutGin에 의존하지만 와는 독립적이다. 포인트와이즈 레이트 χA(i)는 A에만 의존한다. sA(i) 값은 사용 가능한 리소스(시간 i에 사용 가능한 정보)와 수요(시간 i에 소스 데이터 비트의 전송)의 차이로 해석될 수 있다. 리소스 부족을 최소화하기 위해 를 선택한다. 포인트와이즈 스코어 함수는 역추적이나 미래 예측 없이 시퀀스의 각 비트에 대해 하나씩 순차적으로 결정이 내려질 때 의미가 있다. 본 원리는 외부 코드의 일부로 강력한 트리 탐색 알고리즘을 사용하는 것에 기반하기 때문에, 포인트와이즈 스코어 함수는 본 원리에 대해 차선책이다. 스코어를 탐색 알고리즘의 특성에 매칭시킬 수 있는 스코어 함수가 필요하다. 다음에 소개될 윈도우 스코어 함수는 이러한 목적을 달성한다.
모든 스코어 함수 sA(i)=q(i)-χA(i)에 대해 sA(i)의 윈도우 버전 로 정의한다. k0(고정된 정수)는 지연 파라미터, m0(고정된 정수)은 선행 파라미터, wj>0(고정된 실수)는 가중치 파라미터이다. i0 또는 i>N에 대해 sA(i)=0을 설정하여 sA(i)의 정의를 모든 정수로 확장한다. 지연 k 및 선행 m이 있는 윈도우 스코어 함수 SA(i;k,m)의 윈도우 길이는 k+m+1로 정의된다. 윈도우 스코어 함수에 대해 논의할 때, 윈도우 길이가 1보다 크다고 암시적으로 가정한다. 윈도우 길이가 얼마나 클 수 있는지에 대해서는 상한선을 두지 않는다. 상삼각 테플리츠 Gout을 사용한 TF 코딩이 사용되는 경우, 윈도우 길이는 Gout의 첫 번째 행의 0이 아닌 부분의 범위와 동일한 차수일 수 있다.
윈도우 스코어 함수를 사용한 인덱스 집합 설계 문제는 모든 iA에 대한 SA(i;k,m)의 최소값이 최대화되도록 하는 허용 가능한 데이터 인덱스 집합 A를 찾는 문제이다.
분명하게, 윈도우 스코어 함수에는 k=0, m=0 및 wj=1인 특별한 케이스로서 포인트와이즈 스코어 함수가 포함된다. 0이 아닌 지연 및 선행을 갖는 것의 동기는 역추적 메커니즘이 장착된 탐색 방법이 현재 탐색 이웃에서 가능한 선택의 윈도우 내에서 탐색을 수행할 것이라는 아이디어이다. 따라서, 데이터 인덱스 집합을 선택하는 알고리즘은 특정 결정 포인트가 아니라 탐색 윈도우에서 모호성(소스 불확실성에서 채널 정보를 뺀 값)을 작게 유지하는 데 주의를 기울여야 한다.
위의 스코어 함수는 데이터 인덱스 집합의 선택이 폴라 코딩에서와 상당히 다른 최적화 문제라는 일반적인 아이디어를 설명하기 위해 제공된다. 당업자는 동일한 목적을 위해 다른 스코어 함수를 설계할 수 있을 것이다. 위에 제시된 예시적인 스코어 함수 방법의 이러한 모든 확장은 본 개시 내용의 범위에 속한다.
외부 변환 Gout. 외부 변환 u=vGout을 계산하는 것의 복잡성은 일반 행렬 에 대해 O(N2)이며, 이는 중간 정도의 N 값에 대해서도 많은 애플리케이션에서 엄청나게 복잡하다. 본 원리는 Gout에 구조를 부과하여 외부 변환의 복잡성을 줄이는 것이 중요하다는 것을 인식한다. 이를 위해, 본 원리의 바람직한 실시예에서, Gout을 c0 0 및 cm 0의 임펄스 응답 으로 특징지어지는 상삼각 테플리츠 행렬로 제한할 것이며, m은 1≤m≤N-1을 만족하는 정수이다. 가정 c0 0 은 외부 변환 행렬 Gout이 0이 아닌 대각선 요소를 가지도록 보장하여 Gout이 비-특이임을 보장한다. 일부 m1에 대한 가정 cm 0은 Gout이 엄격한 상삼각 행렬임을 보장한다. 엄격한 상삼각 외부 변환 행렬 Gout을 사용하여, 외부 변환(212)이 비-자명 연산임을 보장하며, 이는 그들의 바람직한 실시예의 TF 코드가 선행 기술의 폴라 코드와 같은 특정 다른 코드와 일치하지 않음을 보장한다. 위의 조건에서 예시적인 외부 변환 행렬은 다음과 같다.
삭제
이는 임펄스 응답 에 해당한다. Gout이 임펄스 응답 c를 갖는 상삼각 테플리츠 행렬로 정의될 때, 외부 변환 연산 u=vGout 은 모든 i=1,2,…,N에 대해 이 되도록 컨볼루션으로서 표현될 수 있다. i-j0인 경우, vi-j를 0으로 해석한다. 따라서, 외부 변환(212)은 이산 시간 선형 시불변 필터로 보여질 수 있고; 벡터 c는 선형 시불변 필터의 임펄스 응답(입력 v=(1,0,…,0)에 대한 응답)으로서 해석될 수 있다. 상삼각 테플리츠 행렬(Gout)에 대응하는 컨볼루션 연산을 구현하는 실용적인 방법이 많이 있다는 것은 당업자에게 알려져 있을 것이다.
도 5는 Gout이 임펄스 응답 c=(1,1,0,1)에 의해 정의된 상삼각 테플리츠 행렬인 특별한 케이스에 대해 변환 u=vGout을 구현하는 예시적인 외부 변환 회로(500)를 표시한다. 예시적인 외부 변환 회로(500)는 직렬 입력 포트(501), 시프트 레지스터(502), 모듈로-2 가산기(modulo-2 adder)(503), 리셋 회로(504), 및 직렬 출력 포트(505)를 포함한다. 예시적인 외부 변환 회로(500)는 클록 및 제어 로직과 같은 추가 신호를 필요로 하는 순차 로직을 사용한다. 불필요한 세부 사항으로 다이어그램을 복잡하게 만들지 않기 위해 이러한 추가 신호는 도 5에 표시되지 않는다. 당업자는 누락된 세부 사항을 제공하는 데 어려움이 없을 것이다. 시프트 레지스터(502)는 직렬로 연결된 3개의 레지스터, 제1 레지스터(502a), 제2 레지스터(502b), 및 제3 레지스터(502c)를 포함한다. 각 시프트 레지스터(502a, 502b, 502c)는 0 또는 1인 하나의 비트를 유지할 수 있다. 모듈로-2 가산기(503)는 입력 포트(501), 제1 레지스터(502a)의 출력, 및 제3 레지스터(502c)의 출력의 논리 신호의 모듈로-2 합(동일하게 배타적 논리합(XOR))을 계산한다. 레지스터(502b)의 출력에서의 논리 신호는 c2=0이기 때문에 모듈로-2 합에서 제외된다. 처음에, 제1 클록 틱의 상승 에지와 함께 시프트 레지스터(502)의 내용은 리셋 회로(504)에 의해 0으로 초기화되고 DCB v의 제1 비트 v1은 직렬 입력 포트(501)에서 유효한 논리 신호로 나타난다. 제2 클록 틱의 상승 에지와 함께 모듈로-2 가산기(503)는 OTB u의 제1 비트 u1을 계산하여 직렬 출력 포트(505)에서 출력하고 제1 비트 v1은 제1 레지스터(502a)로 이동하고, 제1 레지스터(502a)의 컨텐트는 제2 레지스터(502b)로 이동하고, 제2 레지스터(502b)의 컨텐트는 제3 레지스터(502c)로 이동하고, DCB v의 제2 비트 v2는 직렬 입력 포트(501)에서 유효한 논리 신호로 나타난다. 따라서, 제3 클록 틱의 상승 에지 전에 시프트 레지스터(502)의 컨텐트는 (v1,0,0)로 나타나고 DCB v의 제2 비트 v2가 모듈로-2 추가의 다음 라운드를 위해 직렬 입력 포트(501)에서 사용할 수 있다. 예시적인 외부 변환 회로(500)의 연산은 이러한 방식으로 계속되어, , , , , , , 를 생성한다. 예를 들어, v=(1,1,0,0,1,0,1,1)이면 u=(1,0,1,1,0,1,1,1)이다. OTB u의 8번째 비트 u8이 직렬 출력 포트(505)에서 출력됨에 따라, 리셋 회로(504)가 활성화되고 회로는 다음 DCB를 수용할 준비가 된다. 외부 변환 동작의 한 라운드를 완료하는 데 정확히 8 클록 틱이 걸린다. 예시적인 외부 변환 회로(500)는 연속적인 DCB에 대한 외부 변환 동작 사이에 시간 갭 없이 동작할 수 있다.
예시적인 외부 변환 회로(500)의 모델에 따라, 상삼각 테플리츠 행렬에 대응하는 일반 컨볼루션 연산을 쉽게 구현할 수 있다. DCB v가 N차원이고 임펄스 응답이 형태이면, m 단계의 시프트 레지스터가 필요하며 외부 변환 작업의 한 라운드를 완료하는 데 N 클록 사이클이 걸린다.
당업자는 도 5에 제시된 바와 같은 컨볼루션을 계산하는 방법이 잘 알려져 있고, 데이터 전송속도를 개선하거나 대기 시간을 줄이기 위해 병렬 처리 및/또는 파이프라이닝을 사용하는 회로와 같은, 컨볼루션을 계산하기 위한 많은 대안적 회로가 있다는 것을 알 것이다.
내부 변환 Gin. 내부 변환 연산 x=uGin은 일반 행렬 에 대해 복잡도 O(N2)를 가지며, 이는 실제 구현에는 엄두도 내지 못할 수 있다. 본 원리는 Gin에 구조를 부과함으로써 내부 변환 연산의 복잡성을 줄이는 것을 목표로 한다. 본 원리의 바람직한 실시예에서, Gin은 크로네커 곱 형식: 을 갖도록 제한되며, 는 각 i=1,2,…,n에 대해 Ni 2인 하삼각 행렬이다. 결과 Gin인 NxN 하삼각 행렬이다. Gin의 크로네커 팩터 L1,…,Ln가 적절하게 선택되면, 내부 변환 x=uGin을 계산하는 복잡성을 O(N2)에서 으로 줄일 수 있다. 예를 들어, 각 i=1,2,…,n에 대해 이면, 은 폴라 코딩에서 폴라 변환 행렬이 되고 내부 변환의 복잡도는 으로 감소한다. 완전성을 위해, 인 중요한 특별한 케이스에 대해 x=uGin을 구현하는 회로를 아래에 제시한다.
도 6은 다음과 같은 특별한 케이스에서 내부 변환(213)을 구현하는데 사용될 수 있는 예시적인 폴라 변환 회로(600)를 도시한다.
예시적인 폴라 변환 회로(600)는 병렬 입력 포트(601), 병렬 출력 포트(602), 및 내부 논리 회로를 포함한다. 내부 논리는 조합이다. 회로는 병렬 입력 포트(601)에 인가된 입력 신호(u1,…, u8)에 의해 구동되고 병렬 출력 포트(602)에서 (일부 신호 전파 지연 후) 출력 신호(x1,…, x8)를 생성한다. 회로를 통해 입력 논리 신호를 추적함으로써, , , , , , , 에 의해 출력 신호가 입력 신호와 관련되어 있음이 확인될 수 있다. 는 논리 배타적 논리합(XOR) 연산을 나타낸다. 논리 신호 사이의 이러한 관계는 행렬 곱셈 을 수행하여 벡터 사이에서 얻은 대수적 관계와 동일하다. 따라서, 회로(600)가 예시적인 케이스 에 대해 내부 변환 연산을 올바르게 구현하는 것이 검증된다. 임의의 n을 갖는 인 케이스에 대한 회로(600)의 일반화를 위해, 폴라 코딩에 관한 선행 기술을 참조한다. 폴라 코딩에 대한 선행 기술은 하드웨어 또는 소프트웨어를 사용하여 폴라 변환을 구현하기 위한 많은 옵션을 포함한다. 이러한 모든 구현 옵션은 본 원리의 물리적 실현에 사용될 수 있다.
TF 인코더(210)의 각 개별 부분에 대한 예시적인 구현 옵션을 제시했다. 다음으로, 이러한 부분을 함께 제공하는 TF 인코더(210)의 실시예를 제시할 것이다.
TF 인코더(210)의 바람직한 실시예. TF 인코더(210)의 바람직한 실시예에서, TF 코드(Gout, Gin, A, a)는 유한 필드 에 대한 코드이고, 외부 변환 행렬 Gout은 임펄스 응답 c에 의해 정의된 비특이 엄격한 상삼각 테플리츠 행렬이고; 내부 변환 행렬 Gin은 크로네커 곱 형태 을 갖는 엄격한 하삼각 행렬이며, n1 이고 는 각 i=1, 2, …, n에 대해 Ni 2개의 행(동등하게 열)을 갖는 하삼각 행렬이다; 데이터 인덱스 집합 A와 FDB는 임의적이다. TF 인코더(210)의 바람직한 실시예는 도 3, 4, 5 및 6의 예시적인 구현을 사용하여 구현될 수 있다.
이제 TF 인코더(210)의 바람직한 실시예에 따라 구성된 임의의 고정된 TF 코드(Gout, Gin, A, a)에 적합한 디코더를 개발하는 것으로 돌아간다. Gout이 상삼각 행렬이기 때문에, 에서 로의 매핑 u=vGout은 ui=(u1,…,ui)가 모든 에 대해 vi=(v1,…, vi)에 의해 결정된다는 점에서 인과적(causal)이다. 외부 변환 Gout의 인과적 특성은 vu=vGout 매핑을 트리 형태로 나타내는 것을 가능하게 하며, 이를 외부 변환(OT) 트리라고 부른다. OT 트리는 0부터 N까지의 정수로 인덱싱된 N+1 레벨을 가지고 있으며, OT 트리의 레벨 0에는 루트 노드만 있다. OT 트리의 레벨 에는 각 마다 하나의 노드가 있는 qi 노드가 있다. OT 트리의 최종 레벨(레벨 N)에 있는 노드를 리프(leaf) 노드라고 한다. OT 트리에는 각 마다 하나씩 qN개의 리프 노드가 있다.
다음으로, TF 코드가 트리 코드임을 보여준다. vAc=a인 경우 OT 트리의 리프 노드 v를 허용 가능한(admissible) 것으로 지칭한다. TF 코드 |A|=K에 대해 qK개의 허용 가능한 리프 노드가 있다. TF 코드(Gout, Gin, A, a)에 대한 코드 트리는 루트에서 적어도 하나의 허용 가능한 리프 노트까지의 경로에 있지 않은 OT 트리의 모든 브랜치(branch)를 삭제한 후 얻은 OT의 서브트리로 정의된다. DCB v에 대응하는 코드 트리의 경로를 올바른 경로라고 한다. 트리 표현을 사용하여, TF 코드에 대한 디코딩 작업은 RCB y에 의해 제공되는 정보를 사용하여 TF 코드 트리를 통한 올바른 경로를 탐색하는 것으로 볼 수 있다. 이 관점은 다양한 트리 탐색 알고리즘이 디코딩 작업에 적용될 수 있음을 보여준다. 예를 들어, Viterbi 디코딩은 너비 우선 탐색에서 파생되고, 순차 디코딩은 역추적을 사용하는 깊이 우선 탐색에서, 연속 제거 디코딩은 역추적 없는 깊이 우선 탐색에서, 그리고 연속 제거 목록 디코딩은 빔 탐색으로부터 파생된다.
트리 탐색 문제로서 TF 디코더(230)의 작업을 재구성한 후, 이제 도 2에 도시된 TF 디코더(230)의 모듈식 아키텍처 내에서 일반 트리 탐색 알고리즘의 구현에 주의를 기울인다. 특히, 일반적인 트리 탐색 알고리즘과 관련된 다양한 작업이 내부 디코더(231)와 외부 디코더(232) 사이에서 어떻게 분할될 수 있는지 논의한다. 외부 변환 Gout의 상삼각 형태 덕분에 이러한 분할이 가능함을 알 수 있다. 선형 대수학에서 비-특이 상삼각 행렬의 역행렬도 상삼각 행렬임을 상기하는 것으로 시작한다. 따라서, 역 매핑 v=u(Gout)-1은 정(forward) 매핑 u=vGout이 인과적이라는 것과 같은 의미에서 인과적이다. 즉, 접두사 는 각 에 대해 서로를 고유하게 결정하고, 두 접두사 중 하나는 OT 트리의 노드를 고유하게 식별하는 데 사용된다. 이 속성 덕분에, 내부 디코더(231)와 외부 디코더(232) 사이의 인터페이스를 가로지르는 메트릭 트래픽은 노드 식별자로서 OTB 접두사 ui를 사용하여 수행될 수 있다. 노드 식별자로서 OTB 접두사 ui를 사용하여 메트릭 요청 및 메트릭 값 메시지를 전달하면 도 2와 같이 트리 탐색 작업을 모듈로 분할할 수 있다.
TF 디코더(230)의 바람직한 실시예. TF 디코더(230)의 바람직한 실시예에서, TF 코드 파라미터(Gout, Gin, A, a)에 대한 제약은 TF 인코더의 바람직한 실시예에서와 동일하고 별도로 지정될 필요가 없다. 따라서, TF 인코더(210) 및 TF 디코더(230)의 바람직한 실시예가 서로 호환가능한 경우. TF 디코더(230)의 바람직한 실시예에서, 외부 디코더(232)는 트리 탐색 알고리즘을 사용하여 OT 트리를 통해 올바른 경로를 탐색하고, 트리 탐색 알고리즘은 노드 메트릭 Γ(ui, y)에 의해 노드 ui가 올바른 경로에 있을 가능성을 평가하며, 노드 메트릭 Γ(ui, y)는 올바른 경로에서 위로 드리프트하고 잘못된 경로에서 아래로 드리프트하도록 설계되었다. 외부 디코더(232)는 내부 디코더(231)에 노드 식별자 ui를 제시함으로써 내부 디코더(231)로부터 노드 메트릭 Γ(ui, y)의 계산을 요청한다. 이러한 요청을 수신하면, 내부 디코더(231)는 노드 메트릭 Γ(ui, y)를 계산할 책임이 있다. 메트릭 Γ(ui, y)는 외부 코드 파라미터 (Gout, A, a)에 대한 지식이 필요하지 않도록 설계되어 내부 디코더(231)가 외부 코드와 독립적으로 구성될 수 있다. 외부 디코더(232)는 내부 디코더(231)로부터 수신된 메트릭 값을 사용하여 트리 탐색을 수행한다. 트리 탐색이 끝나면, 내부 디코더는 DDCB 를 생성하고 DDCB 를 데이터 추출기(233)에 전달한다. 데이터 추출기(233)는 로 설정하여 DSDB 를 계산한다.
TF 디코더(230)의 바람직한 실시예의 범위는 임의의 트리 탐색 알고리즘 및 위에 명시된 속성을 갖는 임의의 노드 메트릭을 커버한다. 탐색 알고리즘 및 노드 메트릭에 대한 보다 구체적인 선택은 TF 디코더(230)의 가장 바람직한 실시예의 설명을 준비하기 위해 아래에서 논의된다. 노드 메트릭으로 시작한다.
Fano 메트릭. TF 디코더(230)의 바람직한 실시예를 구현하는 데 사용될 수 있는 예시적인 노드 메트릭은 다음과 같이 정의되는 Fano 메트릭[FAN1963]이다
Bi바이어스 항(bias term)이다. 일반 컨볼루션 코딩 및 순차 디코딩에서 바이어스 항은 상수이다; 여기서, 바이어스 항이 시간에 따라 변하도록 허용한다. 시간에 따라 변하는 Fano 메트릭을 사용하는 이유는 Fano 메트릭을 통해 채널에서 오는 정보의 양 이 시간에 따라 변한다는 사실에도 불구하고 Fano 메트릭은 TF 코드 트리의 올바른 경로에서 양의 드리프트 를 유지하는 것을 보장하기 때문이다. 시간에 따라 변하는 바이어스 항을 갖는 Fano 메트릭을 사용하는 것은 본 원리를 선행 기술과 구별하는 특징이다.
Fano 메트릭을 계산할 때, 내부 디코더(231)는 OT 코드 트리의 모든 경로가 허용 가능하다고 가정하여 근사를 만들고(TF 코드 트리가 OT 트리의 서브트리임을 무시함), 이는 접두사 Ui가 OT 코드 트리에서의 2i 개의 가능한 값들에 걸쳐 확률이 동일하다고 가정하는 것과 같다. 이 근사는 Fano 메트릭의 계산을 단순화하고 TF 코드의 세부 사항과 독립적으로 만든다. 트리 탐색이 TF 코드 트리에 없는 경로로 벗어나지 않도록 내부 디코더(231)로부터 수신된 메트릭 값에 정정을 적용하기 위해 이를 외부 디코더(232)에 맡긴다.
Fano 메트릭은 로 작성됨으로써 점진적으로 계산될 수 있다.
bj=Bj-Bj-1이다. 계산 목적을 위해, 베이즈 정리(Bayes' rule)와 라는 가정을 사용하고 브랜치 메트릭을 다음과 같이 다시 작성하는 것이 더 유리할 수 있다.
바이어스 항을 선택하는 바람직한 방법은 일부 상수 0<α<1에 대해 Bi=αI(Ui;Y)를 설정하는 것이다. 그런 다음, 올바른 경로의 i번째 노드에서 Fano 메트릭의 드리프트는, 원하는 대로, 양수인 와 동일하다. 일 때 브랜치 메트릭 바이어스 항은 가 되고 올바른 경로를 따라 브랜치 메트릭의 예상 값은 가 되며, 이 또한 양수이다. 이 논의는 TF 코드를 디코딩하기 위한 트리 탐색 알고리즘과 관련하여 Fano 메트릭을 적용할 때 시변 바이어스 항을 가질 필요성을 보여준다.
당업자는 내부 변환 Gin이 폴라 변환 인 중요한 특별한 케이스에서, 확률 는 폴라 코드의 연속 제거 디코딩 방법을 사용하여 낮은 복잡도에서 계산될 수 있다는 것을 인식할 것이다. 사실, 이 경우 다음 공식이 존재한다.
는 폴라 변환에 의해 생성된 j번째 비트 채널을 나타낸다. 또한, 이 경우, 바이어스 항의 추천 형태에 나타나는 상호 정보 항 I(Ui;Y) 와 I(Uj;YUj-1) 는 폴라 코드의 설계를 위한 밀도 진화 기법을 사용하여 복잡도 로 계산될 수 있다.
이제 내부 디코더(231)와 외부 디코더(232) 사이의 인터페이스에서 메트릭 메시지가 교환되는 방식을 더 자세히 지정한다. 외부 디코더가 트리 탐색 알고리즘을 실행하는 동안 어떤 포인트에서 TF 코드 트리의 노드 ui-1에서 정 방향으로 찾고 있다고 가정한다. iA이면, 노드 ui-1의 TF 코드 트리에는 두 가지 가능한 확장 (ui-1, 0) 및 (ui-1, 1)이 있고, 외부 디코더(232)는 내부 디코더(231)로부터 두 노드 메트릭 모두를 요청한다. iA이면, 노드 ui-1의 TF 코드 트리에는 (ui-1, 0) 또는 (ui-1, 1) 중 하나의 가능한 확장만 있고, 외부 디코더(232)는 노드 ui-1의 유효 확장에 대한 노드 메트릭을 요청하고 노드 ui-1의 무효 확장의 노드 메트릭을 -로 설정한다.
옵션으로서, 외부 디코더는 외부 코드 특정 및 레벨 특정 바이어스를 각각의 수신된 노드 메트릭에 적용함으로써 모든 수신된 노드 메트릭을 수정할 수 있다. 이러한 절차는 시뮬레이션에서 개선된 결과를 산출하는 것으로 관찰되었다.
순차 디코딩. 위에서 언급한 바와 같이, 순차 디코딩은 Wozencraft[WOZ1961]에서 개발한 컨볼루션 코드에 대한 디코딩 알고리즘이다. Fano[FAN1963]는 하드웨어 구현에 특히 적합한 순차 디코딩을 구현하는 실용적인 방법을 개발했다. Zigangirov[ZIG1966]와 Jelinek[JEL1969]는 스택 디코더로 알려진 순차 디코더의 버전을 개발했으며, 이 버전은 Fano의 알고리즘보다 이해하기 쉽지만 훨씬 더 많은 메모리 리소스를 소비한다. 순차 디코딩의 두 버전 모두 외부 디코더(232)를 구현하는 데 트리 탐색 휴리스틱으로서 사용될 수 있다. 여기서는, 설명하기 훨씬 쉽기 때문에, 스택 디코더를 설명하도록 한다.
도 7은 스택 디코더(700)의 흐름도로서, 스택 디코더는 트리 코드에 대한 디코딩 알고리즘이고 랜덤 액세스 메모리 및 프로세서 유닛을 구비한 범용 컴퓨터 상에서 실행될 수 있다. 흐름도(700)에서 용어 "스택"은 일반적으로 우선순위 큐로 알려진 데이터 구조를 의미한다. 스택은 랜덤 액세스 메모리에 상주하며 복수의 노드를 포함하고, 스택 상의 각 노드는 트리 코드의 노드와 연관된 데이터 레코드이다. 스택의 노드는 노드 메트릭의 내림차순으로 정렬된다. 메트릭 값이 가장 높은 스택의 노드를 스택-탑 노드라고 한다. 스택 디코더(700)는 초기화 단계(701), 룩 포워드 단계(702), 종료 체크 단계(703), 타임아웃 체크 단계(704), 일반 종료 단계(705), 타임아웃 단계(706)를 포함한다. 초기화 단계(701)에서, 스택이 지워지고, 트리의 루트 노드가 메트릭 값이 0인 스택-탑 노드로서 스택에 배치되고, 사이클 카운터가 0으로 설정되며, 제어가 룩 포워드 단계(702)로 넘어간다. 룩 포워드 단계(702)에서, 사이클 카운터는 1씩 증가하고, 스택-탑 노드는 스택에서 제거되고, 제거된 스택-탑 노드의 모든 자식 노드의 메트릭 값은 메트릭 컴퓨터로부터 요청 및 수신되며, 자식 노드가 스택에 삽입되고, 스택의 모든 노드가 메트릭 값에 대해 내림차순으로 재정렬되고, 제어는 종료 확인 단계(703)로 넘어간다. 종료 확인 단계(703)에서, 현재 스택-탑 노드가 트리의 리프 노드인지 확인하고; 대답이 예(yes)이면, 제어는 일반 종료 단계(705)로 넘어간다. 그렇지 않으면(대답이 아니오(no)인 경우), 제어는 타임아웃 체크 단계(704)로 넘어간다. 일반 종료 단계(705)에서, 스택 디코더(700)는 최종 디코더 결정으로서 스택-탑 노드를 출력하고 알고리즘은 종료된다. 타임-아웃 체크 단계(704)에서, 사이클 카운터가 타임-아웃 한계를 초과하는지 체크가 행해지고; 대답이 예(yes)이면, 제어는 타임아웃 종료 단계(706)로 넘어간다; 그렇지 않고 대답이 아니오(no)인 경우, 제어는 룩 포워드 단계(702)로 넘어간다. 타임아웃 종료 단계(706)에서, 스택 디코더는 타임아웃이 있었다는 표시와 함께 최종 디코더 결정으로서 현재 스택-탑 노드를 출력한다.
스택을 유지하고 노드 메트릭 요청을 생성하는 책임을 외부 디코더(232)에 할당하고 노드 메트릭 값을 계산하는 책임을 내부 디코더(231)에 할당함으로써, 전술한 스택 디코더(700)가 TF 디코더(230)의 바람직한 실시예를 구현하는데 사용될 수 있다는 것은 당업자에게 명백할 것이다. 노드 메트릭 계산 및 트리 탐색 함수의 분할은 선형 대수학에서 삼각 인수분해 방법을 사용하여 선형 방정식의 시스템을 푸는 것과 유사한 정방향(내부 디코딩) 및 역방향(외부 디코딩) 치환 방법으로 볼 수 있다.
TF 인코더(210)의 가장 바람직한 실시예. TF 인코더(210)의 가장 바람직한 실시예는, 필드 가 이진 필드 ()로 제한되고, 데이터 인덱스 집합 A는 스코어 함수를 사용하여 구성되며, 외부 변환 행렬 Gout은 임펄스 응답 c로 정의된 비특이 엄격한 상삼각 테플리츠 행렬이고, 내부 변환 행렬은 로 선택되며, 인 TF 인코더(210)의 바람직한 실시예의 특별한 케이스이다. 변환 인코더의 바람직한 실시예는 도 3, 4, 5 및 6에 제시된 예시적인 구현을 결합함으로써 구현될 수 있다는 것이 당업자에게 명백할 것이다.
TF 디코더(230)의 가장 바람직한 실시예. TF 디코더(230)의 가장 바람직한 실시예에서, TF 코드 파라미터(Gout, Gin, A, a)에 대한 제약은 TF 인코더(210)의 가장 바람직한 실시예에서와 동일하며, 별도로 지정될 필요가 없다. TF 디코더(230)의 가장 바람직한 실시예에서, 내부 디코더(231)는 Fano 메트릭을 계산하고 외부 디코더(232)는 전술한 바와 같이 내부 디코더(231)로부터 수신된 Fano 메트릭을 조정함으로써 순차 디코딩 알고리즘을 구현한다. TF 인코더(210)의 가장 바람직한 실시예와 TF 디코더(230)의 가장 바람직한 실시예의 매칭되는 쌍은 TF 코딩 시스템(200)의 가장 바람직한 실시예를 구성한다.
도 8a를 참조하면, 본 원리를 선행 기술과 비교하기 위한 시뮬레이션 결과(800)를 볼 수 있다. 시뮬레이션 결과(800)는 5개의 성능 곡선(801 내지 805)을 포함한다. 성능 곡선(805)은 본 원리의 가장 바람직한 실시예(즉, TF 인코더(210)의 가장 바람직한 실시예 및 TF 디코더(230)의 가장 바람직한 실시예)에 따라 구성된 예시적인 TF 코딩 시스템에 속한다. 시뮬레이션 결과는 본 원리에 대한 분명한 이점을 보여준다. 공정한 비교를 위해, 도 8a의 5개의 코딩 시스템 모두는 이진 필드 에 대한 코드이고, R=1/2의 전체 코딩 레이트에 대해 공통 코드 블록 길이 N=128 및 공통 소스 블록 길이 K=64를 갖는다. 시뮬레이션에 사용된 채널은 입력 알파벳 , 출력 알파벳 (실수) 및 채널 전이 확률 밀도 함수 를 갖는 이진 입력 메모리리스 채널(x∈X, y∈Y이고, x=0이면 s=1, x=1이면 s=-1임)이다. 당업자는 이 채널이 AWGN(Additive White Gaussian Noise) 채널을 통한 이진 시그널링을 위한 모델이라는 것을 인식할 것이다. 이 논의의 나머지 부분에서는 이 채널을 "AWGN 채널"이라고 한다. AWGN 채널은 1/σ2로 정의되는 신호 대 잡음비(SNR)로 특징지어진다. 시뮬레이션 연구에서, SNR 파라미터는 0.5dB 간격으로 0dB에서 5dB까지 변경되며, 시행 횟수가 십만 번 또는 프레임 오류 수가 100회에 도달할 때(둘 중 먼저 발생하는 것)까지 시행됨으로써, 각 SNR 포인트에서 FER 값이 측정된다. 시뮬레이션 연구의 세부 사항은 다음과 같다.
성능 곡선(805)은 외부 변환 행렬 Gout이 임펄스 응답 c=(1,0,1,1,0,1,1)에 의하여 특징지어지는 상삼각 테플리츠 행렬이고, 내부 변환은 이고, 데이터 인덱스 집합 A는 해밍 스코어 함수 (={16, 24, 28, 30, 31, 32, 40, 44, 46, 47, 48, 52, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 72, 76, 78, 79, 80, 84, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 100, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128}, Reed-Muller 코드와 일치함)를 사용하여 구성되고, FDB a는 0이고, 내부 디코더(231)는 Fano 메트릭을 사용하고, 외부 디코더(232)는 순차 디코딩 알고리즘을 사용하도록 하는 TF 코딩 시스템의 가장 바람직한 실시예에 따라 구성된 TF 코딩 시스템에 속한다. 이 스킴에 대한 코드 레이트를 분석하는 것이 좋다. 이전에 언급된 바와 같이, 본 원리는 주어진 전체 코드 레이트 R에 대해 Rout=R 및 Rin=1의 레이트에서 작동하는 것을 목표로 한다. 여기서, R=1/2이다. 외부 및 내부 코드 레이트는 Rout=64/112 및 Rin=112/128이다. 데이터 인덱스 집합 A의 가장 작은 요소가 16과 같기 때문에, Rout=64/112이므로 DCB v의 처음 16개 동결된 비트는 인과적 변환 u=vGout을 통해 전파되고 OTB u의 처음 16비트는 그대로 동결된 상태로 유지된다. 따라서, 효과적으로, 외부 코드의 코드 블록 길이는 128 대신 128-16=112이다. 이 예는 본 원리가 Rout=R 및 Rin=1 레이트를 목표로 하지만, 데이터 인덱스 집합의 첫 번째 요소가 1이 아닐 수 있음으로 인해 이 목표가 완벽하게 충족되지 않을 수 있음을 보여준다.
성능 곡선(801)은 연속 제거(SC) 디코딩을 갖는 리드-뮬러 코드에 속한다. 리드-뮬러 코드는 변환 코딩의 특수 인스턴스(Gout=I(단위 행렬), , 해밍 스코어 함수를 사용하여 선택된 A 및 a=0)로서 얻어진다. 따라서, 801과 805를 비교하면 본 원리에 따라 외부 변환을 사용할 때의 이점을 알 수 있다. (퇴보된) 연접 코딩 시스템으로서, 리드-뮬러 코드는 여기서 Rout=1, Rin=1/2 및 R=1/2의 레이트를 갖는다.
성능 곡선(802)은 연속 제거 디코딩을 갖는 폴라 코드에 속한다. 이 경우도 변환 코딩의 퇴보된 형태로 볼 수 있다(Gout=I, , 상호 정보 스코어 함수를 사용하여 선택된 A(3dB SNR에서 최적화됨), a=0). 802와 805를 비교하면 본 원리에 따라 외부 변환을 사용할 때의 이점을 알 수 있다. (퇴보된) 연접 코딩 시스템으로서, 폴라 코드는 여기서 Rout=1, Rin=1/2 및 R=1/2의 레이트를 갖는다.
성능 곡선(803)은 외부 코드가 4비트 순환 중복 검사(CRC) 코드이고, 내부 코드가 리드-뮬러 코드, 디코더는 목록 크기가 32이고 CRC 길이가 4비트인 CRC 지원 연속 제거 목록(CA-SCL) 디코더인 연접 코딩 시스템(Forney의 의미에서)에 속한다. (4비트 CRC는 0, 4, 8, 16비트의 대체 길이 중에서 최고의 성능을 제공한다.) 코드 레이트는 Rout=64/68, Rin=68/128 및 R=1/2이다.
성능 곡선(804)은 외부 코드가 8비트 CRC 코드이고, 내부 코드가 3dB SNR에 최적화된 폴라 코드이고, 디코더가 목록 크기 32 및 CRC 길이 8비트를 갖는 CA-SCL 디코더인 연접 코딩 시스템에 속한다. (8비트 CRC는 0, 4, 8, 16비트의 대체 길이 중에서 최고의 성능을 제공한다.) 코드 레이트는 Rout=64/72, Rin=72/128 및 R=1/2이다.
요약하면, 도 8a는 예시적인 TF 코딩 시스템이 리드-뮬러 및 폴라 코드가 상당히 복잡한 CA-SCL 디코더를 사용하여 디코딩되는 경우에도 선행 기술보다 훨씬 더 나은 성능을 제공한다는 것을 보여준다. N=128의 비교적 작은 블록 길이에서 이러한 상당한 개선이 이루어졌다는 점은 주목할 가치가 있다. 이러한 짧은 블록 길이의 코드는 일반적으로 우주 통신의 원격 측정 정보 및 셀룰러 시스템의 자원 할당 정보와 같은 통신 시스템의 민감한 제어 정보를 보호하는 데 사용된다. 따라서, 도 8a는 본 원리의 실용적인 유용성과 잠재적인 응용을 보여준다. 또한 본 원리에 대한 레이트 쌍(Rout, Rin)이 선행 기술을 나타내는 다른 코드에 대한 것과 실질적으로 다르다는 점에 주목할 가치가 있다. 본 원리는 레이트 Rout을 1/2에 가깝게 설정하고 Rin을 1에 가깝게 설정하는 반면, 선행 기술은 Rout을 1에 가깝거나 같게 설정하고 Rin을 1/2에 가깝거나 같게 설정한다. 본 원리가 오류 정정을 위해 강력한 외부 코드에 주로 의존하는 반면, 선행 기술의 방법은 주로 오류 정정을 위해 내부 코드의 강도에 의존한다.
다음으로, 성능이 곡선(805)에 의해 표시되는 TF 코딩 시스템의 설계를 논의하기 위해 도 8b를 참조한다. 도 8b는 본 원리와 선행 기술에 대한 정보 및 레이트 할당 프로파일을 비교하는 그래프(810)를 도시한다. 도 8b의 모든 곡선은 3dB SNR에서 AWGN 채널에 대해 계산된다. 3dB SNR에서 AWGN 채널의 용량과 컷오프 레이트는 각각 I(W)=0.72비트와 Ro(W)=0.55비트로 주어진다.
선행 기술은 각각 인덱스 변수 i에 대한 누적 용량 i·I(W), 누적 컷오프 레이트 i·R0(W) 및 누적 레이트 i·R 의 곡선 (811, 812 및 813)으로 도 8b에 표시된다. 곡선(811, 812, 813)에 대한 숫자 값은 레이트 R=1/2의 컨볼루션 코드를 나타낸다. (실제로, 레이트 ½의 컨볼루션 코드에 대한 누적 레이트의 더 정확한 플롯은 홀수 시간 인덱스에서 1비트의 점프를 가질 것이다. 따라서, 곡선 (813)은 근사치이다.) 레이트 ½의 컨볼루션 코드에 대한 레이트 프로파일(813)이 컷오프 레이트 프로파일(812) 아래에 있음을 알 수 있다; 따라서, 순차 디코더를 사용하여 과도한 계산 복잡도 없이 컨볼루션 코드를 디코딩할 수 있을 것으로 예상한다. 한편, 컷오프 레이트 프로파일(812)과 레이트 프로파일(813) 사이의 갭은 상당히 좁다; 따라서, 때때로 디코더 타임-아웃 및/또는 버퍼 오버플로가 발생하는 긴 탐색이 있을 것으로 예상한다.
본 원리는 도 8b에서 곡선 (814, 815, 816)으로 표현되며, 이는 각각 인덱스 변수 i{1,…, N}의 함수로서의 누적 용량 , 누적 컷오프 레이트 , 누적 레이트 이다. 곡선 (814, 815, 816)에 대한 숫자 값은 성능이 곡선(805)과 관련하여 위에서 논의된 TF 코드에 속한다. 곡선(814 및 815)은 채널 용량 및 컷오프 레이트에 대한 편극 효과(외부 디코더(232)에서 볼 수 있음)를 각각 나타낸다. 인덱스 i의 작은 값에 대해, 누적 용량(814) 및 누적 컷오프 레이트(815)는 매우 느리게 상승하며, 이는 각각의 양의 0으로의 편극을 나타내며; 인덱스 i의 큰 값에 대해, 곡선(814 및 815)의 기울기는 1에 접근하며, 이는 각각의 양의 1로의 편극을 나타낸다. TF 코딩 시스템이 곡선(815)의 최종 값이 곡선(812)의 최종 값보다 상당히 크다는 점에서 컷오프 레이트를 높인다는 점은 주목할 만하다. TF 코드는 내부 변환 Gin의 효과로 인해 컷오프 레이트를 높이고 외부 디코더(232) 내부에 위치한 순차 디코더는 증가된 컷오프 레이트를 이용할 수 있다. 레이트 곡선(816)이 컷오프 레이트 곡선(815)과 넓어지는 갭을 가지며, 이는 순차 디코딩에서 감소된 복잡성(계산의 평균 및 고차원 모멘트의 관점에서)으로 해석된다는 것을 관찰한다.
도 9는 본 개시에 따라 오류 정정 코딩이 구현될 수 있는 예시적인 무선 네트워크를 도시한다. 도 9에 도시된 무선 네트워크(900)의 실시 예는 단지 예시를 위한 것이다. 무선 네트워크(900)의 다른 실시 예는 본 개시의 범위를 벗어나지 않고 사용될 수 있다. 무선 네트워크(900)는 eNodeB (eNB)(901), eNB(902) 및 Enb(903)를 포함한다. eNB(901)는 eNB(902) 및 eNB(903)와 통신한다. eNB(901)는 또한 인터넷, 독점 IP 네트워크 또는 다른 데이터 네트워크와 같은 적어도 하나의 인터넷 프로토콜(IP) 네트워크(930)와 통신한다.
네트워크 유형에 따라, "eNodeB"또는 "eNB"대신 "기지국", "BS", 또는 "액세스 포인트"와 같은 다른 잘 알려진 용어가 사용될 수 있다. 편의상, "eNodeB"및 "eNB"라는 용어는 이 특허 문서에서 원격 터미널에 무선 액세스를 제공하는 네트워크 인프라 구성 요소를 지칭하기 위해 사용되었다. 또한, 네트워크 유형에 따라, "이동국"(또는 "MS"), "가입자 스테이션"(또는 "SS"), "원격 터미널", "무선 터미널" 또는 "사용자 장치"와 같이 "사용자 장비" 또는 "UE"대신 다른 잘 알려진 용어가 사용될 수 있다. 편의상, 본 특허 문서에서 "사용자 장비" 및 "UE"라는 용어는, UE가 모바일 디바이스(예: 이동 전화 또는 스마트 폰)인지 또는 일반적으로 간주되는 고정 디바이스(예: 데스크톱 컴퓨터 또는 자동 판매기)인지 여부에 관계없이, eNB에 무선으로 액세스하는 원격 무선 장비를 지칭하기 위해 사용되었다.
eNB(902)는 eNB(902)의 커버리지 영역(920) 내의 제1 복수의 사용자 장비(UE)에 대해 네트워크(930)에 대한 무선 광대역 액세스를 제공한다. 제1 복수의 UE는 소기업(SB)에 위치할 수 있는 UE(911); 기업(E)에 위치할 수 있는 UE(912); WiFi 핫스팟(HS)에 위치할 수 있는 UE(913); 제1 거주지(R1)에 위치할 수 있는 UE(914); 제2 거주지(R2)에 위치할 수 있는 UE(915); 및 휴대 전화, 무선 랩톱, 무선 PDA(Personal Digital Assistant), 태블릿 등과 같은 모바일 디바이스(M)일 수 있는 UE(916)를 포함한다. eNB(903)는 eNB(903)의 커버리지 영역(925) 내의 제2 복수의 UE들에 대해 네트워크(930)에 대한 무선 광대역 액세스를 제공한다. 제2 복수의 UE는 UE(915) 및 UE(916)를 포함한다. 일부 실시 예에서, 하나 이상의 eNB(901-903)는 3G, 4G 또는 5G, LTE(long-term evolution), LTE-A, WiMAX 또는 기타 고급 무선 통신 기술을 사용하여 서로 및 UE (911-916)와 통신할 수 있다.
점선은 커버리지 영역(920 및 925)의 대략적인 범위를 나타내며, 이는 단지 예시 및 설명을 위해 대략 원형으로 도시된다. 커버리지 영역(920 및 925)과 같은 eNB와 연관된 커버리지 영역은, 커버리지 영역은 eNB의 구성 및 자연 및 인공 장애물과 연관된 무선 환경의 변화에 따라 불규칙한 모양을 포함하여 다른 모양을 가질 수 있음을 분명히 이해해야 한다.
아래에서 더 상세히 설명되는 바와 같이, BS(901), BS(902) 및 BS(903) 중 하나 이상은 본 개시의 실시 예들에서 설명된 바와 같이 2D 안테나 어레이를 포함한다. 일부 실시 예에서, BS(901), BS(902) 및 BS(903) 중 하나 이상은 2D 안테나 어레이를 갖는 시스템에 대한 코드북 설계 및 구조를 지원한다.
도 9는 무선 네트워크(900)의 일례를 도시하고 있지만, 도 9에 대해 다양한 변경이 이루어질 수 있다. 예를 들어, 무선 네트워크(900)는 임의의 적절한 배열로 임의의 수의 eNB 및 임의의 수의 UE를 포함할 수 있다. 또한, eNB(901)는 임의의 수의 UE들과 직접 통신할 수 있고, 이들 UE들에게 네트워크 (930)에 대한 무선 광대역 액세스를 제공할 수 있다. 유사하게, 각각의 eNB(902-903)는 네트워크(930)와 직접 통신할 수 있고, UE들에게 네트워크(930)에 대한 직접적인 무선 광대역 액세스를 제공할 수 있다. 또한, eNB(901, 902 및/또는 903)는 외부 전화 네트워크 또는 다른 유형의 데이터 네트워크와 같은 다른 또는 추가 외부 네트워크에 대한 액세스를 제공할 수 있다.
도면에 도시되고 위에서 설명된 예시적인 채널 디코딩 시스템은 아래에서 더 상세히 설명되는 바와 같이 eNB(예: eNB(902)) 및/또는 UE(예: UE(916))에서 구현될 수 있다.
도 10a는 본 개시에 따른 오류 정정 코딩 구현될 수 있는 예시적인 사용자 장비 네트워크를 도시한다. 도 10a에 예시된 UE(916)의 실시 예는 단지 예시를 위한 것이며, 도 9의 UE(911-915)는 동일하거나 유사한 구성을 가질 수 있다. 그러나, UE는 매우 다양한 구성으로 제공되며, 도 10a는 본 개시의 범위를 UE의 임의의 특정 구현으로 제한하지 않는다.
UE(916)는 안테나(1005), 무선 주파수(RF) 송수신기(1010), 전송(TX) 처리 회로(1015) (도 1의 인코더(110)를 포함할 수 있음), 마이크(1020) 및 수신(RX) 처리 회로(1025) (도 1의 디코더(130)를 포함할 수 있음)를 포함한다. UE(916)는 또한 스피커(1030), 메인 프로세서(1040), 입/출력(I/O) 인터페이스(IF)(1045), 키패드(1050), 디스플레이(1055) 및 메모리(1060)를 포함한다. 메모리(1060)는 기본 운영 체제(OS) 프로그램(1061) 및 하나 이상의 애플리케이션(1062)을 포함한다. OS 프로그램(1061), 애플리케이션(1062) 중 하나 또는 이들의 일부 조합은 도 1 내지 8의 다양한 실시 예에서 설명된 바와 같이 오류 정정 코딩 사용을 위한 프로그래밍을 구현할 수 있다.
RF 송수신기(1010)는 안테나(1005)로부터 네트워크(900)의 eNB에 의해 전송된 수신 RF 신호를 수신한다. RF 송수신기(1010)는 수신 RF 신호를 다운 컨버팅하여 수신기(Rx) 처리 회로(1025)로 전송될 중간 주파수(IF) 또는 기저 대역 신호를 생성할 수 있다. Rx 처리 회로(1025)는 처리된 신호를 스피커(1030)로(예: 음성 데이터) 또는 추가 처리를 위해 메인 프로세서(1040)로(예: 웹 브라우징 데이터) 전송한다.
송신(Tx) 처리 회로(1015)는 소스 데이터 블록에 대한 적어도 일부 입력 데이터, 마이크로폰(1020)으로부터의 아날로그 또는 디지털 음성 데이터 또는 메인 프로세서(1040)로부터 다른 발신 기저 대역 데이터(예: 웹 데이터, 이메일 또는 대화형 비디오 게임 데이터)를 수신한다. Tx 처리 회로(1015)는 인코딩을 구현한다. RF 송수신기(1010)는 송신 처리된 기저 대역 또는 IF 신호를 Tx 처리 회로(1015)로부터 수신하고, 기저 대역 또는 IF 신호를 안테나(1005)를 통해 전송되는 RF 신호로 업 컨버팅한다.
메인 프로세서(1040)는 하나 이상의 프로세서 또는 다른 처리 장치를 포함할 수 있고, UE(916)의 전반적인 동작을 제어하기 위해 메모리(1060)에 저장된 기본 OS 프로그램(1061)을 실행할 수 있다. 예를 들어, 메인 프로세서(1040)는 잘 알려진 원리에 따라 RF 송수신기(1010), Rx 처리 회로(1025) 및 Tx 처리 회로(1015)에 의한 순방향 채널 신호의 수신 및 역방향 채널 신호의 송신을 제어할 수 있다. 일부 실시 예에서, 메인 프로세서(1040)는 적어도 하나의 프로그래밍 가능한 마이크로 프로세서 또는 마이크로 컨트롤러를 포함하는 반면, 다른 실시 예에서 메인 프로세서는 전용 회로(예를 들어, 체계적 및/또는 비 체계적 인코딩 또는 디코딩 프로세스, 천공 프로세스, 데이터 매핑 등을 위한 것)뿐만 아니라 (선택적으로) 프로그래밍 가능한 로직 또는 처리 회로를 포함한다.
메인 프로세서(1040)는 또한 2D 안테나 어레이를 갖는 시스템에 대한 채널 품질 측정 및 보고를 위한 동작과 같이 메모리(1060)에 상주하는 다른 프로세스 및 프로그램을 실행할 수 있다. 메인 프로세서(1040)는 실행 프로세스에 의해 요구되는 대로 데이터 및/또는 명령을 메모리(1060) 안팎으로 이동시킬 수 있다. 일부 실시 예에서, 메인 프로세서(1040)는 OS 프로그램(1061)에 기초하여 또는 eNB 또는 운영자로부터 수신된 신호에 응답하여 애플리케이션(1062)을 실행하도록 구성된다. 메인 프로세서(1040)는 또한 I/O 인터페이스(1045)에 연결되며, 이는 UE(916)에 랩탑 컴퓨터 및 핸드 헬드 컴퓨터와 같은 다른 디바이스에 연결하는 기능을 제공한다. I/O 인터페이스(1045)는 이들 액세서리와 메인 컨트롤러(1040) 사이의 통신 경로이다.
메인 프로세서(1040)는 또한 키패드(1050)(단순히 단일 버튼일 수 있거나 어레이 또는 다른 버튼들의 세트일 수 있음) 및 디스플레이 유닛(1055)에 결합된다. UE(916)의 운영자는 키패드(1050)를 사용하여 UE(916)에 데이터를 입력할 수 있다. 디스플레이(1055)는 예를 들어 웹 사이트로부터 텍스트 및/또는 적어도 제한된 그래픽을 렌더링 할 수 있고, 공지된 관행에 따라 사용자에 의해 터치 입력을 수신할 수 있는 터치 스크린 디스플레이 또는 다른 디스플레이일 수 있다. 메모리(1060)는 메인 프로세서(1040)에 연결되고, 메모리(1060)의 적어도 일부는 랜덤 액세스 메모리(RAM)를 포함할 수 있고, 메모리(1060)의 다른 부분은 플래시 메모리 또는 다른 읽기 전용 메모리(ROM)를 포함할 수 있다.
도 10a는 UE(916)의 일례를 도시하고 있지만, 도 10a에 대해 다양한 변경이 이루어질 수 있다. 예를 들어, 도 10a의 다양한 구성 요소가 결합되거나, 더 세분화되거나, 생략될 수 있고, 특정 요구에 따라 추가 구성 요소가 추가될 수 있다. 특정 예로서, 메인 프로세서(1040)는 하나 이상의 중앙 처리 장치(CPU) 및 하나 이상의 그래픽 처리 장치(GPU)와 같은 다중 프로세서로 분할될 수 있다. 또한, 도 10a는 이동 전화 또는 스마트 폰으로 구성된 UE(916)를 예시하지만, UE는 다른 유형의 이동 또는 고정 디바이스로서 동작하도록 구성될 수 있다.
도 10b는 본 개시에 따라 오류 정정 코딩이 구현될 수 있는 예시적인 eNB(Enhanced NodeB) 네트워크를 예시한다. 도 10b에 도시된 eNB(902)의 실시 예는 단지 예시를 위한 것이며, 도 9의 다른 eNB는 동일하거나 유사한 구성을 가질 수 있다. 그러나, eNB는 매우 다양한 구성으로 제공되며, 도 10b는 본 개시의 범위를 eNB의 임의의 특정 구현으로 제한하지 않는다. eNB(901) 및 eNB(903)는 eNB(902)와 동일하거나 유사한 구조를 포함할 수 있다는 점에 유의한다.
도 10b에 도시 된 바와 같이, eNB(902)는 다중 안테나(1070a-1070n), 다중 RF 송수신기(1072a-1072n), 송신(Tx) 처리 회로(1074) 및 수신(Rx) 처리 회로(1076)를 포함한다. 특정 실시 예에서, 다중 안테나(1070a-1070n) 중 하나 이상은 2D 안테나 어레이를 포함한다. eNB(902)는 또한 컨트롤러/프로세서(1078), 메모리(1080) 및 백홀 또는 네트워크 인터페이스(1082)를 포함한다.
RF 송수신기(1072a-1072n)는 안테나(1070a-1070n)로부터 UE 또는 다른 eNB에 의해 전송된 신호와 같은 수신 RF 신호를 수신한다. RF 송수신기(1072a-1072n)는 수신 RF 신호를 다운 컨버팅하여 IF 또는 기저 대역 신호를 생성한다. IF 또는 기저 대역 신호는 기저 대역 또는 IF 신호를 필터링, 디코딩 및/또는 디지털화함으로써 처리된 신호를 생성하는 Rx 처리 회로(1076)로 전송된다. Rx 처리 회로(1076)는 추가 처리를 위해 처리된 신호를 컨트롤러/프로세서(1078)로 전송한다.
Tx 처리 회로(1074)는 컨트롤러/프로세서(1078)로부터 소스 데이터 블록에 대한 적어도 일부 입력 데이터로서 아날로그 또는 디지털 데이터(예: 음성 데이터, 웹 데이터, 이메일 또는 대화형 비디오 게임 데이터)를 수신한다. Tx 처리 회로(1074)는 처리된 신호를 생성하기 위해 송신 기저 대역 데이터를 인코딩, 다중화 및/또는 디지털화하기 위한 회로를 구현한다. RF 트랜시버(1072a-1072n)는 Tx 처리 회로(1074)로부터 처리된 송신 신호를 수신하고, 기저 대역 또는 IF 신호를 안테나(1070a-1070n)를 통해 전송되는 RF 신호로 업 컨버팅한다.
컨트롤러/프로세서(1078)는 eNB(902)의 전체 동작을 제어하는 하나 이상의 프로세서 또는 다른 처리 장치를 포함할 수 있다. 예를 들어, 컨트롤러/프로세서(1078)는 잘 알려진 원리에 따라 RF 송수신기(1072a-1072n), Rx 처리 회로(1076) 및 Tx 처리 회로(1074)에 의한 순방향 채널 신호의 수신 및 역방향 채널 신호의 전송을 제어할 수 있다. 컨트롤러/프로세서(1078)는 더 진보된 무선 통신 기능과 같은 추가 기능도 지원할 수 있다. 컨트롤러/프로세서(1078)에 의해 eNB(902)에서 매우 다양한 다른 기능들 중 임의의 것이 지원될 수 있다. 일부 실시 예에서, 컨트롤러/프로세서(1078)는 적어도 하나의 마이크로 프로세서 또는 마이크로 컨트롤러를 포함하는 반면, 다른 실시 예에서 메인 프로세서는 전용 회로(예를 들어, 체계적 및/또는 비 체계적 인코딩 프로세스, 천공 프로세스, 데이터 매핑 등을 위한 것)뿐만 아니라 (선택적으로) 프로그래밍 가능한 로직 또는 처리 회로를 포함한다.
컨트롤러/프로세서(1078)는 또한 기본 OS와 같이 메모리(1080)에 상주하는 프로그램 및 다른 프로세스를 실행할 수 있다. 컨트롤러/프로세서(1078)는 또한 2D 안테나 어레이를 갖는 시스템에 대한 채널 품질 측정 및 보고를 지원할 수 있다. 일부 실시 예에서, 컨트롤러/프로세서(1078)는 엔티티 간의 통신을 지원한다. 컨트롤러/프로세서(1078)는 실행 프로세스에 의해 요구되는 대로 데이터 및/또는 명령을 메모리(1080) 안팎으로 이동시킬 수 있다.
컨트롤러/프로세서(1078)는 또한 백홀 또는 네트워크 인터페이스(1082)에 연결된다. 백홀 또는 네트워크 인터페이스(1082)는 eNB(902)가 백홀 연결을 통해 또는 네트워크를 통해 다른 디바이스 또는 시스템과 통신할 수 있게 한다. 인터페이스(1082)는 임의의 적절한 유선 또는 무선 연결(들)을 통한 통신을 지원할 수 있다. 예를 들어, eNB(902)가 (3G, 4G, 5G, LTE 또는 LTE-A를 지원하는 것과 같은) 셀룰러 통신 시스템의 일부로서 구현될 때, 인터페이스(1082)는 eNB(902)가 유선 또는 무선 백홀 연결 네트워크를 통해 다른 eNB들과 통신하도록 허용할 수 있다. eNB(902)가 액세스 포인트로서 구현될 때, 인터페이스(1082)는 eNB(902)가 유선 또는 무선 근거리 통신망을 통해 또는 유선 또는 무선 연결을 통해 더 큰 네트워크(예를 들어, 인터넷)로 통신하도록 허용할 수 있다. 인터페이스(1082)는 이더넷 또는 RF 트랜시버와 같은 유선 또는 무선 연결을 통한 통신을 지원하는 임의의 적절한 구조를 포함한다.
메모리(1080)는 컨트롤러/프로세서(1078)에 연결된다. 메모리(1080)의 일부는 RAM을 포함할 수 있고, 메모리(1080)의 다른 부분은 플래시 메모리 또는 다른 ROM을 포함할 수 있다. 특정 실시 예에서, 복수의 명령이 메모리에 저장된다. 복수의 명령은 컨트롤러/프로세서(1078)가 체계적 및/또는 비 체계적 인코딩 또는 디코딩 프로세스, 천공 프로세스, 데이터 매핑 등을 수행하도록 구성된다.
도 10b는 eNB(902)의 일 예를 도시하지만, 도 10b에 대해 다양한 변경이 이루어질 수 있다. 예를 들어, eNB(902)는 도시된 각 컴포넌트의 임의의 수를 포함할 수 있다. 특정 예로서, 액세스 포인트는 다수의 인터페이스(1082)를 포함할 수 있고, 컨르롤러/프로세서(1078)는 상이한 네트워크 주소 사이에서 데이터를 라우팅하기 위한 라우팅 기능을 지원할 수 있다. 다른 특정 예로서, Tx 처리 회로(1074)의 단일 인스턴스 및 Rx 처리 회로(1076)의 단일 인스턴스를 포함하는 것으로 도시되었지만, eNB(902)는 각각의 다중 인스턴스(예를 들어, RF 트랜시버 당 하나)를 포함할 수 있다.
선행 기술과의 비교. 본 개시의 이 부분에서, 본 원리는 선행 기술과 비교하고 몇 가지 주요 차이점을 지적한다.
실용적인 관점에서, 본 원리의 가장 중요한 측면은 도 8a에 도시된 바와 같이 선행 기술에 비해 상당한 성능 이득을 제공한다는 것이다. 이 개선은 여러 기술을 결합하여 얻을 수 있다. 내부 변환은 채널 편극을 생성하는 수단으로 사용된다. 외부 변환은 트리 코드를 만드는 데 사용된다. (새로운 점수 기능 방법을 기초로 한)데이터 인덱스 집합 선택 방법은 디코더에서 깊이 우선 트리 탐색 알고리즘에 이용 가능한 편극 정보의 양에 따라 소스 데이터 비트의 유입을 조절하는 데 사용된다. 본 원리는 방정식이 노이즈에 의해 손상될 때 선형 방정식의 세트를 푸는 효율적이고 강력한 방법으로 삼각 인수분해를 사용한다.
폴라 코딩의 선행 기술은 특히 CRC를 외부 코드로서 사용하고 내부 폴라 코드를 디코딩하기 위한 목록 디코더를 사용함으로써 다양한 연접 방식에 의해 가장 잘 알려진 성능 결과를 달성한다. 이러한 CRC 지원 목록 디코딩 방법에서, 외부 코드는 1에 가까운 레이트 Rout을 갖고 내부 코드는 R=RoutRin이라는 제약 조건하에서 전체 코드에 대한 목표 레이트 R보다 약간 높은 비율 Rin을 갖는다; 복잡성은 내부 디코더 내부에 거의 완전히 존재하는 반면 외부 디코더는 간단한 CRC 체크를 수행한다. 본 원리는 특정 중요한 측면에서 선행 기술의 연접 방식과 다르다. 우선, 그들의 바람직한 실시예에서 본 원리는 1에 가까운 레이트 Rin을 갖는 내부 코드 및 R에 가까운 레이트 Rout을 갖는 외부 코드를 사용한다. 즉, 내부 코드는 상당한 리던던시를 추가하지 않는다(따라서 독립 실행형 코드로서 상당한 오류 정정 기능이 없음). 본 원리는 주로 오류 정정을 위한 강력한 외부 코드에 의존하고, 선행 기술의 연접 방법은 주로 오류 정정을 위한 내부 코드의 강도에 의존한다.
폴라 변환은 폴라 변환 입력의 일부 좌표가 동결된 독립 실행형 코딩 방식으로서 선행 기술에서 사용된다; 본 원리는 채널 편극을 생성하는 수단으로 폴라 변환을 사용한다. 바람직한 실시예에서 본 원리는 내부 디코더에 의해 제공되는 편극 상호 정보를 활용하여 트리 탐색 알고리즘을 사용하여 디코딩될 수 있는 트리 코드를 구성한다.
낮은 복잡도를 위해, 트리 코드는 컨볼루션 연산을 사용하여 구성된다. 선행 기술의 컨볼루션 코드와 달리, 컨볼루션 연산에 대한 입력은 데이터 심볼과 동결된 심볼의 혼합이다. 데이터 심볼과 동결된 심볼의 혼합은 내부 변환을 통해 채널에서 오는 편극 정보에 제공된 데이터 레이트를 일치시키는 알고리즘에 따라 수행된다. 바람직한 실시예에서, TF 코드는 외부 코드를 디코딩하기 위한 강력한 디코더(순차 디코더)와 내부 변환에 의해 제공되는 순차 디코딩의 컷오프 레이트를 부스팅하기 위한 편극의 유익한 효과 모두의 이점을 누린다.
선행 기술의 컨볼루션 코딩은 메모리리스 채널에 적합한 시간 불변 비율 프로파일을 사용한다. 본 원리는 외부 변환에 대한 입력 좌표의 부분 집합이 동결될 때 컨볼루션 코딩의 한 유형을 사용한다; 그러나, 결과 컨볼루션 코드는 외부 변환에 의해 표시되는 유효 채널의 시간-변화 정보 프로파일과 일치하는 시간-변화 비율 프로파일을 갖는다. 선행 기술의 컨볼루션 코드는 종료(termination)가 필요하다; 본 원리에 따른 외부 변환은 종료를 사용하지 않는다.
선행 기술의 순차 디코더는 주로 메모리리스 채널과 함께 사용되며; 본 원리는 메모리를 갖는 채널을 통해 코드를 디코딩하기 위해 순차 디코딩을 사용한다(내부 폴라 변환에 의해 생성된 채널은 메모리를 가짐). 선행 기술의 순차 디코더는 노드의 깊이에 의존하지 않는 시간 불변 바이어스 항(term)을 사용한다; 본 원리에 따른 순차 디코더는 코드 트리의 노드 깊이에 의존하는 시간-변화 바이어스 항을 사용한다.
본 원리의 확장. 본 명세서에서 본 원리를 쉽게 확장할 수 있는 몇 가지 방향을 지적한다. 이러한 모든 확장은 당업자에게 명백할 것이며 본 개시 내용에 의해 커버된다.
위에서 지적한 바와 같이, 본 원리는 외부 디코더(232)의 일부로서 임의의 트리 탐색 알고리즘과 함께 적용될 수 있다. 한 가지 가능성은 메모리리스 채널을 통해 컨볼루션 코드를 디코딩하기 위한 ML 절차인 Viterbi 디코딩을 사용하는 것이다. Vitervi 디코딩은 채널(120)과 외부 디코더(232) 사이에 내부 디코더(231)가 존재하기 때문에, 외부 코더(232)는 메모리를 갖는 채널로 인식하므로 TF 코드를 디코딩하는 데 차선책이다. 그러나 목록이 있거나 없는 Viterbi 디코더를 사용하여 TF 코드를 디코딩하는 것은 여전히 가능하다.
설명의 단순성을 위해, 외부 변환 Gout이 엄격한 상삼각 행렬이고 내부 변환 Gin이 엄격한 하삼각 행렬이 되도록 TF 코드를 정의했다. Gout=PUQ 형식의 외부 변환 또는 Gin=P'LQ' 형식의 내부 변환을 사용하는 경우에도 본 원리의 이점이 보존될 수 있다는 것이 당업자에게 명백할 것이다. 여기서 P, Q, P', Q'는 순열 행렬이고 U와 L은 각각 엄격한 상삼각 행렬과 엄격한 하삼각 행렬이다. 본 원리는 이러한 순열의 도입이 하드웨어 또는 소프트웨어에서 본 원리의 구현을 용이하게 할 수 있음을 예견한다. 본 개시의 방법의 이러한 모든 변형은 본 원리에 의해 커버된다.
외부 변환 행렬 Gout 및 내부 변환 행렬 Gin은 본 원리의 바람직한 실시예에서 비-특이 행렬(non-singular matrices)이다. 그러나, 본 원리의 일부 실시예에서 Gout 또는 Gin이 특이(singular) 행렬 또는 비-정사각(non-square) 행렬일 수 있음을 예상한다. 이 상황은, 예를 들어, Gin의 일부 열을 삭제하는 것과 같이TCB의 일부 요소가 구멍이 뚫린 경우 발생할 수 있다.
외부 변환(Gout)과 내부 변환(Gin)이 동일한 차원을 갖지 않는 경우에도 본 원리의 이면에 있는 본질적인 아이디어가 적용될 수 있음은 당업자에게 명백할 것이다. 예를 들어, Gin의 행 수가 Gout의 열 수보다 크면, 두 번째 소스 데이터 블록 또는 두 번째 동결된 데이터 블록을 내부 변환 Gin의 입력에 삽입할 수 있다.
"METHODS AND APPARATUS FOR ERROR CORRECTION CODING WITH TRIANGULAR FACTORIZATION OF GENERATOR MATRIX"의 특정 실시예가 본 명세서에서 상세하게 설명되고 도면에 도시되어 있지만, 본 개시 내용에 포함되는 대상은 청구 범위에 의해서만 제한된다는 것을 이해해야한다. 본 개시는 예시적인 실시 예들로 설명되었지만, 다양한 변경 및 수정이 당업자에게 제안될 수 있다. 본 개시는 첨부된 청구 범위의 범위 내에 있는 그러한 변경 및 수정을 포함하는 것으로 의도된다. 본 출원의 설명은 특정 요소, 단계 또는 기능이 청구 범위에 포함되어야 하는 필수 또는 중요한 요소임을 암시하는 것으로 해석되어서는 안된다. 특허 대상의 범위는 허용된 청구 범위에 의해서만 정의된다.

Claims (16)

  1. 소스 데이터 블록 d를 전송 코드 블록 x로 인코딩하기 위한 통신 시스템에서 사용하기 위한 인코더 장치로서, 상기 인코더 장치는
    데이터 삽입기; 및
    변환 인코더를 포함하고,
    상기 인코더 장치는 파라미터 (N, K, Gout, Gin, A, a)의 집합에 따라 구성되고, 상기 N은 전송 코드 블록 x의 길이, 상기 K는 상기 소스 데이터 블록 d의 길이, 상기 Gout은 외부 변환 행렬이고, 상기 Gin은 내부 변환 행렬이며, 상기 A는 데이터 인덱스 집합이고, 상기 a는 동결된 데이터 블록이고, 상기 N 및 상기 K는 1K<N을 충족하는 정수이고, 상기 데이터 인덱스 집합 A는 크기 |A|=K인 {1,2,…,N}의 부분 집합이고, 상기 동결된 데이터 블록 a는 길이 N-K를 가지며, 상기 외부 변환 행렬 Gout은 인과적 임펄스 응답(causal impulse response) 에 의해 정의되는 N×N 상삼각 테플리츠 행렬(Toeplitz matrix)이고, 1≤m≤N-1을 만족하는 적어도 하나의 정수 m에 대해 상기 c0≠0, cm≠0이고, 상기 내부 변환 행렬 Gin은 크로네커 거듭제곱 에 의해 주어진 NХN 하삼각 폴라 변환 행렬이고, 상기 이며,
    상기 데이터 삽입기는 상기 소스 데이터 블록 d를 수신하고, vA=d로, 로 설정함으로써 데이터 컨테이너 블록 v를 생성하도록 구성되며, 상기 vA는 인덱스가 A에 있는 v의 좌표에 대응하는 v의 부분을 나타내고, 상기 는 인덱스가 A에 없는 v의 좌표에 대응하는 v의 부분을 나타내며
    상기 변환 인코더는 상기 데이터 컨테이너 블록 v를 수신하고, x=vGoutGin을 계산함으로써 상기 전송 코드 블록 x를 생성하도록 구성되며,
    상기 인코더 장치는 상기 전송 코드 블록 x를 상기 통신 시스템의 채널에 전송하도록 추가로 구성되는, 인코더 장치.
  2. 청구항 1에 있어서,
    상기 변환 인코더는:
    상기 데이터 컨테이너 블록 v를 수신하고 u=을 계산함으로써, 외부 변환 블록 u를 생성하도록 구성된 외부 변환 인코더; 및
    상기 외부 변환 블록 u를 수신하고 x=을 계산함으로써, 상기 전송 코드 블록 x를 생성하도록 구성된 내부 변환 인코더;를 포함하는, 인코더 장치.
  3. 청구항 1에 있어서,
    상기 데이터 인덱스 집합 는 포인트와이즈 스코어 함수(pointwise score function)에 따라 선택되고, 상기 포인트와이즈 스코어 함수는 해밍 스코어 함수, 상호 정보 스코어 함수, 또는 갤러거 스코어 함수 중 어느 하나인, 인코더 장치.
  4. 채널로부터 수신 코드 블록 y를 수신하고, 상기 수신 코드 블록 y를 디코딩하여 소스 데이터 블록 d의 추정치로서 디코딩된 소스 블록 을 생성하기 위한 통신 시스템에서 사용하기 위한 디코더 장치로서,
    상기 수신 코드 블록 y는 전송 코드 블록 x의 노이즈 버전을 포함하고, 상기 디코더 장치는:
    내부 디코더; 및
    외부 디코더를 포함하고,
    상기 디코더 장치는 파라미터 (N, K, Gout, Gin, A, a)의 집합에 따라 구성되고, 상기 N은 전송 코드 블록 x의 길이, 상기 K는 상기 소스 데이터 블록 d의 길이, 상기 Gout은 외부 변환 행렬이고, 상기 Gin은 내부 변환 행렬이며, 상기 A는 데이터 인덱스 집합이고, 상기 a는 동결된 데이터 블록이고, 상기 N 및 상기 K는 1K<N을 충족하는 정수이고, 상기 데이터 인덱스 집합 A는 크기 |A|=K인 {1,2,…,N}의 부분 집합이고, 상기 동결된 데이터 블록 a는 길이 N-K를 가지며, 상기 외부 변환 행렬 Gout은 인과적 임펄스 응답 에 의해 정의되는 N×N 상삼각 테플리츠 행렬이고, 1≤m≤N-1을 만족하는 적어도 하나의 정수 m에 대해 상기 c0≠0, cm≠0이고, 상기 내부 변환 행렬 Gin은 크로네커 거듭제곱 에 의해 주어진 NХN 하삼각 폴라 변환 행렬이고, 상기 이며, 상기 전송 코드 블록 x는 관계 x=vGoutGin에 의해 상기 소스 데이터 블록 d와 관련되고, 상기 v는 vA=d 및 인 데이터 컨테이너 블록이고, 상기 vA는 인덱스가 A에 있는 v의 좌표에 대응하는 v의 부분을 나타내고, 상기 는 인덱스가 A에 없는 v의 좌표에 대응하는 v의 부분을 나타내며,
    상기 내부 디코더는 상기 수신 코드 블록 y를 수신하고, 상기 외부 디코더로부터 노드 메트릭 요청을 수신하고, 상기 내부 변환 행렬 Gin에 따라 상기 노드 메트릭을 계산하고, 상기 계산된 노드 메트릭을 상기 외부 디코더로 전송하도록 구성되고;
    상기 외부 디코더는 상기 노드 메트릭 요청을 상기 내부 디코더로 전송하고, 상기 내부 디코더로부터 상기 계산된 노드 메트릭을 수신하고, 상기 외부 변환 행렬 Gout, 상기 데이터 인덱스 집합 및 상기 동결된 데이터 블록 a에 따라 디코딩된 데이터 컨테이너 블록 를 계산하도록 구성되고; 그리고
    상기 디코더 장치는 로 설정함으로써, 상기 디코딩된 데이터 컨테이너 블록 로부터 상기 디코딩된 소스 데이터 블록 를 추출하고- 상기 는 인덱스가 A에 있는 의 좌표에 대응하는 의 부분을 나타냄-,
    상기 디코딩된 소스 데이터 블록 를 상기 통신 시스템의 목적지로 전송하도록 추가로 구성되는, 디코더 장치.
  5. 청구항 4에 있어서,
    상기 내부 디코더는 폴라 코드의 연속 제거 디코딩 방법에 따라 상기 노드 메트릭을 계산하는, 디코더 장치.
  6. 청구항 4에 있어서,
    상기 외부 디코더는 트리 탐색 알고리즘을 사용하여 상기 디코딩된 데이터 컨테이너 블록 를 계산하는, 디코더 장치.
  7. 데이터 삽입기 및 변환 인코더를 포함하는 인코더 장치를 사용하여 소스 데이터 블록 d를 전송 코드 블록 x로 인코딩하기 위한 통신 시스템에서 사용하기 위한 인코딩 방법으로서, 상기 인코딩 방법은:
    상기 인코더 장치를 파라미터 (N, K, Gout, Gin, A, a)의 집합에 따라 구성하는 것을 포함하고, 상기 N은 전송 코드 블록 x의 길이, 상기 K는 상기 소스 데이터 블록 d의 길이, 상기 Gout은 외부 변환 행렬이고, 상기 Gin은 내부 변환 행렬이며, 상기 A는 데이터 인덱스 집합이고, 상기 a는 동결된 데이터 블록이고, 상기 N 및 상기 K는 1K<N을 충족하는 정수이고, 상기 데이터 인덱스 집합 A는 크기 |A|=K인 {1,2,…,N}의 부분 집합이고, 상기 동결된 데이터 블록 a는 길이 N-K를 가지며, 상기 외부 변환 행렬 Gout은 인과적 임펄스 응답 에 의해 정의되는 N×N 상삼각 테플리츠 행렬이고, 1≤m≤N-1을 만족하는 적어도 하나의 정수 m에 대해 상기 c0≠0, cm≠0이고, 상기 내부 변환 행렬 Gin은 크로네커 거듭제곱 에 의해 주어진 NХN 하삼각 폴라 변환 행렬이고, 상기 이며, 상기 인코딩 방법은:
    상기 데이터 삽입기에서, 상기 소스 데이터 블록 d를 수신하고;
    상기 데이터 삽입기 내에서, vA=d로, 로 설정함으로써 데이터 컨테이너 블록 v를 생성하고- 상기 vA는 인덱스가 A에 있는 v의 좌표에 대응하는 v의 부분을 나타내고, 상기 는 인덱스가 A에 없는 v의 좌표에 대응하는 v의 부분을 나타냄-;
    상기 변환 인코더에서, 상기 데이터 삽입기로부터 상기 데이터 컨테이너 블록 v를 수신하고;
    상기 변환 인코더에서, x=vGoutGin을 계산함으로써 상기 전송 코드 블록 x를 생성하고, 그리고
    상기 전송 코드 블록 x를 상기 통신 시스템의 채널에 전송하는 것을 포함하는, 인코딩 방법.
  8. 청구항 7에 있어서,
    상기 변환 인코더는:
    상기 데이터 컨테이너 블록 v를 수신하고 u=을 계산함으로써, 외부 변환 블록 u를 생성하는 외부 변환 인코더; 및
    상기 외부 변환 블록 u를 수신하고 x=를 계산함으로써, 상기 전송 코드 블록 x를 생성하도록 구성된 내부 변환 인코더;를 포함하는, 인코딩 방법.
  9. 청구항 7에 있어서,
    상기 데이터 인덱스 집합 는 포인트와이즈 스코어 함수에 따라 선택되고, 상기 포인트와이즈 스코어 함수는 해밍 스코어 함수, 상호 정보 스코어 함수, 또는 갤러거 스코어 함수 중 어느 하나인, 인코딩 방법.
  10. 채널로부터 수신 코드 블록 y를 수신하고, 내부 디코더 및 외부 디코더를 포함하는 디코더 장치를 사용하여 상기 수신 코드 블록 y를 디코딩하여 소스 데이터 블록 d의 추정치로서 디코딩된 소스 블록 을 생성하기 위한 통신 시스템에서 사용하기 위한 디코딩 방법으로서,
    상기 수신 코드 블록 y는 전송 코드 블록 x의 노이즈 버전을 포함하고, 상기 디코딩 방법은:
    상기 디코더 장치를 파라미터 (N, K, Gout, Gin, A, a)의 집합에 따라 구성하고, 상기 N은 상기 전송 코드 블록 x의 길이, 상기 K는 상기 소스 데이터 블록 d의 길이, 상기 Gout은 외부 변환 행렬이고, 상기 Gin은 내부 변환 행렬이며, 상기 A는 데이터 인덱스 집합이고, 상기 a는 동결된 데이터 블록이고, 상기 N 및 상기 K는 1K<N을 충족하는 정수이고, 상기 데이터 인덱스 집합 A는 크기 |A|=K인 {1,2,…,N}의 부분 집합이고, 상기 동결된 데이터 블록 a는 길이 N-K를 가지며, 상기 외부 변환 행렬 Gout은 인과적 임펄스 응답 에 의해 정의되는 N×N 상삼각 테플리츠 행렬이고, 1≤m≤N-1을 만족하는 적어도 하나의 정수 m에 대해 상기 c0≠0, cm≠0이고, 상기 내부 변환 행렬 Gin은 크로네커 거듭제곱 에 의해 주어진 NХN 하삼각 폴라 변환 행렬이고, 상기 이며, 상기 전송 코드 블록 x는 관계 x=vGoutGin에 의해 상기 소스 데이터 블록 d와 관련되고, 상기 v는 vA=d 및 인 데이터 컨테이너 블록이고, 상기 vA는 인덱스가 A에 있는 v의 좌표에 대응하는 v의 부분을 나타내고, 상기 는 인덱스가 A에 없는 v의 좌표에 대응하는 v의 부분을 나타내며,
    상기 내부 디코더에서, 상기 수신 코드 블록 y를 수신하고;
    상기 외부 디코더로부터 상기 내부 디코더로 노드 메트릭 요청을 전송하고;
    상기 내부 디코더에서, 상기 외부 디코더로부터 상기 노드 메트릭 요청을 수신하고;
    상기 내부 디코더에서, 상기 내부 변환 행렬 Gin에 따라 상기 노드 메트릭을 계산하고;
    상기 계산된 노드 메트릭을 상기 내부 디코더로부터 상기 외부 디코더로 전송하고;
    상기 외부 디코더에서, 상기 내부 디코더로부터 상기 계산된 노드 메트릭을 수신하고;
    상기 외부 디코더에서, 상기 외부 변환 행렬 Gout, 상기 데이터 인덱스 집합 및 상기 동결된 데이터 블록 a에 따라 디코딩된 데이터 컨테이너 블록 를 계산하고; 그리고
    상기 디코딩된 데이터 컨테이너 블록 의 부분 로부터 상기 디코딩된 소스 데이터 블록 를 추출하고- 상기 는 인덱스가 A에 있는 좌표에 대응하는 의 부분을 나타냄-,
    상기 디코딩된 소스 데이터 블록 를 상기 통신 시스템의 목적지로 전송하는 것을 포함하는, 디코딩 방법.
  11. 청구항 10에 있어서,
    상기 내부 디코더 내에서, 폴라 코드의 연속 제거 디코딩 방법에 따라 상기 노드 메트릭을 계산하는 것을 더 포함하는, 디코딩 방법.
  12. 청구항 10에 있어서,
    상기 외부 디코더 내에서, 트리 탐색 알고리즘을 사용하여 상기 디코딩된 데이터 컨테이너 블록 를 계산하는 것을 더 포함하는, 디코딩 방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
KR1020227003083A 2019-06-26 2020-06-15 생성기 행렬의 삼각 인수분해를 사용한 오류 정정 코딩 방법 및 장치 KR102684139B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/453,887 US11405055B2 (en) 2019-06-26 2019-06-26 Methods and apparatus for error correction coding with triangular factorization of generator matrix
US16/453,887 2019-06-26
PCT/IB2020/055588 WO2020261038A1 (en) 2019-06-26 2020-06-15 Methods and apparatus for error correction coding with triangular factorization of generator matrix

Publications (2)

Publication Number Publication Date
KR20220028031A KR20220028031A (ko) 2022-03-08
KR102684139B1 true KR102684139B1 (ko) 2024-07-12

Family

ID=71728786

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227003083A KR102684139B1 (ko) 2019-06-26 2020-06-15 생성기 행렬의 삼각 인수분해를 사용한 오류 정정 코딩 방법 및 장치

Country Status (6)

Country Link
US (1) US11405055B2 (ko)
EP (2) EP4293918A3 (ko)
KR (1) KR102684139B1 (ko)
CN (1) CN114342266B (ko)
TW (1) TW202107857A (ko)
WO (1) WO2020261038A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115664583A (zh) 2017-01-09 2023-01-31 中兴通讯股份有限公司 一种数据处理方法和装置
US11126895B2 (en) * 2019-05-22 2021-09-21 Lawrence Livermore National Security, Llc Mimicking of corruption in images
US11271593B2 (en) * 2019-12-02 2022-03-08 Polaran Yazilim Bilisim Danismanlik Ithalatihracat Sanayi Ticaret Limited Sirketi Methods and apparatus for systematic encoding of data in error correction coding using triangular factorization of generator matrix
CN115398809A (zh) * 2020-03-16 2022-11-25 加利福尼亚大学董事会 极化调整卷积码的列表解码
US11418220B2 (en) * 2020-03-20 2022-08-16 Huawei Technologies Co., Ltd. Method, system, and apparatus for a segmented polarization-adjusted convolutional (PAC) code
US11689218B2 (en) * 2021-02-19 2023-06-27 Electronics And Telecommunications Research Institute Decoding method and apparatus based on polar code in communication system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018060961A1 (en) 2016-09-30 2018-04-05 Telefonaktiebolaget Lm Ericsson (Publ) Spatially coupled polar codes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1626505B1 (en) * 2004-08-10 2011-03-09 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding a block low density parity check code
JP4821684B2 (ja) * 2007-04-02 2011-11-24 住友電気工業株式会社 符号化装置および符号化プログラム
US9362956B2 (en) * 2013-01-23 2016-06-07 Samsung Electronics Co., Ltd. Method and system for encoding and decoding data using concatenated polar codes
US10031806B2 (en) * 2016-11-01 2018-07-24 Cisco Technology, Inc. Efficient repair of erasure coded data based on coefficient matrix decomposition
US10608999B2 (en) * 2016-12-08 2020-03-31 Celeno Communications (Israel) Ltd. Establishing a secure uplink channel by transmitting a secret word over a secure downlink channel
EP3494641A1 (en) * 2017-01-10 2019-06-12 Telefonaktiebolaget LM Ericsson (PUBL) Coding and decoding of a polar code concatenated with interleaving with an outer systematic code
CN108737021B (zh) 2017-04-25 2021-12-10 华为技术有限公司 Polar码传输方法及装置
GB2563419B (en) * 2017-06-15 2020-04-22 Accelercomm Ltd Polar decoder, communication unit, integrated circuit and method therefor
US10404291B2 (en) * 2017-11-29 2019-09-03 Polaran Yazilim Bilisim Danismanlik Ithalet Ihracat Sanayi Ticaret Limited Sirketi Method and system for error correction in transmitting data using low complexity systematic encoder
US10700829B2 (en) * 2018-02-14 2020-06-30 Qualcomm Incorporated Combining decision metrics of a scrambled payload

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018060961A1 (en) 2016-09-30 2018-04-05 Telefonaktiebolaget Lm Ericsson (Publ) Spatially coupled polar codes

Also Published As

Publication number Publication date
KR20220028031A (ko) 2022-03-08
CN114342266B (zh) 2022-12-20
WO2020261038A4 (en) 2021-02-25
EP3991328A1 (en) 2022-05-04
WO2020261038A1 (en) 2020-12-30
EP4293918A3 (en) 2024-03-06
TW202107857A (zh) 2021-02-16
US11405055B2 (en) 2022-08-02
EP4293918A2 (en) 2023-12-20
JP2022544645A (ja) 2022-10-20
CN114342266A (zh) 2022-04-12
US20200412385A1 (en) 2020-12-31

Similar Documents

Publication Publication Date Title
KR102684139B1 (ko) 생성기 행렬의 삼각 인수분해를 사용한 오류 정정 코딩 방법 및 장치
US9362956B2 (en) Method and system for encoding and decoding data using concatenated polar codes
KR102548215B1 (ko) 압축된 채널 출력 정보를 사용하여 데이터를 디코딩하기 위한 시스템 및 방법
CN109314600B (zh) 用于在使用通用极化码时进行速率匹配的***和方法
US11323727B2 (en) Alteration of successive cancellation order in decoding of polar codes
CN111446969B (zh) 一种级联crc码的极化码编码方法及装置
KR20230079159A (ko) 외부 블록 코드 및 내부 편극 조정 컨볼루션 코드가 있는 직렬 연접 코드
KR102353777B1 (ko) 낮은 복잡도 체계적 인코더를 이용하는 데이터 전송에서의 오류 정정을 위한 방법 및 시스템
WO2019042370A1 (zh) 数据传输方法及装置
US20140173374A1 (en) Methods and apparatus for error coding
CN112737600B (zh) 译码方法和译码器
Venkatesh et al. A High-Throughput Reconfigurable LDPC Codec for Wide Band Digital Communications.
JP7525170B2 (ja) 生成行列の三角分解による誤り訂正符号化のための方法及び装置
EP4070461B1 (en) Methods and apparatus for systematic encoding of data in error correction coding using triangular factorization of generator matrix
Oliveira et al. Polarization-driven puncturing for polar codes in 5g systems
WO2023125061A1 (zh) 级联码的编码和译码的方法以及通信装置
SHI et al. Design of Raptor-Like Rate Compatible SC-LDPC Codes
WO2024033765A1 (en) Methods and apparatus for decoding of polar codes

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