KR102197751B1 - 블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법 - Google Patents

블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법 Download PDF

Info

Publication number
KR102197751B1
KR102197751B1 KR1020190118209A KR20190118209A KR102197751B1 KR 102197751 B1 KR102197751 B1 KR 102197751B1 KR 1020190118209 A KR1020190118209 A KR 1020190118209A KR 20190118209 A KR20190118209 A KR 20190118209A KR 102197751 B1 KR102197751 B1 KR 102197751B1
Authority
KR
South Korea
Prior art keywords
syndrome
decoding
codeword
hard
bit
Prior art date
Application number
KR1020190118209A
Other languages
English (en)
Inventor
허준
윤성식
안병규
이종현
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020190118209A priority Critical patent/KR102197751B1/ko
Application granted granted Critical
Publication of KR102197751B1 publication Critical patent/KR102197751B1/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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Abstract

블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법에 관한 것으로서, 일실시예에 따른 신드롬 기반의 혼합 복호 장치는 복호기(decoder)로 입력되는 구성 부호 코드워드를 경판정(hard decision)하여 구성 부호 코드워드에 포함된 각 심볼의 소프트 값을 이진 비트 형태로 변환하는 경판정부와, 경판정된 코드워드를 이용하여 신드롬(syndrome)을 검출하는 신드롬 검출부 및 검출된 신드롬이 더블-에러(double-error) 신드롬인 경우, 경판정된 코드워드의 비트 값에 대한 비트 플리핑(bit-flipping)을 통해 테스트 시퀀스를 생성하고, 생성된 테스트 시퀀스를 경판정 복호화(hard decision decoding; HDD) 하는 복호화부를 포함한다.

Description

