KR20220118950A - 통신 시스템에서 폴라 코드에 기초한 디코딩 방법 및 장치 - Google Patents
통신 시스템에서 폴라 코드에 기초한 디코딩 방법 및 장치 Download PDFInfo
- Publication number
- KR20220118950A KR20220118950A KR1020220021609A KR20220021609A KR20220118950A KR 20220118950 A KR20220118950 A KR 20220118950A KR 1020220021609 A KR1020220021609 A KR 1020220021609A KR 20220021609 A KR20220021609 A KR 20220021609A KR 20220118950 A KR20220118950 A KR 20220118950A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- node
- output
- variable
- input
- Prior art date
Links
- 238000004891 communication Methods 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims description 56
- 238000006243 chemical reaction Methods 0.000 claims abstract description 41
- 238000011017 operating method Methods 0.000 claims abstract 2
- 230000006870 function Effects 0.000 claims description 50
- 230000005540 biological transmission Effects 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000001174 ascending effect Effects 0.000 claims description 6
- 230000002028 premature Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010295 mobile communication Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000010287 polarization Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
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)
- Mobile Radio Communication Systems (AREA)
Abstract
본 발명의 일 실시예에 따른 통신 시스템에서 수신 노드의 동작 방법은, 상기 수신 노드의 폴라 디코더를 구성하는 복수의 연산 단위들 각각에서 제1 및 제2 단위 입력 노드에 대응되는 제1 및 제2 입력 변환값에 기초하여, 제1 및 제2 단위 출력 노드에 대응되는 제1 및 제2 출력 변환값을 계산하는 디코딩 연산을 수행하는 단계를 포함하며, 상기 디코딩 연산을 수행하는 단계는, 제1 및 제2 변수의 갱신을 위한 복수의 회차들을 포함하는 반복 루프 연산을 수행하는 단계, 및 상기 갱신된 제1 및 제2 변수의 값에 기초하여, 상기 제1 출력 변환값을 계산하는 단계를 포함하며, 상기 반복 루프 연산은 상기 복수의 회차들 중 상기 제1 및 제2 변수가 갱신되지 않는 회차들의 수행 없이 종료될 수 있다.
Description
본 발명은 통신 시스템에서의 디코딩 기술에 관한 것으로, 보다 구체적으로는 폴라 코드에 기초한 디코딩 동작의 성능을 향상시키기 위한 기술에 관한 것이다.
정보통신 기술의 발전과 더불어 다양한 무선 통신 기술이 개발되고 있다. 대표적인 무선 통신 기술로 3GPP(3rd generation partnership project) 표준에서 규정된 LTE(long term evolution), NR(new radio) 등이 있다. LTE는 4G(4th Generation) 무선 통신 기술들 중에서 하나의 무선 통신 기술일 수 있고, NR은 5G(5th Generation) 무선 통신 기술들 중에서 하나의 무선 통신 기술일 수 있다.
통신 시스템에서 통신 노드가 무선 채널을 통해 다른 통신 노드로 데이터를 전송하는 경우, 유/무선 채널의 상태에 따라 데이터 정보에 오류가 발생할 수 있다. 특히, 한정된 통신 자원 상에서 통신 신호가 과밀화되어 송수신될 경우, 오류 발생 확률이 증가할 수 있다. 따라서, 전송된 데이터를 수신한 통신 노드가 데이터 정보를 정확하게 검출하기 위해서는 우수한 오류 정정 능력을 갖는 오류 정정 부호가 필요할 수 있다.
일례로, 오류 정정 부호의 하나인 폴라 코드(polar code)가 개발되었다. 폴라 코드는 데이터를 전달하는 물리적 채널에서의 채널 양극화 또는 채널 극성화(channel polarization) 현상에 기반하여 오류를 정정하기 위한 부호를 의미할 수 있다. 폴라 코드는 '폴라 부호' 또는 '극 부호' 등과 같이 칭할 수도 있다.
폴라 코드 방식에 따르면, 송신 노드는 폴라 코드를 사용하여 비트들(예를 들어, 정보 비트들(information bits))을 인코딩함으로써 코딩된 비트들(coded bits)을 생성할 수 있다. 송신 노드는 코딩된 비트들에 대한 변조(modulation) 동작을 수행함으로써 변조된 심볼들(modulated symbols)을 생성할 수 있다. 송신 노드는 변조된 심볼들을 무선 자원을 통해 전송할 수 있다.
수신 노드는 수신된 신호에 대한 복조(demodulation) 동작을 수행함으로써 복조된 심볼들(demodulated symbols)을 획득할 수 있다. 수신 노드는 폴라 코드에 기초하여 복조된 심볼들(예를 들어, 소프트 비트들(soft bits))에 대한 디코딩을 수행함으로써 정보 비트들을 획득할 수 있다. 폴라 코드에 기초한 디코딩 동작은 연속 제거(successive cancellation, SC) 방식에 기초하여 수행될 수 있다.
최근에는 한정된 무선 자원을 통해 더 많은 정보를 전송하기 위하여, 하나의 심볼을 통해 복수의 비트들을 효율적으로 전송하기 위한 기술들이 연구되고 있다. 이 경우, 폴라 코드 등의 오류 정정 부호 역시 하나의 비트 대신 복수의 비트로 구성된 심볼들의 송수신을 지원할 수 있도록 구성될 수 있다. 그러나, 심볼 당 비트 수가 증가함에 따라 수신 노드의 디코딩 동작에서의 복잡도 또는 연산량이 증가할 수 있다는 문제점이 있다.
이 배경기술 부분에 기재된 사항은 발명의 배경에 대한 이해를 증진하기 위하여 작성된 것으로서, 이 기술이 속하는 분야에서 통상의 지식을 가진 자에게 이미 알려진 종래 기술이 아닌 사항을 포함할 수 있다.
상기와 같은 문제를 해결하기 위한 본 발명의 목적은, 통신 시스템에서 폴라 코드에 기초한 디코딩 동작의 효율성을 향상시키기 위한 디코딩 방법 및 장치를 제공하는 데 있다.
상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 통신 시스템에서 수신 노드의 동작 방법은, 송신 노드로부터 수신된 수신 신호를 복조하여 획득된 복수의 수신 비트들을, 상기 수신 노드의 폴라 디코더의 복수의 입력 노드들에 입력하는 단계, 상기 폴라 디코더를 구성하는 복수의 연산 단위들 각각에서 제1 및 제2 단위 입력 노드에 대응되는 제1 및 제2 입력 변환값에 기초하여, 제1 및 제2 단위 출력 노드에 대응되는 제1 및 제2 출력 변환값을 계산하는 디코딩 연산을 수행하는 단계, 및 상기 복수의 연산 단위들 각각에서의 상기 디코딩 연산에 기초하여, 상기 폴라 디코더의 복수의 출력 노드들에서 출력 비트들을 획득하는 단계를 포함하며, 상기 디코딩 연산을 수행하는 단계는, 상기 제1 출력 변환값의 계산을 위한 제1 및 제2 변수의 초기값을 설정하는 단계, 상기 제1 및 제2 변수의 갱신을 위한 복수의 회차(iteration)들을 포함하는 반복 루프(iterative loop) 연산을 수행하는 단계, 및 상기 반복 루프 연산이 종료된 시점까지 갱신된 상기 제1 및 제2 변수의 값에 기초하여, 상기 제1 출력 변환값을 계산하는 단계를 포함하며, 상기 반복 루프 연산은 상기 복수의 회차들 중 상기 제1 및 제2 변수가 갱신되지 않을 것으로 판단되는 회차들의 수행 없이 종료될 수 있다.
상기 디코딩 연산을 수행하는 단계는, 상기 제1 및 제2 변수의 초기값을 설정하는 단계 이전에, 상기 송신 노드 및 상기 수신 노드 간에 공유된 갈루아 필드의 정보에 기초하여, 상기 제1 입력 변환값이 가질 수 있는 최소값을 계산하는 단계, 및 상기 복수의 회차들에서 상기 제2 입력 변환값이 가질 수 있는 값들을 오름차순으로 정렬하는 단계를 더 포함할 수 있다.
상기 반복 루프 연산을 수행하는 단계는, 상기 복수의 회차들 중 k번째 회차에서, 상기 제1 및 제2 입력 변환값에 기초하여 정의되는 제1 함수의 값과, 상기 제1 변수의 값을 비교하는 단계, 상기 제1 변수의 값이 상기 제1 함수의 값 이상일 경우, 상기 제1 변수의 값에 기초하여 상기 제2 변수의 값을 갱신하는 단계, 및 상기 제1 함수의 값에 기초하여 상기 제1 변수의 값을 갱신하는 단계를 포함하며, 상기 k는 0 이상이고 제1 설정값 이하인 정수 값을 가질 수 있다.
상기 반복 루프 연산을 수행하는 단계는, 상기 복수의 회차들 중 k번째 회차에서, 상기 제1 및 제2 입력 변환값에 기초하여 정의되는 제2 함수의 값과, 상기 제1 변수의 값을 비교하는 단계, 및 상기 제1 변수의 값이 상기 제2 함수의 값 이하일 경우, 상기 반복 루프 연산을 종료하는 단계를 포함하며, 상기 k는 0 이상이고 제1 설정값 이하인 정수 값을 가질 수 있다.
상기 디코딩 연산을 수행하는 단계는, 상기 제1 및 제2 입력 변환값의 합에 기초하여 상기 제2 출력 변환값을 계산하는 단계를 더 포함할 수 있다.
상기 출력 비트들을 획득하는 단계는, 상기 복수의 연산 단위들 각각에서의 상기 디코딩 연산에 기초하여, 상기 폴라 디코더에서 연속 제거(successive cancellation, SC) 디코딩 동작을 수행하는 단계를 포함하며, 상기 출력 비트들은, 상기 송신 노드에서 상기 수신 노드로 전송하고자 한 전송 비트들에 대한 복원 결과, 및 상기 송신 노드에서 상기 전송 비트들에 대한 폴라 코드 방식의 인코딩 동작에 사용된 프로즌 비트들에 대한 복원 결과를 포함할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 통신 시스템의 수신 노드는 프로세서(processor), 상기 프로세서와 전자적(electronic)으로 통신하는 메모리, 및 상기 메모리에 저장되는 명령들(instructions)을 포함하며, 상기 명령들이 상기 프로세서에 의해 실행되는 경우, 상기 명령들은 상기 수신 노드가, 송신 노드로부터 수신된 수신 신호를 복조하여 획득된 복수의 수신 비트들을 상기 수신 노드의 폴라 디코더의 복수의 입력 노드들에 입력하고, 상기 폴라 디코더를 구성하는 복수의 연산 단위들 각각에서 제1 및 제2 단위 입력 노드에 대응되는 제1 및 제2 입력 변환값에 기초하여, 제1 및 제2 단위 출력 노드에 대응되는 제1 및 제2 출력 변환값을 계산하는 디코딩 연산을 수행하고, 그리고 상기 복수의 연산 단위들 각각에서의 상기 디코딩 연산에 기초하여, 상기 폴라 디코더의 복수의 출력 노드들에서 출력 비트들을 획득하는 것을 야기하도록 동작하며, 상기 디코딩 연산을 수행하는 경우, 상기 명령들은 상기 수신 노드가, 상기 제1 출력 변환값의 계산을 위한 제1 및 제2 변수의 초기값을 설정하고, 상기 제1 및 제2 변수의 갱신을 위한 복수의 회차(iteration)들을 포함하는 반복 루프(iterative loop) 연산을 수행하고, 상기 반복 루프 연산이 종료된 시점까지 갱신된 상기 제1 및 제2 변수의 값에 기초하여, 상기 제1 출력 변환값을 계산하는 것을 더 야기하도록 동작하며, 상기 반복 루프 연산은 상기 복수의 회차들 중 상기 제1 및 제2 변수가 갱신되지 않을 것으로 판단되는 회차들의 수행 없이 종료될 수 있다.
상기 디코딩 연산을 수행하는 경우, 상기 명령들은 상기 수신 노드가, 상기 제1 및 제2 변수의 초기값을 설정하는 단계 이전에, 상기 송신 노드 및 상기 수신 노드 간에 공유된 갈루아 필드의 정보에 기초하여, 상기 제1 입력 변환값이 가질 수 있는 최소값을 계산하고, 그리고 상기 복수의 회차들에서 상기 제2 입력 변환값이 가질 수 있는 값들을 오름차순으로 정렬하는 것을 더 야기하도록 동작할 수 있다.
상기 반복 루프 연산을 수행하는 경우, 상기 명령들은 상기 수신 노드가, 상기 복수의 회차들 중 k번째 회차에서, 상기 제1 및 제2 입력 변환값에 기초하여 정의되는 제1 함수의 값과, 상기 제1 변수의 값을 비교하고, 상기 제1 변수의 값이 상기 제1 함수의 값 이상일 경우, 상기 제1 변수의 값에 기초하여 상기 제2 변수의 값을 갱신하고, 그리고 상기 제1 함수의 값에 기초하여 상기 제1 변수의 값을 갱신하는 것을 더 야기하도록 동작하며, 상기 k는 0 이상이고 제1 설정값 이하인 정수 값을 가질 수 있다.
상기 반복 루프 연산을 수행하는 경우, 상기 명령들은 상기 수신 노드가, 상기 복수의 회차들 중 k번째 회차에서, 상기 제1 및 제2 입력 변환값에 기초하여 정의되는 제2 함수의 값과, 상기 제1 변수의 값을 비교하고, 그리고 상기 제1 변수의 값이 상기 제2 함수의 값 이하일 경우, 상기 반복 루프 연산을 조기 종료하는 것을 더 야기하도록 동작하며, 상기 k는 0 이상이고 제1 설정값 이하인 정수 값을 가질 수 있다.
상기 디코딩 연산을 수행하는 경우, 상기 명령들은 상기 수신 노드가, 상기 제1 및 제2 입력 변환값의 합에 기초하여 상기 제2 출력 변환값을 계산하는 것을 더 야기하도록 동작할 수 있다.
통신 시스템에서 폴라 코드에 기초한 디코딩 방법 및 장치의 일 실시예에 따르면, 송신 노드에서 폴라 코드 방식에 기초하여 인코딩되어 전송된 신호를 수신하는 수신 노드에서, 폴라 코드 방식에 기초한 디코딩 동작을 효율적으로 수행할 수 있다. 수신 노드의 폴라 디코더는 디코딩을 위한 반복 루프(iterative loop) 연산을 수행하는 도중 어느 특정 회차(iteration)에서, 이후의 연산을 수행하는 것이 최종 계산 결과에 영향을 미치지 않을 것으로 판단될 경우, 해당 반복 루프를 종료하도록 동작할 수 있다. 이와 같이 반복 루프 연산을 조기 종료(terminate) 또는 조기 중단(break)시킴으로 인해, 최종 계산 결과에 영향을 미치지 않는 불필요한 연산량을 생략시킬 수 있다. 이에 따라, 디코딩 동작의 복잡도 또는 연산량이 경감될 수 있고, 효율성이 향상될 수 있다.
도 1은 통신 시스템의 일 실시예를 도시한 개념도이다.
도 2는 통신 시스템을 구성하는 통신 노드의 일 실시예를 도시한 블록도이다.
도 3은 통신 시스템에서 신호의 송수신 방법의 일 실시예를 도시한 순서도이다.
도 4는 통신 시스템에서 연속 제거(successive cancellation, SC) 디코딩 동작의 일 실시예를 도시한 개념도이다.
도 5a 내지 5d는 통신 시스템에서 폴라 인코더 및 폴라 디코더의 일 실시예를 설명하기 위한 개념도이다.
도 6은 통신 시스템에서 디코딩 연산 알고리즘의 일 실시예를 설명하기 위한 개념도이다.
도 7은 통신 시스템에서 디코딩 연산 알고리즘의 일 실시예를 설명하기 위한 그래프이다.
도 2는 통신 시스템을 구성하는 통신 노드의 일 실시예를 도시한 블록도이다.
도 3은 통신 시스템에서 신호의 송수신 방법의 일 실시예를 도시한 순서도이다.
도 4는 통신 시스템에서 연속 제거(successive cancellation, SC) 디코딩 동작의 일 실시예를 도시한 개념도이다.
도 5a 내지 5d는 통신 시스템에서 폴라 인코더 및 폴라 디코더의 일 실시예를 설명하기 위한 개념도이다.
도 6은 통신 시스템에서 디코딩 연산 알고리즘의 일 실시예를 설명하기 위한 개념도이다.
도 7은 통신 시스템에서 디코딩 연산 알고리즘의 일 실시예를 설명하기 위한 그래프이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 출원의 실시예들에서, "A 및 B 중에서 적어도 하나"는 "A 또는 B 중에서 적어도 하나" 또는 "A 및 B 중 하나 이상의 조합들 중에서 적어도 하나"를 의미할 수 있다. 또한, 본 출원의 실시예들에서, "A 및 B 중에서 하나 이상"은 "A 또는 B 중에서 하나 이상" 또는 "A 및 B 중 하나 이상의 조합들 중에서 하나 이상"을 의미할 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명에 따른 실시예들이 적용되는 통신 시스템(communication system)이 설명될 것이다. 본 발명에 따른 실시예들이 적용되는 통신 시스템은 아래 설명된 내용에 한정되지 않으며, 본 발명에 따른 실시예들은 다양한 통신 시스템에 적용될 수 있다. 여기서, 통신 시스템은 통신 네트워크(network)와 동일한 의미로 사용될 수 있다.
명세서 전체에서 망(network)은, 예를 들어, WiFi(wireless fidelity)와 같은 무선인터넷, WiBro(wireless broadband internet) 또는 WiMax(world interoperability for microwave access)와 같은 휴대인터넷, GSM(global system for mobile communication) 또는 CDMA(code division multiple access)와 같은 2G 이동통신망, WCDMA(wideband code division multiple access) 또는 CDMA2000과 같은 3G 이동통신망, HSDPA(high speed downlink packet access) 또는 HSUPA(high speed uplink packet access)와 같은 3.5G 이동통신망, LTE(long term evolution)망 또는 LTE-Advanced망과 같은 4G 이동통신망, 및 5G 이동통신망 등을 포함할 수 있다.
명세서 전체에서 단말(terminal)은 이동국(mobile station), 이동 단말(mobile terminal), 가입자국(subscriber station), 휴대 가입자국(portable subscriber station), 사용자 장치(user equipment), 접근 단말(access terminal) 등을 지칭할 수도 있고, 단말, 이동국, 이동 단말, 가입자국, 휴대 가입자 국, 사용자 장치, 접근 단말 등의 전부 또는 일부의 기능을 포함할 수도 있다.
여기서, 단말로 통신이 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 태블릿(tablet) PC, 무선전화기(wireless phone), 모바일폰(mobile phone), 스마트 폰(smart phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player) 등을 사용할 수 있다.
명세서 전체에서 기지국(base station)은 접근점(access point), 무선 접근국(radio access station), 노드B(node B), 고도화 노드B(evolved nodeB), 송수신 기지국(base transceiver station), MMR(mobile multihop relay)-BS 등을 지칭할 수도 있고, 기지국, 접근점, 무선 접근국, 노드B, eNodeB, 송수신 기지국, MMR-BS 등의 전부 또는 일부의 기능을 포함할 수도 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 통신 시스템의 일 실시예를 도시한 개념도이다.
도 1을 참조하면, 통신 시스템(100)은 복수의 통신 노드들(110-1, 110-2, 110-3, 120-1, 120-2, 130-1, 130-2, 130-3, 130-4, 130-5, 130-6)을 포함할 수 있다. 복수의 통신 노드들은 3GPP(3rd generation partnership project) 표준에서 규정된 4G 통신(예를 들어, LTE(long term evolution), LTE-A(advanced)), 5G 통신(예를 들어, NR(new radio)) 등을 지원할 수 있다. 4G 통신은 6GHz 이하의 주파수 대역에서 수행될 수 있고, 5G 통신은 6GHz 이하의 주파수 대역뿐만 아니라 6GHz 이상의 주파수 대역에서 수행될 수 있다.
예를 들어, 4G 통신 및 5G 통신을 위해 복수의 통신 노드들은 CDMA(code division multiple access) 기반의 통신 프로토콜, WCDMA(wideband CDMA) 기반의 통신 프로토콜, TDMA(time division multiple access) 기반의 통신 프로토콜, FDMA(frequency division multiple access) 기반의 통신 프로토콜, OFDM(orthogonal frequency division multiplexing) 기반의 통신 프로토콜, Filtered OFDM 기반의 통신 프로토콜, CP(cyclic prefix)-OFDM 기반의 통신 프로토콜, DFT-s-OFDM(discrete Fourier transform-spread-OFDM) 기반의 통신 프로토콜, OFDMA(orthogonal frequency division multiple access) 기반의 통신 프로토콜, SC(single carrier)-FDMA 기반의 통신 프로토콜, NOMA(Non-orthogonal Multiple Access), GFDM(generalized frequency division multiplexing) 기반의 통신 프로토콜, FBMC(filter bank multi-carrier) 기반의 통신 프로토콜, UFMC(universal filtered multi-carrier) 기반의 통신 프로토콜, SDMA(Space Division Multiple Access) 기반의 통신 프로토콜 등을 지원할 수 있다.
또한, 통신 시스템(100)은 코어 네트워크(core network)를 더 포함할 수 있다. 통신 시스템(100)이 4G 통신을 지원하는 경우, 코어 네트워크는 S-GW(serving-gateway), P-GW(PDN(packet data network)-gateway), MME(mobility management entity) 등을 포함할 수 있다. 통신 시스템(100)이 5G 통신을 지원하는 경우, 코어 네트워크는 UPF(user plane function), SMF(session management function), AMF(access and mobility management function) 등을 포함할 수 있다.
한편, 통신 시스템(100)을 구성하는 복수의 통신 노드들(110-1, 110-2, 110-3, 120-1, 120-2, 130-1, 130-2, 130-3, 130-4, 130-5, 130-6) 각각은 다음과 같은 구조를 가질 수 있다.
도 2는 통신 시스템을 구성하는 통신 노드의 일 실시예를 도시한 블록도이다.
도 2를 참조하면, 통신 노드(200)는 적어도 하나의 프로세서(210), 메모리(220) 및 네트워크와 연결되어 통신을 수행하는 송수신 장치(230)를 포함할 수 있다. 또한, 통신 노드(200)는 입력 인터페이스 장치(240), 출력 인터페이스 장치(250), 저장 장치(260) 등을 더 포함할 수 있다. 통신 노드(200)에 포함된 각각의 구성 요소들은 버스(bus)(270)에 의해 연결되어 서로 통신을 수행할 수 있다.
다만, 통신 노드(200)에 포함된 각각의 구성요소들은 공통 버스(270)가 아니라, 프로세서(210)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다. 예를 들어, 프로세서(210)는 메모리(220), 송수신 장치(230), 입력 인터페이스 장치(240), 출력 인터페이스 장치(250) 및 저장 장치(260) 중에서 적어도 하나와 전용 인터페이스를 통하여 연결될 수도 있다.
프로세서(210)는 메모리(220) 및 저장 장치(260) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(210)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(220) 및 저장 장치(260) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
다시 도 1을 참조하면, 통신 시스템(100)은 복수의 기지국들(base stations)(110-1, 110-2, 110-3, 120-1, 120-2), 복수의 단말들(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)을 포함할 수 있다. 기지국(110-1, 110-2, 110-3, 120-1, 120-2) 및 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)을 포함하는 통신 시스템(100)은 "액세스 네트워크"로 지칭될 수 있다. 제1 기지국(110-1), 제2 기지국(110-2) 및 제3 기지국(110-3) 각각은 매크로 셀(macro cell)을 형성할 수 있다. 제4 기지국(120-1) 및 제5 기지국(120-2) 각각은 스몰 셀(small cell)을 형성할 수 있다. 제1 기지국(110-1)의 셀 커버리지(cell coverage) 내에 제4 기지국(120-1), 제3 단말(130-3) 및 제4 단말(130-4)이 속할 수 있다. 제2 기지국(110-2)의 셀 커버리지 내에 제2 단말(130-2), 제4 단말(130-4) 및 제5 단말(130-5)이 속할 수 있다. 제3 기지국(110-3)의 셀 커버리지 내에 제5 기지국(120-2), 제4 단말(130-4), 제5 단말(130-5) 및 제6 단말(130-6)이 속할 수 있다. 제4 기지국(120-1)의 셀 커버리지 내에 제1 단말(130-1)이 속할 수 있다. 제5 기지국(120-2)의 셀 커버리지 내에 제6 단말(130-6)이 속할 수 있다.
여기서, 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 노드B(NodeB), 고도화 노드B(evolved NodeB), BTS(base transceiver station), 무선 기지국(radio base station), 무선 트랜시버(radio transceiver), 액세스 포인트(access point), 액세스 노드(node), RSU(road side unit), RRH(radio remote head), TP(transmission point), TRP(transmission and reception ooint), eNB, gNB 등으로 지칭될 수 있다.
복수의 단말들(130-1, 130-2, 130-3, 130-4, 130-5, 130-6) 각각은 UE(user equipment), 터미널(terminal), 액세스 터미널(access terminal), 모바일 터미널(mobile terminal), 스테이션(station), 가입자 스테이션(subscriber station), 모바일 스테이션(mobile station), 휴대 가입자 스테이션(portable subscriber station), 노드(node), 다바이스(device), IoT(Internet of Thing) 장치, 탑재 장치(mounted module/device/terminal 또는 on board device/terminal 등) 등으로 지칭될 수 있다.
한편, 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 서로 다른 주파수 대역에서 동작할 수 있고, 또는 동일한 주파수 대역에서 동작할 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 아이디얼 백홀 링크(ideal backhaul link) 또는 논(non)-아이디얼 백홀 링크를 통해 서로 연결될 수 있고, 아이디얼 백홀 링크 또는 논-아이디얼 백홀 링크를 통해 서로 정보를 교환할 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 아이디얼 백홀 링크 또는 논-아이디얼 백홀 링크를 통해 코어 네트워크와 연결될 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 코어 네트워크로부터 수신한 신호를 해당 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)에 전송할 수 있고, 해당 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)로부터 수신한 신호를 코어 네트워크에 전송할 수 있다.
또한, 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 MIMO 전송(예를 들어, SU(single user)-MIMO, MU(multi user)-MIMO, 대규모(massive) MIMO 등), CoMP(coordinated multipoint) 전송, CA(carrier aggregation) 전송, 비면허 대역(unlicensed band)에서 전송, 단말 간 직접 통신(device to device communication, D2D)(또는, ProSe(proximity services)) 등을 지원할 수 있다. 여기서, 복수의 단말들(130-1, 130-2, 130-3, 130-4, 130-5, 130-6) 각각은 기지국(110-1, 110-2, 110-3, 120-1, 120-2)과 대응하는 동작, 기지국(110-1, 110-2, 110-3, 120-1, 120-2)에 의해 지원되는 동작을 수행할 수 있다. 예를 들어, 제2 기지국(110-2)은 SU-MIMO 방식을 기반으로 신호를 제4 단말(130-4)에 전송할 수 있고, 제4 단말(130-4)은 SU-MIMO 방식에 의해 제2 기지국(110-2)으로부터 신호를 수신할 수 있다. 또는, 제2 기지국(110-2)은 MU-MIMO 방식을 기반으로 신호를 제4 단말(130-4) 및 제5 단말(130-5)에 전송할 수 있고, 제4 단말(130-4) 및 제5 단말(130-5) 각각은 MU-MIMO 방식에 의해 제2 기지국(110-2)으로부터 신호를 수신할 수 있다.
제1 기지국(110-1), 제2 기지국(110-2) 및 제3 기지국(110-3) 각각은 CoMP 방식을 기반으로 신호를 제4 단말(130-4)에 전송할 수 있고, 제4 단말(130-4)은 CoMP 방식에 의해 제1 기지국(110-1), 제2 기지국(110-2) 및 제3 기지국(110-3)으로부터 신호를 수신할 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 자신의 셀 커버리지 내에 속한 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)과 CA 방식을 기반으로 신호를 송수신할 수 있다. 제1 기지국(110-1), 제2 기지국(110-2) 및 제3 기지국(110-3) 각각은 제4 단말(130-4)과 제5 단말(130-5) 간의 D2D를 제어할 수 있고, 제4 단말(130-4) 및 제5 단말(130-5) 각각은 제2 기지국(110-2) 및 제3 기지국(110-3) 각각의 제어에 의해 D2D를 수행할 수 있다.
다음으로, 무선 통신 시스템에서의 신호 반복 전송 방법들이 설명될 것이다. 여기서, 통신 노드들 중에서 제1 통신 노드에서 수행되는 방법(예를 들어, 신호의 전송 또는 수신)이 설명되는 경우에도 이에 대응하는 제2 통신 노드는 제1 통신 노드에서 수행되는 방법과 상응하는 방법(예를 들어, 신호의 수신 또는 전송)을 수행할 수 있다. 이를테면, 수신 노드의 동작이 설명된 경우에 이에 대응하는 송신 노드는 수신 노드의 동작과 상응하는 동작을 수행할 수 있다. 반대로, 송신 노드의 동작이 설명된 경우에 이에 대응하는 수신 노드는 송신 노드의 동작과 상응하는 동작을 수행할 수 있다.
도 3은 통신 시스템에서 신호의 송수신 방법의 일 실시예를 도시한 순서도이다.
도 3을 참조하면, 통신 시스템은 제1 통신 노드 및 제2 통신 노드를 포함할 수 있다. 제1 통신 노드는 제2 통신 노드에 신호/채널을 전송할 수 있고, "송신 노드"로 지칭될 수 있다. 제2 통신 노드는 제1 통신 노드로부터 신호/채널을 수신할 수 있고, "수신 노드"로 지칭될 수 있다. 제1 통신 노드가 도 1에 도시된 기지국인 경우, 제2 통신 노드는 도 1에 도시된 단말일 수 있다. 또는, 제1 통신 노드가 도 1에 도시된 단말인 경우, 제2 통신 노드는 도 1에 도시된 기지국 또는 단말일 수 있다. 제1 통신 노드 및 제2 통신 노드 각각은 도 2에 도시된 통신 노드(200)와 동일 또는 유사하게 구성될 수 있다.
제1 통신 노드는 전송하고자 하는 정보에 해당하는 정보 비트들(information bits)에 대하여 폴라 코드 방식에 따른 인코딩 동작을 수행함으로써 코딩된 비트들(coded bits)을 생성할 수 있다(S310). 단계 S310은 제1 통신 노드에 포함된 폴라 인코더(encoder)에 의해 수행될 수 있으며, 폴라 인코더의 동작은 제1 통신 노드에 포함된 프로세서(예를 들어, 도 2에 도시된 프로세서(210))에 의해 제어될 수 있다. 폴라 코드 방식에 따른 인코딩 동작에서, 코딩된 비트들은 정보 비트들, 및 고정된 값을 가지는 프로즌 비트들(frozen bits)에 기초하여 생성될 수 있다.
제1 통신 노드는 코딩된 비트들, 또는 코딩된 비트들로 구성되는 전송 심볼에 대한 변조(modulation) 동작을 수행함으로써 변조된 심볼들(modulated symbols)을 생성할 수 있다(S320). 단계 S320은 제1 통신 노드에 포함된 변조기(modulator)에 의해 수행될 수 있으며, 변조기의 동작은 제1 통신 노드에 포함된 프로세서(예를 들어, 도 2에 도시된 프로세서(210))에 의해 제어될 수 있다. 제1 통신 노드는 변조된 심볼들(예를 들어, 변조된 심볼들을 기초로 생성된 신호 및/또는 채널)을 무선 자원을 통해 전송할 수 있다(S330). 제2 통신 노드는 제1 통신 노드로부터 신호 및/또는 채널을 수신할 수 있다.
여기서, 신호는 참조 신호(reference signal)(예를 들어, CSI-RS(channel state information-reference signal), DM-RS(demodulation-reference signal), PT-RS(phase tracking-reference signal) 등)일 수 있다. 채널은 PDCCH(physical downlink control channel), PDSCH(physical downlink shared channel), PUCCH(physical uplink control channel), PUSCH(physical uplink shared channel), PBCH(physical broadcast channel), 또는 사이드링크(sidelink) 채널 일 수 있다.
제2 통신 노드는 수신된 신호 및/또는 수신된 채널에 대한 복조(demodulation)동작을 수행함으로써 복조된 심볼들(demodulated symbols)을 획득할 수 있다(S340). 단계 S340은 제2 통신 노드에 포함된 복조기(demodulator)에 의해 수행될 수 있으며, 복조기의 동작은 제2 통신 노드에 포함된 프로세서(예를 들어, 도 2에 도시된 프로세서(210))에 의해 제어될 수 있다. 여기서, 복조된 심볼들은 소프트 비트들(soft bits)(예를 들어, LLR(log likelihood ratio) 값)일 수 있다. 제2 통신 노드는 소프트 비트들에 대한 SC(successive cancellation) 디코딩 동작을 수행함으로써 정보 비트들을 획득할 수 있다(S350). 단계 S350은 제2 통신 노드에 포함된 폴라 디코더(decoder)에 의해 수행될 수 있으며, 폴라 디코더의 동작은 제2 통신 노드에 포함된 프로세서(예를 들어, 도 2에 도시된 프로세서(210))에 의해 제어될 수 있다. SC 디코딩 동작에 대하여는, 이하 도 4를 참조하여 보다 구체적으로 설명한다.
도 4는 통신 시스템에서 연속 제거(successive cancellation, SC) 디코딩 동작의 일 실시예를 도시한 개념도이다.
도 4를 참조하면, 통신 시스템에서 (N, K) 폴라 코드가 사용될 수 있다. 여기서, N은 폴라 코드(예를 들어, 도 3에 도시된 단계 S310에서 생성된 코딩된 비트)의 비트 개수를 지시할 수 있고, K는 폴라 코드에 포함된 정보 비트들의 개수를 지시할 수 있다. 폴라 코드에 포함된 프로즌(frozen) 비트들의 개수는 "N-K"일 수 있다. 도 6에는 (8, 4) 폴라 코드에 기초한 SC 디코딩 방식에서 사용되는 디코딩 트리의 일 실시예가 도시된 것으로 볼 수 있다.
디코딩 트리는 복수의 노드들로 구성될 수 있다. 각각의 노드는 Vi,j와 같이 표현될 수 있다. 여기서, i는 노드 Vi,j가 속한 계층을 지시할 수 있고, j는 각 계층에 속한 노드 Vi,j의 인덱스일 수 있다. 노드 Vi,j로 입력되는 소프트 비트들은 Ai,j로 지칭될 수 있다. Ai,j는 아래 수학식 1과 같이 정의될 수 있다.
Ai,j는 상위의 계층에 위치하는 부모 노드(또는 상위 노드)로부터 하위의 계층에 위치하는 자녀 노드(또는 하위 노드)로 전송될 수 있다. 디코딩 트리의 마지막 계층에 속한 노드 Vi,j(예를 들어, V3,j)에 Ai,j가 전송되면, Ai,j가 입력된 노드 Vi,j에서는 디코딩 결과(예를 들어, 경판정(hard decision) 결과)가 생성될 수 있다. 디코딩 결과는 Ai,j를 기초로 생성될 수 있으며, Bi,j로 지칭될 수 있다. Bi,j는 아래 수학식 2와 같이 정의될 수 있다.
도 4에서 으로 표시된 노드 Vi,j에서 출력되는 Bi,j는 프로즌 비트에 기초하여 생성된 것으로 볼 수 있고, 으로 표시된 노드 Vi,j에서 출력되는 Bi,j는 정보 비트에 기초하여 생성된 것으로 볼 수 있고, 으로 표시된 노드 Vi,j에서 출력되는 Bi,j는 정보 비트 및 프로즌 비트를 포함할 수 있다.
구체적으로, 도 3에 도시된 단계 S340의 결과인 소프트 비트들(A0,0)은 노드 V0,0로 입력될 수 있다. 노드 V0,0로 입력되는 소프트 비트들은 A0,0으로 지칭될 수 있고, 노드 V0,0로 입력된 소프트 비트들의 크기는 8비트일 수 있다. 노드 V0,0에서 A0,0을 기초로 A1,0 및 A1,1이 생성될 수 있고, A1,0는 노드 V1,0으로 전송될 수 있고, A1,1은 노드 V1,1로 전송될 수 있다. A1,0 및 A1,1 각각의 크기는 A0,0 크기의 1/2일 수 있다. 예를 들어, A1,0 및 A1,1 각각의 크기는 4비트일 수 있다. A1,0은 F(x,y)로 표현될 수 있고, A1,1은 G(x,y,u)로 표현될 수 있다. F(x,y) 및 G(x,y,u)은 아래 수학식 3과 같이 정의될 수 있다.
수학식 3에서, 함수 S는 부호함수(sign function 또는 signum function)에 해당할 수 있다. 이를테면, x가 양수일 경우 S(x)는 1의 값을 가질 수 있고, x가 음수일 경우 S(x)는 -1의 값을 가질 수 있고, x가 0일 경우 S(x)는 0의 값을 가질 수 있다.
위의 동작들은 디코딩 트리에 속한 모든 노드 Vi,j들에서 수행될 수 있다. 여기서, 디코딩 트리의 세 번째 계층에 속한 노드 V2,j들로 입력되는 A2,j의 크기는 2비트일 수 있고, 디코딩 트리의 네 번째 계층에 속한 노드 V3,j들로 입력되는 A3,j의 크기는 1비트일 수 있다.
한편, 노드 Vi,j에서 생성된 Bi,j는 부모 노드(또는, 상위 노드)로 전송될 수 있다. 노드 V3,0에서 노드 V2,0으로 전송되는 디코딩 결과는 B3,0으로 지칭될 수 있고, 노드 V3,1에서 노드 V2,0으로 전송되는 디코딩 결과는 B3,1로 지칭될 수 있다. 노드 V3,0은 아래 수학식 4에 기초하여 B2,0을 생성할 수 있고, 생성된 B2,0을 V1,0에 전송할 수 있다.
위의 동작들은 디코딩 트리에 속한 모든 노드 Vi,j들에서 수행될 수 있고, 노드 V0,0에서 B1,0 및 B1,1을 기초로 B0,0이 생성된 경우에 디코딩 동작이 완료될 수 있다.
SC 디코딩 동작에 기초하여 수행되는 폴라 코드 방식에서의 디코딩은 우수한 디코딩 성능을 가질 수 있으나, 심볼 당 비트 수가 증가함에 따라 디코딩 연산의 복잡도 또는 연산량이 크게 증가할 수 있다는 문제점이 있다. 수신 노드가 폴라 코드 방식에 따른 디코딩을 수행함에 있어서, 연산의 복잡도 또는 연산량을 경감하기 위한 기술이 요구될 수 있다.
도 5a 내지 5d는 통신 시스템에서 폴라 인코더 및 폴라 디코더의 일 실시예를 설명하기 위한 개념도이다.
폴라 코드 방식에 따라 인코딩을 수행하는 폴라 인코더에서는, 극성 변환(polarization transform)을 통해 통신 채널의 신뢰도(또는 비트 용량)가 양극화될 수 있고, 극성 변환 결과 신뢰도(또는 비트 용량)이 높은 것으로 확인되는 비트 채널들을 통하여, 전송하고자 하는 정보 또는 정보 비트들이 전송될 수 있다. 한편, 신뢰도(또는 비트 용량)가 낮은 것으로 확인되는 비트 채널들은 미리 정의된 비트들(이를테면, 프로즌(frozen) 비트들)로 채워질 수 있다. 폴라 인코더에서의 극성 변환은, '커널(kernel)'로 불리는 정방행렬(square matrix)의 크로네커(Kronecker) 거듭곱으로 정의될 수 있다. 이와 같이 극성 변환에 기초하여 폴라 코드 방식으로 인코딩된 신호에서는, 정보 비트를 순차적으로 복호하는 과정이 용이해질 수 있다. 구체적으로는, 정보를 전송하는 비트 채널이 적절히 선택되어 충분히 큰 채널용량이 보장될 경우, 오류 전파 없이 모든 정보 비트가 순차적으로 복원될 수 있다. 폴라 코드 방식에 따른 인코딩 동작에서는, 그 구조적인 특징으로 인해, 생성할 수 있는 코딩된 비트들의 개수가 커널의 크기의 거듭제곱의 형태(즉, N=Ln)를 가지게 될 수 있다.
N개의 비트 채널들로 구성되는 폴라 인코더에는 N개의 입력 비트들이 입력될 수 있다. N개의 입력 비트들은 하나 이상의 정보 비트들과 하나 이상의 프로즌 비트들을 포함할 수 있다. 각각의 입력 비트는 ui(i=0, 1, ..., N-1)와 같이 표현될 수 있다. N개의 입력 비트들이 입력된 폴라 인코더는 N개의 코딩된 비트들을 출력할 수 있다. 각각의 코딩된 비트는 xi(i=0, 1, ..., N-1)와 같이 표현될 수 있다. 폴라 인코더에서 출력된 코딩된 비트들 xi은 전송 심볼을 구성할 수 있다.
하나의 전송 심볼이 q 비트로 구성된다고 가정할 때, 각각의 심볼은 GF(Q)의 원소에 대응될 수 있다(Q=2q). 여기서, GF(Q)는 Q의 크기를 가지는 유한체(finite field) 또는 갈루아 필드(Galois Field)를 의미할 수 있다. GF(Q)의 원시원소(primitive element)를 α라 할 때, 폴라 인코더에서 출력된 코딩된 비트들 xi로 구성되는 전송 심볼은 수학식 5와 같이 표현될 수 있다.
코딩된 비트들 xi로 구성되는 전송 심볼이 송신 노드에서 변조되어 무선 채널을 통해 수신 노드로 전송되면, 수신 노드에서는 복조 동작을 통하여 복조된 심볼(modulated symbol)을 획득할 수 있다. 여기서, 복조된 심볼은 소프트 비트들로 구성될 수 있다. 각각의 소프트 비트는 yi(i=0, 1, ..., N-1)와 같이 표현될 수 있다. 수신 노드의 폴라 디코더에서는, 각각의 소프트 비트 yi에 기초하여 수학식 6과 같은 우도(likelihood) 값이 계산될 수 있다.
수학식 6에서, xi는 무선 채널을 통하여 전송된 코딩된 비트들에 해당할 수 있고, yi는 무선 채널을 통하여 수신된 소프트 비트들에 해당할 수 있다. 다르게 표현하면, xi 및 yi는 각각 무선 채널의 입력 및 출력에 대응될 수 있다. 수신 노드의 폴라 디코더에서는 소프트 비트들 yi, 또는 소프트 비트들 yi에 기초하여 계산된 W(xi)로부터 W(ui)를 구하여, 송신 노드에서의 입력 비트들에 해당하는 ui를 복원할 수 있다. 수신 노드는 복원된 ui 중에서 프로즌 비트들을 제외하여, 송신 노드에서 전송하고자 하는 정보에 해당하는 정보 비트들을 획득할 수 있다.
여기서, 송신 노드의 폴라 인코더에서 인코딩되어 전송 심볼에 포함되는 입력 비트 ui는 GF(Q)의 부분집합인 Ai의 원소일 수 있으며, Ai의 정보는 송신 노드 및 수신 노드 간에 사전에 공유될 수 있다. 즉, 수신 노드의 폴라 디코더는 ui를 복원함에 있어서, GF(Q)의 원소들 중에서 Ai에 포함되지 않는 원소들(다르게 표현하면, Ai의 여집합에 해당하는 원소들)을 배제함으로써 부호 이득을 얻을 수 있다.
도 5a를 참조하면, 폴라 인코더(510)의 일 실시예는 N이 8인 구조를 가질 수 있다. 그러나 이는 설명의 편의를 위한 예시일 뿐이며, 폴라 인코더(510)의 실시예는 이에 국한되지 않는다. N이 8인 구조를 가지는 폴라 인코더(510)는 8개의 비트 채널들에 대응되는 8개의 입력 노드들 및 8개의 출력 노드들을 가질 수 있다. 각각의 비트 채널(또는 각각의 입력 노드)에는 대응되는 입력 비트 ui(i=0, 1, ..., 7)가 입력될 수 있다. 각각의 비트 채널(또는 각각의 출력 노드)은 폴라 인코더(510)의 구조에 기초하여 계산된 코딩된 비트 yi(i=0, 1, ..., 7)를 출력할 수 있다. 폴라 인코더(510)는 8개의 입력 비트들(ui)에 기초하여, 8개의 코딩된 비트들(xi)을 획득할 수 있다.
여기서, 8개의 입력 비트들(ui)은 4개의 정보 비트들 및 4개의 프로즌 비트들을 포함할 수 있다. 이 중, 정보 비트들은 비트 채널들 중 상대적으로 높은 신뢰도를 가지는 비트 채널들에 매핑될 수 있다. 한편, 프로즌 비트들은 비트 채널들 중 상대적으로 낮은 신뢰도를 가지는 비트 채널들에 매핑될 수 있다. 폴라 인코더(510)에서는 GF(Q)의 원시 원소인 α에 기초하여 인코딩 연산이 수행될 수 있다.
도 5a에 도시된 폴라 인코더(510)의 구조는 도 5b와 같은 연산 단위들로 구성될 수 있다. 다르게 표현하면, 도 5b에 도시된 노드들(520, 521, 522, 523)은 도 5a에 도시된 폴라 인코더(510)를 구성하는 노드들 중 일부에 대응될 수 있다. 도 5b와 같이 표현된 구조를 '버터플라이 아키텍처(butterfly architecture)'와 같이 칭할 수 있다.
도 5b에 도시된 버터플라이 아키텍처에서는, 2개의 입력 노드들(520, 521)을 통해 2개의 입력값들(b0, b1)이 입력될 수 있고, 2개의 출력 노드들(522, 523)을 통해 2개의 출력값들(b2, b3)이 출력될 수 있다. 제1 및 제2 입력 노드들(520, 521)을 통하여 제1 및 제2 입력값들(b0, b1)이 입력되면, 도 5b에 도시된 구조에 따른 연산을 통하여 결정되는 제1 및 제2 출력값들(b2, b3)이 제1 및 제2 출력 노드들(522, 523)로 출력될 수 있다. 여기서, 제1 출력값(b2) 및 제2 출력값(b3)은 각각 수학식 7 및 수학식 8과 같이 결정될 수 있다.
도 5a에 도시된 폴라 인코더(510)를 구성하는 노드들은 도 5b에 도시된 연산 단위를 구성하는 제1 입력 노드(520), 제2 입력 노드(521), 제1 출력 노드(522), 및/또는 제2 출력 노드(523)에 대응될 수 있다. 이를테면, 도 5a에 도시된 폴라 인코더(510)를 구성하는 입력 노드들 각각은, 도 5b에 도시된 연산 단위에서 제1 입력 노드(520) 또는 제2 입력 노드(521) 중 어느 하나에 대응될 수 있다. 도 5a에 도시된 폴라 인코더(510)를 구성하는 출력 노드들 각각은, 도 5b에 도시된 연산 단위에서 제1 출력 노드(522) 또는 제2 출력 노드(523) 중 어느 하나에 대응될 수 있다. 도 5a에 도시된 폴라 인코더(510)를 구성하는 노드들 중 입력 노드들 및 출력 노드들을 제외한 나머지 노드들은, 인코딩 연산 과정에 따라서 도 5b에 도시된 연산 단위 중 제1 입력 노드(520) 또는 제2 입력 노드(521) 중 어느 하나에 대응될 수 있고, 또한 제1 출력 노드(522) 또는 제2 출력 노드(523) 중 어느 하나에 대응될 수 있다.
도 5c를 참조하면, 폴라 디코더(530)의 일 실시예는 N이 8인 구조를 가질 수 있다. 그러나 이는 설명의 편의를 위한 예시일 뿐이며, 폴라 디코더(530)의 실시예는 이에 국한되지 않는다. N이 8인 구조를 가지는 폴라 디코더(530)는 8개의 비트 채널들에 대응되는 8개의 입력 노드들 및 8개의 출력 노드들을 가질 수 있다. 각각의 비트 채널(또는 각각의 입력 노드)에는 대응되는 소프트 비트 yi(i=0, 1, ..., 7)에 기초하여 계산된 W(xi)(i=0, 1, ..., 7)가 입력될 수 있다. 각각의 비트 채널(또는 각각의 출력 노드)은 폴라 디코더(530)의 구조에 기초하여 계산된 W(ui)(i=0, 1, ..., 7)를 출력할 수 있다. 폴라 디코더(530)는 8개의 W(xi) 값들에 기초하여 8개의 W(ui) 값들을 획득할 수 있다. 이를 통하여, 폴라 디코더(530)는 송신 노드에서의 입력 비트들에 해당하는 ui(i=0, 1, ..., 7)를 복원할 수 있다. 복원된 8개의 ui 값들 중에서, 4개의 프로즌 비트들을 제외한 4개의 비트들이 송신 노드에서 전송하고자 하는 정보에 해당하는 정보 비트들일 수 있다.
도 5c에 도시된 폴라 디코더(530)의 구조는 도 5d와 같은 연산 단위들로 구성될 수 있다. 다르게 표현하면, 도 5d에 도시된 노드들(540, 541, 542, 543)은 도 5c에 도시된 폴라 디코더(530)를 구성하는 노드들 중 일부에 대응될 수 있다. 도 5d와 같이 표현된 구조를 '버터플라이 아키텍처'와 같이 칭할 수 있다.
도 5d에 도시된 버터플라이 아키텍처에서는, 2개의 입력 노드들(542, 543)을 통해 2개의 입력값들(W2, W3)이 입력될 수 있고, 2개의 출력 노드들(540, 541)을 통해 2개의 출력값들(W0, W1)이 출력될 수 있다. 제1 및 제2 입력 노드들(542, 543)을 통하여 제1 및 제2 입력값들(W2, W3)이 입력되면, 도 5d에 도시된 구조에 따른 연산을 통하여 결정되는 제1 및 제2 출력값들(W0, W1)이 제1 및 제2 출력 노드들(540, 541)로 출력될 수 있다.
폴라 디코더(530)에서의 연산은 폴라 인코더(510)에서의 연산의 역과정에 해당할 수 있다. 도 5d에 도시된 폴라 디코더(530)의 연산 단위는, 도 5b에 도시된 폴라 인코더(510)의 연산 단위에 대응될 수 있다. 도 5d에서 제1 출력값인 W0은, 도 5b에서 제1 입력값인 b0의 우도 값(즉, W0(b0))에 해당할 수 있다. 도 5d에서 제2 출력값인 W1은, 도 5b에서 제2 입력값인 b1의 우도 값(즉, W1(b1))에 해당할 수 있다. 도 5d에서 제1 입력값인 W2은, 도 5b에서 제1 출력값인 b2의 우도 값(즉, W2(b2)=W2(b0+αb1))에 해당할 수 있다. 도 5d에 서 제2 입력값인 W3은, 도 5b에서 제2 출력값인 b3의 우도 값(즉, W3(b3)=W3(b1))에 해당할 수 있다. 여기서, 제1 출력값(W0) 및 제2 출력값(W1)은 수학식 9 및 수학식 10과 같이 결정될 수 있다.
도 5c에 도시된 폴라 디코더(530)를 구성하는 노드들은 도 5d에 도시된 연산 단위를 구성하는 제1 입력 노드(542), 제2 입력 노드(543), 제1 출력 노드(540), 및/또는 제2 출력 노드(541)에 대응될 수 있다. 이를테면, 도 5c에 도시된 폴라 디코더(530)를 구성하는 입력 노드들 각각은, 도 5d에 도시된 연산 단위에서 제1 입력 노드(542) 또는 제2 입력 노드(543) 중 어느 하나에 대응될 수 있다. 도 5c에 도시된 폴라 디코더(530)를 구성하는 출력 노드들 각각은, 도 5d에 도시된 연산 단위에서 제1 출력 노드(540) 또는 제2 출력 노드(541) 중 어느 하나에 대응될 수 있다. 도 5c에 도시된 폴라 디코더(530)를 구성하는 노드들 중 입력 노드들 및 출력 노드들을 제외한 나머지 노드들은, 인코딩 연산 과정에 따라서 도 5d에 도시된 연산 단위 중 제1 입력 노드(542) 또는 제2 입력 노드(543) 중 어느 하나에 대응될 수 있고, 또한 제1 출력 노드(540) 또는 제2 출력 노드(541) 중 어느 하나에 대응될 수 있다.
도 5c에 도시된 폴라 디코더(530)의 비트 채널들(또는 출력 노드들)에서 출력되는 값들을, W(ui)(i=0, 1, ..., 7)와 같이 표현할 수 있다. 여기서, 8개의 W(ui) 값들 중, 도 5d에 도시된 연산 단위에서 제1 출력 노드(540)에 대응되는 출력 노드들(530, 532, 534, 536)을 통해 출력된 값들은 W0(u2m)(m=0, 1, 2, 3)과 같이 표현될 수 있다. 한편, 8개의 W(ui) 값들 중, 도 5d에 도시된 연산 단위에서 제2 출력 노드(541)에 대응되는 출력 노드들(531, 533, 535, 537)을 통해 출력된 값들은 W1(u2m+1)(m=0, 1, 2, 3)과 같이 표현될 수 있다. 다르게 표현하면, i는 'i=2m+k'(m=0, 1, 2, 3. k=0, 1)와 같이 표현될 수 있고, W(ui)는 Wk(u2m+k)와 같이 표현될 수 있다.
8개의 W(ui) 값들에 기초하여, 8개의 값들이 계산될 수 있다. 여기서, 8개의 값들은 폴라 디코더(530)의 디코딩 동작의 결과에 해당할 수 있다. 다르게 표현하면, 8개의 값들은 송신 노드에서 폴라 인코더(510)에 입력된 8개의 ui 값들에 대한 복원 결과로 추정될 수 있다. 8개의 값들은 수학식 11과 같이 계산될 수 있다.
수학식 11은, 송신 노드 및 수신 노드 간에 사전에 공유된 집합 Ai=A2m+k의 원소들 중에서, W(ui)=Wk(u2m+k)의 값이 최대가 되게 하는 하나의 원소를 로 정의한다는 의미로 볼 수 있다. 다르게 표현하면, 송신 노드 및 수신 노드 간에 사전에 공유된 집합 Ai의 원소들 중에서 폴라 디코더(530)에서 출력된 W(ui)의 값이 최대가 되게 하는 원소가, ui의 복원 결과로 추정될 수 있다.
임의의 노드에 대응되는 W값을 W(·)라 할 때, W(·)는 0과 1 사이의 값을 가질 수 있다. 따라서, W(·)에 -log를 취한 값(즉, -log(W(·)) 값)은 0 이상의 값을 가질 수 있고, 수치적으로 안정화될 수 있다. 이와 같이 W(·)에 -log를 취함으로써, 디코딩 연산 과정에서 양자화(quantization) 오차에 대한 민감도를 줄일 수 있다. 임의의 노드에 대한 W(·) 값의 변환값에 해당하는 값이 수학식 12와 같이 계산될 수 있다.
수학식 9 및 수학식 10은, 수학식 12에 기초하여 수학식 13 및 수학식 14와 같이 다시 표현될 수 있다.
여기서, 수학식 13은 수학식 15와 같이 근사화될 수 있다.
수학식 15에서, 항은 수학식 13과 같이 표현된 의 변환값인 에서 가장 지배적인(dominant) 성분을 표현한 것으로 볼 수 있다. 한편, 수학식 15에서 항은, 에서 항을 뺀 결과를 근사적으로 표현한 것으로 볼 수 있다. 항을 구성하는 는, 갈루아 필드 GF(Q)의 원소들 중에서 함수의 값이 최소가 되게 하는 하나의 원소(b1)로 결정될 수 있다.
도 5c에 도시된 구조를 가지는 폴라 디코더(530)는 도 5d에 도시된 연산 단위들 각각에서의 연산에 기초하여 디코딩을 수행할 수 있다. 도 5d에 도시된 연산 단위들 각각에서는 수학식 14 및 수학식 15에 기초하여, 제1 입력 변환값 및 제2 입력 변환값 으로부터 제1 출력 변환값 및 제2 출력 변환값 을 계산하는 연산이 수행될 수 있다. 여기서, 수학식 14의 연산은 상대적으로 낮은 복잡도를 가지지만, 수학식 15의 연산은 한 차례 근사화되었음에도 불구하고 상당히 높은 복잡도 또는 많은 연산량을 가질 수 있다. 수학식 15에서는 모든 에 대한 합 연산()을 수행하는 과정에서, 각각의 값마다 GF(Q)의 모든 원소들 중에서 의 값이 최소가 되게 하는 b1 값을 찾는 반복 연산()이 수행될 수 있다. 즉, 수학식 15의 연산은 GF(Q)의 크기의 제곱(다르게 표현하면, Q의 제곱)에 비례하는 복잡도를 가질 수 있다. 따라서, 폴라 디코더(530)에서의 효율적인 디코딩 동작을 위하여는 수학식 15의 연산을 간소화 또는 간략화하기 위한 디코딩 알고리즘이 필요할 수 있다.
도 6은 통신 시스템에서 디코딩 연산 알고리즘의 일 실시예를 설명하기 위한 개념도이다.
도 6을 참조하면, 통신 시스템에서 수신 노드는 폴라 인코더에 의해 인코딩되어 전송된 신호를 수신 및 복조하여 소프트 심볼들을 획득할 수 있고, 획득된 소프트 심볼들에 기초하여 폴라 디코더에 의한 디코딩 동작을 수행함으로써 정보 비트들을 복원할 수 있다. 여기서, 폴라 디코더는 도 5c를 참조하여 설명한 폴라 디코더(530)와 동일 또는 유사할 수 있다. 폴라 디코더는 도 5d를 참조하여 설명한 연산 단위와 동일 또는 유사한 연산 단위들 각각에서의 연산에 기초하여 디코딩을 수행할 수 있다.
도 5d를 참조하여 설명한 각각의 연산 단위에서는, 버터플라이 아키텍처의 제1 및 제2 입력 노드들(542, 543)에 입력된 제1 및 제2 입력값들(W2, W3)에 기초하여, 버터플라이 아키텍처의 제1 및 제2 출력 노드들(540, 541)로 출력되는 제1 및 제2 출력값들(W0, W1)이 획득될 수 있다. 수학식 12 내지 수학식 15를 참조하여 설명한 것과 같이, 도 5d를 참조하여 설명한 각각의 연산 단위에서의 연산은, 버터플라이 아키텍처의 제1 및 제2 입력 노드들(542, 543)에 대응되는 제1 및 제2 입력 변환값들(, )로부터 제1 및 제2 출력 노드들(540, 541)에 대응되는 제1 및 제2 출력 변환값들(, )을 구하는 연산으로 다시 표현될 수 있다.
도 5d를 참조하여 설명한 각각의 연산 단위에서는, 폴라 디코더가 수학식 14 및 15에 표시된 것과 동일 또는 유사한 연산을 수행할 수 있다. 여기서, 수학식 15의 연산은 제1 및 제2 입력 변환값들(, )로부터 제2 출력 변환값()을 구하는 디코딩 연산에 해당할 수 있다. 폴라 디코더는 수학식 15의 연산을 도 6에 도시된 것과 동일 또는 유사한 디코딩 연산 알고리즘에 기초하여 수행할 수 있다.
도 6에 도시된 디코딩 연산 알고리즘에서, 폴라 디코더는 모든 에 대한 값들 중 가장 작은 값을 제1 하한값 으로 정의할 수 있다(S601). 다르게 표현하면, 제1 하한값 은, 제1 입력 변환값 의 하한값 또는 최소값에 해당할 수 있다. 다음으로, 폴라 디코더는 0 이상이고 Q보다 작은 모든 m에 대하여, 의 값들을 그 크기에 기초하여 정렬할 수 있다(S602). 이를테면, 폴라 디코더는 0 이상이고 Q보다 작은 모든 m에 대하여, 의 값들을 오름차순으로 정렬할 수 있다. 다르게 표현하면, 폴라 디코더는 인 임의의 m 및 j에 대하여 이 되도록 ()을 결정할 수 있다.
이후, 폴라 디코더는 모든 에 대하여, 다음의 S604 단계 내지 S616 단계와 같은 반복 루프(iterative loop) 연산을 수행할 수 있다(S603). 다르게 표현하면, 폴라 디코더는 S604 단계 내지 S616 단계와 같은 연산을 모든 값들 각각에 대하여 반복적으로 수행할 수 있다.
폴라 디코더는 반복 루프 연산의 초기 조건으로서, 제1 변수 의 값을 제1 초기값으로 정의할 수 있고(S604), 제2 변수 의 값을 제2 초기값으로 정의할 수 있다(S605). 여기서, 제1 초기값 및 제2 초기값은 수학식 15에서 정의된 Z함수가 가질 수 있는 최대값보다 큰 값으로 설정될 수 있다. 제1 초기값 및 제2 초기값은 시스템상 설정 가능한 최대값으로 설정될 수 있다. 제1 초기값 및 제2 초기값은 서로 동일한 값으로 설정될 수도 있고 서로 다른 값으로 설정될 수도 있다.
이후, 폴라 디코더는 0 이상이고 Kmax 이하인 모든 k에 대하여, 다음의 S606 단계 내지 S614 단계와 같은 반복 루프 연산을 수행할 수 있다(S606). 여기서, Kmax는 반복 루프 연산의 최대 횟수에 관한 파라미터에 해당할 수 있다. Kmax는 0 이상이고 Q 미만인 어느 값을 가질 수 있다. Kmax의 값이 클수록 S606 단계 내지 S614 단계의 반복 루프 연산의 복잡도가 증가할 수 있다.
폴라 디코더는 S607 내지 S610 단계에서, 반복 루프 연산 중 각각의 회차(iteration) 별 k값에 기초하여, 제1 변수 값 및 제2 변수 의 값을 설정할 수 있다. 구체적으로는, 폴라 디코더는 k번째 회차에서, 제1 함수 의 값을 계산할 수 있다. 폴라 디코더는 계산된 제1 함수 의 값과 제1 변수 의 값을 비교할 수 있다(S607). 만약 k번째 회차에서 제1 변수 의 값이 제1 함수 의 값 이상이면(S607), 폴라 디코더는 제1 변수 의 값을 제2 변수 에 대입하고(S608), 제1 함수 의 값을 제1 변수 에 대입할 수 있다(S609). 다르게 표현하면, 만약 제1 변수 의 값이 제1 함수 의 값 이상이면(S607), 폴라 디코더는 제2 변수 의 값을 해당 시점의 제1 변수 의 값으로 설정하고(S608), 제1 변수 의 값을 해당 시점의 제1 함수 의 값으로 설정할 수 있다(S609). 한편, 폴라 디코더는 k번째 회차에서 제1 변수 의 값이 제1 함수 의 값보다 작으면(S607), 제1 변수 의 값 및 제2 변수 의 값을 변경하지 않을 수 있다(S610).
폴라 디코더는 k번째 회차에서의 S611 내지 S613 단계에서, k값에 기초하여 S606 단계 내지 S614 단계의 반복 루프 연산 중단(break) 여부를 결정할 수 있다. 구체적으로는, k번째 회차에서, 수학식 16과 같이 정의되는 제2 함수 의 값과 제1 변수 의 값을 비교할 수 있다(S611).
수학식 16과 같이 정의되는 제2 함수 는, S601 단계에서 계산된 제1 하한값 및 ck+1에 대한 제2 입력 변환값 의 합(즉, )을 제1 변수 의 값과 비교할 수 있다(S611). 만약 k번째 회차에서 제1 변수 의 값이 제2 함수 의 값 이하일 경우(즉, )(S611), 폴라 디코더는 S606 단계 내지 S614 단계의 반복 루프 연산을 중단(break)할 수 있고(S612), S615 단계에 따른 동작을 수행할 수 있다.
한편, k번째 회차에서 제1 변수 의 값이 제2 함수 의 값보다 클 경우(즉, )(S611), 폴라 디코더는 S606 단계 내지 S614 단계의 반복 루프 연산을 중단하지 않고(S613), k+1번째 회차에 대하여 S607 단계 내지 S614 단계에 따른 연산을 다시 수행할 수 있다(S606). 만약 k가 Kmax일 경우, 폴라 디코더는 S613 단계에서 S606 단계 내지 S614 단계의 반복 루프 연산을 종료하고, S615 단계에 따른 동작을 수행할 수 있다.
S615 단계에서, 폴라 디코더는 S606 단계 내지 S614 단계의 반복 루프 연산에 따라서 결정된 제1 변수 의 값 및 제2 변수 의 값에 기초하여, 제1 출력 변환값 을 수학식 17과 같이 계산할 수 있다.
폴라 디코더는 모든 에 대하여 S604 단계 내지 S615 단계의 동작들을 수행한 이후, 반복 루프 동작을 종료할 수 있다(S616). S601 단계 내지 S616 단계에 따른 동작이 종료된 시점까지 계산된 제1 출력 변환값 의 값이, 도 6에 도시된 디코딩 연산 알고리즘의 결과물일 수 있다. 다르게 표현하면, 도 6에 도시된 디코딩 연산 알고리즘에서 S601 단계 내지 S616 단계에 기초하여 결정된 제1 출력 변환값 의 값이, 수학식 15와 같이 표현된 제1 출력 변환값 에 대한 근사적인 계산 결과에 해당할 수 있다.
S601 단계에서 결정된 제1 하한값 , 및 S602 단계에서 c값에 따라 오름차순으로 정렬된 제2 입력 변환값 (즉, )을 참조하면, k번째 회차의 S611 단계에서 제1 변수 의 값이 제2 함수 의 값 이하일 경우(즉, ), 이후의 회차에서 제1 변수 의 값이 갱신되지 않을 것으로 판단할 수 있다. 구체적으로는, k번째 회차의 S611 단계에서 제1 변수 의 값이 제2 함수 의 값 이하일 경우(즉, ), k+1번째 회차의 S607 단계에서 제1 변수 의 값이 제1 함수의 값(보다 작을 것으로 예상할 수 있다. S607 단계에서 제1 변수 의 값이 제1 함수의 값()보다 작을 경우, 제1 변수 의 값 및 제2 변수 의 값은 갱신되지 않을 수 있다(S610). 유사하게, k+2번째 회차 및 그 이후의 회차의 S611 단계에서도 제1 변수 의 값이 제1 함수의 값보다 작아서 제1 변수 의 값 및 제2 변수 의 값이 갱신되지 않을 수 있다(S610). 다르게 표현하면, k번째 회차의 S611 단계에서 제1 변수 의 값이 제2 함수 의 값 이하일 경우(즉, ), 인 임의의 m에 대하여 수학식 18이 성립할 수 있다.
즉, 임의의 k번째 회차의 S611 단계에서 제1 변수 의 값이 제2 함수 의 값 이하일 경우, k+1번째 회차 및 그 이후의 회차에서 제1 변수 의 값 및 제2 변수 의 값이 갱신되지 않을 수 있다 다르게 표현하면, 임의의 k번째 회차의 S611 단계에서 제1 변수 의 값이 제2 함수 의 값 이하일 경우, 이후의 회차에 따른 연산을 수행하더라도 디코딩 연산의 결과(즉, S615 단계 및 수학식 17에 따른 제1 출력 변환값 의 계산 결과)에 영향이 없을 수 있다. S611 단계에 따른 판단 결과에 기초한 반복 루프 연산 중단(break)(S612) 동작에 따르면, 디코딩 연산 결과에 영향을 주지 않을 특정 회차 이후의 연산을 폴라 디코더가 수행하지 않을 수 있다. 따라서, 폴라 디코더는 최종 계산 결과에 영향을 미치지 않는 불필요한 연산량을 생략 또는 스킵(skip)할 수 있고, 폴라 디코더의 디코딩 연산의 효율성이 향상될 수 있다.
도 7은 통신 시스템에서 디코딩 연산 알고리즘의 일 실시예를 설명하기 위한 그래프이다.
도 7을 참조하면, 폴라 디코더는 도 6을 참조하여 설명한 디코딩 연산 알고리즘에 기초한 연산을 수행할 수 있다. 디코딩 연산 알고리즘의 일 실시예에서는, k의 증가에 따른 반복 루프 연산이 수행될 수 있다. k값의 증가에 따른 반복 루프 연산에서, 제1 함수 의 값 및 제2 입력 변환값 의 값은 도 7의 그래프에 도시된 것과 같은 양상으로 변화할 수 있다. 도 6의 S611 단계를 참조하여 설명한 바와 같이, 디코딩 연산 알고리즘의 일 실시예에서는 특정 회차 이후의 회차(이를테면, 도 7에서 빗금 표시된 영역)에서의 반복 루프 연산이 최종 계산 결과에 영향을 주지 않을 수 있다. 폴라 디코더는 디코딩 연산 알고리즘을 수행함에 있어서, 최종 계산 결과에 영향을 주지 않을 것으로 판단되는 연산을 생략 또는 스킵(skip)할 수 있다.
통신 시스템에서 폴라 코드에 기초한 디코딩 방법 및 장치의 일 실시예에 따르면, 송신 노드에서 폴라 코드 방식에 기초하여 인코딩되어 전송된 신호를 수신하는 수신 노드에서, 폴라 코드 방식에 기초한 디코딩 동작을 효율적으로 수행할 수 있다. 수신 노드의 폴라 디코더는 디코딩을 위한 반복 루프(iterative loop) 연산을 수행하는 도중 어느 특정 회차(iteration)에서, 이후의 연산을 수행하는 것이 최종 계산 결과에 영향을 미치지 않을 것으로 판단될 경우, 해당 반복 루프를 종료하도록 동작할 수 있다. 이와 같이 반복 루프 연산을 조기 종료(terminate) 또는 조기 중단(break)시킴으로 인해, 최종 계산 결과에 영향을 미치지 않는 불필요한 연산량을 생략시킬 수 있다. 이에 따라, 디코딩 동작의 복잡도 또는 연산량이 경감될 수 있고, 효율성이 향상될 수 있다.
다만, 통신 시스템에서 폴라 코드에 기초한 디코딩 방법 및 장치가 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 본 출원의 명세서 상에 기재된 구성들로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양 하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (11)
- 통신 시스템에서 수신 노드의 동작 방법으로서,
송신 노드로부터 수신된 수신 신호를 복조하여 획득된 복수의 수신 비트들을, 상기 수신 노드의 폴라 디코더의 복수의 입력 노드들에 입력하는 단계;
상기 폴라 디코더를 구성하는 복수의 연산 단위들 각각에서 제1 및 제2 단위 입력 노드에 대응되는 제1 및 제2 입력 변환값에 기초하여, 제1 및 제2 단위 출력 노드에 대응되는 제1 및 제2 출력 변환값을 계산하는 디코딩 연산을 수행하는 단계; 및
상기 복수의 연산 단위들 각각에서의 상기 디코딩 연산에 기초하여, 상기 폴라 디코더의 복수의 출력 노드들에서 출력 비트들을 획득하는 단계를 포함하며,
상기 디코딩 연산을 수행하는 단계는,
상기 제1 출력 변환값의 계산을 위한 제1 및 제2 변수의 초기값을 설정하는 단계;
상기 제1 및 제2 변수의 갱신을 위한 복수의 회차(iteration)들을 포함하는 반복 루프(iterative loop) 연산을 수행하는 단계; 및
상기 반복 루프 연산이 종료된 시점까지 갱신된 상기 제1 및 제2 변수의 값에 기초하여, 상기 제1 출력 변환값을 계산하는 단계를 포함하며,
상기 반복 루프 연산은 상기 복수의 회차들 중 상기 제1 및 제2 변수가 갱신되지 않을 것으로 판단되는 회차들의 수행 없이 종료되는, 수신 노드의 동작 방법. - 청구항 1에 있어서,
상기 디코딩 연산을 수행하는 단계는,
상기 제1 및 제2 변수의 초기값을 설정하는 단계 이전에, 상기 송신 노드 및 상기 수신 노드 간에 공유된 갈루아 필드의 정보에 기초하여, 상기 제1 입력 변환값이 가질 수 있는 최소값을 계산하는 단계; 및
상기 복수의 회차들에서 상기 제2 입력 변환값이 가질 수 있는 값들을 오름차순으로 정렬하는 단계를 더 포함하는, 수신 노드의 동작 방법. - 청구항 1에 있어서,
상기 반복 루프 연산을 수행하는 단계는,
상기 복수의 회차들 중 k번째 회차에서, 상기 제1 및 제2 입력 변환값에 기초하여 정의되는 제1 함수의 값과, 상기 제1 변수의 값을 비교하는 단계;
상기 제1 변수의 값이 상기 제1 함수의 값 이상일 경우, 상기 제1 변수의 값에 기초하여 상기 제2 변수의 값을 갱신하는 단계; 및
상기 제1 함수의 값에 기초하여 상기 제1 변수의 값을 갱신하는 단계를 포함하며,
상기 k는 0 이상이고 제1 설정값 이하인 정수 값을 가지는, 수신 노드의 동작 방법. - 청구항 1에 있어서,
상기 반복 루프 연산을 수행하는 단계는,
상기 복수의 회차들 중 k번째 회차에서, 상기 제1 및 제2 입력 변환값에 기초하여 정의되는 제2 함수의 값과, 상기 제1 변수의 값을 비교하는 단계; 및
상기 제1 변수의 값이 상기 제2 함수의 값 이하일 경우, 상기 반복 루프 연산을 종료하는 단계를 포함하며,
상기 k는 0 이상이고 제1 설정값 이하인 정수 값을 가지는, 수신 노드의 동작 방법. - 청구항 1에 있어서,
상기 디코딩 연산을 수행하는 단계는,
상기 제1 및 제2 입력 변환값의 합에 기초하여 상기 제2 출력 변환값을 계산하는 단계를 더 포함하는, 수신 노드의 동작 방법. - 청구항 1에 있어서,
상기 출력 비트들을 획득하는 단계는,
상기 복수의 연산 단위들 각각에서의 상기 디코딩 연산에 기초하여, 상기 폴라 디코더에서 연속 제거(successive cancellation, SC) 디코딩 동작을 수행하는 단계를 포함하며,
상기 출력 비트들은, 상기 송신 노드에서 상기 수신 노드로 전송하고자 한 전송 비트들에 대한 복원 결과, 및 상기 송신 노드에서 상기 전송 비트들에 대한 폴라 코드 방식의 인코딩 동작에 사용된 프로즌 비트들에 대한 복원 결과를 포함하는, 수신 노드의 동작 방법. - 통신 시스템의 수신 노드로서,
프로세서(processor);
상기 프로세서와 전자적(electronic)으로 통신하는 메모리; 및
상기 메모리에 저장되는 명령들(instructions)을 포함하며;
상기 명령들이 상기 프로세서에 의해 실행되는 경우, 상기 명령들은 상기 수신 노드가,
송신 노드로부터 수신된 수신 신호를 복조하여 획득된 복수의 수신 비트들을 상기 수신 노드의 폴라 디코더의 복수의 입력 노드들에 입력하고,
상기 폴라 디코더를 구성하는 복수의 연산 단위들 각각에서 제1 및 제2 단위 입력 노드에 대응되는 제1 및 제2 입력 변환값에 기초하여, 제1 및 제2 단위 출력 노드에 대응되는 제1 및 제2 출력 변환값을 계산하는 디코딩 연산을 수행하고; 그리고
상기 복수의 연산 단위들 각각에서의 상기 디코딩 연산에 기초하여, 상기 폴라 디코더의 복수의 출력 노드들에서 출력 비트들을 획득하는 것을 야기하도록 동작하며,
상기 디코딩 연산을 수행하는 경우, 상기 명령들은 상기 수신 노드가,
상기 제1 출력 변환값의 계산을 위한 제1 및 제2 변수의 초기값을 설정하고;
상기 제1 및 제2 변수의 갱신을 위한 복수의 회차(iteration)들을 포함하는 반복 루프(iterative loop) 연산을 수행하고;
상기 반복 루프 연산이 종료된 시점까지 갱신된 상기 제1 및 제2 변수의 값에 기초하여, 상기 제1 출력 변환값을 계산하는 것을 더 야기하도록 동작하며,
상기 반복 루프 연산은 상기 복수의 회차들 중 상기 제1 및 제2 변수가 갱신되지 않을 것으로 판단되는 회차들의 수행 없이 종료되는, 수신 노드. - 청구항 7에 있어서,
상기 디코딩 연산을 수행하는 경우, 상기 명령들은 상기 수신 노드가,
상기 제1 및 제2 변수의 초기값을 설정하는 단계 이전에, 상기 송신 노드 및 상기 수신 노드 간에 공유된 갈루아 필드의 정보에 기초하여, 상기 제1 입력 변환값이 가질 수 있는 최소값을 계산하고; 그리고
상기 복수의 회차들에서 상기 제2 입력 변환값이 가질 수 있는 값들을 오름차순으로 정렬하는 것을 더 야기하도록 동작하는, 수신 노드. - 청구항 7에 있어서,
상기 반복 루프 연산을 수행하는 경우, 상기 명령들은 상기 수신 노드가,
상기 복수의 회차들 중 k번째 회차에서, 상기 제1 및 제2 입력 변환값에 기초하여 정의되는 제1 함수의 값과, 상기 제1 변수의 값을 비교하고;
상기 제1 변수의 값이 상기 제1 함수의 값 이상일 경우, 상기 제1 변수의 값에 기초하여 상기 제2 변수의 값을 갱신하고; 그리고
상기 제1 함수의 값에 기초하여 상기 제1 변수의 값을 갱신하는 것을 더 야기하도록 동작하며,
상기 k는 0 이상이고 제1 설정값 이하인 정수 값을 가지는, 수신 노드. - 청구항 7에 있어서,
상기 반복 루프 연산을 수행하는 경우, 상기 명령들은 상기 수신 노드가,
상기 복수의 회차들 중 k번째 회차에서, 상기 제1 및 제2 입력 변환값에 기초하여 정의되는 제2 함수의 값과, 상기 제1 변수의 값을 비교하고; 그리고
상기 제1 변수의 값이 상기 제2 함수의 값 이하일 경우, 상기 반복 루프 연산을 조기 종료하는 것을 더 야기하도록 동작하며,
상기 k는 0 이상이고 제1 설정값 이하인 정수 값을 가지는, 수신 노드. - 청구항 7에 있어서,
상기 디코딩 연산을 수행하는 경우, 상기 명령들은 상기 수신 노드가,
상기 제1 및 제2 입력 변환값의 합에 기초하여 상기 제2 출력 변환값을 계산하는 것을 더 야기하도록 동작하는, 수신 노드.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/675,010 US11689218B2 (en) | 2021-02-19 | 2022-02-18 | Decoding method and apparatus based on polar code in communication system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210022858 | 2021-02-19 | ||
KR20210022858 | 2021-02-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220118950A true KR20220118950A (ko) | 2022-08-26 |
KR102689928B1 KR102689928B1 (ko) | 2024-07-30 |
Family
ID=83113389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220021609A KR102689928B1 (ko) | 2021-02-19 | 2022-02-18 | 통신 시스템에서 폴라 코드에 기초한 디코딩 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102689928B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110127012A (ko) * | 2010-05-18 | 2011-11-24 | 포항공과대학교 산학협력단 | 새로운 중단 기준을 포함하는 비이진 신뢰 확산 알고리즘을 이용하여 복호하는 복호화 방법 및 장치 |
KR20200003146A (ko) * | 2017-05-05 | 2020-01-08 | 퀄컴 인코포레이티드 | 조기 종료에 의한 폴라 리스트 디코딩 |
KR102144266B1 (ko) * | 2019-05-10 | 2020-08-13 | 포항공과대학교 산학협력단 | 통신 시스템에서 폴라 코드에 기초한 디코딩 방법 및 장치 |
-
2022
- 2022-02-18 KR KR1020220021609A patent/KR102689928B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110127012A (ko) * | 2010-05-18 | 2011-11-24 | 포항공과대학교 산학협력단 | 새로운 중단 기준을 포함하는 비이진 신뢰 확산 알고리즘을 이용하여 복호하는 복호화 방법 및 장치 |
KR20200003146A (ko) * | 2017-05-05 | 2020-01-08 | 퀄컴 인코포레이티드 | 조기 종료에 의한 폴라 리스트 디코딩 |
KR102144266B1 (ko) * | 2019-05-10 | 2020-08-13 | 포항공과대학교 산학협력단 | 통신 시스템에서 폴라 코드에 기초한 디코딩 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR102689928B1 (ko) | 2024-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108365848B (zh) | 一种极性码的译码方法和装置 | |
CN110166167B (zh) | 编码的方法、译码的方法、编码设备和译码设备 | |
US10158404B2 (en) | Data transmission method, transmit end device, and receive end device | |
US10931400B2 (en) | Decoding method and apparatus in wireless communication system | |
KR20170102173A (ko) | 데이터 전송 방법 및 디바이스 | |
KR102349879B1 (ko) | 폴라 코드들에 대한 crc 인터리빙 패턴 | |
WO2018121460A1 (zh) | 非正交传输数据的方法和设备 | |
WO2016090587A1 (zh) | 数据处理的方法、装置和设备 | |
US20170264464A1 (en) | Method for Processing Data, Network Node, and Terminal | |
CN106416166B (zh) | 处理数据的方法和通信设备 | |
US20170111142A1 (en) | Decoding method and apparatus | |
KR102525414B1 (ko) | LDPC(low-density parity-check) 부호의 복호화 방법 및 장치 | |
US20200036474A1 (en) | Resource mapping method and apparatus thereof | |
WO2020160167A1 (en) | Methods and procedures for flexible and highly-parallel polar encoding and decoding | |
KR102689928B1 (ko) | 통신 시스템에서 폴라 코드에 기초한 디코딩 방법 및 장치 | |
KR102144266B1 (ko) | 통신 시스템에서 폴라 코드에 기초한 디코딩 방법 및 장치 | |
CN115395971B (zh) | 干扰噪声功率的确定方法、装置、电子设备及存储介质 | |
US11689218B2 (en) | Decoding method and apparatus based on polar code in communication system | |
CN109756294A (zh) | 一种用于无线通信的用户设备、基站中的方法和装置 | |
KR20210015634A (ko) | 통신 시스템에서 폴라 코드를 사용한 신호의 송수신 방법 및 장치 | |
CN112438023B (zh) | 极化编码和解码 | |
JP2020501414A (ja) | データ処理方法および送信デバイス | |
US20230291498A1 (en) | Method and apparatus for hybrid automatic repeat request in communication system using polar codes | |
WO2024011554A1 (en) | Techniques for joint probabilistic shaping of multiple bits per modulation constellation | |
CN109495206A (zh) | 一种被用于无线通信的用户、基站中的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |