KR102552282B1 - 블록 직교 희소 중첩 코드 인코딩 및 디코딩 방법, 및 그 장치 - Google Patents

블록 직교 희소 중첩 코드 인코딩 및 디코딩 방법, 및 그 장치 Download PDF

Info

Publication number
KR102552282B1
KR102552282B1 KR1020210033929A KR20210033929A KR102552282B1 KR 102552282 B1 KR102552282 B1 KR 102552282B1 KR 1020210033929 A KR1020210033929 A KR 1020210033929A KR 20210033929 A KR20210033929 A KR 20210033929A KR 102552282 B1 KR102552282 B1 KR 102552282B1
Authority
KR
South Korea
Prior art keywords
sub
sparse
codewords
matrix
message vector
Prior art date
Application number
KR1020210033929A
Other languages
English (en)
Other versions
KR20220129266A (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 포항공과대학교 산학협력단
Priority to KR1020210033929A priority Critical patent/KR102552282B1/ko
Publication of KR20220129266A publication Critical patent/KR20220129266A/ko
Application granted granted Critical
Publication of KR102552282B1 publication Critical patent/KR102552282B1/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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/251Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with block coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

블록 직교 희소 중첩 코드 인코딩 및 디코딩 방법, 및 그 장치가 개시된다. 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 인코딩 방법은 인코딩 장치에 의해 수행되는 코드 인코딩 방법에 있어서, 복수의 레이어에서 정보 비트(Information bits)를 연속적으로 인코딩하는 과정에서, 상기 정보 비트를 사용하여 인덱스 셋을 순차적으로 선택하는 단계; 각 레이어에서 선택된 인덱스 셋에 변조 심볼을 각각 할당하고, 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성하는 단계; 및 상기 생성된 복수의 서브 코드워드를 결합하여 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code)를 생성하는 단계를 포함한다.

Description