블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법{SYNDROME-BASED HYBRID DECODING APPARATUS FOR LOW-COMPLEXITY ERROR CORRECTION OF BLOCK TURBO CODES AND METHOD THEREOF}
신드롬 기반의 혼합 복호 장치 및 그 방법에 관한 것으로, 보다 상세하게는 블록 터보 부호에 대한 저 복잡도 오류정정을 수행하는 기술적 사상에 관한 것이다.
블록 터보 부호(block turbo code, BTC)는 상대적으로 짧은 길이의 구성 부호를 이용하여 2차원 매트릭스(matrix) 또는 3차원 육면체의 형태로 코드워드를 구성하며, 일반적으로 코드워드 구성에 사용되는 부호는 이진 또는 비이진 블록 코드로써 해밍(hamming) 부호, BCH(bose-chaudhuri-hocquenghem) 부호, RS(reed-solomon) 부호 등이 이에 해당한다.
구성 부호는 (n,k,d)의 파라미터(parameter)들을 통해 표현되며, 여기서 n은 코드워드 길이, k는 정보 비트 길이, d는 해밍 거리(hamming distance)를 각각 나타낸다.
따라서 동일 종류의 구성 부호를 이용해 2차원 매트릭스 형태의 블록 터보 부호를 구성하는 경우, 코드워드가 (n,k,d)2으로 표현되며, 이때 코드워드 길이는 n2, 정보 비트 개수는 k2, 해밍 거리는 d2이 된다. 여기서 주목해야 할 점은 해밍 거리가 제곱으로 증가했다는 것이며, 이에 오류정정 성능을 [(d-1)/2]에서 [(d2-1)/2]으로 크게 확장시킬 수 있다는 것이다.
블록 터보 부호는 일반적으로 소프트 입력 및 소프트 출력(soft-input soft-output, SISO) 정보를 기반으로 오류정정을 수행하며, 이 알고리즘은 Chase-Pyndiah 알고리즘이라고 불린다. 이 복호 알고리즘은 매우 우수한 오류정정 능력을 보이며, 샤논의 채널 한계 용량을 달성할 수 있다.
Chase-Pyndiah 복호 알고리즘은 크게 두 단계로 구분 지을 수 있으며, 그 첫 번째 과정은 Chase-2 알고리즘 기반의 경판정 복호(hard decision decoding, HDD), 그리고 두 번째 과정은 반복 복호(iterative decoding)를 수행하기 위한 외부정보(extrinsic information)의 계산 과정이다.
블록 터보 부호의 복호 과정 중 계산 복잡도의 대부분을 차지하는 것은 첫 번째 경판정 복호 과정이며, 이 과정에서의 계산 복잡도는 Chase-2 알고리즘의 주요 파라미터인 최소 신뢰도 비트(least reliable bits, LRB)의 위치 및 개수에 의해 결정된다.
여기서 최소 신뢰도 비트라는 것은 블록 터보 부호 복호기에 입력되는 구성 부호 코드워드의 심볼 값, 즉 소프트 값들 중 그 크기가 상대적으로 작은 비트들을 의미한다. 이는 일반적으로 'p'라는 변수로 표현되며, 통신 환경에 따라 일반적으로 3 내지 5의 크기 값으로 다양하게 설정 가능하다. Chase-2 알고리즘에서는 p 값의 크기를 기반으로 알고리즘을 수행 과정에서 2p개의 테스트 패턴(test pattern)을 생성 하고 이와 동일한 횟수의 경판정 복호 과정을 수행한다.
한편, Chase-Pyndiah 알고리즘은 우수한 오류정정 능력을 가지고 있음에도 불구하고, 다른 오류정정 부호에 비해 복호 복잡도가 상대적으로 높다는 한계점이 존재하여, 이를 극복하기 위한 다양한 연구들이 수행되어 왔다.
구체적으로, 기존에는 SISO 복호 기법과 하드 입력 및 하드 출력(hard-input hard-output, HIHO) 복호 알고리즘을 혼합 사용하여 오류를 정정하는 기술이 제안되었다.
이 기술에서는 초반 반복 복호 과정에서는 높은 복잡도의 SISO 복호 기법을 이용해 빠른 속도로 대다수의 오류를 고치고, 이후 후반 반복 복호 과정에서는 코드워드 내의 남아있는 잔여 오류들을 고치는데 있어 상대적으로 복잡도가 매우 낮은 HIHO 복호 기술을 이용하여 블록 터보 부호 복호 과정에 전체적인 계산 복잡도를 어느정도 낮출 수 있었다.
그러나, 상술한 기술은 각 SISO 및 HIHO 복호의 반복 복호 수행 횟수를 논리적으로 확정 지을 수 없으며, 상대적으로 채널 환경이 좋을 경우 HIHO 복호 기술만으로도 충분히 오류정정을 수행할 수 있음에도 불구하고 항상 초반 반복 복호 과정에 SISO 복호 기법을 적용해야만 하는 한계가 있다.
또한, 기존에는 반복 복호 진행 중 조건에 따라 최소 신뢰도 비트 수 p값을 순차적으로 낮추는 기술들이 제안되기도 하였다.
이는 반복 복호 과정이 수행됨에 따라 블록 터보 부호 코드워드 내에 존재하는 오류의 개수는 점차 감소하게 될 것이고, 결국 후반 반복 복호 과정에서는 사전에 정의된 p 값보다 작은 크기의 p' (여기서, p' < p)를 사용해도 충분히 성공적인 오류정정을 수행할 수 있을 것이라는 기대에서 비롯되었다.
그러나, 상술한 기술은 p값을 감소시키는데 있어, 시뮬레이션을 통한 임계 값 설정 등의 과정이 요구되는 문제가 있으며, 블록 터보 부호 구성 부호의 오류정정 능력이 상대적으로 작을 경우 기술의 효과가 매우 적다는 한계가 있다.
일본공개특허 제1997-252258호, "연판정 오류 정정 복호 방법 및 장치"
R, Pyndiah, "Near-optimum decoding of product codes: block turbo codes," IEEE Trans. Commun., vol 46, No. 8, pp. 1003-1010, Aug. 1998. Al-Dweik, A., S. Le Goff, and B. Sharif. "A hybrid decoder for block turbo codes." IEEE Transactions on Communications 57.5 (2009): 1229-1232. Son, Jaeyong, Kyungwhoon Cheun, and Kyeongcheol Yang. "Low-complexity decoding of block turbo codes based on the Chase algorithm." IEEE Communications Letters 21.4 (2017): 706-709. Pen-Yao Lu, Erl-Huei Lu, Tso-Cho Chen, "An Efficient Hybrid decoder for Block Turbo Codes," IEEE Commun. Letters, vol. 18, no. 12, pp. 2077-2080, Oct. 2014. Byungkyu Ahn, Sungsik Yoon, Jun Heo, "Low Complexity Syndrome-Based Decoding Algorithm Applied to Block Turbo Codes," IEEE Access., vol. 6, pp. 2169-3536, April 2018.
본 발명은 복호기에 입력되는 구성 부호 코드워드의 신드롬 정보를 기반으로 가변적인 복호 알고리즘 제공할 수 있는 혼합 복호 장치 및 그 방법을 제공하고자 한다.
또한, 본 발명은 블록 터보 부호의 오류정정 성능은 기존과 거의 동일하게 유지하면서, 동시에 복호 계산 복잡도를 기존보다 저감할 수 있는 혼합 복호 장치 및 그 방법을 제공하고자 한다.
일실시예에 따른 신드롬 기반의 혼합 복호 장치는 복호기(decoder)로 입력되는 구성 부호 코드워드를 경판정(hard decision)하여 구성 부호 코드워드에 포함된 각 심볼의 소프트 값을 이진 비트 형태로 변환하는 경판정부와, 경판정된 코드워드를 이용하여 신드롬(syndrome)을 검출하는 신드롬 검출부 및 검출된 신드롬이 더블-에러(double-error) 신드롬인 경우, 경판정된 코드워드의 비트 값에 대한 비트 플리핑(bit-flipping)을 통해 테스트 시퀀스를 생성하고, 생성된 테스트 시퀀스를 경판정 복호화(hard decision decoding; HDD) 하는 복호화부를 포함할 수 있다.
일측에 따르면, 혼합 복호 장치는 경판정 복호화를 통해 오류정정된 비트의 위치 정보에 기초하여 오류정정의 신뢰도를 판단하는 신뢰도 판단부를 더 포함할 수 있다.
일측에 따르면, 구성 부호 코드워드는 블록 터보 부호(Block Turbo code; BTC)에 기초한 코드워드일 수 있다.
일측에 따르면, 복호화부는 경판정된 코드워드의 소프트 값을 이용하여 복수 개의 최소 신뢰도 비트의 위치를 산출할 수 있다.
일측에 따르면, 복호화부는 d-1개(여기서, d는 구성 부호 코드워드의 구성 부호의 종류에 대응되는 해밍 거리)의 최소 신뢰도 비트의 위치를 산출할 수 있다.
일측에 따르면, 복호화부는 복수 개의 최소 신뢰도 비트 중 첫번째 최소 신뢰도 비트의 비트 값에 비트 플리핑을 적용하여 테스트 시퀀스를 생성할 수 있다.
일측에 따르면, 신뢰도 판단부는 오류정정된 비트의 위치와, 복수 개의 최소 신뢰도 비트 중 m번째(여기서, m은
Figure 112019098145124-pat00001
를 만족하는 양의 정수) 최소 신뢰도 비트의 위치의 일치 여부를 판단하고, 일치 여부의 판단 결과에 기초하여 오류정정의 신뢰도를 판단할 수 있다.
일측에 따르면, 신뢰도 판단부는 일치 여부의 판단 결과가 일치하는 것으로 판단되면, 신뢰도 요소 (reliability ractor) 파라미터에 경판정된 코드워드의 비트 인덱스 정보를 반영하는 외부정보를 연산할 수 있다.
일측에 따르면, 신뢰도 판단부는 일치 여부의 판단 결과가 불일치하는 것으로 판단되면, 오류정정 제어신호를 생성하고, 생성된 오류정정 제어신호를 복호화부에 전달하며, 복호화부는 오류정정 제어신호를 수신하면, 경판정된 코드워드를 SISO(soft-input soft-output, 소프트-입력 및 소프트-출력) 복호화하여 오류정정을 수행할 수 있다.
일측에 따르면, 복호화부는 검출된 신드롬이 싱글-에러(single-error) 신드롬인 경우, 경판정된 코드워드를 경판정 복호 기반(HDD-based)의 HISO(hard-input soft-output, 하드 입력 및 소프트 출력) 복호화 및 SISO 복호화 중 어느 하나를 통해 복호화하여 오류정정을 수행할 수 있다.
일측에 따르면, 복호화부는 검출된 신드롬이 노-에러(no-error) 신드롬인 경우, 경판정된 코드워드를 HISO 복호화하여 오류정정을 수행할 수 있다.
일실시예에 따른 신드롬 기반의 혼합 복호 방법은 경판정부에서, 복호기(decoder)로 입력되는 구성 부호 코드워드를 경판정(hard decision)하여 구성 부호 코드워드에 포함된 각 심볼의 소프트 값을 이진 비트 형태로 변환하는 단계와, 신드롬 검출부에서, 경판정된 코드워드를 이용하여 신드롬(syndrome)을 검출하는 단계 및 복호화부에서, 검출된 신드롬이 더블-에러(double-error) 신드롬인 경우, 경판정된 코드워드의 비트 값에 대한 비트 플리핑(bit-flipping)을 통해 테스트 시퀀스를 생성하고, 생성된 테스트 시퀀스에 경판정 복호화(hard decision decoding; HDD)하는 단계를 포함할 수 있다.
일실시예에 따르면, 복호기에 입력되는 구성 부호 코드워드의 신드롬 정보를 기반으로 가변적인 복호 알고리즘 제공할 수 있다.
일실시예에 따르면, 블록 터보 부호의 오류정정 성능은 기존과 거의 동일하게 유지하면서, 동시에 복호 계산 복잡도를 기존보다 저감할 수 있다.
도 1은 일실시예에 따른 혼합 복호 장치를 설명하기 위한 도면이다.
도 2는 Chase-Pyndiah 알고리즘을 통해 오류정정을 수행하는 과정에서 검출되는 신드롬의 비율을 설명하기 위한 도면이다.
도 3은 일실시예에 따른 혼합 복호 장치의 동작에 따른 예시를 설명하기 위한 도면이다.
도 4는 일실시예에 따른 혼합 복호 장치의 오류정정 능력을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 혼합 복호 장치의 복호화 적용 횟수에 따른 계산의 복잡도를 설명하기 위한 도면이다.
도 6은 일실시예에 따른 혼합 복호 방법을 설명하기 위한 도면이다.
이하, 본 문서의 다양한 실시 예들이 첨부된 도면을 참조하여 기재된다.
실시 예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다.
하기에서 다양한 실시 예들을 설명에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
그리고 후술되는 용어들은 다양한 실시 예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다.
"제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다.
본 명세서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다.
어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다.
예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 application processor)를 의미할 수 있다.
또한, '또는' 이라는 용어는 배타적 논리합 'exclusive or' 이기보다는 포함적인 논리합 'inclusive or' 를 의미한다.
즉, 달리 언급되지 않는 한 또는 문맥으로부터 명확하지 않는 한, 'x가 a 또는 b를 이용한다' 라는 표현은 포함적인 자연 순열들(natural inclusive permutations) 중 어느 하나를 의미한다.
상술한 구체적인 실시예들에서, 발명에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다.
그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 상술한 실시 예들이 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 다양한 실시 예들이 내포하는 기술적 사상의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다.
그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니되며 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 일실시예에 따른 혼합 복호 장치를 설명하기 위한 도면이다.
도 1을 참조하면, 일실시예에 따른 혼합 복호 장치(100)는 비트 플리핑(bit-flipping)을 통해 최소 개수의 테스트 시퀀스 생성할 수 있다.
구체적으로, 기존의 신드롬 기반 복호 기법들에서는 더블-에러(double-error) 신드롬이 검출되는 경우 SISO 복호 기법을 적용했었기에 항상 2p개 테스트 패턴을 사용했다. 그러나 혼합 복호 장치(100)는 첫 번째 최소 신뢰도 비트 위치에 비트 플리핑을 적용함으로써 오직 단 1개 테스트 패턴만을 생성하고 사용한다.
이를 통해 단일 구성 부호 코드워드를 기준으로 사용되는 테스트 패턴의 수가 1/2p 수준으로 낮아지며, 이를 통해 계산 복잡도 감소를 기대할 수 있다.
또한, 일실시예에 따른 혼합 복호 장치(100)는 경판정(hard decision) 결과를 통해 정정된 오류 비트 위치에 따라 오류 정정에 대한 유효성을 검증할 수 있다.
구체적으로, 혼합 복호 장치(100)는 더블-에러 신드롬이 검출되는 경우 사전에 정의된 조건에 따라 SISO 복호 알고리즘 또는 새로운 저복잡도 복호 기법을 적용할 수 있다.
다시 말해, 혼합 복호 장치(100)는 더블-에러 신드롬이 검출되는 모든 경우에 적용 가능한 기법이 아니라 '조건'에 따라 확률적으로 적용 가능하다는 것을 의미하며, 이때 제안 기술의 유효성을 판단하는 '조건'은 경판정을 통해 고친 오류 비트의 위치가 두번째 또는 세번째 최소 신뢰도 비트 위치와 일치하는지 여부를 의미할 수 있다.
만약, 상술한 조건을 만족하는 경우에는 100% 확률로 정상적인 오류정정을 수행된 것으로 판단할 수 있으며, 이와 같이 제안하는 기술이 유효하게 적용 가능한 경우에는 기존에 비해 적용되는 경판정 복호 기법의 수가 1/2p으로 낮아지게 되고, 이는 곧 계산 복잡도 감소로 이어지는 것을 기대할 수 있다.
또한, 일실시예에 따른 혼합 복호 장치(100)는 복호 과정이 유효하게 적용되는 경우, 외부 정보 계산을 위한 신뢰도 요소를 추정할 수 있다.
구체적으로, 혼합 복호 장치(100)는 복호 과정이 유효하게 적용되는 경우에는 기존의 SISO 복호 알고리즘에서 사용되는 외부 정보 계산 방법을 동일하게 사용할 수 없다. 그 이유는 제안 기술에서는 기존과는 달리 단 하나의 테스트 패턴만을 사용하므로 외부 정보 계산을 위한 경쟁 부호가 더 이상 존재하지 않기 때문이다.
따라서, 오류정정 성능의 저하를 막기 위해 새로운 신뢰도 요소 값을 추정 및 사용해야만 한다. 혼합 복호 장치(100)는 시뮬레이션을 통해 복호 과정이 유효한 경우 적용 가능한 신뢰도 요소 값을 추정 및 사용할 수 있으며, 이를 통해 오류정정 성능의 저하를 최소화할 수 있다.
이를 위해, 일실시예에 따른 혼합 복호 장치(100)는 경판정부(110), 신드롬 검출부(120) 및 복호화부(130)를 포함할 수 있다. 또한, 혼합 복호 장치(100)는 신뢰도 판단부(140)를 더 포함할 수 있다.
한편, 일실시예에 따른 혼합 복호 장치(100)는 복호 알고리즘으로 구현될 수도 있다.
일실시예에 따른 경판정부(110)는 복호기(decoder)로 입력되는 구성 부호 코드워드인
Figure 112019098145124-pat00002
를 경판정(hard decision)하여 구성 부호 코드워드에 포함된 각 심볼의 소프트 값을 이진 비트 형태인
Figure 112019098145124-pat00003
로 변환할 수 있다.
예를 들면, 경판정부(110)는 소프트 값의 크기가 '0' 이상인 경우에는 이진 비트 값을 '1'로 판정하고, 반대의 경우에는 '0'으로 판정할 수 있다.
일측에 따르면, 구성 부호 코드워드는 블록 터보 부호(Block Turbo code; BTC)에 기초한 코드워드일 수 있다.
일실시예에 따른 신드롬 검출부(120)는 경판정된 코드워드를 이용하여 신드롬(syndrome)을 검출할 수 있다.
예를 들면, 신드롬 검출부(120)를 통해 검출되는 신드롬은 노-에러(no-error) 신드롬, 싱글-에러(single-error) 신드롬, 더블-에러(double-error) 신드롬 중 적어도 하나 이상의 신드롬일 수 있다.
다시 말해, 신드롬 검출부(120)는 노-에러 신드롬, 싱글-에러 신드롬 및 더블-에러 신드롬 중 적어도 하나의 신드롬을 연산할 수 있다.
여기서, 노-에러 신드롬은 구성 부호 코드워드에 오류가 존재하지 않는 경우에 검출되는 신드롬이고, 싱글-에러 신드롬은 구성 부호 코드워드에 홀수개 오류가 존재는 경우에 검출되는 신드롬이며, 더블-에러 신드롬은 구성 부호 코드워드에 짝수개 오류가 존재는 경우 검출되는 신드롬일 수 있다.
일측에 따르면, 복호화부(130)는 검출된 신드롬이 싱글-에러(single-error) 신드롬인 경우, 경판정된 코드워드를 경판정 복호 기반(HDD-based)의 HISO(hard-input soft-output, 하드 입력 및 소프트 출력) 복호화 및 SISO 복호화 중 어느 하나를 통해 복호화하여 오류정정을 수행할 수 있다.
또한, 복호화부(130)는 검출된 신드롬이 노-에러(no-error) 신드롬인 경우, 경판정된 코드워드를 HISO 복호화하여 오류정정을 수행할 수 있다.
일실시예에 따른 복호화부(130)는 검출된 신드롬이 더블-에러(double-error) 신드롬인 경우, 경판정된 코드워드의 비트 값에 대한 비트 플리핑(bit-flipping)을 통해 테스트 시퀀스를 생성하고, 생성된 테스트 시퀀스를 경판정 복호화(hard decision decoding; HDD)할 수 있다.
일측에 따르면, 복호화부(130)는 경판정된 코드워드의 소프트 값을 이용하여 복수 개의 최소 신뢰도 비트의 위치를 산출할 수 있다.
구체적으로, 복호화부(130)는 d-1개(여기서, d는 구성 부호 코드워드의 구성 부호의 종류에 대응되는 해밍 거리)의 최소 신뢰도 비트의 위치를 산출할 수 있다.
보다 구체적으로, 기존 SIOS 복호 기법에서는 경판정 이후, 곧바로 p개의 최소 신뢰도 비트의 위치를 결정하고, 이를 기반으로 Chase-2 복호 알고리즘을 적용하나, 복호화부(130)는 기존과 달리, 신드롬 정보를 우선적으로 연산하고 d-1개의 최소 신뢰도 비트의 위치를 산출할 수 있다.
예를 들면, 복호화부(130)는 확장 해밍 부호를 구성 부호로 사용하는 경우에 d값이 '4'가 되므로, 총 3개의 최소 신뢰도 비트의 위치를 산출할 수 있다.
일측에 따르면, 복호화부(130)는 복수 개의 최소 신뢰도 비트 중 첫번째 최소 신뢰도 비트의 비트 값에 비트 플리핑을 적용하여 테스트 시퀀스를 생성할 수 있다.
예를 들면, 첫번째 최소 신뢰도 비트는 최초로 검출되는 최소 신뢰도 비트일 수 있다.
구체적으로, 복호화부(130)는 첫번째 최소 신뢰도 비트 값이 '1'이면 '0'으로 변환하고, '0'이면 '1'로 변환하는 비트 플리핑 과정을 수행하며, 비트 플리핑 과정에 따른 결과를 테스트 시퀀스로 정의할 수 있다.
보다 구체적으로, 기존 SISO 복호 기법에서는 p개의 최소 신뢰도 비트 위치를 이용하여 2p개의 테스트 패턴을 생성하나, 복호화부(130)는 오직 첫번째 최소 신뢰도 비트 위치에 비트 플리핑을 적용함으로써, 하나의 테스트 패턴만을 생성하며, 이 결과를 통해 생성된 테스트 시퀀스를 곧바로 경판정 복호화할 수 있다.
한편, 신뢰도 판단부(140)는 경판정 복호 과정을 통해 오류정정된 비트의 위치 정보에 기초하여 오류정정의 신뢰도를 판단할 수 있다.
구체적으로, 신뢰도 판단부(140)는 오류정정된 비트의 위치와, 복수 개의 최소 신뢰도 비트 중 m번째(여기서, m은
Figure 112019098145124-pat00004
를 만족하는 양의 정수) 최소 신뢰도 비트의 위치의 일치 여부를 판단하고, 일치 여부의 판단 결과에 기초하여 오류정정의 신뢰도를 판단할 수 있다.
예를 들면, 신뢰도 판단부(140)는 확장 해밍 부호를 구성 부호로 사용하는 경우에, 경판정 복호화를 통해 오류정정된 비트의 위치와 두번째 또는 세번째 최소 신뢰도 비트의 위치와의 일치 여부를 판단할 수 있다.
일측에 따르면, 신뢰도 판단부(140)는 일치 여부의 판단 결과가 일치하는 것으로 판단되면, 신뢰도 요소(reliability ractor) 파라미터에 경판정된 코드워드의 비트 인덱스 정보를 반영하는 외부정보(extrinsic information)를 연산할 수 있다.
구체적으로, 신뢰도 판단부(140)는 하기 수학식1을 통해 외부정보를 연산할 수 있다.
[수학식1]
Figure 112019098145124-pat00005
여기서,
Figure 112019098145124-pat00006
는 외부정보,
Figure 112019098145124-pat00007
는 Monte-Carlo 시뮬레이션 과정을 통해 획득되는 외부정보 연산을 위한 신뢰도 요소 파라미터, d는 해밍 거리(hamming distance), 하첨자 k는 구성 부호 코드워드의 비트 인덱스를 나타낸다.
또한, k는 1 이상 n 이하의 양의 정수일 수 있으며, 여기서 n는 코드워드의 길이를 나타낼 수 있다.
일측에 따르면, 신뢰도 판단부(140)는 일치 여부의 판단 결과가 불일치하는 것으로 판단되면, 오류정정 제어신호를 생성하고 생성된 오류정정 제어신호를 복호화부(130)에 전달할 수 있으며, 복호화부(130)는 오류정정 제어신호를 수신하면, 경판정된 코드워드를 SISO(soft-input soft-output, 소프트-입력 및 소프트-출력) 복호화하여 오류정정을 수행할 수 있다.
즉, 신뢰도 판단부(140)는 일치 여부의 판단 결과가 불일치하는 것으로 판단되면, 오류정정의 신뢰도가 낮은 것으로 판단하여 기존의 SISO 복호 알고리즘을 적용하여 오류정정을 재수행할 수 있다.
다시 말해, 일실시예에 따른 혼합 복호 장치(100)는 오류정정된 비트의 위치와, m번째 최소 신뢰도 비트의 위치가 일치하면, 정상적인 오류정정이 수행된 것으로 판단할 수 있다. 즉, 혼합 복호 장치(100)는 비트의 위치가 일치하면 기존의 SISO 복호 기법과 동일한 오류정정 결과를 만들어낼 수 있다는 의미로 해석될 수 있다.
보다 구체적으로, 복호화 과정에서 더블-에러 신드롬이 검출되는 경우, 구성 부호 코드워드 내에 존재 가능한 오류 개수는 2개 이상의 짝수개 오류라는 것에 주목할 필요가 있다.
또한, 무선 통신 채널의 특성을 고려할 때, 더블-에러 신드롬이 검출되는 경우에 발생 가능성이 가장 높은 오류의 개수는 '2'개로 판단할 수 있다. 다시 말해, 6개 오류보다는 4개 오류가, 그리고 4개 오류보다는 2개 오류가 발생했을 확률이 상대적으로 높다는 것이다.
일실시예에 따른 혼합 복호 장치(100)는 더블-에러 신드롬이 검출되는 경우에, 확률적으로 가장 발생 가능성이 높은 2개의 오류를 정정하는데 목적을 두고 있다.
예를 들면, p가 '3'이고 첫번째 내지 세번째 비트의 위치가 최소 신뢰도 비트의 위치하고 가정하면, [1 0 0 0 0 0 0 0], [0 1 0 0 0 0 0 0] 및 [0 0 1 0 0 0 0 0]의 3개의 테스트 패턴을 사용할 수 있다.
여기서, 혼합 복호 장치(100)는 첫번째 최소 신뢰도 비트에만 비트 플리핑을 적용하였는데, 이는 곧 첫번째 최소 신뢰도 비트에만 '1' 값이 존재하는 테스트 패턴인 [1 0 0 0 0 0 0 0] 패턴 한 개만을 사용함을 의미할 수 있다.
또한, 혼합 복호 장치(100)는 다음 과정에서 경판정 복호화를 적용하고, 이를 통해 오류정정된 비트의 위치가 두번째 및 세번째 최소 신뢰도 비트의 위치와 동일한지 여부를 확인하는데, 이는 곧 첫번째와 두번째 또는 첫번째와 세번째 최소 신뢰도 비트의 위치에 2개의 오류들이 존재하는 경우를 의미할 수 있다.
다시 말해, 혼합 복호 장치(100)는 구성 부호 코드워드 내에서 2개의 오류가 존재하는 경우에 유효하게 적용될 수 있는 복호화 기법을 제공할 수 있다.
보다 구체적으로, 혼합 복호 장치(100)는 하기 수학식2를 만족하면, 오류정정의 신뢰도가 높은 것으로 판단할 수 있다.
[수학식2]
Figure 112019098145124-pat00008
여기서,
Figure 112019098145124-pat00009
는 i번째 비트 위치의 소프트 정보 신뢰도 값,
Figure 112019098145124-pat00010
는 첫번째 최소 신뢰도 비트 위치의 소프트 정보 신뢰도 값,
Figure 112019098145124-pat00011
는 검출된 더블-에러 신드롬과 관련하여 경판정 복호를 통해 오류정정된 비트 위치의 소프트 정보 신뢰도 값을 나타내며, 여기서 각 비트 위치의 신뢰도의 크기는
Figure 112019098145124-pat00012
일 수 있다.
수학식2에 따르면, 수학식2의 좌변은 복호기에 수신된 구성 부호 코드워드 R과의 제곱 유클리디언 거리(squared euclidean distance)를 나타낼 수 있다.
즉, 혼합 복호 장치(100)를 통해 정상적으로 오류정정이 수행 되어 결정 코드워드 D가 산출 되었다면, Chase-2 알고리즘의 특성을 기반으로 어떤 경쟁부호 Ci와 비교해도 제곱 유클리디언 거리가 최소값을 가져야 한다. 여기서, 경쟁부호 Ci는 기존 SISO 복호 기법을 적용 시 2p가지 테스트 패턴을 이용한 경판정 복호화를 통해 도출된 2p개 코드워드 중, 결정 코드워드를 제외한 (2p-1)개 코드워드들을 의미할 수 있다.
따라서, (2p-1)개 경쟁 부호들 중 R과의 제곱 유클리디언 거리가 가장 가까운 코드워드의 값은 수학식2의 우변과 같이 표현될 수 있다. 그 이유는 경판정 복호를 통해 얻은 모든 코드워드 간 해밍 거리(Hamming distance)가 최소 4 이상이 되어야 하기 때문이다.
도 2는 Chase-Pyndiah 알고리즘을 통해 오류정정을 수행하는 과정에서 검출되는 신드롬의 비율을 설명하기 위한 도면이다.
도 2를 참조하면, 참조부호 200은 Chase-Pyndiah SISO 복호 기법을 기반으로 오류정정을 수행하는 경우, 신호-대-잡음비(signal-to-noise ratio, SNR)에 따른 블록 터보 부호들의 싱글-에러(single-error) 신드롬 및 더블-에러(double-error) 신드롬의 검출 비율을 나타낸다.
즉, 참조부호 200에서 x축은 SNR 값을 나타내고, y축은 검출되는 신드롬들 중에서 각 에러-신드롬(싱글-에러 신드롬 및 더블-에러 신드롬)이 차지하는 비율을 나타내며, (64,57,4)2, (128,120,4)2, (256,247,4)2 및 (32,26,4)2는 블록 터보 부호들을 나타낸다.
구체적으로, 참조부호 200에 따르면, 각 부호의 높은 SNR 영역에서 더블-에러 신드롬의 비율은 전체 에러 신드롬 비율의 약 1/3 정도를 차지하는 것을 확인할 수 있다. 즉, 더블-에러 신드롬의 검출 비율은 싱글-에러 신드롬의 검출 비율에 비해서는 다소 낮지만 무시할 수 있는 수준이 아니라는 것을 확인할 수 있다.
즉, 더블-에러 신드롬이 검출되는 경우, 기존과 같이 항상 일관되게 SISO 복호 기법을 적용하면 상당히 큰 복호 계산의 복잡도가 야기될 수 있다는 것을 예상할 수 있다.
또한, 더블-에러 신드롬이 검출되는 구성 부호 코드워드에 기존의 HISO 복호 기법 또는 HDD-based HISO 기법을 적용하면, 불완전한 오류정정을 수행하게 될 가능성이 높으며, 이로 인해 오류 증폭이 발생하게 되어 오류정정 성능이 크게 저하될 수 있다.
이에, 일실시예에 따른 혼합 복호 장치는 더블-에러 신드롬이 검출되는 경우에, 새로운 저복잡도 복호 기법을 이용하여 검출된 오류를 정정할 수 있다.
구체적으로, 기존 Chase-Pyndiah 복호 알고리즘에서는 Chase-2 알고리즘 적용으로 인해 2p 횟수의 경판정 복호 과정을 수행해야하는 반면, 일실시예에 따른 혼합 복호 장치에서는 오직 1회의 경판정 복호 과정이 요구되며, 구성 부호의 최대 오류정정 능력을 넘어서 보다 많은 오류들을 경판정 복호 과정을 통해 정정할 수 있다.
이를 통해, 일실시예에 따른 혼합 복호 장치는 블록 터보 부호에 대한 기존의 다양한 복호 알고리즘들에 비해 SISO 복호 기법 적용의 가능성을 감소 시킬 수 있으며, 결과적으로 전체적인 복호 계산 복잡도를 보다 더 효과적으로 감소시킬 수 있다.
도 3은 일실시예에 따른 혼합 복호 장치의 동작에 따른 예시를 설명하기 위한 도면이다.
다시 말해, 도 3은 도 1을 통해 설명한 일실시예에 따른 혼합 복호 장치의 예시를 설명하는 도면으로, 이후 도 3을 통해 설명하는 내용 중 일실시예에 따른 혼합 복호 장치를 통해 설명한 내용과 중복되는 설명은 생략 하기로 한다.
도 3을 참조하면, 도 3의 (a)는 혼합 복호 장치에서 오류정정의 신뢰도가 높은 것으로 판단하는 예시를 나타내고, 도 3의 (b)는 혼합 복호 장치에서 오류정정의 신뢰도가 낮은 것으로 판단하는 예시를 나타낸다.
구체적으로, 도 3의 (a)는 오류가 첫번째와 두번째 비트에 존재하는 경우를 나타내고, 도 3의 (b)는 오류가 두번째 및 세번째 비트에 존재하는 경우를 나타낸다.
도 3의 (a)에 따르면, 일실시예에 따른 혼합 복호 장치는 구성 부호 코드워드(R)을 경판정하여, 경판정된 코드워드(RH)인 [11000000]를 생성할 수 있으며, 경판정된 코드워드(RH)의 소프트 값을 이용하여 복수개의 최소 신뢰도 비트(LRBs)를 산출할 수 있다.
예를 들면, 일실시예에 따른 혼합 복호 장치는 확장 해밍 부호를 구성 부호로 사용하는 경우에 총 3개의 최소 신뢰도 비트(① 내지 ③)를 산출할 수 있다.
일측에 따르면, 혼합 복호 장치는 경판정된 코드워드(RH)의 첫번째 최소 신뢰도 비트의 위치(①)에 비트 플리핑을 적용하여 테스트 시퀀스(Zde)인 [01000000]을 생성할 수 있다.
또한, 혼합 복호 장치는 생성된 테스트 시퀀스(Zde)를 경판정 복호화(hard decision decoding; HDD)하여 결정 코드워드(DHDD)인 [00000000]를 생성할 수 있다.
한편, 혼합 복호 장치는 확장 해밍 부호를 구성 부호로 사용하는 경우에, 생성된 결정 코드워드(DHDD)에서 오류정정된 비트의 위치와 두번째 또는 세번째 최소 신뢰도 비트의 위치(② 또는 ③)의 일치여부를 판단하고, 일치 여부의 판단 결과에 기초하여 오류정정의 신뢰도를 판단할 수 있다.
일측에 따르면, 혼합 복호 장치는 생성된 결정 코드워드(DHDD)와, 결정 코드워드(DHDD)를 제외하고 구성 부호 코드워드(R)와 제곱 유클리디언 거리가 가장 가까운 경쟁부호(DCMP)인 [11110000]를 이용하여 오류정정의 신뢰도를 판단할 수 있다.
보다 구체적인 예를 들면, 혼합 복호 장치는 도 1을 통해 설명한 수학식2에 생성된 결정 코드워드(DHDD) 값을 대입하여 오류정정의 신뢰도를 판단할 수 있으며, 수학식2에 대입을 하면,
Figure 112019098145124-pat00013
가 되어, 수학식2에서 '참'인 조건을 만족(satidfied)할 수 있다.
다시 말해, 도 3의 (a)에서 혼합 복호 장치는 생성된 결정 코드워드(DHDD)가 수학식2의 조건을 만족하므로, 생성된 결정 코드워드(DHDD)에 기초하여 외부정보(extrinsic information)를 연산할 수 있다.
한편, 도 3의 (b)에 따르면, 일실시예에 따른 혼합 복호 장치는 구성 부호 코드워드(R)을 경판정하여, 경판정된 코드워드(RH)인 [01100000]를 생성할 수 있으며, 경판정된 코드워드(RH)의 소프트 값을 이용하여 복수개의 최소 신뢰도 비트(LRBs)를 산출할 수 있다.
일측에 따르면, 혼합 복호 장치는 경판정된 코드워드(RH)의 첫번째 최소 신뢰도 비트 위치(①)에 비트 플리핑을 적용하여 테스트 시퀀스(Zde)인 [11100111]을 생성할 수 있다.
또한, 혼합 복호 장치는 생성된 테스트 시퀀스(Zde)를 경판정 복호화(hard decision decoding; HDD)하여 결정 코드워드(DHDD)인 [11101000]를 생성할 수 있다.
한편, 혼합 복호 장치는 확장 해밍 부호를 구성 부호로 사용하는 경우에, 생성된 결정 코드워드(DHDD)에서 오류정정된 비트의 위치와 두번째 또는 세번째 최소 신뢰도 비트의 위치(② 또는 ③)의 일치여부를 판단하고, 일치 여부의 판단 결과에 기초하여 오류정정의 신뢰도를 판단할 수 있다.
일측에 따르면, 혼합 복호 장치는 생성된 결정 코드워드(DHDD)와, 결정 코드워드(DHDD)를 제외하고 구성 부호 코드워드(R)와 제곱 유클리디언 거리가 가장 가까운 경쟁부호(DCMP)인 [00000000]을 이용하여 오류정정의 신뢰도를 판단할 수 있다.
보다 구체적으로, 혼합 복호 장치는 수학식2에 생성된 결정 코드워드(DHDD) 값을 대입하여 오류정정의 신뢰도를 판단할 수 있으며, 도 3의 (b)는 수학식2가 '참'인 조건을 만족하지 못하므로(not satidfied), 혼합 복호 장치는 오류정정의 신뢰도가 낮은 것으로 판단할 수 있으며, 판단 결과에 대응하여 SISO 복호화를 통해 오류정정을 재수행할 수 있다.
도 4는 일실시예에 따른 혼합 복호 장치의 오류정정 능력을 설명하기 위한 도면이다.
도 4를 참조하면, 도 4의 (a)는 (64,57,4)2 블록 터보 부호를 기준으로, 기존의 복호 기법과 일실시예에 따른 혼합 복호 장치의 오류정정 성능을 비교하는 예시를 나타내고, 도 4의 (b)는 (32,26,4)2, (64,57,4)2, (128,120,4)2 및 (256,247,4)2 블록 터보 부호를 기준으로, Chase-Pyndiah 알고리즘에 따른 복호 기법과 일실시예에 따른 혼합 복호 장치의 오류정정 성능을 비교하는 예시를 나타낸다.
또한, 도 4의 (a) 내지 (b)에서 '[1]'은 기존 Chase-Pyndiah 알고리즘에 따른 시뮬레이션 결과를 나타내고, '[4]' 및 '[5]'는 기존 신드롬 기반의 복호 알고리즘에 따른 시뮬레이션 결과를 나타내며, 'BFHDD-HISO' 및 'proposed'는 일실시예에 따른 혼합 복호 장치에 따른 시뮬레이션 결과를 나타내고, 'HDD-based HISO to double-error'는 더블-에러 신드롬이 검출된 구성 부호 코드워드를 HDD 기반의 HISO 알고리즘을 통해 복호화하는 시뮬레이션 결과를 나타낸다.
또한, 도 4의 (a) 내지 (b)에서 x축은 신호 대 잡음비(signal to noise ratio, SNR)를 나타내고, y축은 비트 오류율(bit error ratio, BER)을 나타낸다.
한편, 도 4의 (a) 내지 (b)를 통해 설명하는 시뮬레이션 과정에서는 binary phase shift keying(BPSK) 모듈레이션 기법이 사용 되었고, 채널 환경은 additive white Gaussian noise (AWGN)으로 설정하였으며, 최소 신뢰도 비트의 개수 p는 4개, 최대 반-반복 복호 횟수는 8회(즉, 반복 복호 횟수는 4회를 의미)로 설정 되었다.
구체적으로, 도 4의 (a)에 따르면, 일실시예에 따른 혼합 복호 장치의 오류정정 성능이 기준 복호 기법인 Chase-Pyndiah SISO 복호 기법의 성능과 거의 일치한다는 것을 확인할 수 있다. 비록 약간의 성능 저하가 존재하긴 하지만, 그 크기가 약 0.1dB 이내로 무시할 수 있는 수준인 것으로 나타났다.
한편, HDD 기반의 HISO 알고리즘을 통해 더블-에러(double-error) 신드롬이 검출되는 구성 부호 코드워드를 복호화하는 데이터를 살펴보면, 잘못된 오류정정을 수행할 가능성이 매우 높기 때문에 오류정정 성능이 BER이 10-6인 지점을 기준으로 약 0.5dB 이상 크게 감소하는 것을 확인 할 수 있다.
도 4의 (b)에 따르면, 일실시예에 따른 혼합 복호 장치의 오류정정 성능은 블록 터보 부호 종류에 관계 없이 기준이 되는 Chase-Pyndiah 알고리즘의 성능과 거의 유사한 것을 확인할 수 있다. 특히 블록 터보 부호 코드워드의 길이가 길수록 성능 저하의 정도가 적은 것을 확인할 수 있다.
도 5는 일실시예에 따른 혼합 복호 장치의 복호화 적용 횟수에 따른 계산의 복잡도를 설명하기 위한 도면이다.
도 5를 참조하면, 도 5의 (a)는 Chase-Pyndiah 알고리즘에서의 SISO 복호 기법 적용 횟수를 기준으로, 기존 신드롬 기반 복호 알고리즘([4], [5]) 및 일실시예에 따른 혼합 복호 장치(propsed)에서의 SISO 복호 기법 적용 횟수를 비교하는 상대적 복잡도를 나타낸다.
또한, 도 5의 (b)는 Chase-Pyndiah 알고리즘에서의 경판정 복호 횟수를 기준으로, 기존 신드롬 기반 복호 알고리즘([5]) 및 일실시예에 따른 혼합 복호 장치(propsed)에서의 경판정 복호 기법 적용 횟수를 비교하는 상대적 복잡도를 나타낸다.
다시 말해, 도 5의 (a)에서 x축은 신호 대 잡음비(signal to noise ratio, SNR)를 나타내고, y축은 Chase-Pyndiah 알고리즘에서의 SISO 복호 기법 사용 횟수를 '1'로 가정하였을 때, 다른 복호 알고리즘 및 일실시예에 따른 혼합 복호 장치에서의 SISO 복호 기법의 적용 횟수를 나타낸다.
또한, 도 5의 (b)에서 x축은 신호 대 잡음비를 나타내고, y축은 Chase-Pyndiah 알고리즘에서의 경판정 복호 횟수를 '1'로 가정하였을 때, 복호 알고리즘 [5] 및 일실시예에 따른 혼합 복호 장치에서의 경판정 복호 횟수를 나타낸다.
한편, 도 5의 (a)를 통해 설명하는 복잡도 비교에서는 (64,57,4)2의 블록 터보 부호가 사용되었으며, 도 5의 (b)를 통해 설명하는 복잡도 비교에서는 (64,57,4)2, (128,120,4)2, (256,247,4)2 및 (32,26,4)2의 블록 터보 부호가 사용되었다.
도 5의 (a)에 따르면, BER이 10-6인 지점을 기준으로, 일실시예에 따른 혼합 복호 장치에 따른 복잡도가 Chase-Pyndiah 복호 알고리즘에 비해 거의 1/10 수준으로 감소하였음을 확인할 수 있다. 또한, 복호 알고리즘 [4]를 기준으로도 약 53.32%, 복호 알고리즘 [5]를 기준으로도 26.79% 감소했음을 확인할 수 있다.
즉, 일실시예에 따른 혼합 복호 장치는 기존 블록 터보 부호 복호 알고리즘들에 비해 SISO 복호 기법의 적용 횟수가 상당히 감소하였으며, 이를 통해 전체 복호 복잡도를 더욱 감소시킬 수 있음을 확인할 수 있다.
또한, 도 5의 (b)에 따르면, 일실시예에 따른 혼합 복호 장치는 블록 터보 부호의 종류에 상관 없이 기존 대비 경판정 복호 횟수가 더욱 감소하였음을 확인할 수 있다.
구체적으로, 모든 부호에서 Chase-Pyndiah 알고리즘을 기준으로 약 85% 정도 복잡도가 감소하였으며, 복호 알고리즘 [5]를 기준으로 비교해도 약 14.61% 내지 25.72%까지 복잡도가 감소함을 확인할 수 있다.
한편, 일실시예에 따른 혼합 복호 장치의 복호화 과정에서 사용되는 산술 연산자들에 따른 상대적 복잡도는 하기 표1과 같이 나타날 수 있다.
Figure 112019098145124-pat00014
표1에서 비교의 지표로 사용되는 각종 산술 연산자들의 종류는 덧셈(addition), 곱셈(multiplication), 비교기 연산(comparator), 그리고 modulo-2 연산이고, 산술 연산자 관련 상대적 복잡도 비교 과정에서의 기준은 기존 기법들 중 가장 복잡도가 낮은 복호 알고리즘 [5]를 기준으로 하였다.
표1에 따르면, 일실시예에 따른 혼합 복호 장치는 부호 종류에 관계 없이, 그리고 사용된 산술 연산자 종류에 관계 없이 복잡도 감소 효과가 있음을 확인할 수 있다. 특히 네 가지 연산자들 중 덧셈 연산자와 midulo-2 연산자의 복잡도 감소 효과가 가장 두드러지는 것을 확인할 수 있다.
도 6은 일실시예에 따른 혼합 복호 방법을 설명하기 위한 도면이다.
다시 말해, 도 6은 도 1 내지 도 5를 통해 설명한 일실시예에 따른 혼합 복호 장치의 동작 방법을 설명하는 도면으로, 이후 도 6을 통해 설명하는 내용 중 일실시예에 따른 혼합 복호 장치를 통해 설명한 내용과 중복되는 설명은 생략하기로 한다.
도 6을 참조하면, 610 단계에서 일실시예에 따른 혼합 복호 방법은 경판정부에서 복호기(decoder)로 입력되는 구성 부호 코드워드를 경판정(hard decision)하여 구성 부호 코드워드에 포함된 각 심볼의 소프트 값을 이진 비트 형태로 변환할 수 있다.
다음으로, 620 단계에서 일실시예에 따른 혼합 복호 방법은 신드롬 검출부에서 경판정된 코드워드를 이용하여 신드롬(syndrome)을 검출할 수 있다.
다음으로, 630 단계에서 일실시예에 따른 혼합 복호 방법은 신드롬 검출부를 통해 검출된 신드롬이 더블-에러(double-error) 신드롬인 경우 복호화부에서 경판정된 코드워드의 비트 값에 대한 비트 플리핑(bit-flipping)을 통해 테스트 시퀀스를 생성하고, 생성된 테스트 시퀀스에 경판정 복호화(hard decision decoding; HDD)할 수 있다.
또한, 630 단계에서 일실시예에 따른 혼합 복호 방법은 신뢰도 판단부에서, 경판정 복호 과정을 통해 오류정정된 비트의 위치 정보에 기초하여 오류정정의 신뢰도를 판단할 수 있다.
예를 들면, 신뢰도 판단부는 오류정정된 비트의 위치와, 복수 개의 최소 신뢰도 비트 중 m번째(여기서, m은
Figure 112019098145124-pat00015
를 만족하는 양의 정수) 최소 신뢰도 비트의 위치의 일치 여부를 판단하고, 일치 여부의 판단 결과에 기초하여 오류정정의 신뢰도를 판단할 수 있다.
일측에 따르면, 640 단계에서 일실시예에 따른 혼합 복호 방법은 일치 여부의 판단 결과가 일치하는 것으로 판단되면, 신뢰도 판단부에서 신뢰도 요소(reliability ractor) 파라미터에 경판정된 코드워드의 비트 인덱스 정보를 반영하는 외부정보(extrinsic information)를 연산할 수 있다.
또한, 650 단계에서 일실시예에 따른 혼합 복호 방법은 일치 여부의 판단 결과가 불일치하는 것으로 판단되면, 신뢰도 판단부에서 오류정정 제어신호를 생성하고 생성된 오류정정 제어신호를 복호화부에 전달할 수 있으며, 복호화부에서 오류정정 제어신호를 수신하면, 경판정된 코드워드를 SISO(soft-input soft-output, 소프트-입력 및 소프트-출력) 복호화하여 오류정정을 수행할 수 있다.
일측에 따르면, 660 단계에서 일실시예에 따른 혼합 복호 방법은 신드롬 검출부를 통해 검출된 신드롬이 노-에러(no-error) 신드롬인 경우, 복호화부에서 경판정된 코드워드를 HISO 복호화하여 오류정정을 수행할 수 있다.
또한, 670 단계에서 일실시예에 따른 혼합 복호 방법은 신드롬 검출부를 통해 검출된 신드롬이 싱글-에러(single-error) 신드롬인 경우, 복호화부에서 경판정된 코드워드를 경판정 복호 기반의 HISO 복호화 및 SISO 복호화 중 어느 하나를 통해 복호화하여 오류정정을 수행할 수 있다.
일측에 따르면, 670 단계에서 일실시예에 따른 혼합 복호 방법은 복호화부에서 경판정된 코드워드를 경판정 복호 기반의 HISO 복호화하고, 신뢰도 판단부에서 복호화 결과에 대한 신뢰도를 판단할 수 있으며, 신뢰도 판단 결과에 기초하여 경판정 복호 기반의 HISO 복호화 결과를 유지(680 단계)하거나, SISO 복호화(690 단계)를 통해 오류정정을 재수행할 수 있다.
결국, 본 발명을 이용하면, 복호기에 입력되는 구성 부호 코드워드의 신드롬 정보를 기반으로 가변적인 복호 알고리즘 제공할 수 있다.
또한, 본 발명은 블록 터보 부호의 오류정정 성능은 기존과 거의 동일하게 유지하면서, 동시에 복호 계산 복잡도를 기존보다 저감할 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 혼합 복호 장치 110: 경판정부
120: 신드롬 검출부 130: 복호화부
140: 신뢰도 판단부

