KR20210057787A - Turbo 곱 코드 디코딩 방법, 장치, 디코더 및 컴퓨터 기록 매체 - Google Patents

Turbo 곱 코드 디코딩 방법, 장치, 디코더 및 컴퓨터 기록 매체 Download PDF

Info

Publication number
KR20210057787A
KR20210057787A KR1020217010728A KR20217010728A KR20210057787A KR 20210057787 A KR20210057787 A KR 20210057787A KR 1020217010728 A KR1020217010728 A KR 1020217010728A KR 20217010728 A KR20217010728 A KR 20217010728A KR 20210057787 A KR20210057787 A KR 20210057787A
Authority
KR
South Korea
Prior art keywords
decoding
code
code word
turbo product
received
Prior art date
Application number
KR1020217010728A
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 지티이 코포레이션
Publication of KR20210057787A publication Critical patent/KR20210057787A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2975Judging correct decoding, e.g. iteration stopping criteria
    • 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
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2948Iterative 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/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/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 Turbo 곱 코드 디코딩 방법, 디코딩 장치, 디코더 및 컴퓨터 기록 매체를 제공한다. 상기 방법은, Turbo 곱 코드의 수신 코드 워드를 획득하고, 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하는 단계(S101); 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득하는 단계(S102); 및 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계(S103)를 포함한다.

Description