블록 직교 희소 중첩 코드 인코딩 및 디코딩 방법, 및 그 장치 {METHOD FOR ENCODING AND DECODING BLOCK ORTHOGONAL SPARSE SUPERPOSITION CODE, AND APPARATUS THEREFORE}
본 발명은 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code)의 인코딩과 디코딩 방법 및 그 장치에 관한 것이다.
희소 중첩 코드(SPARC; Sparse superposition code)는 용량 달성 코드 계열이다. SPARC의 코드워드는 사전 행렬에서 열의 희소 선형 열 조합으로 표현된다. 인코딩 및 적응형 연속 임계값 디코딩을 위한 가우시안 랜덤 사전 행렬을 통해 SPARC는 다항식 시간 디코딩 복잡성으로 블록 길이가 무한대에 가까워질 때 가우시안 채널 용량을 점근적으로 달성한다. 이론적 근거에도 불구하고 SPARC는 짧은 블록 길이 영역에서 표준 이하 블록 오류율(BLER; sub-standard block-error-rate) 성능을 제공하는데, 이는 매우 신뢰할 수 있는 저 지연 통신(URLLC; ultra-reliable low-latency communications)에 큰 관심을 끌고 있다.
최근 유한 블록 길이 체제에서 SPARC의 디코딩 성능을 향상시키기 위한 효과적인 디코딩 알고리즘을 개발하는 데 상당한 진전이 있었다. 실용적인 디코딩 알고리즘에는 소프트 결정 기반 적응형 연속 디코더와 AMP(approximate message passing) 디코더가 포함된다. 특히, AMP는 상태 진화 특성 덕분에 우수한 디코딩 성능과 이론적 보증을 보여주었다. 그러나 AMP 디코더가 있는 SPARC는 URLLC에 사용하도록 제한된다. 예를 들어, AMP 디코더가 있는 SPARC는 biorthogonal, 저밀도 패리티 체크(LDPC) 코드 및 polar를 포함하여 기존의 코드화된 변조 체계에 비해 짧은 블록 길이 체제에서 낮은 BLER 성능을 제공하며, 이는 실제로 SPARC 사용을 방해한다.
인코더를 최적화하는 것은 짧은 블록 길이 체제에서 SPARC의 성능을 향상시키는 데 중요한 역할을 한다. 불행히도, 주어진 블록 길이에 최적화된 사전 행렬을 찾는 것은 어렵다. 인코더 설계 문제는 압축 센싱(CS)에서 작게 제한된 아이소메트리 특성(RIP; restricted isometry property) 상수를 갖는 센싱 행렬 설계 문제로 볼 수 있다. 최근에, 짧은 블록 길이로 효율적인 저율 코드(low-rate code)를 설계하기 위해 직교 희소 중첩(OSS) 코드라는 새로운 SPARC 계열이 제안되었다. OSS 코드의 아이디어는 작은 RIP 상수로 사전 행렬을 구성하는 대신, 정보 비트를 연속적으로 매핑하여 사전 행렬에서 직교 열의 희소 선형 조합으로 코드워드가 구성될 수 있도록 하는 것이다. 단순한 요소별 최대 사후(MAP; maximum a posteriori) 디코더를 사용하여 OSS 코드가 매우 짧은 블록 길이 체제에서 연속 취소 목록(SCL; successive cancellation list) 디코더를 사용하여 polar 코드를 능가한다는 것이 입증되었다. 더 흥미롭게도, 간단한 디코더를 가진 OSS 코드가 블록 길이가 무한대에 가까워짐에 따라 전력 제한 체제에서 궁극적인 Shannon 한계를 달성할 수 있다는 것이다. OSS 코드는 성능에도 불구하고 인코딩을 위해 유니터리 사전 행렬을 사용한다는 점에서 제한적이며 블록 길이가 증가함에 따라 코드율이 극도로 낮아진다.
본 발명의 실시예들은, 짧은 블록 길이 체제에서 블록 오류율을 향상시킬 수 있는 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code) 인코딩과 디코딩 방법 및 그 장치를 제공한다.
본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 인코딩 방법은 인코딩 장치에 의해 수행되는 코드 인코딩 방법에 있어서, 복수의 레이어에서 정보 비트(Information bits)를 연속적으로 인코딩하는 과정에서, 상기 정보 비트를 사용하여 인덱스 셋을 순차적으로 선택하는 단계; 각 레이어에서 선택된 인덱스 셋에 변조 심볼을 각각 할당하고, 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성하는 단계; 및 상기 생성된 복수의 서브 코드워드를 결합하여 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code)를 생성하는 단계를 포함한다.
상기 복수의 서브 코드워드를 순차적으로 생성하는 단계는 상기 여러 개의 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 상기 복수의 서브 코드워드가 직교하도록 상기 복수의 서브 코드워드를 순차적으로 생성할 수 있다.
나아가, 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 인코딩 방법은 상기 정보 비트를 이용하여 블록 인덱스를 결정하고, 상기 결정된 블록 인덱스를 이용하여 복수의 사전 행렬 중 어느 하나의 사전 행렬을 선택하는 단계를 더 포함할 수 있다.
상기 복수의 서브 코드워드를 순차적으로 생성하는 단계는 상기 선택된 어느 하나의 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성할 수 있다.
상기 인덱스 셋을 순차적으로 선택하는 단계는 희소 메시지 벡터의 서포트 셋을 이용하여 인덱스 셋을 순차적으로 선택하고, 상기 복수의 서브 코드워드를 순차적으로 생성하는 단계는 상기 희소 메시지 벡터의 넌제로(non-zero) 위치에 상기 변조 심볼을 각각 할당할 수 있다.
본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 방법은 디코딩 장치에 의해 수행되는 코드 디코딩 방법에 있어서, 수신 신호에서 넌제로(non-zero) 위치인 서포트 셋(Support set)을 추정하는 단계; 상기 추정된 서포트 셋을 이용하여 희소 메시지 벡터를 획득하는 단계; 및 상기 획득된 희소 메시지 벡터와 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 블록 직교 희소 중첩 코드를 검출하는 단계를 포함한다.
나아가, 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 방법은 상기 수신 신호와 상기 검출된 블록 직교 희소 중첩 코드를 이용하여 블록 인덱스를 검출하는 단계; 및 상기 검출된 블록 인덱스를 이용하여 최종 희소 메시지 벡터를 식별하는 단계를 더 포함할 수 있다.
상기 희소 메시지 벡터를 획득하는 단계는 상기 추정된 서포트 셋을 이용하여 요소별 최대 사후(MAP; maximum a posteriori) 디코딩을 수행함으로써, 상기 희소 메시지 벡터를 획득할 수 있다.
상기 서포트 셋을 추정하는 단계는 상기 수신 신호에서 상기 사전 행렬의 직교 열과 열을 포함하는 상기 유니터리 서브 행렬의 인덱스에 해당하는 넌제로 위치인 상기 서포트 셋을 추정할 수 있다.
본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 인코딩 장치는 복수의 레이어에서 정보 비트(Information bits)를 연속적으로 인코딩하는 과정에서, 상기 정보 비트를 사용하여 인덱스 셋을 순차적으로 선택하는 선택부; 각 레이어에서 선택된 인덱스 셋에 변조 심볼을 각각 할당하고, 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성하는 매핑부; 및 상기 생성된 복수의 서브 코드워드를 결합하여 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code)를 생성하는 생성부를 포함한다.
상기 매핑부는 상기 여러 개의 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 상기 복수의 서브 코드워드가 직교하도록 상기 복수의 서브 코드워드를 순차적으로 생성할 수 있다.
상기 선택부는 상기 정보 비트를 이용하여 블록 인덱스를 결정하고, 상기 결정된 블록 인덱스를 이용하여 복수의 사전 행렬 중 어느 하나의 사전 행렬을 선택할 수 있다.
상기 매핑부는 상기 선택된 어느 하나의 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성할 수 있다.
상기 선택부는 희소 메시지 벡터의 서포트 셋을 이용하여 인덱스 셋을 순차적으로 선택하고, 상기 매핑부는 상기 희소 메시지 벡터의 넌제로(non-zero) 위치에 상기 변조 심볼을 각각 할당할 수 있다.
본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 장치는 수신 신호에서 넌제로(non-zero) 위치인 서포트 셋(Support set)을 추정하는 추정부; 상기 추정된 서포트 셋을 이용하여 희소 메시지 벡터를 획득하는 획득부; 및 상기 획득된 희소 메시지 벡터와 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 블록 직교 희소 중첩 코드를 검출하는 검출부를 포함한다.
상기 검출부는 상기 수신 신호와 상기 검출된 블록 직교 희소 중첩 코드를 이용하여 블록 인덱스를 검출하고, 상기 검출된 블록 인덱스를 이용하여 최종 희소 메시지 벡터를 식별할 수 있다.
상기 획득부는 상기 추정된 서포트 셋을 이용하여 요소별 최대 사후(MAP; maximum a posteriori) 디코딩을 수행함으로써, 상기 희소 메시지 벡터를 획득할 수 있다.
상기 추정부는 상기 수신 신호에서 상기 사전 행렬의 직교 열과 열을 포함하는 상기 유니터리 서브 행렬의 인덱스에 해당하는 넌제로 위치인 상기 서포트 셋을 추정할 수 있다.
본 발명의 다른 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 방법은 디코딩 장치에 의해 수행되는 코드 디코딩 방법에 있어서, 수신 신호에 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 곱하여 복수의 수신 신호들을 획득하는 단계; 상기 획득된 복수의 수신 신호들에 기초하여 인코딩에 사용한 유니터리 서브 행렬을 검출하는 단계; 상기 복수의 수신 신호들 중 상기 검출된 유니터리 서브 행렬에 대응하는 수신 신호에서 넌제로(non-zero) 위치인 서포트 셋(Support set)을 추정하는 단계; 및 상기 추정된 서포트 셋을 이용하여 희소 메시지 벡터를 획득하는 단계를 포함한다.
상기 희소 메시지 벡터를 획득하는 단계는 상기 추정된 서포트 셋을 이용하여 요소별 최대 사후(MAP; maximum a posteriori) 디코딩을 수행함으로써, 상기 희소 메시지 벡터를 획득할 수 있다.
본 발명의 실시예들에 따르면, 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code)를 제공함으로써, 짧은 블록 길이 체제에서 블록 오류율을 향상시킬 수 있다.
본 발명의 실시예들에 따르면, 블록 길이의 다항식 시간 복잡성을 요구하면서 최적의 디코딩 성능을 제공할 수 있다.
이러한 본 발명은 URLLC를 지원하는 차세대 무선 시스템에 매우 유용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 인코딩 방법에 대한 동작 흐름도를 나타낸 것이다.
도 2는 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 방법에 대한 동작 흐름도를 나타낸 것이다.
도 3은 블록 직교 희소 중첩 코드의 인코더 구조에 대한 일 예시도를 나타낸 것이다.
도 4는 블록 직교 희소 중첩 코드의 디코더 구조에 대한 일 예시도를 나타낸 것이다.
도 5는 본 발명의 방법과 다양한 인코딩 디코딩 방법에 대하여 노이즈 스펙트럼 밀도 비율에 대한 BLER 비교 결과를 나타낸 것이다.
도 6은 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 인코딩 장치에 대한 구성을 나타낸 것이다.
도 7은 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 장치에 대한 구성을 나타낸 것이다.
도 8는 블록 직교 희소 중첩 코드의 디코더 구조에 대한 다른 일 예시도를 나타낸 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명의 실시예들은, 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code)를 제공하고, 이를 이용한 인코딩과 디코딩 기술을 제공하는 거을 그 요지로 한다.
도 1은 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 인코딩 방법에 대한 동작 흐름도를 나타낸 것이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 인코딩 방법은 복수의 레이어에서 정보 비트(Information bits)를 연속적으로 인코딩하는 과정에서, 정보 비트를 사용하여 인덱스 셋을 순차적으로 선택한다(S110).
여기서, 단계 S110은 희소 메시지 벡터의 서포트 셋을 이용하여 인덱스 셋을 순차적으로 선택할 수 있다.
단계 S110에 의해 인덱스 셋이 순차적으로 선택되면 각 레이어에서 선택된 인덱스 셋에 변조 심볼을 각각 할당하고, 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성한다(S120).
여기서, 단계 S120은 여러 개의 유니터리 서브 행렬을 이용하여 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드가 직교하도록 복수의 서브 코드워드를 순차적으로 생성할 수 있다.
여기서, 단계 S120은 정보 비트를 이용하여 블록 인덱스가 결정되고 결정된 블록 인덱스를 이용하여 복수의 사전 행렬 중 어느 하나의 사전 행렬이 선택되는 경우 선택된 어느 하나의 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성할 수도 있다.
여기서, 단계 S120은 희소 메시지 벡터의 넌제로(non-zero) 위치에 변조 심볼 예를 들어, 미리 설정된 알파벳 값을 각각 할당할 수 있다.
단계 S120에 의해 복수의 서브 코드워드가 생성되면, 생성된 복수의 서브 코드워드를 결합하여 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code)를 생성한다(S130).
도 2는 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 방법에 대한 동작 흐름도를 나타낸 것이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 방법은 수신 신호에서 넌제로(non-zero) 위치인 서포트 셋(Support set)을 추정하고, 추정된 서포트 셋을 이용하여 희소 메시지 벡터를 획득한다(S210, S220).
여기서, 단계 S210은 수신 신호에서 사전 행렬의 직교 열과 열을 포함하는 유니터리 서브 행렬의 인덱스에 해당하는 넌제로 위치인 서포트 셋을 추정할 수 있다.
여기서, 단계 S220은 추정된 서포트 셋을 이용하여 요소별 최대 사후(MAP; maximum a posteriori) 디코딩을 수행함으로써, 희소 메시지 벡터를 획득할 수 있다.
단계 S220에 의해 희소 메시지 벡터가 획득되면, 획득된 희소 메시지 벡터와 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 블록 직교 희소 중첩 코드를 검출한다(S230).
그리고, 본 발명의 디코딩 방법은 수신 신호와 검출된 블록 직교 희소 중첩 코드를 이용하여 블록 인덱스를 검출하고, 검출된 블록 인덱스를 이용하여 최종 희소 메시지 벡터를 식별한다(S240, S250).
이러한 본 발명의 인코딩 방법과 디코딩 방법에 대하여 도 3 내지 도 5를 이용하여 상세히 설명하면 다음과 같다.
블록 직교 희소 중첩 코드(BOSS)
BOSS 코드에 대해 설명하면, 먼저 새로운 순차 인코딩 전략을 제시한다. 그런 다음 코드 속성을 설명하여 코드의 몇 가지 유용한 구조를 설명한다.
코드 구성에 대해 설명하기 전에 몇 가지 표기법과 정의를 설명한다.
희소 메시지 벡터:
Figure 112021030780904-pat00001
를 l ∈ {L}에 대한 희소성 수준 ||xl||=Kl를 갖는 l번째 희소 메시지 벡터로 한다. l번째 계층의 희소 메시지 벡터 xl은 Kl 넌제로 알파벳 βl을 포함하고, xl의 서포트 셋은 아래 <수학식 1>과 같이 정의될 수 있다.
[수학식 1]
Figure 112021030780904-pat00002
여기서, 모든 서포트 셋은 겹치지 않는다. 즉, l≠k에서
Figure 112021030780904-pat00003
이다. 따라서, 서포트 셋
Figure 112021030780904-pat00004
를 가지는 희소 메시지 벡터는 L 서브 희소(sub-sparse) 메시지 벡터의 합으로 표시될 수 있으며, 아래 <수학식 2>와 같이 나타낼 수 있다.
[수학식 2]
Figure 112021030780904-pat00005
사전 행렬 및 코드워드: 또한 N 열 벡터로 구성된 사전 행렬 A ∈ RM×N을 정의한다. G ∈ Z+ 일 때 N = GM이라고 가정하면, 블록 직교 희소 중첩 코드의 경우 G 유니터리 서브 행렬 U g ∈ RM×M을 아래 <수학식 3>과 같이 연관시킴으로써, 사전 행렬을 사용한다.
[수학식 3]
Figure 112021030780904-pat00006
l 번째 코드워드(cl)는 희소 메시지 벡터 x l과 사전 행렬 A 사이의 곱에 의해 생성되며, 아래 <수학식 4>와 같이 나타낼 수 있다.
[수학식 4]
Figure 112021030780904-pat00007
Figure 112021030780904-pat00008
Figure 112021030780904-pat00009
의 g번째 서브 벡터라 하면,
Figure 112021030780904-pat00010
에 대해
Figure 112021030780904-pat00011
일 때, l번째 코드워드 또한
Figure 112021030780904-pat00012
와 같이 컴팩트한 형태로 표현될 수 있다.
Zero-RIP 희소 중첩 코드: X를 희소 메시지 벡터 x의 세트로 한다. 희소 메시지 벡터 x의 놈(norm)이 아래 <수학식 5>와 같이 모든
Figure 112021030780904-pat00013
에 대해 사전 행렬 A로 인코딩된 후 보존된다면 코드가 X를 통한 zero-RIP 코드라고 말한다.
[수학식 5]
Figure 112021030780904-pat00014
AWGN 채널: 가우스 채널을 고려한다. 이 채널에서는 송신기가 코드워드 c = Ax를 보낼 때 수신된 신호가 아래 <수학식 6>과 같이 주어질 수 있다.
[수학식 6]
y = c + v
여기서,
Figure 112021030780904-pat00015
는 가우시안 노이즈 벡터를 의미하는 것으로,
Figure 112021030780904-pat00016
일 수 있다.
인코더는 도 3에 도시된 바와 같이 2단계 인코딩 전략을 사용한다. 첫 번째 단계에서 인코더는 사전 행렬에서 유니터리 서브행렬을 선택할 때
Figure 112021030780904-pat00017
비트를 매핑한다. 첫 번째 단계에서 g를 선택한 블록 인덱스가 되도록 한다. 즉, 정보 비트를 이용하여 블록 인덱스를 결정하고, 결정된 블록 인덱스를 이용하여 복수의 사전 행렬 중 어느 하나의 사전 행렬 Ug을 선택할 수 있다. 그런 다음 두 번째 단계에서 A, 즉 Ug에서 선택된 유니터리 서브행렬을 사용하여 정보 비트를 연속적으로 직교 서브 코드워드 벡터에 매핑한다.
Figure 112021030780904-pat00018
을 x1의 g번째 서브 벡터라 한다. 여기서,
Figure 112021030780904-pat00019
에 대해
Figure 112021030780904-pat00020
일 때
Figure 112021030780904-pat00021
이다. 인코더는 [M]에서 K1 인덱스를 균일하게 선택하고
Figure 112021030780904-pat00022
의 선택된 넌제로 위치에
Figure 112021030780904-pat00023
을 할당하여
Figure 112021030780904-pat00024
으로
Figure 112021030780904-pat00025
를 매핑한다. 그러면 첫 번째 서브 코드워드는 아래 <수학식 7>과 같이 구성될 수 있다.
[수학식 7]
Figure 112021030780904-pat00026
Figure 112021030780904-pat00027
Figure 112021030780904-pat00028
의 서포트 셋이라 한다.
Figure 112021030780904-pat00029
의 지식을 활용하여,
Figure 112021030780904-pat00030
에서 K2 인덱스를 균일하게 선택하고 x g,2의 넌제로 위치에
Figure 112021030780904-pat00031
를 할당함으로써 인코더는
Figure 112021030780904-pat00032
비트를 x g,2로 매핑한다. 마찬가지로 L번째 계층의 경우
Figure 112021030780904-pat00033
비트를 x g,L로 매핑한다. BOSS 코드의 코드워드는 아래 <수학식 8>과 같이 L 서브 코드워드 벡터의 선형 조합으로 표현될 수 있다.
[수학식 8]
Figure 112021030780904-pat00034
U g에 의해 생성된 코드워드는 구조에 의해 직교한다. 이 직교 특성은 계산적으로 효율적인 디코딩 알고리즘 개발을 용이하게 한다. 이하, 본 발명에서는 xg가 달리 언급되지 않는 한, Ug에 해당하는 x의 서브 벡터로 간주한다.
BOSS 코드에 대한 몇 가지 리마크(remark)를 얘기하면 다음과 같다.
평균 전송 전력: 송신기 코드워드의 평균 전력은
Figure 112021030780904-pat00035
에 대해 아래 <수학식 9>와 같이 나타낼 수 있다.
[수학식 9]
Figure 112021030780904-pat00036
Zero-RIP 코드북: 코드 구조에 의해, 일련의 희소 메시지 벡터를 아래 <수학식>과 같이 정의할 수 있다.
Figure 112021030780904-pat00037
여기서,
Figure 112021030780904-pat00038
이고 1 A는 세트 A에 대한 지시함수를 의미할 수 있다. 따라서, zero-RIP 조건
Figure 112021030780904-pat00039
를 만족하는 BOSS 코드의 코드북은 아래 <수학식>과 같이 정의될 수 있다.
Figure 112021030780904-pat00040
여기서,
Figure 112021030780904-pat00041
이고
Figure 112021030780904-pat00042
일 수 있다.
코드율: l번째 서브 코드워드는 M채널을 이용하여
Figure 112021030780904-pat00043
정보 비트를 전달한다. 또한 코드워드는 블록 인덱스에 대해
Figure 112021030780904-pat00044
비트를 전달한다. 따라서, 코드율(R)은 아래 <수학식 10>과 같이 나타낼 수 있다.
[수학식 10]
Figure 112021030780904-pat00045
코드율은 블록들 G 개수, 계층들 L 개수, 계층 Kl 당 넌제로 값을 포함한 파라미터를 조정함으로써, 유연한 방법(flexible way)으로 생성될 수 있다.
OSS 코드 연결: 본 발명의 BOSS 코드는 인코딩에서 여러 유니터리 행렬을 활용하여 OSS 코드를 일반화한다. 특수한 경우 G = 1을 설정하면 BOSS가 OSS의 값으로 요약된다. 또한 G = 1 및 L = 1을 설정하면 BOSS 코드가 기존("Orthogonal frequency division multiplexing with index modulation," IEEE Trans. Sig. Process., vol. 61, no. 22, pp. 5536-5549, Nov. 2013.)의 인덱스 변조 신호 세트와 동일하다.
SPARC와의 차이: 본 발명의 BOSS 코드는 기존의 SPARC와 다르며, 가장 큰 차이점은 사전 행렬 A와 정보 비트 매핑의 구성이다. 본 발명은 BOSS 코드에서, 여러 개의 유니터리 행렬을 보강하여 사전 행렬을 구성한다. A의 블록별 유니터리 특성을 활용하여
Figure 112021030780904-pat00046
에서 각 유니터리 서브 행렬 Ug에 의해 생성된 코드워드 간의 직교성을 보장하는 2단계 비트 매핑 전략을 사용한다. 따라서, 본 발명의 BOSS 코드는 zero-RIP 희소 중첩 코드이다.
2단계 MAP 디코더라고 하는 본 발명의 BOSS 코드에 대한 계산적으로 효율적인 디코딩 알고리즘을 설명하면 다음과 같다. 본 발명의 디코딩 알고리즘의 주요 아이디어는 도 4에 도시된 바와 같이, 인코더가 인코딩에서 블록 인덱스와 넌제로 서포트 인덱스를 독립적으로 매핑한다는 사실을 사용하여 2단계 MAP 디코딩을 수행하는 것이다.
Figure 112021030780904-pat00047
Figure 112021030780904-pat00048
에 대하여 x의 g번째 서브 벡터를 나타낸다는 점을 상기한다. 그런 다음 g번째 희소 메시지 서브 벡터에 대한 zero-RIP 신호 세트는 아래 <수학식 11>과 같이 나타낼 수 있다.
[수학식 11]
Figure 112021030780904-pat00049
또한, 본 발명은 코드워드가 Ug를 사용하여 생성되도록 가설 Hg를 아래 <수학식 12>와 같이 정의할 수 있다.
[수학식 12]
Figure 112021030780904-pat00050
이러한 표기법을 사용하여 MAP 디코딩 문제는 아래 <수학식 13>과 같이 두 개의 별도의 서브 MAP 디코딩 문제로 분해될 수 있다.
[수학식 13]
Figure 112021030780904-pat00051
상기 수학식 13으로부터, 본 발명의 디코딩 전략은 2단계 MAP 디코딩 방법을 수행하는 것이다. 첫 번째 단계에서 디코더는 아래 <수학식 14>와 같은 최적화 문제를 해결하여
Figure 112021030780904-pat00052
에 대한 가설 Hg에서
Figure 112021030780904-pat00053
를 추정하기 위해 요소별 MAP 디코딩을 수행한다.
[수학식 14]
Figure 112021030780904-pat00054
그런 다음 두 번째 단계에서는 아래 <수학식 15>와 같은 최적화 문제를 해결하여 최적의 블록 인덱스를 찾기 위한 가설 테스트를 수행한다.
[수학식 15]
Figure 112021030780904-pat00055
1단계: 가설 Hg 하에서 수신된 신호 모델은 아래 <수학식 16>과 같이 나타낼 수 있다.
[수학식 16]
Figure 112021030780904-pat00056
여기서, v g = U g v는 Hg에서의 유효 노이즈를 의미할 수 있다. v g의 분포는 가우시안 분포의 회전 불변성 특성에 의해 v의 분포와 동일하다.
가설 Hg에서 상기 수학식 14의 MAP 디코딩 문제는 아래 <수학식 17>과 같이 요약될 수 있다.
[수학식 17]
Figure 112021030780904-pat00057
상기 수학식 17의 사후 확률(APP; a posterior probability) 체인 규칙과 로그 함수를 취함으로써, 아래 <수학식 18>과 같이 분해될 수 있다.
[수학식 18]
Figure 112021030780904-pat00058
여기서,
Figure 112021030780904-pat00059
로부터 도출된 마지막 등식은 x g,l를 디코딩하기에 충분한 정보일 수 있다. 이 분해 구조를 사용하여 본 발명의 디코딩 알고리즘은 L 번 반복 수행한다. l 번째 반복에서 이전에 추정된 서포트 셋을 활용하여 x g,l를 디코딩한다. 그런 다음, 다음 라운드 반복을 위해 추정된 서포트 셋
Figure 112021030780904-pat00060
을 사용하여 x g의 이전 분포를 업데이트한다.
본 발명에서는 l 번째 반복에 초점을 맞추어 디코딩 알고리즘을 제시한다. 디코더가 이전 반복을 통해 넌제로 서포트 셋
Figure 112021030780904-pat00061
를 성공적으로 추정했다고 가정한다. 이 사이드 정보를 사용하여 디코더는 x g,l의 서포트 셋, 즉
Figure 112021030780904-pat00062
을 찾는다. 이를 위해 세트
Figure 112021030780904-pat00063
를 정의한다. 또한
Figure 112021030780904-pat00064
와 xg,l,mx g,l의 m번째 요소로 간주한다.
Figure 112021030780904-pat00065
에 대해
Figure 112021030780904-pat00066
의 m번째 항목이 통계적으로 독립적이므로, 상기 수학식 18의 APP은 아래 <수학식 19>와 같이 더욱 단순해질 수 있다.
[수학식 19]
Figure 112021030780904-pat00067
우도함수는 아래 <수학식 20>과 같이 주어질 수 있다.
[수학식 20]
Figure 112021030780904-pat00068
여기서,
Figure 112021030780904-pat00069
일 수 있다. 마찬가지로, x g,l의 이전 분포 또한 아래 <수학식 21>과 같이 정의될 수 있다.
[수학식 21]
Figure 112021030780904-pat00070
여기서,
Figure 112021030780904-pat00071
는 정규화 상수를 의미할 수 있다. x g,l의 넌제로 인덱스는
Figure 112021030780904-pat00072
에서
Figure 112021030780904-pat00073
로 균일하게 선택되므로 xg,l,m의 분포는 베르누이 분포로 아래 <수학식 22>와 같이 나타낼 수 있다.
[수학식 22]
Figure 112021030780904-pat00074
여기서,
Figure 112021030780904-pat00075
일 수 있다. 상기 수학식 22에서 xg,l,m의 이전 분포를 연결하면 yg,m의 분포는 아래 <수학식 23>과 같이 계산될 수 있다.
[수학식 23]
Figure 112021030780904-pat00076
상기 수학식 20, 수학식 22와 수학식 23을 근거로 주어진 yg,m에서
Figure 112021030780904-pat00077
확률은 아래 <수학식 24>와 같이 계산될 수 있다.
[수학식 24]
Figure 112021030780904-pat00078
Figure 112021030780904-pat00079
는 yg,m에 따라 단조롭게 증가하는 함수이다. 따라서 희소성 조건
Figure 112021030780904-pat00080
를 만족시키기 위해 디코더는
Figure 112021030780904-pat00081
에서 Kl 인덱스를 선택하여 상기 수학식 24에서 Kl 값을 가장 크게 생성한다. 본 발명에서
Figure 112021030780904-pat00082
는 상기 수학식 24에서 정의된 k번째 큰 로그-APP 값을 갖는 k번째 순서 인덱스이기 때문에 그 결과
Figure 112021030780904-pat00083
의 추정 서포트 셋은 아래 <수학식 25>와 같이 나타낼 수 있다.
[수학식 25]
Figure 112021030780904-pat00084
가설 Hg에서 l 반복을 실행한 후, 디코더는 x g의 서포트 셋
Figure 112021030780904-pat00085
를 추정한다. 다시 말해서, 디코더는 아래 <수학식 26>을 통해
Figure 112021030780904-pat00086
를 얻을 수 있다.
[수학식 26]
Figure 112021030780904-pat00087
즉,
Figure 112021030780904-pat00088
에 대해 G 가능 가설 Hg가 있으므로, 디코더는
Figure 112021030780904-pat00089
에 대해
Figure 112021030780904-pat00090
를 사용하여
Figure 112021030780904-pat00091
를 얻는다.
2단계: 2단계에서 디코더는
Figure 112021030780904-pat00092
의 인덱스를 식별하기 위해 1단계부터 디코딩된 희소 메시지 벡터
Figure 112021030780904-pat00093
를 사용하여 가설 테스트를 수행한다. 특히 Hg에서 디코더는
Figure 112021030780904-pat00094
Ug를 아래 <수학식 27>을 사용하여 코드를 생성 또는 검출할 수 있다.
[수학식 27]
Figure 112021030780904-pat00095
그런 다음 상기 수학식 15의 MAP 디코딩 문제는 y에 가장 가까운
Figure 112021030780904-pat00096
를 찾는 것으로 단순화될 수 있으며, 아래 <수학식 28>과 같이 나타낼 수 있다.
[수학식 28]
Figure 112021030780904-pat00097
여기서, 상기 등식은 노이즈가 가우시안이고 g가 G로 균일하게 분포되어 있다는 사실에서 비롯된다. 따라서, 본 발명의 2단계 MAP 디코딩 알고리즘은 희소 메시지 벡터
Figure 112021030780904-pat00098
를 아래 <수학식 29>와 같이 식별할 수 있다.
[수학식 29]
Figure 112021030780904-pat00099
디코딩 복잡성: 디코딩 알고리즘은 각 가설에 대한 l 번째 반복에서
Figure 112021030780904-pat00100
APP를 계산한다. 따라서 1단계의 디코딩 복잡도는
Figure 112021030780904-pat00101
이고, 2단계의 디코딩 복잡도는
Figure 112021030780904-pat00102
이며, 그 결과 전체 디코딩 복잡도는
Figure 112021030780904-pat00103
이 된다. 일반적으로 계층 수, 계층당 희소성 수준 및 블록은 블록 길이보다 훨씬 작다. 즉, L,G,Kl≪M은 블록 길이에 따라 디코딩 복잡성이 2차식으로 증가한다.
Fast Walsh-Hadamard 변환과 같은 빠른 변환을 사용할 수 있는 일련의 유니터리 행렬 {U 1, ... U G}를 사용하면 디코딩 복잡성을 더욱 줄일 수 있다. 예를 들어, G = 2일 때, 식별 행렬 I M과 M-차원 Hadamard 행렬 H MA = [I M H M]으로 연결하여 사전 행렬을 구성할 수 있다. 그러면, 디코딩 복잡도 순서는 O(MlogM)로 감소한다.
도 5는 본 발명의 방법과 다양한 인코딩 디코딩 방법에 대하여 노이즈 스펙트럼 밀도 비율에 대한 BLER 비교 결과를 나타낸 것으로, 본 발명의 BOSS 코드의 BLER 성능을 기존 코딩 방식과 비교한 것이며, BOSS를 포함하여 고려된 코딩 체계 설정은 다음과 같다.
BOSS 코드는 블록 길이 M과 블록 수 G = 16, 즉 N = 16M을 갖는 2계층 BOSS 코드를 고려한다. 넌제로 알파벳은 β1=1 및 β2=-1(즉, L = 2)로 설정된다.
Figure 112021030780904-pat00104
에 대한 각 서브행렬 Ug는 랜덤 유니터리 행렬로부터 독립적으로 그려진다. 우리는 각각 M = 65와 M = 129 블록 길이를 갖는 두 가지 경우를 고려한다. 첫 번째 경우의 코드율은 R=16/65 이고, 두 번째 경우에는 R=18/129이다. 디코딩을 위해 제안된 2단계 MAP 디코딩을 적용한다.
OSS 코드는 M = 129, G = 1인 BOSS와 동일한 2계층 OSS 코드를 고려한다.
SPARC는 [M,N] = [129,1024]인 가우시안 사전 행렬 A를 사용한다. 섹션 S당 열 수는 512로 설정되고 각 섹션에는 넌제로 값이 1개 포함되어 있으므로 R=(N/S logS)/M=18/129이다. 디코딩을 위해 계산적으로 효율적인 AMP 디코더를 사용할 수 있다.
Polar 코드는 인코딩의 경우, 블록 길이 M = 128인 [9]에서 정보가 설정된 생성기로 Arikan의 커널 행렬을 사용한다. 디코딩을 위해 코드율 R=0.2의 SC 디코더를 적용한다.
컨볼루션 코드는 코드율 1/3의 컨볼루션 코드와 코드율 1/2의 반복 코드로 구성된 연결된 코드를 고려한다. 컨볼루션 코드의 생성기 다항식은 제약 조건 길이 Kc = 4 및 15 테일 비트로 8진법상 [54, 64, 74]이다. 유효 코드율은 R=0.12가 된다.
도 5를 통해 알 수 있듯이, 본 발명의 방법(BOSS)은 블록 길이가 M=128일 때 모든 다른 코드 변조 방법을 능가하는 것을 알 수 있다. 예를 들어, 본 발명의 방법은 각각 10-3 BLER에서 polar 코드와 OSS 코드에 대해 약 0.8dB와 0.5dB 이득을 제공한다. 또한 블록 길이가 증가하는 경향이 있을수록 BOSS 코드가 더 많은 코딩 이득을 달성한다는 것을 알 수 있다. 예를 들어, 길이 M = 129인 BOSS 코드는 길이 M = 65인 것과 비교하여 0.2 dB 이득을 취할 수 있다.
이와 같이, 본 발명의 실시예들에 따른 인코딩과 디코딩 방법은 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code)를 제공함으로써, 짧은 블록 길이 체제에서 블록 오류율을 향상시킬 수 있다.
또한, 본 발명의 실시예들에 따른 인코딩과 디코딩 방법은 블록 길이의 다항식 시간 복잡성을 요구하면서 최적의 디코딩 성능을 제공할 수 있다. 예를 들어, 본 발명의 방법은 BLER을 기존 코딩 및 디코딩 체계와 비교함으로써, 본 발명의 인코딩 및 디코딩이 짧은 블록 길이 체제에서 유망한 코드 변조 기술이 될 수 있다는 것을 알 수 있다.
또한, 본 발명의 실시예들에 따른 인코딩과 디코딩 방법은 여러 개의 유니터리 서브 행렬로 구성된 많은 사전 행렬을 이용함으로써, 인코더는 서브 행렬에 의해 생성된 코드워드가 직교하도록 정보 비트를 순차적으로 매핑하고, 이 직교 속성과 특수 정보 매핑 전략은 인코딩 후 희소 메시지 벡터의 놈(norm)을 보존하도록 보장하여, 본 발명의 코드 구성이 0 제한된 아이소메트리 특성(RIP; restricted isometry property) 값을 달성하도록 보장할 수 있다.
더 나아가, 본 발명의 다른 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 방법은 도 8에 도시된 바와 같이, 사전 행렬을 구성하는 유니터리 서브 행렬을 이용하여 획득된 복수의 수신 신호들을 통한 가설 테스트를 수행함으로써, 인코딩에 사용한 유니터리 서브 행렬을 검출하고, 이렇게 검출된 유니터리 서브 행렬을 이용하여 희소 메시지 벡터를 획득할 수 있다. 구체적으로, 본 발명의 다른 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 방법은 수신 신호에 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 곱하여 복수의 수신 신호들(y 1 ~ y G)을 획득하고, 획득된 복수의 수신 신호들을 이용한 가설 테스트를 통해 인코딩에 사용한 유니터리 서브 행렬을 검출한 후 복수의 수신 신호들 중 상기 검출된 유니터리 서브 행렬에 대응하는 수신 신호 예컨대, 가설 테스트를 통과한 수신 신호에서 넌제로(non-zero) 위치인 서포트 셋(Support set)을 추정하며, 추정된 서포트 셋을 이용하여 희소 메시지 벡터를 획득하는 과정을 포함한다.
이 때, 본 발명의 다른 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 방법은 추정된 서포트 셋을 이용하여 요소별 최대 사후(MAP; maximum a posteriori) 디코딩을 수행함으로써, 희소 메시지 벡터를 획득할 수 있다.
물론, 본 발명의 다른 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 방법은 도 1 내지 도 5에서 설명한 관련 내용을 모두 포함할 수 있다.
도 6은 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 인코딩 장치에 대한 구성을 나타낸 것으로, 도 1 내지 도 5의 인코딩 방법을 수행하는 장치에 대한 개념적인 구성을 나타낸 것이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 인코딩 장치(600)는 선택부(610), 매핑부(620) 및 생성부(630)를 포함한다.
선택부(610)는 복수의 레이어에서 정보 비트(Information bits)를 연속적으로 인코딩하는 과정에서, 정보 비트를 사용하여 인덱스 셋을 순차적으로 선택한다.
여기서, 선택부(610)는 희소 메시지 벡터의 서포트 셋을 이용하여 인덱스 셋을 순차적으로 선택할 수 있다.
매핑부(620)는 각 레이어에서 선택된 인덱스 셋에 변조 심볼을 각각 할당하고, 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성한다.
여기서, 매핑부(620)는 여러 개의 유니터리 서브 행렬을 이용하여 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드가 직교하도록 복수의 서브 코드워드를 순차적으로 생성할 수 있다.
여기서, 매핑부(620)는 정보 비트를 이용하여 블록 인덱스가 결정되고 결정된 블록 인덱스를 이용하여 복수의 사전 행렬 중 어느 하나의 사전 행렬이 선택되는 경우 선택된 어느 하나의 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성할 수도 있다.
여기서, 매핑부(620)는 희소 메시지 벡터의 넌제로(non-zero) 위치에 변조 심볼 예를 들어, 미리 설정된 알파벳 값을 각각 할당할 수 있다.
생성부(630)는 생성된 복수의 서브 코드워드를 결합하여 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code)를 생성한다.
도 7은 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 장치에 대한 구성을 나타낸 것으로, 도 1 내지 도 5의 디코딩 방법을 수행하는 장치에 대한 개념적인 구성을 나타낸 것이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 블록 직교 희소 중첩 코드 디코딩 장치(700)는 추정부(710), 획득부(720) 및 검출부(730)를 포함한다.
추정부(710)는 수신 신호에서 넌제로(non-zero) 위치인 서포트 셋(Support set)을 추정한다.
여기서, 추정부(710)는 수신 신호에서 사전 행렬의 직교 열과 열을 포함하는 유니터리 서브 행렬의 인덱스에 해당하는 넌제로 위치인 서포트 셋을 추정할 수 있다.
획득부(720)는 추정된 서포트 셋을 이용하여 희소 메시지 벡터를 획득한다.
여기서, 획득부(720)는 추정된 서포트 셋을 이용하여 요소별 최대 사후(MAP; maximum a posteriori) 디코딩을 수행함으로써, 희소 메시지 벡터를 획득할 수 있다.
검출부(730)는 획득된 희소 메시지 벡터와 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 블록 직교 희소 중첩 코드를 검출한다.
나아가, 검출부(730)는 수신 신호와 검출된 블록 직교 희소 중첩 코드를 이용하여 블록 인덱스를 검출하고, 검출된 블록 인덱스를 이용하여 최종 희소 메시지 벡터를 식별할 수 있다.
비록, 도 6과 도 7의 장치에서 그 설명이 생략되었더라도, 도 6과 도 7을 구성하는 각 구성 수단은 도 1 내지 도 5과 도 8에서 설명한 모든 내용을 포함할 수 있으며, 이는 이 기술 분야에 종사하는 당업자에게 있어서 자명하다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 인코딩 장치에 의해 수행되는 코드 인코딩 방법에 있어서,
    정보 비트(Information bits)를 순차적으로 나누어 각각의 레이어에서 인코딩을 수행하는 과정에서, 상기 정보 비트를 사용하여 블록 인덱스를 순차적으로 선택하는 단계;
    각 레이어에서 선택된 블록 인덱스에 변조 심볼을 각각 할당하고, 사전 행렬에서 유니터리 서브 행렬을 선택할 때 상기 정보 비트를 순차적으로 희소 메시지 벡터의 서브 벡터에 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성하는 단계; 및
    상기 생성된 복수의 서브 코드워드를 결합하여 블록 직교 희소 중첩 코드(Block Orthogonal Sparse Superposition Code)를 생성하는 단계
    를 포함하고,
    상기 복수의 서브 코드워드는 유니터리 서브 행렬과 희소 메시지 벡터의 서브 벡터의 곱으로 구성되고,
    l번째 희소 메시지 벡터는
    Figure 112023060816796-pat00113
    으로 정의되고(l∈{L}에 대한 희소성 수준 ||xl||=Kl을 만족), xl은 Kl 넌제로 알파벳 βl을 포함하며,
    xl의 서포트 셋은
    Figure 112023060816796-pat00114
    와 같이 정의되고(l≠k에서
    Figure 112023060816796-pat00115
    ),
    사전 행렬 A는 N 열 벡터로 구성된 사전 행렬 A ∈ RM×N와 같이 정의되고,
    상기 유니터리 서브 행렬과 관련하여 유니터리 서브 행렬 U g ∈ RM×M일 때, 사전 행렬은
    Figure 112023060816796-pat00116
    와 같이 정의되는
    블록 직교 희소 중첩 코드 인코딩 방법.
  2. 제1항에 있어서,
    상기 복수의 서브 코드워드를 순차적으로 생성하는 단계는
    여러 개의 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 상기 복수의 서브 코드워드가 직교하도록 상기 복수의 서브 코드워드를 순차적으로 생성하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 인코딩 방법.
  3. 제1항에 있어서,
    상기 복수의 서브 코드워드를 순차적으로 생성하는 단계는
    상기 정보 비트를 이용하여 블록 인덱스를 결정하고, 상기 결정된 블록 인덱스를 이용하여 복수의 사전 행렬 중 어느 하나의 사전 행렬을 선택하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 인코딩 방법.
  4. 제3항에 있어서,
    상기 복수의 서브 코드워드를 순차적으로 생성하는 단계는
    상기 선택된 어느 하나의 사전 행렬에서 선택된 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 인코딩 방법.
  5. 제1항에 있어서,
    상기 블록 인덱스를 순차적으로 선택하는 단계는
    희소 메시지 벡터의 서포트 셋을 이용하여 블록 인덱스를 순차적으로 선택하고,
    상기 복수의 서브 코드워드를 순차적으로 생성하는 단계는
    상기 희소 메시지 벡터의 넌제로(non-zero) 위치에 상기 변조 심볼을 각각 할당하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 인코딩 방법.
  6. 디코딩 장치에 의해 수행되는 코드 디코딩 방법에 있어서,
    수신 신호에서 희소 메시지 벡터의 넌제로(non-zero) 위치인 서포트 셋(Support set)을 추정하는 단계;
    상기 추정된 서포트 셋을 이용하여 희소 메시지 벡터의 서브 벡터를 디코딩하여 희소 메시지 벡터를 획득하는 단계; 및
    상기 획득된 희소 메시지 벡터와 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 코드워드를 검출함에 따라 블록 직교 희소 중첩 코드를 검출하는 단계
    를 포함하고,
    복수의 서브 코드워드들은 유니터리 서브 행렬과 희소 메시지 벡터의 곱으로 구성되고,
    상기 코드워드는 상기 복수의 서브 코드워드들의 선형 조합으로서, 상기 블록 직교 희소 중첩 코드는 상기 복수의 서브 코드워드들의 결합을 통해 생성된 것을 특징으로 하는 블록 직교 희소 중첩 코드 디코딩 방법.
  7. 삭제
  8. 제6항에 있어서,
    상기 희소 메시지 벡터를 획득하는 단계는
    상기 추정된 서포트 셋을 이용하여 최대 사후(MAP; maximum a posteriori) 디코딩을 수행함으로써, 상기 희소 메시지 벡터를 획득하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 디코딩 방법.
  9. 삭제
  10. 정보 비트(Information bits)를 순차적으로 나누어 각각의 레이어에서 인코딩을 수행하는 과정에서, 상기 정보 비트를 사용하여 블록 인덱스를 순차적으로 선택하는 선택부;
    각 레이어에서 선택된 블록 인덱스에 변조 심볼을 각각 할당하고, 사전 행렬에서 유니터리 서브 행렬을 선택할 때 상기 정보 비트를 순차적으로 희소 메시지 벡터의 서브 벡터에 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성하는 매핑부; 및
    상기 생성된 복수의 서브 코드워드를 결합하여 블록 직교 희소 중첩 코드를 생성하는 생성부
    를 포함하고,
    상기 복수의 서브 코드워드는 유니터리 서브 행렬과 희소 메시지 벡터의 서브 벡터의 곱으로 구성되고,
    l번째 희소 메시지 벡터는
    Figure 112023060816796-pat00117
    으로 정의되고(l∈{L}에 대한 희소성 수준 ||xl||=Kl을 만족), xl은 Kl 넌제로 알파벳 βl을 포함하며,
    xl의 서포트 셋은
    Figure 112023060816796-pat00118
    와 같이 정의되고(l≠k에서
    Figure 112023060816796-pat00119
    ),
    사전 행렬 A는 N 열 벡터로 구성된 사전 행렬 A ∈ RM×N와 같이 정의되고,
    상기 유니터리 서브 행렬과 관련하여 유니터리 서브 행렬 U g ∈ RM×M일 때, 사전 행렬은
    Figure 112023060816796-pat00120
    와 같이 정의되는
    블록 직교 희소 중첩 코드 인코딩 장치.
  11. 제10항에 있어서,
    상기 매핑부는
    여러 개의 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 상기 복수의 서브 코드워드가 직교하도록 상기 복수의 서브 코드워드를 순차적으로 생성하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 인코딩 장치.
  12. 제10항에 있어서,
    상기 선택부는
    상기 정보 비트를 이용하여 블록 인덱스를 결정하고, 상기 결정된 블록 인덱스를 이용하여 복수의 사전 행렬 중 어느 하나의 사전 행렬을 선택하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 인코딩 장치.
  13. 제12항에 있어서,
    상기 매핑부는
    상기 선택된 어느 하나의 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 상기 정보 비트를 순차적으로 매핑함으로써, 복수의 서브 코드워드를 순차적으로 생성하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 인코딩 장치.
  14. 제10항에 있어서,
    상기 선택부는
    희소 메시지 벡터의 서포트 셋을 이용하여 블록 인덱스를 순차적으로 선택하고,
    상기 매핑부는
    상기 희소 메시지 벡터의 넌제로(non-zero) 위치에 상기 변조 심볼을 각각 할당하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 인코딩 장치.
  15. 수신 신호에서 희소 메시지 벡터의 넌제로(non-zero) 위치인 서포트 셋(Support set)을 추정하는 추정부;
    상기 추정된 서포트 셋을 이용하여 희소 메시지 벡터의 서브 벡터를 디코딩하여 희소 메시지 벡터를 획득하는 획득부; 및
    상기 획득된 희소 메시지 벡터와 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 이용하여 코드워드를 검출함에 따라 블록 직교 희소 중첩 코드를 검출하는 검출부
    를 포함하고,
    복수의 서브 코드워드들은 유니터리 서브 행렬과 희소 메시지 벡터의 곱으로 구성되고,
    상기 코드워드는 상기 복수의 서브 코드워드들의 선형 조합으로서, 상기 블록 직교 희소 중첩 코드는 상기 복수의 서브 코드워드들의 결합을 통해 생성된 것을 특징으로 하는 블록 직교 희소 중첩 코드 디코딩 장치.
  16. 삭제
  17. 제15항에 있어서,
    상기 획득부는
    상기 추정된 서포트 셋을 이용하여 최대 사후(MAP; maximum a posteriori) 디코딩을 수행함으로써, 상기 희소 메시지 벡터를 획득하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 디코딩 장치.
  18. 삭제
  19. 디코딩 장치에 의해 수행되는 코드 디코딩 방법에 있어서,
    수신 신호에 사전 행렬을 구성하는 여러 개의 유니터리 서브 행렬을 곱하여 복수의 수신 신호들을 획득하는 단계;
    상기 획득된 복수의 수신 신호들에 기초하여 인코딩에 사용한 유니터리 서브 행렬을 검출하는 단계;
    상기 복수의 수신 신호들 중 상기 검출된 유니터리 서브 행렬에 대응하는 수신 신호에서 희소 메시지 벡터의 넌제로(non-zero) 위치인 서포트 셋(Support set)을 추정하는 단계; 및
    상기 추정된 서포트 셋을 이용하여 희소 메시지 벡터의 서브 벡터를 디코딩하여 희소 메시지 벡터를 획득하는 단계
    를 포함하고,
    복수의 서브 코드워드들은 유니터리 서브 행렬과 희소 메시지 벡터의 곱으로 구성되고,
    상기 희소 메시지 벡터를 인코딩하는 데에 사용된 코드워드는 상기 복수의 서브 코드워드들의 선형 조합인 것을 특징으로 하는 블록 직교 희소 중첩 코드 디코딩 방법.
  20. 제19항에 있어서,
    상기 희소 메시지 벡터를 획득하는 단계는
    상기 추정된 서포트 셋을 이용하여 최대 사후(MAP; maximum a posteriori) 디코딩을 수행함으로써, 상기 희소 메시지 벡터를 획득하는 것을 특징으로 하는 블록 직교 희소 중첩 코드 디코딩 방법.