Claims (12)

  1. 복호기(decoder)로 입력되는 구성 부호 코드워드를 경판정(hard decision)하여 상기 구성 부호 코드워드에 포함된 각 심볼의 소프트 값을 이진 비트 형태로 변환하는 경판정부;
    상기 경판정된 코드워드를 이용하여 신드롬(syndrome)을 검출하는 신드롬 검출부 및
    상기 검출된 신드롬이 더블-에러(double-error) 신드롬인 경우, 상기 경판정된 코드워드의 비트 값에 대한 비트 플리핑(bit-flipping)을 통해 테스트 시퀀스를 생성하고, 상기 생성된 테스트 시퀀스를 경판정 복호화(hard decision decoding; HDD) 하는 복호화부
    를 포함하는 신드롬 기반의 혼합 복호 장치.
  2. 제1항에 있어서,
    상기 경판정 복호화를 통해 오류정정된 비트의 위치 정보에 기초하여 오류정정의 신뢰도를 판단하는 신뢰도 판단부
    를 더 포함하는 신드롬 기반의 혼합 복호 장치.
  3. 제1항에 있어서,
    상기 구성 부호 코드워드는 블록 터보 부호(Block Turbo code; BTC)에 기초한 코드워드인
    신드롬 기반의 혼합 복호 장치.
  4. 제2항에 있어서,
    상기 복호화부는,
    상기 경판정된 코드워드의 소프트 값을 이용하여 복수 개의 최소 신뢰도 비트의 위치를 산출하는
    신드롬 기반의 혼합 복호 장치.
  5. 제4항에 있어서,
    상기 복호화부는,
    d-1개(여기서, d는 상기 구성 부호 코드워드의 구성 부호의 종류에 대응되는 해밍 거리)의 최소 신뢰도 비트의 위치를 산출하는
    신드롬 기반의 혼합 복호 장치.
  6. 제4항에 있어서,
    상기 복호화부는,
    상기 복수 개의 최소 신뢰도 비트 중 첫번째 최소 신뢰도 비트의 비트 값에 상기 비트 플리핑을 적용하여 상기 테스트 시퀀스를 생성하는
    신드롬 기반의 혼합 복호 장치.
  7. 제5항에 있어서,
    상기 신뢰도 판단부는,
    상기 오류정정된 비트의 위치와, 상기 복수 개의 최소 신뢰도 비트 중 m번째(여기서, m은
    Figure 112019098145124-pat00016
    를 만족하는 양의 정수) 최소 신뢰도 비트의 위치의 일치 여부를 판단하고, 상기 일치 여부의 판단 결과에 기초하여 상기 오류정정의 신뢰도를 판단하는
    신드롬 기반의 혼합 복호 장치.
  8. 제7항에 있어서,
    상기 신뢰도 판단부는,
    상기 일치 여부의 판단 결과가 일치하는 것으로 판단되면, 하기 수학식1을 통해 외부정보를 연산하는
    [수학식1]
    Figure 112020088727671-pat00023

    여기서,
    Figure 112020088727671-pat00024
    는 외부정보,
    Figure 112020088727671-pat00025
    는 Monte-Carlo 시뮬레이션 과정을 통해 획득되는 신뢰도 요소 파라미터, d는 해밍 거리(hamming distance), k는 상기 구성 부호 코드워드의 비트 인덱스인
    신드롬 기반의 혼합 복호 장치.
  9. 제7항에 있어서,
    상기 신뢰도 판단부는,
    상기 일치 여부의 판단 결과가 불일치하는 것으로 판단되면, 오류정정 제어신호를 생성하고, 생성된 오류정정 제어신호를 상기 복호화부에 전달하며,
    상기 복호화부는,
    상기 오류정정 제어신호를 수신하면, 상기 경판정된 코드워드를 SISO(soft-input soft-output, 소프트-입력 및 소프트-출력) 복호화하여 상기 오류정정을 수행하는
    신드롬 기반의 혼합 복호 장치.
  10. 제1항에 있어서,
    상기 복호화부는,
    상기 검출된 신드롬이 싱글-에러(single-error) 신드롬인 경우, 상기 경판정된 코드워드를 경판정 복호 기반(HDD-based)의 HISO(hard-input soft-output, 하드 입력 및 소프트 출력) 복호화 및 SISO 복호화 중 어느 하나를 통해 복호화하여 오류정정을 수행하는
    신드롬 기반의 혼합 복호 장치.
  11. 제1항에 있어서,
    상기 복호화부는,
    상기 검출된 신드롬이 노-에러(no-error) 신드롬인 경우, 상기 경판정된 코드워드를 HISO 복호화하여 오류정정을 수행하는
    신드롬 기반의 혼합 복호 장치.
  12. 경판정부에서, 복호기(decoder)로 입력되는 구성 부호 코드워드를 경판정(hard decision)하여 상기 구성 부호 코드워드에 포함된 각 심볼의 소프트 값을 이진 비트 형태로 변환하는 단계;
    신드롬 검출부에서, 상기 경판정된 코드워드를 이용하여 신드롬(syndrome)을 검출하는 단계 및
    복호화부에서, 상기 검출된 신드롬이 더블-에러(double-error) 신드롬인 경우, 상기 경판정된 코드워드의 비트 값에 대한 비트 플리핑(bit-flipping)을 통해 테스트 시퀀스를 생성하고, 상기 생성된 테스트 시퀀스에 경판정 복호화(hard decision decoding; HDD)하는 단계
    를 포함하는 신드롬 기반의 혼합 복호 방법.