Turbo 곱 코드 디코딩 방법, 장치, 디코더 및 컴퓨터 기록 매체
관련 출원의 상호 참조
본 발명은 2018년 9월 12일에 중국 특허국에 제출한 출원 번호가 201811063021.2이고 발명의 명칭이 “Turbo 곱 코드 디코딩 방법, 장치, 디코더 및 컴퓨터 기록 매체”인 중국 특허 출원의 우선권을 주장하는 바, 상의 출원의 모든 내용은 참조로서 본 발명에 인용된다.
본 발명은 오류 정정 제어 분야에 관한 것으로, 특히 Turbo 곱 코드 디코딩 방법, 장치, 디코더 및 컴퓨터 기록 매체에 관한 것이다.
Turbo 곱 코드는 소프트 입력 소프트 출력(soft in soft out, SISO) 반복 디코딩 알고리즘에 기반한 것으로, 이의 오류 정정 성능이 샤논의 한계에 매우 근접하므로, 채널 인코딩 분야에서 연구 대상으로 주목받고 있다. 관련 기술에서 주로 소프트웨어 디코딩 알고리즘을 Turbo 곱 코드 디코딩 방법으로서 사용하지만, 오류 코드 개수가 비교적 적은 경우, 소프트웨어 디코딩 알고리즘의 전력 소모가 높은데, 이때 하드웨어 디코딩 알고리즘을 사용하는 것이 더욱 적합하다. 하지만, 비트 오류율이 낮은 경우, 하드웨어 디코딩 알고리즘을 사용하여 Turbo 곱 코드를 디코딩할 경우 에러 플로어(error floor)가 발생될 수 있는데, 에러 플로어가 발생되는 원인은 주로 교착 상태 또는 교착 상태 유사 구조가 발생된 것이다. 하드웨어 디코딩 알고리즘을 사용하여 Turbo 곱 코드를 디코딩할 경우 행렬의 교착 디코딩을 사용하기 때문에, 행 디코딩 시 발생된 오류와 열 디코딩 시 발생된 오류가 일치하여 모두 정정할 수 없게 되면, 교착 상태 또는 교착 상태 유사 구조를 형성한다.
기존에 존재하는 기술적 과제를 해결하기 위하여, 본 발명의 실시예는 에러 플로어의 발생을 효과적으로 방지할 수 있는 Turbo 곱 코드 디코딩 방법, 장치, 디코더 및 컴퓨터 기록 매체를 제공한다.
상기 목적에 도달하기 위하여, 본 발명의 실시예의 기술적 해결수단은 하기와 같이 구현된다.
제1 양태에 따르면, 본 발명의 실시예는, Turbo 곱 코드의 수신 코드 워드(codeword)를 획득하고, 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하는 단계; 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득하는 단계; 및 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계를 포함하는 Turbo 곱 코드 디코딩 방법을 제공한다.
제2 양태에 따르면, 본 발명의 실시예는, Turbo 곱 코드의 수신 코드 워드를 획득하기 위한 획득 모듈; 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하고, 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득하기 위한 사전 반복 디코딩 모듈; 및 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하기 위한 교착 상태 정정 모듈을 포함하는 Turbo 곱 코드 디코딩 장치를 제공한다.
제3 양태에 따르면, 본 발명의 실시예는 프로세서 및 프로세서에서 실행 가능한 컴퓨터 프로그램을 저장하기 위한 메모리를 포함하는 디코더를 제공하되, 상기 프로세서는 상기 컴퓨터 프로그램을 실행할 경우 제1 양태에 따른 Turbo 곱 코드 디코딩 방법을 수행하기 위한 것이다.
제4 양태에 따르면, 본 발명의 실시예는 컴퓨터 기록 매체를 제공하되, 상기 컴퓨터 기록 매체에는 컴퓨터 프로그램이 저장되고, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우 제1 양태에 따른 Turbo 곱 코드 디코딩 방법을 구현한다.
제5 양태에 따르면, 본 발명의 실시예는 컴퓨터 프로그램 제품을 제공하되, 상기 컴퓨터 프로그램 제품은 비일시적 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램을 포함하고, 상기 컴퓨터 프로그램은 프로그램 명령을 포함하며, 상기 프로그램 명령이 컴퓨터에 의해 실행될 경우 상기 컴퓨터가 이상의 각 양태에 따른 방법을 수행하도록 한다.
도 1은 본 발명의 일 실시예에 따른 Turbo 곱 코드 디코딩 방법의 흐름 모식도이다.
도 2는 본 발명의 일 실시예에 따른 Turbo 곱 코드 디코딩 장치의 구조 모식도이다.
도 3은 본 발명의 일 실시예에 따른 디코더의 구조 모식도이다.
도 4는 본 발명의 선택 가능한 일 구체적 실시예에 따른 Turbo 곱 코드 디코딩 방법의 흐름 모식도이다.
도 5는 본 발명의 예시적인 일 구체적 실시예에 따른 상기 반복 파라미터에 따라 수신 코드 워드에 대해 사전 반복 디코딩을 수행하고 파라미터를 기록하는 흐름 모식도이다.
도 6은 본 발명의 다른 예시적인 구체적 실시예에 따른 상기 반복 파라미터에 따라 수신 코드 워드에 대해 사전 반복 디코딩을 수행하고 파라미터를 기록하는 흐름 모식도이다.
도 7은 본 발명의 예시적인 일 구체적 실시예에 따른 상기 역 연산된 후의 수신 코드 워드에 대해 사후 반복 디코딩을 수행하는 흐름 모식도이다.
아래 명세서의 첨부 도면 및 구체적인 실시예와 결부하여 본 발명의 기술적 해결수단을 더 상세하게 설명한다.
달리 정의되지 않은 한, 본문에서 사용된 모든 기술 및 과학 용어는 본 발명의 기술 분야에 속하는 통상의 기술자가 일반적으로 이해하는 의미와 동일한 의미를 가진다. 본문에서 본 발명의 명세서에서 사용된 용어는 단지 구체적인 실시예에 대한 설명을 목적으로 사용될 뿐, 본 발명을 한정하지 않는다. 본문에서 사용된 용어 “및/또는”는 하나 또는 복수 개의 관련된 열거된 사항의 임의의 및 모든 조합을 포함한다.
도1을 참조하면, 본 발명의 실시예에 의해 제공되는 Turbo 곱 코드 디코딩 방법은 하기와 같은 단계를 포함한다. 단계 S101에서, Turbo 곱 코드의 수신 코드 워드를 획득하고, 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행한다. 본 실시예에서, 상기 Turbo 곱 코드 디코딩 방법을 디코더에 응용하는 것을 예로 든다. 인코더는 블록 코드의 코드 타입에 따라 Turbo 곱 코드를 구축한 다음, 행에 따라 한 비트씩 Turbo 곱 코드를 직렬 전송하고, 디코더는 수신된 직렬 비트 시퀀스를 상기 Turbo 곱 코드의 차원과 동일한 어레이로 전환시킴으로써, Turbo 곱 코드의 수신 코드 워드를 획득한다. 상기 수신 코드 워드는 Turbo 곱 코드의 모든 수신 코드 워드이고, 상기 수신 코드 워드는 행 형식으로 존재하는 코드 워드 및 열 형식으로 존재하는 코드 워드를 포함한다. 상기 제1 반복 횟수는 실제 상황에 따라 설정될 수 있는데, 예를 들어, 3번 또는 4번 등으로 설정될 수 있다. 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하는 단계는, 상기 수신 코드 워드에 대해 설정된 행과 열 반복 순서로 제1 반복 횟수의 반복 디코딩을 수행하는 단계를 포함함을 이해할 수 있다. 상기 행과 열 반복 순서는 선 행 반복 후 열 반복의 순서일 수 있고, 선 열 반복 후 행 반복의 순서일 수도 있다. 상기 수신 코드 워드에 대해 한 번의 행 반복을 수행하는 것을 한 번의 반복으로 기록하고, 마찬가지로, 상기 수신 코드 워드에 대해 한 번의 열 반복을 수행하는 것도 한 번의 반복으로 기록한다. 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하는 과정에서, 상기 수신 코드 워드에 대해 행 반복을 수행하는 횟수와 상기 수신 코드 워드에 대해 열 반복을 수행하는 횟수는 동일하거나 상이할 수 있다. 본 실시예에서, 상기 수신 코드 워드에 대해 선 행 반복 후 열 반복의 순서로 제1 반복 횟수의 반복 디코딩을 수행한다.
단계 S102에서, 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득한다. 구체적으로, 매 번의 행 반복 디코딩 및 열 반복 디코딩 과정에서, 제1 디코딩 규칙에 따라 반복 디코딩을 통해 획득된 디코딩 결과를 판단함으로써, 디코딩 결과를 나타내는 디코딩 식별자를 획득한다. 상기 디코딩 결과는 디코딩된 후의 상기 수신 코드 워드 및 대응되는 오류 정정 상황 등 정보일 수 있다.
하나의 선택 가능한 실시예에서, 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하는 단계 전에, 상기 Turbo 곱 코드를 구성하는 블록 코드의 코드 타입을 획득하는 단계를 더 포함하되, 상기 코드 타입은 오류 정정 가능한 최대 코드 요소 수를 포함하고; 상기 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득하는 단계는, 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하는 단계; 및 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정하는 단계를 포함하되, 상기 제1 디코딩 규칙은, 상기 코드 타입에 따라 상기 수신 코드 워드가 단축 코드인 것으로 결정하고 또한 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 상기 코드 타입에 따라 상기 수신 코드 워드가 확장 코드인 것으로 결정하고 또한 상기 수신 코드 워드의 원래 검사 비트와 디코딩된 후의 상기 수신 코드 워드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고, 현재 이미 진행된 반복 디코딩 횟수가 설정된 반복 디코딩 횟수 임계값과 같으며 또한 전번 반복 디코딩 과정에서 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 작은 것으로 결정하거나, 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고 또한 상기 현재 이미 진행된 반복 디코딩 횟수가 상기 반복 디코딩 횟수 임계값과 같지 않은 것으로 결정하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙 중 적어도 하나를 포함한다.
여기서, 디코더는 인코더에 의해 송신된, 상기 Turbo 곱 코드를 구성하는 블록 코드의 코드 타입을 수신하고, 상기 Turbo 곱 코드가 2차원 Turbo 곱 코드인 것으로 예로 들면, 상기 블록 코드의 코드 타입은 (n1, k1, t1) 및 (n2, k2, t2)를 포함하며, 여기서, n1 및 n2는 블록 코드에 대응되는 코드 길이를 각각 의미하고, k1 및 k2는 블록 코드에 대응되는 정보 길이를 각각 의미하며, t1 및 t2는 블록 코드에 대응되는 오류 정정 가능한 최대 코드 요소 수를 각각 의미한다. 상기 수신 코드 워드의 코드 길이가 블록 코드에 대응되는 코드 길이보다 작을 경우, 인코딩 전에 상기 Turbo 곱 코드 중 앞 n열 또는 앞 n행의 불필요한 코드 요소, 즉 정보 비트가 0인 코드 요소를 삭제하였음을 설명하는데, 즉 상기 수신 코드 워드는 단축 코드이고, n은 상기 수신 코드 워드의 코드 길이와 블록 코드에 대응되는 코드 길이 사이의 절대값이다. 예를 들어, 상기 블록 코드의 코드 타입이 (255, 239)×(255, 239)인 것으로 가정하되, 상기 수신 코드 워드의 코드 길이가 248이면, 상기 수신 코드 워드는 단축 코드이고 또한 상기 수신 코드 워드에서 7개의 정보 비트가 0인 코드 요소를 생략하였음을 설명한다. 코드 타입이 단축 코드인 Turbo 곱 코드의 상기 수신 코드 워드를 디코딩하기 전에, 먼저 상기 수신 코드 워드 중 보충 위치의 코드 요소에 대해 모두 영 채우기(zero fill)를 수행할 수 있되, 상기 보충 위치는 생략된 정보 비트가 0인 코드 요소가 위치한 위치를 의미한다. 상기 수신 코드 워드의 코드 길이가 블록 코드에 대응되는 코드 길이보다 클 경우, 인코더가 상기 Turbo 곱 코드에 상기 Turbo 곱 코드 중 모든 행에 의해 배타적 논리합 연산을 수행하여 획득된 검사 열, 및/또는 상기 Turbo 곱 코드 중 모든 열에 의해 배타적 논리합 연산을 수행하여 획득된 검사 행을 증가하였음을 설명하되, 다시 말하면, 상기 수신 코드 워드의 마지막 코드 요소는 원래 검사 비트로 불리우는 하나의 검사 비트인데, 즉 상기 수신 코드 워드는 확장 코드이다.
제1 디코딩 규칙은 주로 코드 타입이 단축 코드인 측면, 코드 타입이 확장 코드인 측면 및 오류 정정 가능한 최대 코드 요소 수인 이 3개의 측면에 기반하여 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 식별자를 획득하는 규칙을 포함한다. 예를 들어, 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드 중 보충 위치의 코드 요소에 대해 잘못된 디코딩을 수행하였음을 설명하므로, 상기 수신 코드 워드에 대한 디코딩은 실패이다. 또한 예를 들어, 코드 타입이 확장 코드인 상기 수신 코드 워드를 디코딩할 경우, 상기 수신 코드 워드 중의 원래 검사 비트를 디코딩하지 않는다. 상기 수신 코드 워드를 디코딩한 후, 디코딩된 후의 상기 수신 코드 워드 중 모든 코드 요소에 대해 배타적 논리합 연산을 수행하여 디코딩된 후의 상기 수신 코드 워드의 검사 비트를 획득한다. 상기 수신 코드 워드에 대응되는 상기 원래 검사 비트와 상기 Turbo 곱 코드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 과정에서 오류가 발생되었음을 설명하므로, 상기 수신 코드 워드에 대한 디코딩 실패로 결정한다. 또한 예를 들어, 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고, 현재 이미 진행된 반복 디코딩 횟수가 설정된 반복 디코딩 횟수 임계값과 같으며 또한 전번 반복 디코딩 과정에서 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 작은 것으로 결정할 경우, 상기 수신 코드 워드에 대한 디코딩 실패로 결정함으로써, 더 많은 오류가 증가되는 것을 방지한다. 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고, 현재 이미 진행된 반복 디코딩 횟수가 설정된 반복 디코딩 횟수 임계값과 같으며 또한 전번 반복 디코딩 과정에서 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 크거나 같은 것으로 결정할 경우, 상기 수신 코드 워드에 대한 디코딩 성공으로 결정함으로써, 디코딩의 유연성을 증가시킨다. 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고 또한 상기 현재 이미 진행된 반복 디코딩 횟수가 상기 반복 디코딩 횟수 임계값과 같지 않은 것으로 결정할 경우, 상기 수신 코드 워드에 대한 디코딩 실패로 결정함으로써, 더 많은 오류가 증가되는 것을 방지한다. 여기서, 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수는 상기 수신 코드 워드가 블록 코드에 속하는 오류 정정 가능한 최대 코드 요소 수이다. 상기 전번 반복 디코딩 과정은 상기 제1 반복 횟수에 따라 결정된, 현재 반복 디코딩의 전번 반복 디코딩 과정을 의미한다. 현재 반복 디코딩이 행 반복 디코딩이면, 전번 반복 디코딩은 열 반복 디코딩이다. 현재 반복 디코딩이 열 반복 디코딩이면, 전번 반복 디코딩은 행 반복 디코딩이다. 상기 인코딩 유닛은 열 또는 행일 수 있다. 대응되게, 상기 전번 반복 디코딩이 행 반복 디코딩이면, 상기 전번 반복 디코딩 과정에서 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 작다는 것은 상기 전번 반복 디코딩에서 디코딩 실패된 행 번호 개수가 제1 설정된 임계값보다 작은 것이고; 상기 전번 반복 디코딩이 열 반복 디코딩이면, 상기 전번 반복 디코딩 과정에서 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 작다는 것은 전번 반복 디코딩 과정에서 디코딩 실패된 열 번호 개수가 제2 설정된 임계값보다 작은 것이다. 상기 제1 설정된 임계값 및 상기 제2 설정된 임계값은 실제 상황에 따라 설정될 수 있는데, 예를 들어, 상기 제1 설정된 임계값을 6으로 설정할 수 있고, 상기 제2 설정된 임계값을 7로 설정할 수 있다. 상기 반복 디코딩 횟수 임계값은 상기 제1 반복 횟수보다 작으며, 실제 상황에 따라 설정될 수 있는데, 예를 들어, 상기 반복 디코딩 횟수 임계값을 제3 회로 설정할 수 있다.
여기서, 상기 디코더는 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정하는 단계는, 상기 수신 코드 워드에 대해 반복 디코딩을 수행한 후의 디코딩 결과를 판단하여 획득된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정하는 단계일 수 있다. 상기 디코딩 식별자는 상기 수신 코드 워드에 대한 디코딩 성공 여부를 식별하기 위한 것이다. 예를 들어, 판단된 결과에 따라 상기 수신 코드 워드에 대한 디코딩 성공으로 결정하면, 1로 상기 수신 코드 워드가 디코딩 결과에 대응됨을 표기하고, 디코딩 성공된 코드 워드 개수에 1을 더한다. 판단된 결과에 따라 상기 수신 코드 워드에 대한 디코딩 실패로 결정하면, 0으로 상기 수신 코드 워드가 디코딩 결과에 대응됨을 표시하고, 디코딩 실패된 코드 워드 개수에 1을 더한다. 물론, 상기 수신 코드 워드가 상기 Turbo 곱 코드에 대해 위치한 행 번호 또는 열 번호를 기록할 수도 있고, 대응되는 상기 행 번호 또는 열 번호를 디코딩 식별자와 바인딩시킨다.
이로써, 제1 디코딩 규칙을 통해 수신 코드 워드에 대해 제1 반복 횟수의 반복 디코딩을 수행한 디코딩 결과를 판단하고, 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정함으로써, 상기 디코딩 식별자에 기반하여 후속의 오류 정정 처리에 참조를 제공하여 오류 정정의 정확도를 향상시킨다.
하나의 선택 가능한 실시예에서, 상기 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정하는 단계 전에, 디코딩 식별자 매트릭스를 초기화하는 단계를 더 포함하되, 상기 디코딩 식별자 매트릭스와 상기 Turbo 곱 코드의 크기는 같고; 상기 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정하는 단계는, 판단된 결과에 따라 상기 디코딩 식별자 매트릭스 중 대응되는 위치 에서의 상기 수신 코드 워드 중 각각의 코드 요소의 디코딩 식별자를 업데이트하는 단계를 포함한다.
여기서, 상기 디코딩 식별자 매트릭스를 초기화하는 단계는, 상기 디코딩 식별자 매트릭스 중 각각의 요소에 대응되는 값을 모두 0으로 설정하되, 판단된 결과에 따라 하나의 코드 워드가 디코딩 성공된 것으로 결정할 경우, 상기 디코딩 식별자 매트릭스에서 상기 코드 워드의 대응되는 위치의 값을 1로 설정하는데, 즉 상기 디코딩 식별자 매트릭스 중 대응되는 위치에서의 상기 코드 워드 중 각각의 코드 요소의 값을 모두 1로 설정하는 단계일 수 있다.
상기 Turbo 곱 코드의 크기와 같은 하나의 디코딩 식별자 매트릭스를 설정하여 상기 Turbo 곱 코드 중 각각의 코드 요소에 하나의 위치를 할당하여 대응되는 디코딩 결과를 기록한다. 이로써, 반복 과정에서 각각의 코드 요소에 대한 디코딩 결과를 알 수 있음으로써, 분석을 통해 디코딩 과정에서 교착 상태 또는 교착 상태 유사 구조의 발생 여부를 알 수 있으므로, 후속의 오류 정정 처리에 참조를 제공한다.
하나의 선택 가능한 실시예에서, 상기 제1 디코딩 규칙은, 상기 수신 코드 워드 중의 코드 요소에 대해 오류 정정을 수행하였고 또한 상기 디코딩 식별자 매트릭스에서 상기 코드 요소의 대응되는 디코딩 식별자가 상기 코드 요소를 이미 정확하게 디코딩한 것으로 나타내면, 상기 코드 요소에 대한 디코딩 실패로 결정하는 규칙을 더 포함한다.
예를 들어, 상기 Turbo 곱 코드 중의 제1 행 코드 요소로 구성된 수신 코드 워드를 디코딩하고 또한 디코딩 성공된 것으로 가정하면, 이때, 상기 디코딩 식별자 매트릭스에서 첫 번째 코드 요소의 대응되는 디코딩 식별자를 1로 설정하고, 상기 Turbo 곱 코드 중의 제1 열 코드 요소로 구성된 수신 코드 워드를 디코딩하고 또한 상기 첫 번째 코드 요소에 대해 오류 정정을 수행하였음을 결정하면, 이때, 상기 첫 번째 코드 요소에 대한 디코딩 실패로 결정하고, 상기 디코딩 식별자 매트릭스에서 첫 번째 코드 요소의 대응되는 디코딩 식별자를 0으로 업데이트한다.
이로써, 코드 요소의 과거 디코딩 결과를 통해 코드 요소의 현재 디코딩 결과를 결정함으로써, 코드 요소가 다른 코드 요소의 영향을 받아 반복적으로 변화되는 문제를 해결하고, 디코딩 결과의 정확도를 향상시킨다.
단계 S103에서, 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행한다.
구체적으로, Turbo 곱 코드의 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행한 후 획득된, 디코딩 결과를 나타내는 디코딩 식별자에 따라, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행한다.
여기서, 상기 디코딩 식별자는 설정된 제1 반복 횟수의 반복 디코딩 과정에서의 디코딩 상황을 나타낼 수 있으므로, 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 교착 상태 또는 교착 상태 유사 구조가 존재하는지 여부 등 상황을 알 수 있고, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 교착 상태 또는 교착 상태 유사 구조가 존재하면, 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하여, 상기 Turbo 곱 코드 중의 교착 상태 또는 교착 상태 유사 구조를 파괴함으로써, 에러 플로어의 발생을 방지한다.
상술한 내용을 종합하면, 상기 실시예에 의해 제공되는Turbo 곱 코드 디코딩 방법에서, 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 식별자를 획득하고, 디코딩 식별자를 통해 제1 반복 횟수의 반복 디코딩 중의 식별 코드 요소를 기록할 수 있음으로써, 반복 디코딩을 통해 획득된 디코딩 식별자에 따라 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하여, 상기 Turbo 곱 코드 중의 교착 상태 또는 교착 상태 유사 구조를 파괴할 수 있음으로써, 에러 플로어의 발생을 효과적으로 방지한다.
하나의 선택 가능한 실시예에서, 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계는, 상기 디코딩 식별자에 따라 상기 제1 반복 횟수에 대응되는 마지막 회 행 반복 디코딩 시 디코딩 실패된 행 수 및 마지막 회 열 반복 디코딩 시 디코딩 실패된 열 수를 획득하는 단계; 및 상기 행 수가 설정된 제1 개수 임계값보다 크거나 같고 또한 상기 열 수가 설정된 제2 개수 임계값보다 크거나 같은 것으로 결정할 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 워드에 대해 역 연산을 수행하는 단계를 포함한다.
예를 들어, 상기 제1 반복 횟수가 6회이고, 제1 회 반복 디코딩이 행 반복 디코딩이며, 제2 회 반복 디코딩이 열 반복 디코딩인 것으로 가정하면, 상기 제1 반복 횟수에 대응되는 마지막 회 행 반복 디코딩은 제5 회 반복 디코딩이고, 상기 제1 반복 횟수에 대응되는 마지막 회 열 반복 디코딩은 제6 회 반복 디코딩이다. 디코딩은 반복적으로 수행되고 또한 매 번 디코딩 성공 후 상기 Turbo 곱 코드를 업데이트할 수 있음으로써, 새로운 디코딩된 후의 상기 Turbo 곱 코드를 획득하므로, 상기 제1 반복 횟수에 대응되는 마지막 회 행 반복 디코딩 및 마지막 회 열 반복 디코딩은 상기 마지막 회 행 반복 디코딩 및 마지막 회 열 반복 디코딩 전의 반복 디코딩 정보를 포함한다. 상기 제1 개수 임계값 및 상기 제2 개수 임계값은 블록 코드에 대응되는 오류 정정 가능한 최대 코드 요소 수에 따라 결정될 수 있다. 예를 들어, 상기 Turbo 곱 코드를 구성하는 블록 코드의 코드 타입이 (n1, k1, t1) 및 (n2, k2, t2)이고 또한 상기 Turbo 곱 코드의 크기가 n1×n1일 경우, 상기 제1 개수 임계값을 t1+1로 설정할 수 있고, 상기 제2 개수 임계값을 t2+1로 설정할 수 있다.
상기 행 수가 설정된 제1 개수 임계값보다 크거나 같고 또한 상기 열 수가 설정된 제2 개수 임계값보다 크거나 같은 것으로 결정할 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 교착 상태 또는 교착 상태 유사 구조가 발생될 수 있음을 설명하는 것으로 이해할 수 있다. 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 워드에 대해 역 연산을 수행하는 단계는, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 모든 코드 워드에 대해 역 연산을 수행하는 단계일 수 있고, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 부분 코드 워드에 대해 역 연산을 수행하는 단계일 수 있음으로써, 교착 상태 또는 교착 상태 유사 구조를 파괴한다. 예를 들어, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 워드에 대해 역 연산을 수행하는 단계는, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 中디코딩 실패된 앞 t1+1행 앞 t2+l열 코드 요소에 대해 역 연산을 수행하는 단계일 수 있는데, 즉 코드 요소를 1에서 0으로 개변시키고, 0에서 1로 개변시킨다.
이로써, 상기 제1 반복 횟수에 대응되는 마지막 회 행 반복 디코딩 시 디코딩 실패된 행 수 및 마지막 회 열 반복 디코딩 시 디코딩 실패된 열 수가 대응되는 개수 임계값보다 각각 클 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 워드에 대해 역 연산을 수행함으로써, 교착 상태 또는 교착 상태 유사 구조를 더 정확하게 파괴하여 디코딩의 정확도를 향상시킨다.
하나의 선택 가능한 실시예에서, 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계는, 상기 디코딩 식별자 매트릭스에 따라 디코딩 실패된 코드 요소의 개수를 획득하는 단계; 및 상기 개수와 설정된 제3 개수 임계값 사이의 관계에 따라, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 요소에 대해 역 연산을 수행하는 단계를 포함한다.
여기서, 상기 디코딩 식별자 매트릭스에 각각의 코드 요소에 대응되는 디코딩 결과를 기록하였으므로, 상기 디코딩 식별자 매트릭스에 따라 디코딩 실패된 코드 요소의 개수를 획득할 수 있다. 상기 제3 개수 임계값은 실제 상황에 따라 설정될 수 있는데, 예를 들어, 10개 또는 16개 등으로 설정될 수 있다. 상기 개수와 설정된 제3 개수 임계값 사이의 관계에 따라, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 요소에 대해 역 연산을 수행하는 단계는, 상기 개수가 설정된 제3 개수 임계값보다 클 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 부분 코드 요소에 대해 역 연산을 수행하는 단계; 상기 개수가 설정된 제3 개수 임계값보다 작거나 같을 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 모든 코드 요소에 대해 역 연산을 수행하는 단계일 수 있다. 예를 들어, 상기 디코딩 식별자 매트릭스 중 0의 개수, 즉 디코딩 실패된 코드 요소의 개수를 획득하고 또한 상기 디코딩 식별자 매트릭스 중 0의 개수가 설정된 제3 개수 임계값보다 큰 것으로 결정할 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 부분 코드 요소에 대해 역 연산을 수행하는 단계는, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 앞 (t1+1)×(t2+1)개의 코드 요소에 대해 역 연산을 수행하는 단계일 수 있다. 상기 디코딩 실패된 코드 요소의 개수가 설정된 제3 개수 임계값보다 큰 것으로 결정할 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 교착 상태 또는 교착 상태 유사 구조가 발생될 수 있음을 설명하는 것으로 이해할 수 있다.
이로써, 상기 디코딩 식별자 매트릭스에 따라 디코딩 실패된 코드 요소의 개수를 획득하고, 상기 개수와 설정된 제3 개수 임계값 사이의 관계에 따라, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 요소에 대해 역 연산을 수행함으로써, 교착 상태 또는 교착 상태 유사 구조를 더 정확하게 파괴하여 디코딩의 정확도를 향상시킨다.
하나의 선택 가능한 실시예에서, 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계 이후, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 설정된 제2 반복 횟수의 반복 디코딩을 수행하는 단계; 및 제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 타겟 Turbo 곱 코드를 획득하는 단계를 더 포함한다.
상기 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 설정된 제2 반복 횟수의 반복 디코딩을 수행하는 단계는, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 설정된 행과 열 반복 순서로 제1 반복 횟수의 반복 디코딩을 수행하는 단계를 포함함을 이해할 수 있다. 상기 행과 열 반복 순서는 선 행 반복 후 열 반복의 순서일 수 있고, 선 열 반복 후 행 반복의 순서일 수도 있다. 상기 제1 반복 횟수가 짝수일 경우, 상기 수신 코드 워드에 대해 먼저 행 반복 디코딩을 수행하면, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해서도 먼저 행 반복 디코딩을 수행하고; 상기 수신 코드 워드에 대해 먼저 열 반복 디코딩을 수행하면, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해서도 먼저 열 반복 디코딩을 수행한다. 상기 제1 반복 횟수가 홀수 일 경우, 상기 수신 코드 워드에 대해 먼저 행 반복 디코딩을 수행하면, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 먼저 열 반복 디코딩을 수행하고; 상기 수신 코드 워드에 대해 먼저 열 반복 디코딩을 수행하면, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 먼저 행 반복 디코딩을 수행한다. 여기서, 상기 제2 반복 횟수는 실제 상황에 따라 설정될 수 있는데, 예를 들어, 3번 또는 4번 등으로 설정될 수 있다. 일반적으로, 상기 제2 반복 횟수를 상기 제1 반복 횟수보다 작게 설정할 수 있다. 상기 제2 디코딩 규칙은 실제 상황에 따라 설정될 수 있는데, 예를 들어, 상기 제2 디코딩 규칙은 상기 제1 디코딩 판정 규칙 중 부분 규칙일 수 있다.
이로써, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 설정된 제2 반복 횟수의 반복 디코딩을 수행함으로써, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 더 존재할 수 있는 오류 코드 요소에 대해 오류 정정을 수행하여 디코딩의 정확도를 향상시킨다.
하나의 선택 가능한 실시예에서, 상기 제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하는 단계는, 제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하는 단계를 포함하되, 상기 제2 디코딩 규칙은, 상기 코드 타입에 따라 상기 수신 코드 워드가 단축 코드인 것으로 결정하고 또한 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 상기 코드 타입에 따라 상기 수신 코드 워드가 확장 코드인 것으로 결정하고 또한 상기 수신 코드 워드의 원래 검사 비트와 디코딩된 후의 상기 수신 코드 워드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같은 것으로 결정하면, 상기 수신 코드 워드에 대한 디코딩 성공으로 결정하는 규칙 중 적어도 하나를 포함한다.
여기서, 상기 수신 코드 워드는 오류 정정 처리된 후의 상기 Turbo 곱 코드의 모든 코드 워드이다.
이로써, 제2 디코딩 규칙을 통해 수신 코드 워드에 대해 제2 반복 횟수의 반복 디코딩을 수행한 디코딩 결과를 판단하여 디코딩의 정확도를 향상시킨다.
상기 방법을 구현하기 위해, 대응되는 본 발명의 실시예는 Turbo 곱 코드 디코딩 장치를 더 제공하고, 도 2에 도시된 바와 같이, 상기 Turbo 곱 코드 디코딩 장치는, Turbo 곱 코드의 수신 코드 워드를 획득하기 위한 획득 모듈(10); 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하고, 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득하기 위한 사전 반복 디코딩 모듈(20); 및 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하기 위한 교착 상태 정정 모듈(30)을 포함한다.
상술한 내용을 종합하면, 상기 실시예에 의해 제공되는 Turbo 곱 코드 디코딩 장치에서, 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 식별자를 획득하고, 디코딩 식별자를 통해 제1 반복 횟수의 반복 디코딩 중의 식별 코드 요소를 기록할 수 있음으로써, 반복 디코딩을 통해 획득된 디코딩 식별자에 따라 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하여, 상기 Turbo 곱 코드 중의 교착 상태 또는 교착 상태 유사 구조를 파괴할 수 있음으로써, 에러 플로어의 발생을 효과적으로 방지한다.
선택 가능한 일 실시예에서, 상기 획득 모듈(10)은 또한, 상기 Turbo 곱 코드를 구성하는 블록 코드의 코드 타입을 획득하고, 상기 코드 타입은 오류 정정 가능한 최대 코드 요소 수를 포함하며; 상기 사전 반복 디코딩 모듈(20)은 구체적으로, 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하고, 상기 제1 디코딩 규칙은, 상기 코드 타입에 따라 상기 수신 코드 워드가 단축 코드인 것으로 결정하고 또한 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 상기 코드 타입에 따라 상기 수신 코드 워드가 확장 코드인 것으로 결정하고 또한 상기 수신 코드 워드의 원래 검사 비트와 디코딩된 후의 상기 수신 코드 워드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고, 현재 이미 진행된 반복 디코딩 횟수가 설정된 반복 디코딩 횟수 임계값과 같으며 또한 전번 반복 디코딩 과정에서 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 작은 것으로 결정하거나, 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고 또한 상기 현재 이미 진행된 반복 디코딩 횟수가 상기 반복 디코딩 횟수 임계값과 같지 않은 것으로 결정하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙 중 적어도 하나를 포함하며; 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정한다.
이로써, 설정된 제1 디코딩 규칙을 통해 수신 코드 워드에 대해 제1 반복 횟수의 반복 디코딩을 수행한 디코딩 결과를 판단하고, 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정함으로써, 상기 디코딩 식별자에 기반하여 후속의 오류 정정 처리에 참조를 제공하여 오류 정정의 정확도를 향상시킨다.
선택 가능한 일 실시예에서, 상기 사전 반복 디코딩 모듈(20)은 구체적으로, 디코딩 식별자 매트릭스를 초기화하고, 상기 디코딩 식별자 매트릭스와 상기 Turbo 곱 코드의 크기는 같으며; 판단된 결과에 따라 상기 디코딩 식별자 매트릭스 중 대응되는 위치 에서의 상기 수신 코드 워드 중 각각의 코드 요소의 디코딩 식별자를 업데이트한다.
이로써, 반복 과정에서 각각의 코드 요소에 대한 디코딩 결과를 알 수 있음으로써, 분석을 통해 디코딩 과정에서 교착 상태 또는 교착 상태 유사 구조의 발생 여부를 알 수 있으므로, 후속의 오류 정정 처리에 참조를 제공한다.
선택 가능한 일 실시예에서, 상기 제1 디코딩 규칙은, 상기 수신 코드 워드 중의 코드 요소에 대해 오류 정정을 수행하였고 또한 상기 디코딩 식별자 매트릭스에서 상기 코드 요소의 대응되는 디코딩 식별자가 상기 코드 요소를 이미 정확하게 디코딩한 것으로 나타내면, 상기 코드 요소에 대한 디코딩 실패로 결정하는 규칙을 더 포함한다.
이로써, 코드 요소의 과거 디코딩 결과를 통해 코드 요소의 현재 디코딩 결과를 결정함으로써, 디코딩 결과의 정확도를 향상시킨다.
선택 가능한 일 실시예에서, 상기 교착 상태 정정 모듈(30)은 구체적으로, 상기 디코딩 식별자에 따라 상기 제1 반복 횟수에 대응되는 마지막 회 행 반복 디코딩 시 디코딩 실패된 행 수 및 마지막 회 열 반복 디코딩 시 디코딩 실패된 열 수를 획득하고; 상기 행 수가 설정된 제1 개수 임계값보다 크거나 같고 또한 상기 열 수가 설정된 제2 개수 임계값보다 크거나 같은 것으로 결정할 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 워드에 대해 역 연산을 수행한다.
이로써, 상기 제1 반복 횟수에 대응되는 마지막 회 반복 디코딩 시 디코딩 실패된 행 수 및 열 수가 대응되는 개수 임계값보다 각각 클 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 워드에 대해 역 연산을 수행함으로써, 교착 상태 또는 교착 상태 유사 구조를 더 정확하게 파괴하여 디코딩의 정확도를 향상시킨다.
선택 가능한 일 실시예에서, 상기 교착 상태 정정 모듈(30)은 구체적으로, 상기 디코딩 식별자 매트릭스에 따라 디코딩 실패된 코드 요소의 개수를 획득하고; 상기 개수와 설정된 제3 개수 임계값 사이의 관계에 따라, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 요소에 대해 역 연산을 수행한다.
이로써, 상기 디코딩 식별자 매트릭스에 따라 디코딩 실패된 코드 요소의 개수를 획득하고, 상기 개수와 설정된 제3 개수 임계값 사이의 관계에 따라, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 요소에 대해 역 연산을 수행함으로써, 교착 상태 또는 교착 상태 유사 구조를 더 정확하게 파괴하여 디코딩의 정확도를 향상시킨다.
선택 가능한 일 실시예에서, 상기 Turbo 곱 코드 디코딩 장치는, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 설정된 제2 반복 횟수의 반복 디코딩을 수행하고, 제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 타겟 Turbo 곱 코드를 획득하기 위한 사후 반복 디코딩 모듈(40)을 더 포함한다.
이로써, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 설정된 제2 반복 횟수의 반복 디코딩을 수행함으로써, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 더 존재할 수 있는 오류 코드 요소에 대해 오류 정정을 수행하여 디코딩의 정확도를 향상시킨다.
선택 가능한 일 실시예에서, 상기 사후 반복 디코딩 모듈(40)은 구체적으로, 제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하고, 상기 제2 디코딩 규칙은, 상기 코드 타입에 따라 상기 수신 코드 워드가 단축 코드인 것으로 결정하고 또한 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 상기 코드 타입에 따라 상기 수신 코드 워드가 확장 코드인 것으로 결정하고 또한 상기 수신 코드 워드의 원래 검사 비트와 디코딩된 후의 상기 수신 코드 워드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같은 것으로 결정하면, 상기 수신 코드 워드에 대한 디코딩 성공으로 결정하는 규칙 중 적어도 하나를 포함한다.
이로써, 제2 디코딩 규칙을 통해 수신 코드 워드에 대해 제2 반복 횟수의 반복 디코딩을 수행한 디코딩 결과를 판단하여 디코딩의 정확도를 향상시킨다.
선택 가능한 일 실시예에서, 상기 디코더는, 상기 타겟 Turbo 곱 코드를 출력하기 위한 디코딩 결과 출력 모듈(50)을 더 포함한다.
설명해야 할 것은, 상기 실시예에 의해 제공되는 Turbo 곱 코드 디코딩 장치가 Turbo 곱 코드 디코딩 방법을 구현할 경우, 상기 각 프로그램 모듈의 구획만 예로 들어 설명하되, 실제 응용에서, 필요에 따라 상기 처리는 상이한 프로그램 모듈에 할당되어 완성될 수 있는데, 즉 Turbo 곱 코드 디코딩 장치의 내부 구조를 상이한 프로그램 모듈로 구획하여 위에서 설명된 모든 또는 부분 처리를 완성한다. 이 밖에, 상기 실시예에 의해 제공되는 Turbo 곱 코드 디코딩 장치 및 디코더는 대응되는 Turbo 곱 코드 디코딩 방법 실시예와 동일한 구상에 속하며, 이의 구체적인 구현 과정은 방법 실시예를 참조할 수 있으므로, 여기서 더 이상 설명하지 않는다.
다른 실시예에서, 본 발명의 실시예는 디코더를 더 제공하고, 도 3에 도시된 바와 같이, 상기 디코더는, 프로세서(310) 및 프로세서(310)에서 실행 가능한 컴퓨터 프로그램을 저장하기 위한 메모리(311)를 포함하며; 여기서, 도 3에 도시된 프로세서(310)는 프로세서(310)의 개수가 하나임을 의미하는 것이 아니라 다른 소자에 대한 프로세서(310)의 위치 관계를 의미할 뿐이며, 실제 응용에서, 프로세서(310)의 개수는 하나 또는 복수 개일 수 있고; 마찬가지로, 도 3에 도시된 메모리(311)도 동일한 의미를 가지는데, 즉 다른 소자에 대한 메모리(311)의 위치 관계를 의미할 뿐이고, 실제 응용에서, 메모리(311)의 개수는 하나 또는 복수 개일 수 있다.
상기 프로세서(310)는 상기 컴퓨터 프로그램을 실행할 경우, Turbo 곱 코드의 수신 코드 워드를 획득하고, 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하는 단계; 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득하는 단계; 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계를 수행하기 위한 것이다.
선택 가능한 일 실시예에서, 상기 프로세서(310)는 또한, 상기 컴퓨터 프로그램을 실행할 경우, 상기 Turbo 곱 코드를 구성하는 블록 코드의 코드 타입을 획득하는 단계; 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하는 단계; 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정하는 단계를 수행하기 위한 것이고, 상기 코드 타입은 오류 정정 가능한 최대 코드 요소 수를 포함하며; 상기 제1 디코딩 규칙은, 상기 코드 타입에 따라 상기 수신 코드 워드가 단축 코드인 것으로 결정하고 또한 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 상기 코드 타입에 따라 상기 수신 코드 워드가 확장 코드인 것으로 결정하고 또한 상기 수신 코드 워드의 원래 검사 비트와 디코딩된 후의 상기 수신 코드 워드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고, 현재 이미 진행된 반복 디코딩 횟수가 설정된 반복 디코딩 횟수 임계값과 같으며 또한 전번 반복 디코딩 과정에서 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 작은 것으로 결정하거나, 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고 또한 상기 현재 이미 진행된 반복 디코딩 횟수가 상기 반복 디코딩 횟수 임계값과 같지 않은 것으로 결정하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙 중 적어도 하나를 포함한다.
선택 가능한 일 실시예에서, 상기 프로세서(310)는 또한, 상기 컴퓨터 프로그램을 실행할 경우, 디코딩 식별자 매트릭스를 초기화하는 단계; 판단된 결과에 따라 상기 디코딩 식별자 매트릭스 중 대응되는 위치 에서의 상기 수신 코드 워드 중 각각의 코드 요소의 디코딩 식별자를 업데이트하는 단계를 수행하기 위한 것이고, 상기 디코딩 식별자 매트릭스와 상기 Turbo 곱 코드의 크기는 같다.
선택 가능한 일 실시예에서, 상기 프로세서(310)는 또한, 상기 컴퓨터 프로그램을 실행할 경우, 상기 디코딩 식별자에 따라 상기 제1 반복 횟수에 대응되는 마지막 회 행 반복 디코딩 시 디코딩 실패된 행 수 및 마지막 회 열 반복 디코딩 시 디코딩 실패된 열 수를 획득하는 단계; 상기 행 수가 설정된 제1 개수 임계값보다 크거나 같고 또한 상기 열 수가 설정된 제2 개수 임계값보다 크거나 같은 것으로 결정할 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 워드에 대해 역 연산을 수행하는 단계를 수행하기 위한 것이다.
선택 가능한 일 실시예에서, 상기 프로세서(310)는 또한, 상기 컴퓨터 프로그램을 실행할 경우, 상기 디코딩 식별자 매트릭스에 따라 디코딩 실패된 코드 요소의 개수를 획득하는 단계; 상기 개수와 설정된 제3 개수 임계값 사이의 관계에 따라, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 요소에 대해 역 연산을 수행하는 단계를 수행하기 위한 것이다.
선택 가능한 일 실시예에서, 상기 프로세서(310)는 또한, 상기 컴퓨터 프로그램을 실행할 경우, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 설정된 제2 반복 횟수의 반복 디코딩을 수행하는 단계; 설정된 제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 타겟 Turbo 곱 코드를 획득하는 단계를 수행하기 위한 것이다.
선택 가능한 일 실시예에서, 상기 프로세서(310)는 또한, 상기 컴퓨터 프로그램을 실행할 경우, 제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하는 단계를 수행하기 위한 것이고, 상기 제2 디코딩 규칙은, 상기 코드 타입에 따라 상기 수신 코드 워드가 단축 코드인 것으로 결정하고 또한 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 상기 코드 타입에 따라 상기 수신 코드 워드가 확장 코드인 것으로 결정하고 또한 상기 수신 코드 워드의 원래 검사 비트와 디코딩된 후의 상기 수신 코드 워드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같은 것으로 결정하면, 상기 수신 코드 워드에 대한 디코딩 성공으로 결정하는 규칙 중 적어도 하나를 포함한다.
상기 디코더는 적어도 하나의 네트워크 인터페이스(312)를 더 포함한다. 상기 디코더의 각 컴포넌트는 버스 시스템(313)을 통해 커플링된다. 버스 시스템(313)은 이러한 컴포넌트들 사이의 통신 연결을 구현하기 위한 것임을 이해할 수 있다. 버스 시스템(313)은 데이터 버스를 포함하는 외에, 전원 버스, 제어 버스 및 상태 신호 버스를 더 포함한다. 하지만, 명확하게 설명하기 위하여, 도 3에서 각각의 버스를 모두 버스 시스템(313)으로 표시한다.
여기서, 메모리(311)는 휘발성 메모리 또는 비휘발성 메모리일 수 있거나, 또는 휘발성 메모리 및 비휘발성 메모리를 포함할 수 있다. 여기서, 비휘발성 메모리는 판독 전용 메모리(ROM, Read Only Memory), 프로그램 가능 판독 전용 메모리(PROM, Programmable Read-Only Memory), 소거 및 프로그램 가능 판독 전용 메모리(EPROM, Erasable Programmable Read-Only Memory), 전기적 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM, Electrically Erasable Programmable Read-Only Memory), 강유전체 랜덤 액세스 메모리 장치(FRAM, ferromagnetic random access memory), 플래시 메모리(Flash Memory), 자기 표면 메모리, 광 디스크, 또는 컴팩트 디스크 판독 전용 메모리(CD-ROM, Compact Disc Read-Only Memory)일 수 있고; 자기 표면 메모리는 자기 디스크 메모리 또는 자기 테이프 메모리일 수 있다. 휘발성 메모리는 외부 캐시로서 사용되는 랜덤 액세스 메모리(RAM, Random Access Memory)일 수 있다. 한정적이 아닌 예시적으로 설명하면, 예컨대 정적 랜덤 액세스 메모리(SRAM, Static Random Access Memory), 동기식 정적 랜덤 엑세스 메모리(SSRAM, Synchronous Static Random Access Memory), 동적 랜덤 액세스 메모리(DRAM, Dynamic Random Access Memory), 동기식 동적 랜덤 액세스 메모리(SDRAM, Synchronous Dynamic Random Access Memory), 2배속 동기식 동적 랜덤 액세스 메모리(DDRSDRAM, Double Data Rate Synchronous Dynamic Random Access Memory), 인핸스먼트형 동기식 동적 랜덤 액세스 메모리(ESDRAM, Enhanced Synchronous Dynamic Random Access Memory), 동기식 접속 동적 랜덤 액세스 메모리(SLDRAM, SyncLink Dynamic Random Access Memory), 다이렉트 램버스 랜덤 액세스 메모리(DRRAM, Direct Rambus Random Access Memory)와 같은 많은 형태의 RAM을 사용할 수 있다. 본 발명의 실시예에서 설명된 메모리(311)는 이들 및 임의의 다른 적합한 타입의 메모리를 포함하지만, 이에 한정되지 않는다.
본 발명의 실시예에 따른 메모리(311)는 상기 디코더의 동작을 지원하기 위해 다양한 타입의 데이터를 저장하기 위한 것이다. 이러한 데이터의 예시는 운영 체제 및 응용 프로그램과 같은 상기 디코더에서 작동 가능한 임의의 컴퓨터 프로그램; 연락인 데이터; 전화번호부 데이터; 메시지; 이미지; 비디오 등을 포함한다. 여기서, 운영 체제는 기초 서비스를 구현하고 하드웨어 기반의 태스크를 처리하기 위한 예컨대 프레임워크 층, 코어 라이브러리 층, 드라이버 층 등 다양한 시스템 프로그램을 포함한다. 응용 프로그램은 다양한 응용 서비스를 구현하기 위한 예컨대 미디어 플레이어(MediaPlayer), 브라우저(Browser) 등 다양한 응용 프로그램을 포함할 수 있다. 여기서, 본 발명의 실시예 방법을 구현하기 위한 프로그램은 응용 프로그램에 포함될 수 있다.
본 실시예는 컴퓨터 기록 매체를 더 제공하되, 상기 컴퓨터 기록 매체에는 컴퓨터 프로그램이 저장되고, 컴퓨터 기록 매체는 강유전체 랜덤 액세스 메모리 장치(FRAM, ferromagnetic random access memory), 판독 전용 메모리(ROM, Read Only Memory), 프로그램 가능 판독 전용 메모리(PROM, Programmable Read-Only Memory), 소거 및 프로그램 가능 판독 전용 메모리(EPROM, Erasable Programmable Read-Only Memory), 전기적 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM, Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(Flash Memory), 자기 표면 메모리, 광 디스크, 또는 컴팩트 디스크 판독 전용 메모리(CD-ROM, Compact Disc Read-Only Memory) 등 메모리일 수 있으며; 상기 메모리 중 하나 또는 임의의 조합을 포함하는 예컨대 휴대폰, 컴퓨터, 태블릿 기기, 개인 정보 단말기 등 다양한 기기일 수도 있다.
컴퓨터 기록 매체에 있어서, 상기 컴퓨터 기록 매체에는 컴퓨터 프로그램이 저장되고, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, Turbo 곱 코드의 수신 코드 워드를 획득하고, 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하는 단계; 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득하는 단계; 상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계를 수행한다.
선택 가능한 일 실시예에서, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 상기 Turbo 곱 코드를 구성하는 블록 코드의 코드 타입을 획득하는 단계; 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하는 단계; 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정하는 단계를 더 수행하고, 상기 코드 타입은 오류 정정 가능한 최대 코드 요소 수를 포함하며; 상기 제1 디코딩 규칙은, 상기 코드 타입에 따라 상기 수신 코드 워드가 단축 코드인 것으로 결정하고 또한 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 상기 코드 타입에 따라 상기 수신 코드 워드가 확장 코드인 것으로 결정하고 또한 상기 수신 코드 워드의 원래 검사 비트와 디코딩된 후의 상기 수신 코드 워드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고, 현재 이미 진행된 반복 디코딩 횟수가 설정된 반복 디코딩 횟수 임계값과 같으며 또한 전번 반복 디코딩 과정에서 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 작은 것으로 결정하거나, 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고 또한 상기 현재 이미 진행된 반복 디코딩 횟수가 상기 반복 디코딩 횟수 임계값과 같지 않은 것으로 결정하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙 중 적어도 하나를 포함한다.
선택 가능한 일 실시예에서, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 디코딩 식별자 매트릭스를 초기화하는 단계; 판단된 결과에 따라 상기 디코딩 식별자 매트릭스 중 대응되는 위치 에서의 상기 수신 코드 워드 중 각각의 코드 요소의 디코딩 식별자를 업데이트하는 단계를 더 수행하고, 상기 디코딩 식별자 매트릭스와 상기 Turbo 곱 코드의 크기는 같다.
선택 가능한 일 실시예에서, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 상기 디코딩 식별자에 따라 상기 제1 반복 횟수에 대응되는 마지막 회 행 반복 디코딩 시 디코딩 실패된 행 수 및 마지막 회 열 반복 디코딩 시 디코딩 실패된 열 수를 획득하는 단계; 상기 행 수가 설정된 제1 개수 임계값보다 크거나 같고 또한 상기 열 수가 설정된 제2 개수 임계값보다 크거나 같은 것으로 결정할 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 워드에 대해 역 연산을 수행하는 단계를 더 수행한다.
선택 가능한 일 실시예에서, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 상기 디코딩 식별자 매트릭스에 따라 디코딩 실패된 코드 요소의 개수를 획득하는 단계; 상기 개수와 설정된 제3 개수 임계값 사이의 관계에 따라, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 요소에 대해 역 연산을 수행하는 단계를 더 수행한다.
선택 가능한 일 실시예에서, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 설정된 제2 반복 횟수의 반복 디코딩을 수행하는 단계; 제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 타겟 Turbo 곱 코드를 획득하는 단계를 더 수행한다.
선택 가능한 일 실시예에서, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하는 단계를 더 수행하고, 상기 제2 디코딩 규칙은, 상기 코드 타입에 따라 상기 수신 코드 워드가 단축 코드인 것으로 결정하고 또한 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 상기 코드 타입에 따라 상기 수신 코드 워드가 확장 코드인 것으로 결정하고 또한 상기 수신 코드 워드의 원래 검사 비트와 디코딩된 후의 상기 수신 코드 워드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙; 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같은 것으로 결정하면, 상기 수신 코드 워드에 대한 디코딩 성공으로 결정하는 규칙 중 적어도 하나를 포함한다.
아래 구체적인 예시를 통해 본 발명의 실시예를 더 상세하게 설명하고, 도 4를 참조하면, 본 발명의 선택 가능한 일 구체적 실시예에 의해 제공되는 Turbo 곱 코드 디코딩 방법은 하기와 같은 단계를 포함한다. 단계 S201에서, Turbo 곱 코드의 수신 코드 워드 및 코드 타입 및 반복 파라미터를 획득하고; 여기서, Turbo 곱 코드는 두 그룹 또는 복수 그룹의 블록 코드의 코드 워드를 하나의 2차원 또는 다차원 매트릭스에 배열함으로써, 서브코드가 최소 거리 특성을 가지는 곱 코드를 구축한다. Turbo 곱 코드의 코드 타입은 (128, 120)×(128, 120), (128, 127)×(128, 127), (64, 57)×(64, 57), (32, 26)×(16, 15)×(8, 7) 등을 포함한다. 송신단이 정보를 송신할 경우, Turbo 곱 코드는 행에 따라 한 비트씩 직렬 전송되고, 수신단은 수신된 직렬 시퀀스를 2차원 매트릭스 형식으로 전환시키며, 이어서 매트릭스 구조에 의존하여 디코딩을 수행한다. Turbo 곱 코드 디코딩의 복잡도 및 디코딩 지연은 서브코드의 코드 타입에 의해 결정되고, 서브코드의 구조 복잡도 및 디코딩 복잡도의 증가에 따라 선형 증가된다. 수신 코드 워드에 따라 상기 수신 코드 워드의 코드 타입을 판별할 수 없으므로, 후속의 디코딩을 위해 수신 코드 워드 r_in 및 코드 타입을 동시에 획득하고 사전 반복 디코딩 횟수 및 사후 반복 디코딩 횟수를 설정해야 한다. 본 실시예에서, Turbo 곱 코드 행렬 반복 디코딩에서 사용된 코드 타입은 (n1, k1, t1) 및 (n2, k2, t2)이고, 여기서, ni는 코드 길이이며, ki는 정보 길이이고, ti는 오류 정정 능력이고, i는 집합{1, 2}에 속한다. 상기 반복 파라미터는 사전 반복 디코딩 횟수 m1 및 사후 반복 디코딩 횟수 m2를 포함한다.
단계 S202에서, 반복 파라미터에 따라 수신 코드 워드에 대해 사전 반복 디코딩을 수행하고, 파라미터를 기록하며; 디코딩 식별자 매트릭스가 존재하면, 먼저 디코딩 식별자 매트릭스를 초기화하는데, 즉 Turbo 곱 코드의 코드 블록 크기에 따라 각각의 비트 데이터에 디코딩 식별자를 저장하고, 상기 디코딩 식별자 매트릭스의 크기는 Turbo 곱 코드의 크기이며, 초기값을 모두 0으로 지정한다.
수신 코드 워드 r_in에 대해 사전 반복 횟수가 m1인 사전 반복 디코딩을 수행하고 또한 사전 반복 디코딩이 행 반복 디코딩과 열 반복 디코딩의 교착 디코딩일 경우, 판단 조건은 하기와 같은 조건을 포함한다. 1) 코드 워드의 코드 타입이 단축 코드이면, 디코딩 후 상기 코드 워드의 보충 위치가 모두 0인지 여부를 판단하되, 모두 0이 아니면, 디코딩 실패를 설명한다.
2) 코드 워드의 코드 타입이 확장 코드이면, 디코딩 후 상기 코드 워드에 대해 배타적 논리합 연산을 수행하여 얻은 검사 비트와 디코딩 전 상기 코드 워드의 원래 검사 비트가 동일한지 여부를 판단하되, 상이하면, 디코딩 실패를 설명한다.
3) 디코딩 식별자 매트릭스가 존재하고 또한 어느 하나의 코드 워드를 디코딩할 경우, 상기 디코딩 식별자 매트릭스에서 오류 정정된 코드 요소의 디코딩 식별자가 1이면, 디코딩 실패로 인정한다.
4) 어느 하나의 코드 워드를 디코딩할 경우, 오류 정정된 코드 요소의 개수가 상기 코드 워드 디코딩의 오류 정정 능력 극한이면, 디코딩 실패로 인정한다. 하지만, 현재 이미 진행된 반복 디코딩 횟수가 설정된 반복 디코딩 횟수 임계값과 같고 또한 현재 반복 디코딩의 전번 반복 디코딩 과정에서의 디코딩 오류 행 수 또는 열 수가 비교적 크면, 현재 반복 디코딩에서 오류 정정된 코드 요소의 개수가 코드 워드 디코딩의 오류 정정 능력 극한인 디코딩 상황을 디코딩 성공으로 인정한다.
이로써, 사전 반복 디코딩을 통해 오류 코드 요소의 개수를 감소시킬 수 있다.
단계 S203에서, 기록된 파라미터를 이용하여 교착 상태 구조 또는 교착 상태 유사 구조에 대해 역 연산을 수행하고; 디코딩 식별자 매트릭스가 존재하면, 디코딩 식별자 매트릭스 중 0의 개수를 판단하되, 디코딩 식별자 매트릭스 중 0의 개수가 설정된 임계값 num1보다 크면, 디코딩 오류인 앞 (t1+1)×(t2+1)개의 코드 요소에 대해 역 연산을 수행하며; 디코딩 식별자 매트릭스 중 0의 개수가 임계값 num1보다 작으면, 디코딩 식별자 매트릭스 중 0의 위치에 대응되는 데이터, 즉 디코딩 오류인 코드 요소 모두에 대해 역 연산을 수행한다.
디코딩 식별자 매트릭스가 존재하지 않으면, 사전 반복 디코딩의 마지막 회 행 반복 디코딩 및 마지막 회 열 반복 디코딩 시 디코딩 오류에 대응되는 행 번호 및 열 번호를 각각 기록하고, 디코딩 오류인 행 번호 수가 t1+1보다 크거나 같고 또한 디코딩 오류인 열 번호 수가 t2+1보다 크거나 같으면, 오류인 코드 워드 중 앞 t1+1행 t2+l열 데이터에 대해 역 연산을 수행하거나, 부분 데이터를 선택하여 역 연산을 수행함으로써, 교착 상태 구조를 파괴한다.
단계 S204에서, 역 연산 후의 수신 코드 워드에 대해 사후 반복 디코딩을 수행하고; 역 연산 후의 수신 코드 워드에 대해 사후 반복 횟수가 m2인 사후 반복 디코딩을 수행할 경우, 판단 조건은 하기와 같은 조건을 포함한다.
5) 코드 워드의 코드 타입이 단축 코드이면, 디코딩 후 상기 코드 워드의 보충 위치가 모두 0인지 여부를 판단하되, 모두 0이 아니면, 디코딩 실패를 설명한다.
6) 코드 워드의 코드 타입이 확장 코드이면, 디코딩 후 상기 코드 워드에 대해 배타적 논리합 연산을 수행하여 얻은 검사 비트와 디코딩 전 상기 코드 워드의 원래 검사 비트가 동일한지 여부를 판단하되, 상이하면, 디코딩 실패를 설명한다.
7) 어느 하나의 코드 워드를 디코딩할 경우, 오류 정정된 코드 요소의 개수가 상기 코드 워드 디코딩의 오류 정정 능력 극한이면, 디코딩 성공으로 인정한다. 마지막으로, 사후 반복 디코딩을 완성한 후 업데이트된 후의 r_in을 출력한다.
이로써, 사후 반복 디코딩을 통해, 사전 반복 디코딩 후 존재할 수 있는 오류 코드 요소에 대해 오류 정정을 수행함으로써, 디코딩의 부족한 부분을 제거한다.
일 예시적 실시예에서, 도 5를 참조하면, 본 실시예가 기초하는 응용 장면은 디코딩 식별자 매트릭스가 존재하는 것이다. 상기 반복 파라미터에 따라 수신 코드 워드에 대해 사전 반복 디코딩을 수행하고, 파라미터를 기록하는 단계는 하기와 같은 단계 S2021 ~ 단계 S2028을 포함하고, 단계 S2021에서, 수신 코드 워드를 획득하고, 단축 코드인지 여부 및 보충 위치가 0인지 여부를 판단하되, “예”이면, 단계 S2022를 수행하고, “아니오”이면, 단계 S2027을 수행하며; 여기서, 사전 반복 디코딩의 순서에 따라 Turbo 곱 코드로부터 순차적으로 수신 코드 워드를 획득하고, 상기 코드 워드의 코드 타입이 단축 코드인지 여부를 판단하되, 상기 코드 워드의 코드 타입이 단축 코드이면, 디코딩 후 상기 코드 워드의 보충 위치가 모두 0인지 여부를 판단하되, 모두 0이 아니면, 디코딩 실패를 설명한다.
단계 S2022에서, 확장 코드인지 여부 및 검사 비트가 원래 검사 비트와 동일한지 여부를 판단하되, “예”이면, 단계 S2023을 수행하고, “아니오”이면, 단계 S2027을 수행하며; 여기서, 상기 코드 워드의 코드 타입이 확장 코드인지 여부를 판단하되, 상기 코드 워드의 코드 타입이 확장 코드이면, 디코딩 후 상기 코드 워드에 대해 배타적 논리합 연산을 수행하여 얻은 검사 비트와 디코딩 전 상기 코드 워드의 원래 검사 비트가 동일한지 여부를 판단하되, 상이하면, 디코딩 실패를 설명한다.
단계 S2023에서, 오류 정정 코드 요소의 개수가 오류 정정 가능한 최대 코드 요소 수와 같은지 여부를 판단하되, “예”이면, 단계 S2024를 수행하고, “아니오”이면, 단계 S2025를 수행하며; 구체적으로, 상기 코드 워드를 디코딩한 후, 오류 정정 코드 요소의 개수가 상기 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같은지 여부를 판단하되, 같으면, 단계 S2024를 수행하고, 같지 않으면, 단계 S2025를 수행한다.
단계 S2024에서, 현재 반복 횟수가 설정된 횟수 임계값인지 여부 및 전번 반복 디코딩 중 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 큰지 여부를 판단하되, “예”이면, 단계 S2025를 수행하고, “아니오”이면, 단계 S2027을 수행하며; 여기서, 상기 횟수 임계값은 실제 상황에 따라 설정될 수 있고, 매 번 반복 디코딩이 시작될 때마다 대응되는 반복 횟수를 기록한다. 상기 임계값은 실제 상황에 따라 설정될 수 있는데, 예를 들어, 5개 또는 6개 등으로 설정될 수 있다.
단계 S2025에서, 오류 정정 코드 요소의 개수가 오류 정정 가능한 최대 코드 요소 수와 같은지 여부를 판단하되, “예”이면, 단계 S2025를 수행하고, “아니오”이면, 단계 S2027을 수행하고; 구체적으로, 상기 코드 워드를 디코딩한 후, 오류 정정 코드 요소의 개수가 상기 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같은지 여부를 판단하되, 같으면, 단계S2025를 수행하고, 같지 않으면, 단계 S2027을 수행한다.
단계 S2025에서, 오류 정정 위치의 원래 디코딩 식별자가 1인지 여부를 판단하되, “아니오”이면, 단계 S2026을 수행하고, “예”이면, 단계 S2027을 수행하며; 여기서, 상기 코드 워드를 디코딩한 후, 상기 코드 워드 중 현재 오류 정정된 코드 요소, 즉 오류 정정 위치가 상기 디코딩 식별자 매트릭스에 위치한 디코딩 식별자가 1이면, 상기 코드 워드에 대한 디코딩 실패로 인정한다.
단계 S2026에서, 수신된 Turbo 곱 코드를 업데이트하고; 구체적으로, 디코딩이 정확한 행 번호 또는 열 번호에 대응되는 디코딩 결과를 r_in에 대응되는 값으로 업데이트함으로써, 수신된 Turbo 곱 코드에 대한 업데이트를 완성한다. 사전 반복 디코딩의 마지막 회 행 반복 디코딩 시 디코딩이 정확한 행 번호 K_id1을 기록하고 마지막 회 열 반복 디코딩 시 디코딩이 정확한 열 번호 K_id2를 기록한다.
단계 S2027에서, 디코딩 식별자 매트릭스를 업데이트하고; 구체적으로, 디코딩 결과에 따라 디코딩 식별자 매트릭스를 업데이트한다. 코드 워드에 대한 디코딩 성공이면, 디코딩 식별자 매트릭스 중 상기 코드 워드가 위치한 행 또는 열을 모두 1로 설정하고; 코드 워드에 대한 디코딩 실패이면, 디코딩 식별자 매트릭스 중 상기 코드 워드가 위치한 행 또는 열을 모두 0으로 설정한다.
단계 S2028에서, 현재 반복 디코딩 횟수가 사전 반복 디코딩 횟수보다 작은지 여부를 판단하되, “예”이면, 단계 S2021로 돌아가고, “아니오”이면, 종료한다.
설명해야 할 것은, 디코딩 식별자 매트릭스가 존재할 경우, 하기와 같은 조건에 따라 교착 상태 구조에 대해 역 연산을 수행할 수 있다.
1) K_idl이 전체 행 번호이거나 K_id2가 전체 열 번호이면, 디코딩의 결과를 r_in으로 업데이트하고, 사후 반복 디코딩을 수행한다.
2) 디코딩 식별자 매트릭스 중 0의 개수를 판단하되, 상기 개수가 설정된 임계값 num1보다 크면, 상기 디코딩 식별자 매트릭스 중 앞 (t1+1)×(t2+l)개의 0에 대응되는 위치의 r_in에 대해 비트에 따라 역 연산을 수행하고, 아니면, 모든 0에 대응되는 위치의 r_in에 대해 역 연산을 수행한다.
본 실시예에서, 디코딩 식별자 매트릭스를 증가하여 디코딩 성공 여부를 판단함으로써, 코드 워드가 원래 정확하게 디코딩되었지만 다른 코드 워드의 영향으로 인해 반복적으로 변화되는 문제를 해결한다.
일 예시적 실시예에서, 도 6을 참조하면, 본 실시예가 기초하는 응용 장면은 디코딩 식별자 매트릭스가 존재하지 않는 것이다. 상기 반복 파라미터에 따라 수신 코드 워드에 대해 사전 반복 디코딩을 수행하고, 파라미터를 기록하는 단계는 하기와 같은 단계 S3021 ~ 단계 S3026을 포함하고, 단계 S3021에서, 수신 코드 워드를 획득하고, 단축 코드인지 여부 및 보충 위치가 0인지 여부를 판단하되, “예”이면, 단계 S3022를 수행하고, “아니오”이면, 단계 S3026을 수행하며; 여기서, 사전 반복 디코딩의 순서에 따라 Turbo 곱 코드로부터 순차적으로 수신 코드 워드를 획득하고, 상기 코드 워드의 코드 타입이 단축 코드인지 여부를 판단하되, 상기 코드 워드의 코드 타입이 단축 코드이면, 디코딩 후 상기 코드 워드의 보충 위치가 모두 0인지 여부를 판단하되, 모두 0이 아니면, 디코딩 실패를 설명한다.
단계 S3022에서, 확장 코드인지 여부 및 검사 비트가 원래 검사 비트와 동일한지 여부를 판단하되, “예”이면, 단계 S3023을 수행하고, “아니오”이면, 단계 S3026을 수행하며; 여기서, 상기 코드 워드의 코드 타입이 확장 코드인지 여부를 판단하되, 상기 코드 워드의 코드 타입이 확장 코드이면, 디코딩 후 상기 코드 워드에 대해 배타적 논리합 연산을 수행하여 얻은 검사 비트와 디코딩 전 상기 코드 워드의 원래 검사 비트가 동일한지 여부를 판단하되, 상이하면, 디코딩 실패를 설명한다.
단계 S3023에서, 오류 정정 코드 요소의 개수가 오류 정정 가능한 최대 코드 요소 수와 같은지 여부를 판단하되, “예”이면, 단계 S3024를 수행하고, “아니오”이면, 단계 S3025를 수행하며; 구체적으로, 상기 코드 워드를 디코딩한 후, 오류 정정 코드 요소의 개수가 상기 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같은지 여부를 판단하되, 같으면, 단계 S3024를 수행하고, 같지 않으면, 단계 S3025를 수행한다.
단계 S3024에서, 현재 반복 횟수가 설정된 횟수 임계값인지 여부 및 전번 반복 디코딩 중 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 큰지 여부를 판단하되, “예”이면, 단계 S3025를 수행하고, “아니오”이면, 단계 S3026을 수행하며; 여기서, 상기 횟수 임계값은 실제 상황에 따라 설정될 수 있고, 매 번 반복 디코딩이 시작될 때마다 대응되는 반복 횟수를 기록한다. 상기 임계값은 실제 상황에 따라 설정될 수 있는데, 예를 들어, 5개 또는 6개 등으로 설정될 수 있다.
단계 S3025에서, 수신된 Turbo 곱 코드를 업데이트하고; 구체적으로, 디코딩이 정확한 행 번호 또는 열 번호에 대응되는 디코딩 결과를 r_in에 대응되는 값으로 업데이트함으로써, 수신된 Turbo 곱 코드에 대한 업데이트를 완성한다. 사전 반복 디코딩의 마지막 회 행 반복 디코딩 시 디코딩이 정확한 행 번호 K_id1을 기록하고 마지막 회 열 반복 디코딩 시 디코딩이 정확한 열 번호 K_id2를 기록한다.
단계 S3026에서, 현재 반복 디코딩 횟수가 사전 반복 디코딩 횟수보다 작은지 여부를 판단하되, “예”이면, 단계 S3021로 돌아가고, “아니오”이면, 종료한다.
본 실시예에서 디코딩 식별자 매트릭스를 생략하였고, 오류 정정 극한의 상황을 교착 상태 구조 또는 교착 상태 유사 구조를 정정하기 전에 변하지 않도록 유지함으로써, 더 많은 오류가 증가되는 것을 방지한다. 오류가 비교적 많으면, 디코딩이 더욱 유연해지도록 오류 정정 극한의 상황을 디코딩 성공으로 간주한다.
일 예시적 실시예에서, 도 7을 참조하면, 상기 역 연산 후의 수신 코드 워드에 대해 사후 반복 디코딩을 수행하는 단계는 하기와 같은 단계 S4021 ~ 단계 S4025를 포함하고, 단계 S4021에서, 수신 코드 워드를 획득하며; 여기서, 사후 반복 디코딩의 순서에 따라 업데이트된 후의 Turbo 곱 코드부터 순차적으로 수신 코드 워드를 획득한다.
단계 S4022에서, 단축 코드인지 여부 및 보충 위치가 0인지 여부를 판단하되, “예”이면, 단계 S4023을 수행하고, “아니오”이면, 단계 S4025를 수행하며; 여기서, 상기 코드 워드의 코드 타입이 단축 코드인지 여부를 판단하되, 상기 코드 워드의 코드 타입이 단축 코드이면, 디코딩 후 상기 코드 워드의 보충 위치가 모두 0인지 여부를 판단하되, 모두 0이 아니면, 디코딩 실패를 설명한다.
단계 S4023에서, 확장 코드인지 여부 및 검사 비트가 원래 검사 비트와 동일한지 여부를 판단하되, “예”이면, 단계 S4024를 수행하고, “아니오”이면, 단계 S4025를 수행하며; 여기서, 코드 워드의 코드 타입이 확장 코드인지 여부를 판단하되, 코드 워드의 코드 타입이 확장 코드이면, 디코딩 후 상기 코드 워드에 대해 배타적 논리합 연산을 수행하여 얻은 검사 비트와 디코딩 전 상기 코드 워드의 원래 검사 비트가 동일한지 여부를 판단하되, 상이하면, 디코딩 실패를 설명한다.
단계 S4024에서, 수신된 Turbo 곱 코드를 업데이트하고; 여기서, 코드 워드에 대한 디코딩 성공으로 결정한 후, 디코딩 결과에 따라 수신된 Turbo 곱 코드를 업데이트한다.
단계 S4025에서, 현재 반복 디코딩 횟수가 사후 반복 디코딩 횟수보다 작은지 여부를 판단하되, “예”이면, 단계 S4021로 돌아가고, “아니오”이면, 종료한다.
여기서, 매 번 반복 디코딩이 시작될 때마다 현재 반복 디코딩 횟수를 업데이트한다.
상기 방법을 구현하기 위해, 다시 도 2를 참조하면, 본 발명의 선택 가능한 일 구체적 실시예에 의해 제공되는 Turbo 곱 코드 디코딩 장치는, Turbo 곱 코드의 수신 코드 워드 및 코드 타입 및 반복 파라미터를 획득하기 위한 획득 모듈(10); 디코딩 식별자 매트릭스를 구축하고, 수신 코드 워드에 대해 경판정(hard decision)을 수행한 후 디코딩 코드 워드를 획득하며, 코드 타입 및 판정 조건에 따라 디코딩 성공 여부를 판정하고, 디코딩 식별자 매트릭스를 업데이트하기 위한 사전 반복 디코딩 모듈(20); 디코딩 식별자 매트릭스에 따라 오류가 발생될 수 있는 비트에 대해 역 연산을 수행하고, 지정된 판정 조건에 따라 디코딩 성공 여부를 판정하기 위한 사후 반복 디코딩 모듈(40); 상기 수신 코드 워드의 디코딩 결과를 출력하기 위한 디코딩 결과 출력 모듈(50)을 포함한다.
여기서, 상기 코드 타입은 코드 길이, 정보 길이 및 오류 정정 능력을 포함한다. 상기 교착 상태 정정 모듈(30)은 디코딩 식별자 매트릭스에 따라 오류가 발생될 수 있는 비트에 대해 역 연산을 수행하고, 코드 블록에 포함된 오류 개수를 임계값과 비교하되, 임계값보다 크면, 역 연산된 오류 위치 개수는 (t1+1)×(t2+1)개일 수 있고, t1 및 t2는 각각 오류 정정 능력이다. 사후 반복 디코딩 모듈(40)의 사후 반복 디코딩 과정을 통해, 교착 상태 구조를 정정한 후 나머지 오류 비트를 제거한다.
상술한 내용은 단지 본 발명의 구체적인 실시형태일 뿐, 본 발명의 보호범위는 이에 한정되지 않으며, 임의의 본 기술분야의 통상의 기술자는 본 발명에서 공개된 기술범위 내에서 변형 또는 대체를 용이하게 생각해낼 수 있고, 이들은 모두 본 발명의 보호범위 내에 포함되어야 한다. 본 발명의 보호범위는 첨부된 청구범위의 보호범위를 기준으로 해야 한다.
310: 프로세서 311: 메모리
312: 네트워크 인터페이스

Claims (11)

  1. Turbo 곱 코드 디코딩 방법에 있어서,
    Turbo 곱 코드의 수신 코드 워드를 획득하고, 상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하는 단계;
    제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득하는 단계; 및
    상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계를 포함하는 것을 특징으로 하는 Turbo 곱 코드 디코딩 방법.
  2. 제1항에 있어서,
    상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하는 단계 전에,
    상기 Turbo 곱 코드를 구성하는 블록 코드의 코드 타입을 획득하는 단계를 더 포함하되,
    상기 코드 타입은 오류 정정 가능한 최대 코드 요소 수를 포함하고;
    상기 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득하는 단계는,
    제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하는 단계; 및
    판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정하는 단계를 포함하되,
    상기 제1 디코딩 규칙은,
    상기 코드 타입에 따라 상기 수신 코드 워드가 단축 코드인 것으로 결정하고 또한 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙;
    상기 코드 타입에 따라 상기 수신 코드 워드가 확장 코드인 것으로 결정하고 또한 상기 수신 코드 워드의 원래 검사 비트와 디코딩된 후의 상기 수신 코드 워드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙;
    디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고, 현재 이미 진행된 반복 디코딩 횟수가 설정된 반복 디코딩 횟수 임계값과 같으며 또한 전번 반복 디코딩 과정에서 디코딩 실패된 코드 워드 개수가 설정된 임계값보다 작은 것으로 결정하거나, 디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같고 또한 상기 현재 이미 진행된 반복 디코딩 횟수가 상기 반복 디코딩 횟수 임계값과 같지 않은 것으로 결정하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙 중 적어도 하나를 포함하는 것을 특징으로 하는 Turbo 곱 코드 디코딩 방법.
  3. 제2항에 있어서,
    상기 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정하는 단계 전에,
    디코딩 식별자 매트릭스를 초기화하는 단계를 더 포함하되,
    상기 디코딩 식별자 매트릭스와 상기 Turbo 곱 코드의 크기는 같고;
    상기 판단된 결과에 따라 상기 수신 코드 워드가 디코딩 결과에 대응되는 디코딩 식별자를 결정하는 단계는,
    판단된 결과에 따라 상기 디코딩 식별자 매트릭스 중 대응되는 위치 에서의 상기 수신 코드 워드 중 각각의 코드 요소의 디코딩 식별자를 업데이트하는 단계를 포함하는 것을 특징으로 하는 Turbo 곱 코드 디코딩 방법.
  4. 제3항에 있어서,
    상기 제1 디코딩 규칙은,
    상기 수신 코드 워드 중의 코드 요소에 대해 오류 정정을 수행하였고 또한 상기 디코딩 식별자 매트릭스에서 상기 코드 요소의 대응되는 디코딩 식별자가 상기 코드 요소를 이미 정확하게 디코딩한 것으로 나타내면, 상기 코드 요소에 대한 디코딩 실패로 결정하는 규칙을 더 포함하는 것을 특징으로 하는 Turbo 곱 코드 디코딩 방법.
  5. 제1항에 있어서,
    상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계는,
    상기 디코딩 식별자에 따라 상기 제1 반복 횟수에 대응되는 마지막 회 행 반복 디코딩 시 디코딩 실패된 행 수 및 마지막 회 열 반복 디코딩 시 디코딩 실패된 열 수를 획득하는 단계; 및
    상기 행 수가 설정된 제1 개수 임계값보다 크거나 같고 또한 상기 열 수가 설정된 제2 개수 임계값보다 크거나 같은 것으로 결정할 경우, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 워드에 대해 역 연산을 수행하는 단계를 포함하는 것을 특징으로 하는 Turbo 곱 코드 디코딩 방법.
  6. 제3항 또는 제4항에 있어서,
    상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계는,
    상기 디코딩 식별자 매트릭스에 따라 디코딩 실패된 코드 요소의 개수를 획득하는 단계; 및
    상기 개수와 설정된 제3 개수 임계값 사이의 관계에 따라, 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드 중 디코딩 실패된 코드 요소에 대해 역 연산을 수행하는 단계를 포함하는 것을 특징으로 하는 Turbo 곱 코드 디코딩 방법.
  7. 제1항에 있어서,
    상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하는 단계 이후,
    오류 정정 처리된 후의 상기 Turbo 곱 코드에 대해 설정된 제2 반복 횟수의 반복 디코딩을 수행하는 단계; 및
    제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 타겟 Turbo 곱 코드를 획득하는 단계를 더 포함하는 것을 특징으로 하는 Turbo 곱 코드 디코딩 방법.
  8. 제7항에 있어서,
    상기 제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하는 단계는,
    제2 디코딩 규칙에 따라 상기 제2 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하는 단계를 포함하되,
    상기 제2 디코딩 규칙은,
    상기 코드 타입에 따라 상기 수신 코드 워드가 단축 코드인 것으로 결정하고 또한 디코딩된 후의 상기 수신 코드 워드 중 보충 위치의 코드 요소가 모두 0이 아니면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙;
    상기 코드 타입에 따라 상기 수신 코드 워드가 확장 코드인 것으로 결정하고 또한 상기 수신 코드 워드의 원래 검사 비트와 디코딩된 후의 상기 수신 코드 워드의 검사 비트가 상이하면, 상기 수신 코드 워드에 대한 디코딩 실패로 결정하는 규칙;
    디코딩 후 상기 수신 코드 워드에 대한 오류 정정 코드 요소 수가 상기 수신 코드 워드의 오류 정정 가능한 최대 코드 요소 수와 같은 것으로 결정하면, 상기 수신 코드 워드에 대한 디코딩 성공으로 결정하는 규칙 중 적어도 하나를 포함하는 것을 특징으로 하는 Turbo 곱 코드 디코딩 방법.
  9. Turbo 곱 코드 디코딩 장치에 있어서,
    Turbo 곱 코드의 수신 코드 워드를 획득하기 위한 획득 모듈;
    상기 수신 코드 워드에 대해 설정된 제1 반복 횟수의 반복 디코딩을 수행하고, 제1 디코딩 규칙에 따라 상기 제1 반복 횟수의 반복 디코딩의 디코딩 결과를 판단하여 디코딩 결과를 나타내는 디코딩 식별자를 획득하기 위한 사전 반복 디코딩 모듈; 및
    상기 디코딩 식별자에 따라 상기 제1 반복 횟수의 반복 디코딩된 후의 상기 Turbo 곱 코드에 대해 오류 정정 처리를 수행하기 위한 교착 상태 정정 모듈을 포함하는 것을 특징으로 하는 Turbo 곱 코드 디코딩 장치.
  10. 프로세서 및 프로세서에서 실행 가능한 컴퓨터 프로그램을 저장하기 위한 메모리를 포함하는 디코더에 있어서,
    상기 프로세서는 상기 컴퓨터 프로그램을 실행할 경우 제1항 내지 제8항 중 어느 한 항에 따른 Turbo 곱 코드 디코딩 방법을 수행하기 위한 것을 특징으로 하는 디코더.
  11. 컴퓨터 기록 매체에 있어서,
    상기 컴퓨터 기록 매체에는 컴퓨터 프로그램이 저장되고, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우 제1항 내지 제8항 중 어느 한 항에 따른 Turbo 곱 코드 디코딩 방법의 단계를 구현하는 것을 특징으로 하는 컴퓨터 기록 매체.
KR1020217010728A 2018-09-12 2019-09-12 Turbo 곱 코드 디코딩 방법, 장치, 디코더 및 컴퓨터 기록 매체 KR20210057787A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811063021.2 2018-09-12
CN201811063021.2A CN110896309B (zh) 2018-09-12 2018-09-12 Turbo乘积码的译码方法、装置、译码器及计算机存储介质
PCT/CN2019/105802 WO2020052672A1 (zh) 2018-09-12 2019-09-12 Turbo乘积码的译码方法、装置、译码器及计算机存储介质

Publications (1)

Publication Number Publication Date
KR20210057787A true KR20210057787A (ko) 2021-05-21

Family

ID=69777392

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217010728A KR20210057787A (ko) 2018-09-12 2019-09-12 Turbo 곱 코드 디코딩 방법, 장치, 디코더 및 컴퓨터 기록 매체

Country Status (5)

Country Link
US (1) US11381259B2 (ko)
JP (1) JP7429223B2 (ko)
KR (1) KR20210057787A (ko)
CN (1) CN110896309B (ko)
WO (1) WO2020052672A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023101454A1 (ko) * 2021-11-30 2023-06-08 삼성전자 주식회사 통신 및 방송 시스템에서 데이터 복호화 방법 및 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112054809A (zh) * 2020-08-28 2020-12-08 杭州华澜微电子股份有限公司 改进的tpc纠错算法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093179B2 (en) * 2001-03-22 2006-08-15 University Of Florida Method and coding means for error-correction utilizing concatenated parity and turbo codes
KR100456474B1 (ko) * 2001-12-08 2004-11-09 한국전자통신연구원 블록터보 부호의 반복 복호 방법 및 블록터보 부호의 반복복호 프로그램을 저장한 기록매체
CN1780152A (zh) 2004-11-17 2006-05-31 松下电器产业株式会社 迭代译码方法和系统
CN101557234A (zh) 2009-05-18 2009-10-14 北京天碁科技有限公司 一种Turbo码的动态迭代译码方法及装置
CN102035558B (zh) * 2009-09-27 2013-01-16 中兴通讯股份有限公司 Turbo译码方法和装置
CN101777924B (zh) 2010-01-11 2014-02-19 新邮通信设备有限公司 一种Turbo码译码方法和装置
CN101958720B (zh) 2010-09-24 2013-03-20 西安电子科技大学 缩短Turbo乘积码的编译码方法
US9300329B2 (en) * 2012-11-08 2016-03-29 Sk Hynix Memory Solutions Inc. Turbo-product codes (TPC) with interleaving
US9391641B2 (en) 2013-04-26 2016-07-12 SK Hynix Inc. Syndrome tables for decoding turbo-product codes
US9287899B1 (en) * 2013-12-20 2016-03-15 Xilinx, Inc. Forward error correction
CN104980172A (zh) 2014-04-01 2015-10-14 中国科学院大学 基于Turbo码的联合信道安全编码的比特级译码方法
CN104579369B (zh) * 2014-12-18 2018-06-15 北京思朗科技有限责任公司 一种Turbo迭代译码方法和译码装置
US10153786B1 (en) * 2015-02-06 2018-12-11 Marvell International Ltd. Iterative decoder with dynamically-variable performance
US9935659B2 (en) 2015-05-18 2018-04-03 SK Hynix Inc. Performance optimization in soft decoding for turbo product codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023101454A1 (ko) * 2021-11-30 2023-06-08 삼성전자 주식회사 통신 및 방송 시스템에서 데이터 복호화 방법 및 장치

Also Published As

Publication number Publication date
US11381259B2 (en) 2022-07-05
JP2022500918A (ja) 2022-01-04
WO2020052672A1 (zh) 2020-03-19
US20220038118A1 (en) 2022-02-03
JP7429223B2 (ja) 2024-02-07
CN110896309A (zh) 2020-03-20
CN110896309B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
KR101753498B1 (ko) 신뢰도 데이터 업데이트
KR101422050B1 (ko) 셀 당 멀티­비트인 플래시 메모리에서의 오류 보정 방법
US7823043B2 (en) Corruption-resistant data porting with multiple error correction schemes
CN102835032B (zh) 用于循环行列式大小非整数倍的准循环ldpc编码和解码
US8635508B2 (en) Systems and methods for performing concatenated error correction
US9391641B2 (en) Syndrome tables for decoding turbo-product codes
US10503593B2 (en) Two layer quad bit error correction
US10606697B2 (en) Method and apparatus for improved data recovery in data storage systems
KR20210057787A (ko) Turbo 곱 코드 디코딩 방법, 장치, 디코더 및 컴퓨터 기록 매체
CN110535476B (zh) Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质
JP2020046871A (ja) メモリシステム
US20180122494A1 (en) Raid decoding architecture with reduced bandwidth
US11031956B2 (en) Generalized concatenated error correction coding scheme with locality
CN111525931B (zh) Ldpc译码器、ldpc译码方法、存储介质和电子设备
EP4369201A1 (en) Data processing method and apparatus
JP2020046823A (ja) メモリシステム
US8443250B2 (en) Systems and methods for error correction using irregular low density parity check codes
KR101496052B1 (ko) 블록 단위 연접 bch 부호 성능 개선 및 오류마루 경감을 위해 순환 자리 이동을 활용하는 복호 기법 및 회로
CN108170554B (zh) 一种nand的数据编码方法和装置
CN113014267B (zh) 译码方法、设备、可读存储介质、芯片及计算机程序产品
CN113626249B (zh) 一种固态硬盘的软解码方法、装置、设备及存储介质
CN116662063B (zh) 一种闪存的纠错配置方法、纠错方法、系统、设备及介质
US20230370090A1 (en) Encoding and decoding of data using generalized ldpc codes
CN108566209B (zh) 一种ldpc编码方法及装置
AU2022332699A1 (en) Modified staircase forward error correction coding

Legal Events

Date Code Title Description
E902 Notification of reason for refusal