KR1020210033929A 2021-03-16 2021-03-16 블록 직교 희소 중첩 코드 인코딩 및 디코딩 방법, 및 그 장치 KR102552282B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210033929A KR102552282B1 (ko) 2021-03-16 2021-03-16 블록 직교 희소 중첩 코드 인코딩 및 디코딩 방법, 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210033929A KR102552282B1 (ko) 2021-03-16 2021-03-16 블록 직교 희소 중첩 코드 인코딩 및 디코딩 방법, 및 그 장치

Publications (2)

Publication Number Publication Date
KR20220129266A KR20220129266A (ko) 2022-09-23
KR102552282B1 true KR102552282B1 (ko) 2023-07-06

Family

ID=83445893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210033929A KR102552282B1 (ko) 2021-03-16 2021-03-16 블록 직교 희소 중첩 코드 인코딩 및 디코딩 방법, 및 그 장치

Country Status (1)

Country Link
KR (1) KR102552282B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130272444A1 (en) 2010-05-07 2013-10-17 Yale University Sparse superposition encoder and decoder for communications system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102111975B1 (ko) * 2017-04-18 2020-05-18 서울대학교산학협력단 희소 코딩을 이용한 정보 전송 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130272444A1 (en) 2010-05-07 2013-10-17 Yale University Sparse superposition encoder and decoder for communications system