KR1020190118209A 2019-09-25 2019-09-25 블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법 KR102197751B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190118209A KR102197751B1 (ko) 2019-09-25 2019-09-25 블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190118209A KR102197751B1 (ko) 2019-09-25 2019-09-25 블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR102197751B1 true KR102197751B1 (ko) 2021-01-04

Family

ID=74127390

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190118209A KR102197751B1 (ko) 2019-09-25 2019-09-25 블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR102197751B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022250195A1 (ko) * 2021-05-27 2022-12-01 한양대학교 산학협력단 연속적인 부분 신드롬 검색을 이용하는 고속 연판정 기반 선형 부호의 복호화 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09252258A (ja) 1996-03-18 1997-09-22 Fujitsu Ltd 軟判定誤り訂正復号方法及び装置
KR101569637B1 (ko) * 2014-12-08 2015-11-17 인하대학교 산학협력단 테스트 신드롬을 이용한 반복 복호 과정이 없는 연판정 bch 복호 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09252258A (ja) 1996-03-18 1997-09-22 Fujitsu Ltd 軟判定誤り訂正復号方法及び装置
KR101569637B1 (ko) * 2014-12-08 2015-11-17 인하대학교 산학협력단 테스트 신드롬을 이용한 반복 복호 과정이 없는 연판정 bch 복호 방법 및 장치

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Al-Dweik, A., S. Le Goff, and B. Sharif. "A hybrid decoder for block turbo codes." IEEE Transactions on Communications 57.5 (2009): 1229-1232.
Byungkyu Ahn, Sungsik Yoon, Jun Heo, "Low Complexity Syndrome-Based Decoding Algorithm Applied to Block Turbo Codes," IEEE Access., vol. 6, pp. 2169-3536, April 2018.
Low complexity syndrome-based decoding algorithm applied to block Turbo codes (IEEE Access, April 2018) *
Pen-Yao Lu, Erl-Huei Lu, Tso-Cho Chen, "An Efficient Hybrid decoder for Block Turbo Codes," IEEE Commun. Letters, vol. 18, no. 12, pp. 2077-2080, Oct. 2014.
R, Pyndiah, "Near-optimum decoding of product codes: block turbo codes," IEEE Trans. Commun., vol 46, No. 8, pp. 1003-1010, Aug. 1998.
Son, Jaeyong, Kyungwhoon Cheun, and Kyeongcheol Yang. "Low-complexity decoding of block turbo codes based on the Chase algorithm." IEEE Communications Letters 21.4 (2017): 706-709.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022250195A1 (ko) * 2021-05-27 2022-12-01 한양대학교 산학협력단 연속적인 부분 신드롬 검색을 이용하는 고속 연판정 기반 선형 부호의 복호화 방법 및 장치
KR20220160306A (ko) * 2021-05-27 2022-12-06 한양대학교 산학협력단 연속적인 부분 신드롬 검색을 이용하는 고속 연판정 기반 선형 부호의 복호화 방법 및 장치
KR102526387B1 (ko) 2021-05-27 2023-04-26 한양대학교 산학협력단 연속적인 부분 신드롬 검색을 이용하는 고속 연판정 기반 선형 부호의 복호화 방법 및 장치

Similar Documents

Publication Publication Date Title
KR100321978B1 (ko) 통신시스템에서반복복호장치및방법
JP3556943B2 (ja) 符号分割多重接続移動通信システムの反復復号中止装置及び方法
US6526531B1 (en) Threshold detection for early termination of iterative decoding
KR100881192B1 (ko) 에러 패턴 검출 방법, 에러 정정 장치, 및 데이터 부호화 방법
WO2015139160A1 (zh) 一种动态阈值比特翻转的ldpc码硬判决译码方法
US20020023246A1 (en) Combination reed-solomon and turbo coding
US20090249165A1 (en) Event Cleanup Processing For Improving The Performance Of Sequence-Based Decoders
US6865708B2 (en) Hybrid early-termination methods and output selection procedure for iterative turbo decoders
US6879648B2 (en) Turbo decoder stopping based on mean and variance of extrinsics
US20090132897A1 (en) Reduced State Soft Output Processing
US11177834B2 (en) Communication method and apparatus using polar codes
KR20140138080A (ko) 코드의 워드들의 확장된 스펙트럼의 분석에 의해, 정정 코드, 예를 들면, 터보 코드를 디코딩하는 방법
EP3713096B1 (en) Method and device for decoding staircase code, and storage medium
US10461776B2 (en) Device and method of controlling an iterative decoder
KR102197751B1 (ko) 블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법
US8019020B1 (en) Binary decoding for correlated input information
US6614858B1 (en) Limiting range of extrinsic information for iterative decoding
US11251809B2 (en) Soft-aided decoding of staircase codes
KR20110082311A (ko) 통신 시스템에서 복호된 데이터의 신뢰성을 판단하는 장치 및 방법
US8468428B1 (en) Early stopping rules for non-binary turbo codes
KR20010092900A (ko) 터보 복호기에서 반복 복호를 중지하는 장치 및 이를구비한 터보 복호기
KR20050079986A (ko) Llr의 부호 비교를 이용한 터보 복호기의 반복복호제어장치 및 방법
WO2020234185A1 (en) A method of marking bits, a method of decoding bits, a bit marking device, a decoder, a receiver and a chip
KR102205630B1 (ko) 부호 복호기의 효율 증대를 위한 조기 종료 장치 및 그 방법
CN108540142B (zh) 接收装置及其控制方法

Legal Events

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