Also Published As

Publication number Publication date
KR20220129266A (ko) 2022-09-23

Similar Documents

Publication Publication Date Title
US10491326B2 (en) Method and apparatus for encoding data using a polar code
RU2739465C2 (ru) Способ и устройство для кодирования и декодирования кодов с низкой плотностью проверок на четность
CN110089037B (zh) 用于极化码构造的装置和方法
US10326478B2 (en) Apparatus and method for encoding and decoding data in twisted polar code
CN106685586B (zh) 生成用于在信道中传输的低密度奇偶校验码的方法及设备
CN107370560A (zh) 一种极化码的编码和速率匹配方法、装置及设备
CN110326342B (zh) 一种用于指定编码子信道的有序序列的装置和方法
US8245116B2 (en) Method for performing soft decision decoding of Euclidean space Reed-Muller codes
KR20170136239A (ko) 순환 중복 검사와 극 부호를 이용하는 부호화를 위한 장치 및 방법
US20180191459A1 (en) Apparatus and methods for decoding assistant bit-based polar code construction
KR20080104376A (ko) 통신 장치, 복호 장치, 정보 전송 방법 및 복호 방법
KR102340200B1 (ko) 프리앰블의 구조적 사전 정보를 이용한 채널 복호화 방법 및 장치
CN109075805B (zh) 实现极化码的设备和方法
CN113612486B (zh) 一种构建pbrl ldpc码的基矩阵方法、系统、装置及存储介质
JPWO2014122772A1 (ja) 送信機および受信機、並びに符号化率可変方法
CN107809303B (zh) 一种基于awgn子信道优化的极化码译码方法
JP6817552B2 (ja) Polar符号を用いた通信方法および装置
CN110352562B (zh) 在无线通信系统中基于ldpc码的奇偶校验矩阵执行编码的方法和使用其的终端
JP2019102950A (ja) 復号装置、復号方法および通信システム
KR102552282B1 (ko) 블록 직교 희소 중첩 코드 인코딩 및 디코딩 방법, 및 그 장치
CA2927165A1 (en) Coding and decoding methods with differentiated protection
EP3656058A1 (en) Device and method for generating a multi-kernel polar code
WO2022116562A1 (en) Parallel polar code with shared data and cooperative decoding
US20210351791A1 (en) Methods for encoding and decoding sparse code and orthogonal sparse superposition code
CN114499544A (zh) 一种极化码的译码方法

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant