KR20120090856A - 반복적 디코더 및 반복적 디코딩 방법 - Google Patents

반복적 디코더 및 반복적 디코딩 방법 Download PDF

Info

Publication number
KR20120090856A
KR20120090856A KR1020120012312A KR20120012312A KR20120090856A KR 20120090856 A KR20120090856 A KR 20120090856A KR 1020120012312 A KR1020120012312 A KR 1020120012312A KR 20120012312 A KR20120012312 A KR 20120012312A KR 20120090856 A KR20120090856 A KR 20120090856A
Authority
KR
South Korea
Prior art keywords
iteration
regression
reverse
block
code
Prior art date
Application number
KR1020120012312A
Other languages
English (en)
Other versions
KR101323444B1 (ko
Inventor
마리아 프레시아
젠스 버크만
악셀 휴에브너
Original Assignee
인텔 모바일 커뮤니케이션스 게엠베하
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 모바일 커뮤니케이션스 게엠베하 filed Critical 인텔 모바일 커뮤니케이션스 게엠베하
Publication of KR20120090856A publication Critical patent/KR20120090856A/ko
Application granted granted Critical
Publication of KR101323444B1 publication Critical patent/KR101323444B1/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • 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/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • 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
    • 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/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder

Landscapes

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

Abstract

코드 블록을 디코딩하기 위한 반복적 디코더는 각각의 디코딩 반복에서 코드 블록 또는 코드 서브-블록에 걸쳐 순방향 및 역방향 회귀를 수행하도록 구성된 계산 유닛을 포함한다. 제1 순방향/역방향 디코딩 방안은 제1 반복에서 이용되며, 제2 순방향/역방향 디코딩 방안은 제2 반복에서 사용된다. 제1 및 제2 디코딩 방안은 순방향 및 역방향 처리의 측면에서 상이하다.

Description

반복적 디코더 및 반복적 디코딩 방법{ITERATIVE DECODER}
본 발명은 반복적 디코딩에 관한 것으로서, 특히 순방향 및 역방향 회귀를 사용하여 코드 블록을 반복적으로 디코딩하는 기법에 관한 것이다.
터보 코드와 같은 순방향 오류 정정(forward error correction(FER)) 코드는 높은 오류 정정 능력으로 인해 예를 들어 최근의 통신 장치들 중 많은 것들에서 사용된다. 그러나, 불행하게도, 순방향 및 역방향 회귀를 사용하는 디코더에서의 FER 코드의 반복적 디코딩은 많은 양의 메모리 및/또는 복잡한 하드웨어를 필요로 할 수 있으며, 연산 비용과 대기 시간을 초래할 수 있다.
반복적 디코더의 성능을 향상시키는 몇 가지 접근법이 알려져 있다. Max-Log-MAP 알고리즘은 연산의 복잡성을 줄이는 데 사용된다. 저장되는 데이터의 양을 제한하고 대기 시간을 줄이기 위해 슬라이딩 윈도(sliding window) 기법이 적용될 수 있다. 병렬 디코더 아키텍처는 높은 처리량에 대처할 수 있다. 그럼에도 불구하고, 메모리 공간의 감소, 대기 시간 및 연산 상의 수고 등은 여전한 과제로 남아 있다.
이러한 이유와 그 밖의 다른 이유로 본 발명이 필요하다.
첨부된 도면들은 실시예의 보다 나은 이해를 제공하기 위해 포함되며, 본 명세서에 포함되어 그 일부를 구성한다. 도면들은 실시예를 도시하고 있으며, 상세한 설명과 함께 실시예의 원리를 설명하는 데 사용된다. 기타 실시예들 및 실시예들의 의도된 이점들 중 많은 것들은 이하의 상세한 설명을 참조하여 보다 잘 이해될 수 있으므로 쉽게 인지될 수 있을 것이다. 유사한 참조 번호는 대응되는 유사한 부분을 지칭한다.
도 1은 코드를 디코딩하기 위한 반복적 디코더의 실시예를 도시한 블록도이다.
도 2는 터보 코드를 디코딩하기 위한 반복적 디코더의 일 실시예를 도시한 블록도이다.
도 3은 순방향 회귀 및 역방향 회귀를 포함하는 디코딩 스케줄링을 개략적으로 도시한 도면이다.
도 4는 주어진 반복에서의 연속적 순방향 회귀 및 간헐적 역방향 회귀와 슬라이딩 윈도 디코딩 방안을 이용하는 나중의 반복에서의 연속적 역방향 회귀 및 간헐적 순방향 회귀의 디코딩 스케줄링을 개략적으로 도시한 도면이다.
도 5는 예를 들어 도 4의 좌측 부분에 도시된 것과 같은 주어진 반복에서의 디코딩 프로세스를 개략적으로 도시한 타이밍도이다.
도 6은 예를 들어 도 4의 우측 부분에 도시된 것과 같은 나중의 반복에서의 디코딩 프로세스를 개략적으로 도시한 타이밍도이다.
도 7은 일 실시예에 따른 윈도-기반 병렬 디코딩 방안에서의 두 명의 작업자의 스케줄링을 개략적으로 도시한 도면이다.
도 8은 일 실시예에 따른 윈도-기반 병렬 디코딩 방안에서의 네 명의 작업자의 스케줄링을 개략적으로 도시한 도면이다.
도 9는 일 실시예에 따른 윈도-기반 병렬 디코딩 방안에서의 네 명의 작업자의 스케줄링을 개략적으로 도시한 도면이다.
도 10은 일 실시예에 따른 윈도-기반 병렬 디코딩 방안에서의 네 명의 작업자의 스케줄링을 개략적으로 도시한 도면이다.
도 11은 비윈도-기반 병렬 디코딩 방안에서의 다수 작업자의 스케줄링을 개략적으로 도시한 도면이다.
도 12는 한 명의 작업자를 위한 종래의 윈도-기반 접근법과 한 명, 두 명 및 네 명의 작업자를 위한 윈도-기반 회귀 방안 반전 접근법의 디코더 처리량 대 신호 세기를 나타낸 그래프이다.
도 13은 일 실시예에 따라 코드 블록을 디코딩하는 방법의 흐름도이다.
이하의 상세한 설명에서는, 상세한 설명의 일부를 구성하며 본 발명이 실시될 수 있는 구체적인 실시예들이 예시로서 나타나 있는 첨부 도면들이 참조된다. 도면에서, 유사한 참조 번호는 일반적으로 상세한 설명을 통틀어 유사한 구성요소를 지칭하기 위해 사용된다. 이하의 상세한 설명에서는, 설명의 목적으로, 본 발명의 실시예들의 하나 이상의 양상의 완전한 이해를 제공하기 위해 다수의 특정한 세부사항들이 제시된다. 그러나, 본 기술분야에 통상의 지식을 가진 자에게는 본 발명의 실시예들의 하나 이상의 양상이 보다 낮은 정도의 이러한 특정한 세부사항들을 이용해서 실시될 수 있음이 명백할 것이다. 다른 경우에서, 본 발명의 실시예들의 하나 이상의 양상을 기술하기 쉽게 하기 위해 알려진 구조 및 장치들은 간략화된 표현으로 제시된다. 따라서, 이하의 상세한 설명은 한정적인 의미로 받아들여져서는 안 되며, 본 발명의 범위는 첨부된 청구항들에 의해 정의된다.
요약된 다양한 양상은 다양한 형태로 구현될 수 있다. 이하의 설명은 실시될 수 있는 다양한 조합 및 구성을 예로써 제시한다. 기술되는 양상 및/또는 실시예는 오직 예이고, 기타의 양상 및/또는 실시예가 사용될 수 있으며, 본 명세서의 범위를 벗어나지 않고서도 구조 또는 기능상의 변경이 이루어질 수 있다고 이해된다. 특히, 본 명세서에서 기술되는 다양한 예시적 실시예의 특징들은 특별히 달리 언급되지 않는 한, 상호 결합이 가능한 것으로 이해되어야 한다.
본 명세서에서 사용되는 바, 용어 "연결되는" 및/또는 "전기적으로 연결되는" 은 구성요소들이 반드시 서로 직접 연결되어야 함을 의미하지 않으며, "연결되는" 또는 "전기적으로 연결되는" 구성요소들 사이에 중간의 구성요소가 제공될 수도 있다.
여기에서 기술되는 반복적 디코더는 무선 통신 시스템의 장치, 더 구체적으로는 수신기 및 송수신기에서 사용될 수 있다. 이들은 이동국과 기지국에서 사용될 수 있다.
여기에서 기술되는 반복적 디코더들은 순방향 회귀 및 역방향 회귀를 적용한 반복적 디코딩이 사용될 수 있는 어떤 종류의 오류 정정 코드라도 디코딩하도록 구성될 수 있다. 특히, 예를 들어, 여기에서 기술되는 반복적 디코더들은 컨볼루션 코드들 및/또는 연접 코드들(concatenated codes), 예컨대 터보 코드와 같은 병렬 연접 컨볼루션 코드들을 디코딩하도록 구성될 수 있다. 이와 같은 디코더들은 다른 것들 중에서도, UMTS(Universal Mobile Telecommunication System) 표준, HSDPA(High Speed Downlink Packet Access) 또는 HSUPA(High Speed Uplink Packet Access), 및 롱텀 에볼루션(LTE)에 기반한 통신 시스템에서 사용될 수 있다.
예로써, 도 1은 반복적 디코더(100)의 실시예를 도시한다. 반복적 디코더(100)는 디코더(1) 및 종료 스테이지(2)를 포함한다. 디코더(1)는 입력(3)에서 수신된 코드 블록들을 디코딩하며, 원래 전송된 (체계적) 데이터 비트의 추정값들을 표시하는 신뢰도 데이터의 시퀀스를 제공하기 위한 출력(5)을 가진다. 또한, 디코더(1)는 선험적 정보를 위한 입력(4)을 가진다.
디코더(1)는 입력(3)에서 수신된 코드 블록들을 디코딩한다. 전형적으로, 코드 블록은 체계적 정보(systematic information) 및 패리티 정보(parity information)를 포함하는 소프트 값들의 시퀀스에 의해 표현된다. 체계적 정보는 원래의 전송된 데이터 시퀀스에 대응한다. 패리티 정보는 송신기에서 하나 이상의 인코더(예를 들어, 컨벌루션 인코더)에 의해 생성된 패리티 정보에 대응한다.
반복적 디코딩에서 예를 들어 출력(5)에서 제공되는 추정값과 같은 디코딩 결과들은 디코더(1)의 입력(4)으로 피드백되며, 다음 디코딩 반복에서 선험적 정보로서 사용된다. 이러한 반복은 허용된 반복의 최대 횟수에 이르거나 다른 중단 기준이 충족될 때까지 지속된다.
출력(5)에서 제공되는 추정값들은 종료 스테이지(2)에 입력된다. 중단 기준이 충족되면, 반복적 디코딩 프로세스는 중단되며 체계적 데이터의 추정값들은 종료 스테이지(2)로부터 출력된다. 예로써, 출력(5)에서 연속적인 반복 동안 생성된 추정값의 충분한 정도의 수렴에 도달하면, 중단 기준이 충족될 수 있다.
디코더(1)는 심벌 단위 사후 확률(a-posteriori probability(APP)) 디코더로서 설계될 수 있다. APP 디코더는 트렐리스 다이어그램 상에서 동작한다. 트렐리스 다이어그램(trellis diagram)은 불연속적인 시간에 대한 인코더 상태들의 표현이다. 예로써, 디코더(1)는 SISO(Soft-Input-Soft-Output) 디코더로서 설계될 수 있다.
도 2는 터보 코드를 디코딩하기 위한 반복적 디코더(200)의 원리 설계를 도시한다. 반복적 디코더(200)는 도 1에 제시된 반복적 디코더(100)의 원리들에 따라 설계된다. 더 상세하게는, 반복적 디코더(200)는 제1 컴포넌트 디코더(201), 제2 컴포넌트 디코더(202), 및 제1 컴포넌트 디코더(201)의 출력과 제2 컴포넌트 디코더(202)의 입력 사이에 연결된 인터리버(203)를 포함한다. 제1 컴포넌트 디코더(201)와 제2 컴포넌트 디코더(202)는 예를 들어 APP 디코더들로서 설계될 수 있는데, 즉 도 1의 디코더(1)와 동일할 수 있다. 예로써, 제1 컴포넌트 디코더(201)와 제2 컴포넌트 디코더(202)는 SISO 디코더들로 설계될 수 있다. 각각의 SISO 디코더(201, 202)는 심볼 단위의 사후 확률을 추정한다.
반복적 디코더(200)는 인터리버(204), 디인터리버(205) 및 종료 스테이지(206)를 더 포함할 수 있다. 종료 스테이지(206)는 도 1의 인터리브 디코더(100) 내의 종료 스테이지(2)와 유사할 수 있으며, 대응하는 설명이 참조된다.
제1 컴포넌트 디코더(201)는 송신기에서 터보 인코더에 의해 생성되며 수신기에서 복조기(도시되지 않음)에 의해 재구성된 체계적 데이터 및 패리티 데이터를 입력(3)에서 수신한다. 수신기에서 수신된 신호는 일반적으로 잡음 및 간섭에 의해 왜곡되므로, 복조기는 터보 인코더에 의해 생성되는 체계적 데이터 및 패리티 데이터의 추정값들만을 제공할 수 있다. 전형적으로, 이러한 추정값들은 로그 우도 비율들(log-likelihood ratios(LLRs))의 형태로 터보 인코더(200)에 제공된다. LLR들은 수신되는 아날로그 신호에 있어서 전송된 비트가 0일 확률과 1일 확률 사이의 비율을 나타낸다.
제1 컴포넌트 디코더(201)는 자연적 순서(natural order)로 입력(3)에서 수신되는 체계적 데이터 및 패리티 데이터의 시퀀스에 작용한다. 제1 컴포넌트 디코더(201)는 입력(3)에서 수신된 체계적 데이터 및 관련 패리티 데이터의 LLR들로부터 그리고 입력(4)에서 수신된 선험적 정보로부터 전송된 체계적 데이터의 사후 확률을 계산한다. 제2 컴포넌트 디코더(201)는 선험적 정보 입력(4)에서 수신된 LLR들 및 입력(3)에서 수신된 인터리브된 관련 패리티 데이터로부터 인터리브된 체계적 데이터의 사후 확률을 계산한다. 따라서, 인터리버(203)의 출력은 제2 컴포넌트 디코더(202)에서 선험적 정보로서 사용된다.
이어지는 반복들에서, 각각의 컴포넌트 디코더(201, 202)는 앞선 절반 반복(half-iteration)에서 다른 컴포넌트 디코더(201, 202)에 의해 출력된 소위 외적 정보를 선험적 정보로서 사용한다.
도 2는 터보 디코더의 단순화된 블록도임에 유의하여야 한다. 본 기술분야에서 알려진 바와 같이, 제1 및 제2 컴포넌트 디코더(201, 202)는 코드 블록 데이터의 상이한 부분들에 작용할 수 있다. 예로써, 수신된 코드 블록 c = (u, p1, p2)는 체계적 시퀀스 u, 제1 패리티 시퀀스 p1 및 제2 패리티 시퀀스 p2를 포함할 수 있다 (여기에서, 모든 이러한 시퀀스들은 전형적으로 잡음 및 간섭에 의해 왜곡된다). 이 경우, 예로써, 체계적 시퀀스 u와 제1 패리티 시퀀스 p1은 제1 컴포넌트 디코더(201)의 입력(3)에서 사용되며, 인터리브된 체계적 시퀀스 uT와 제2 패리티 시퀀스 p2는 제2 컴포넌트 디코더(201)의 입력(3)에서 사용될 수 있다.
APP를 생성하는 하나의 알고리즘은 소위 BCJR(Bahl, Cocke, Jelinek and Raviv) 알고리즘이다. 이론적인 BCJR 알고리즘에 따르면, APP 디코더(1, 201, 202)는 순방향 메트릭들 α 및 역방향 메트릭들 β를 계산하고 나서 출력 메트릭들(즉, 신뢰도 데이터의 시퀀스; 디코더(1)에 대해서, 이 시퀀스는 원래의 전송된 데이터 시퀀스의 추정값들에 대응함)을 계산한다. α- 및 β-메트릭들은 각각 순방향 및 역방향 회귀에서 수집된다.
도 3은 코드 블록 전체에 대한 순방향 메트릭들 α를 최초 계산하는 순방향 회귀 frec, 코드 블록 전체에 대한 역방향 메트릭들 β 및 출력 메트릭들, 즉 디코더(1, 201, 202)의 출력에서 획득된 확률값들(LLR)을 계산하는 역방향 회귀 brec를 포함하는 디코딩 스케줄링을 도시한 도면이다. 도 3에 도시된 바와 같이, 대기 시간 및 요구되는 메모리를 줄이기 위해, 역방향 메트릭들 β 및 출력 메트릭들(LLR)이 동시에 계산될 수 있다. 여기서 y축은 1로부터 L(데이터 블록의 길이)까지 이어지는 트렐리스 인덱스 k를 나타내며, x축은 사이클의 단위로 된 시간에 대응한다.
도 3에 도시된 바와 같이, BCJR 알고리즘을 사용할 때, 순방향 회귀 frec는 제로-트렐리스 상태(zero trellis state)로부터 확정적으로 시작한다. 또한, 소위 종료 비트들(즉, 트렐리스 경로를 강제로 초기 상태로 귀환시키기 위해 메시지 체계 비트에 추가되는 선택된 비트들)로 인해, 역방향 회귀 brec 역시 제로 상태로부터 확정적으로 시작할 수 있다. 이들 두가지 조치는, 순방향 및 역방향 회귀 frec, brec가 코드 블록 전체에서 수행되는 것과 함께, BCJR 알고리즘이 주어진 수신된 데이터에 대하여 전송된 데이터 블록에 대한 가능한 최상의 추정값을 계산한다는 것을 시사한다. BCJR 알고리즘에서 종료 비트가 사용되지 않는 것도 가능하다. 이 경우, 종료 트렐리스 상태(ending trellis state)에서의 역방향 회귀 brec의 최적의 초기화는 균등 분포이다.
일 실시예에서, 디코더들(1, 201, 202)은 소위 Log-MAP 알고리즘을 사용할 수 있는데, 이는 BCJR 알고리즘의 간략화된 버전이다. Log-MAP 알고리즘은 기본적으로 BCJR 알고리즘과 동일한 연산들을 수행하되, 그들을 대수적 영역(logarithmic domain)에서 수행하며, 즉 곱셈은 덧셈으로 대체된다. Log-MAP 알고리즘은 감소된 복잡성으로도 BCJR 알고리즘과 동일한 성능을 발휘한다.
일 실시예에서, 디코더들(1, 201, 202)은 소위 Max-Log-MAP 알고리즘을 사용한다. Max-Log-MAP 알고리즘은 Log-MAP 알고리즘의 근사치 버전이다. Max-Log-MAP 알고리즘은 대수 영역에서 작동하며 오류 성능에서 수십 분의 일의 dB 저하를 감수하고 대수 및 지수 연산을 피한다.
예로써, Max-Log-MAP 알고리즘에서 α- 및 β-메트릭들은 순방향 및 역방향 회귀에서 각각
Figure pat00001
Figure pat00002
에 따라 계산되며, 이때 max는 최대값 선택이다. 여기에서, 상태 메트릭들
Figure pat00003
Figure pat00004
는 트렐리스 인덱스 k에서의 인코더 상태를 나타내며, 브랜치 메트릭들
Figure pat00005
는 인코더 상태 m과 m' 사이에서의 m→m'의 상태 전이들을 나타낸다. 1/n 비율 컨볼루셔널 인코더에 대해서, 하나의 정보 심벌 및 n개의 데이터 심벌은 인덱스 k에 연관됨에 유의한다.
일 실시예에서, 디코더(1, 201, 202)는 슬라이딩-윈도 접근법을 사용한다. 슬라이딩-윈도 접근법은 저장되는 데이터의 양을 제한하며, 따라서 디코더(1, 201, 202)에서 요구되는 메모리 공간을 제한하는 데 적합하다. 슬라이딩-윈도 접근법에 따르면, 코드 블록 또는 코드 서브-블록(병렬 디코더 아키텍처들이 사용되는 경우)은 수 개의 윈도로 분할되며, 각각의 윈도에는 예를 들어 Log-MAP 또는 Max-Log-MAP과 같은 디코딩 알고리즘이 연속하여 적용된다. 순방향 회귀 frec는 도 3과 함께 설명된 바와 같은 "완전한" 구현에 대해서 전형적으로 불변하는 반면, 역방향 회귀 brec는 윈도-방식(window-wise)으로 및 간헐적으로 수행된다. 그러므로, 윈도-기반 접근법은 역방향 회귀 brec에 대하여 각각의 윈도의 경계에서 상태 메트릭 초기화를 필요로 한다. 본 기술분야에 알려진 바와 같이, 이러한 초기화의 불완전성은 윈도-기반 접근법의 성능에 있어서 도 3에서 도시된 비윈도-기반 접근법에 비해 약간의 손실을 야기한다.
도 4의 좌측은 윈도-기반 접근법을 사용하는 최초 디코딩 반복 i에서 순방향 및 역방향 회귀 frec, brec를 스케줄링하는 실시예를 도시한다. 심볼 추정 프로세스 동안, 디코더 출력(5)에서 제공되는 신뢰도 정보 시퀀스(LLR)를 계산하기 위해 회귀 frec, brec 둘 다가 수행되어야 한다. 슬라이딩-윈도 접근법은 매 윈도마다 수행되는 회귀 런들을 포함한다. 그러면, 윈도의 위치는 전체 코드 블록에 걸쳐(또는, 병렬 디코더 아키텍처에서는 전체 코드 서브-블록에 걸쳐) 단계적으로 시프트된다.
더 구체적으로, 도 4의 좌측에 보여진 바와 같이, 코드 블록(또는 코드 서브-블록)은 윈도들 W1, W2, ...로 분할된다. 각각의 윈도는 동일한 크기 WS를 가질 수 있으며, 전형적으로 윈도 사이즈 WS는 코드 블록 크기(또는 코드 서브-블록 크기)보다 작다.
최초 윈도 W1의 시작에서 시간 t0에서 순방향 회귀 frec가 시작된다. 동일한 시간 t0에서, 역방향 회귀 brec0의 취득 위상이 시작된다. 시간 t1에서, 순방향 회귀 frec가 최초 윈도 W1의 마지막에 이르며 제1 역방향 회귀 brec0의 취득 위상이 종료된다. 시간 t1과 시간 t2 사이에서, 제2 윈도 W2를 처리하기 위해 연속적인 순방향 회귀 frec가 계속되며, 제1 역방향 회귀 brec0는 계속하여 제1 윈도 W1에서 작용한다. t1에서 t2까지의 시간 구간 동안, 제1 윈도 W1에 대한 디코딩 결과들 res1(즉, LLR)이 계산되고 출력된다.
이러한 프로세스는 코드 블록(또는 코드 서브-블록)의 마지막 윈도에 이르러 디코딩될 때까지 계속된다. 따라서, 순방향 회귀 frec가 전체 코드 블록(또는 코드 서브-블록)에 걸쳐 연속적으로 작용되는 동안, 역방향 회귀들 brec0, brec1, brec2,...는 각각 윈도 W1, W2, W3,... 에 대한 역방향 메트릭들 및 디코딩 결과들 res1, res2, res3, ...를 계산하도록 간헐적으로 스케줄링된다.
윈도-기반 역방향 회귀들 brec0, brec1, brec2,...의 취득 위상들은 가변 길이를 가질 수 있음에 유의하여야 한다. 예로써, 도 4에서는, 그들이 윈도 크기 WS의 길이를 가지도록 선택된다. 그러나, 일반적으로, 역방향 회귀들 brec0, brec1, brec2,...의 취득 위상은 윈도들과 동일한 크기일 필요는 없다. 각각의 윈도에서 역방향 메트릭 계산의 신뢰도를 증가시키기 위해서 취득 위상이 WS보다 길 수도 있고, 또는 WS보다 짧을 수도 있다. 이하에서 보다 상세히 설명되는 바와 같이, 일 실시예에 있어서는, 역방향 회귀들 brec0, brec1, brec2,...의 취득 위상이 생략될 수도 있는데, 즉 역방향 회귀들 brec0, brec1, brec2,...은 취득 위상 없이 설계될 수 있다.
역방향 메트릭 계산의 품질은 취득 위상의 길이와 윈도-방식 역방향 회귀들의 초기화에 의존한다. 더 구체적으로, 역방향 회귀들 brec0, brec1, brec2,...의 시작에서(즉, 취득 위상이 있다면, 그 취득 위상의 시작에서) 사용되는 상태 메트릭 초기화 값들은 취득 위상 이후 역방향 회귀에서 계산되는 역방향 상태 메트릭들의 신뢰도에 영향을 미친다. 역방향 회귀들 brec0, brec1, brec2,...의 초기화는 도 4에서 "입력 판독"으로 표기된 화살표에 의해 표시된다. 일반적으로, 코드 블록의 끝에서 트렐리스 경로를 미리 정해진 상태로 복귀하게 만드는 종료 비트들로 인해, 오로지 코드 블록의 최종 윈도(여기서는 W6)(또는 최종 코드 서브-블록)의 상태 메트릭들만이 신뢰할 수 있게 초기화된다. 반면, 다른 모든 윈도(여기에서는 W1-W5)에 대해서는 역방향 회귀들의 확정적 상태 메트릭 초기화가 불가능하다. 이는 도 4의 좌측에 도시된 것과 같은 슬라이딩-윈도 접근법의 성능의 손실이 최종 코드 블록(또는 코드 서브-블록)을 제외한 모든 것의 역방향 상태 메트릭들의 초기화에 의존함을 의미한다.
도 5는 도 4의 좌측 부분에 도시된 것과 같은 반복 i에서의 "완전한" 순방향 회귀 및 윈도-기반 역방향 회귀들의 스케줄링을 도시한다. L은 코드 블록 크기이고, S는 트렐리스 상태의 개수이며, s=1, ..., S는 트렐리스 상태 인덱스를 나타낸다. 완전한 순방향 회귀 frec는 t0에서 확정적으로 시작하며 전체 코드 블록(인덱스 1에서 L까지)에 걸쳐 연속적으로 수행된다. 윈도들 mWS(m=1, 2, ..., L/WS)의 경계에서 순방향 상태 메트릭들
Figure pat00006
가 저장된다. 윈도-기반 역방향 회귀들 brec0, brec1, ...은 각각 t0와 t1에서 시작하며, 각각 위에서 설명한 바와 같은 하나의 취득 윈도 및 하나의 메트릭 계산 윈도에 걸쳐 수행된다. 이를 위해, brec0는 상태 메트릭들
Figure pat00007
로 초기화되고 brec1은 상태 메트릭들
Figure pat00008
로 초기화된다. 일반성의 손실 없이, 도 5에서 i=1이다. 이 경우, 이러한 초기 스테이지에서는 어떤 초기화 정보도 입수할 수 없으므로, (예를 들어, 취득 윈도가 있다면, 그 취득 윈도의 시작에서) 역방향 회귀들의 경계 상태 메트릭들은
Figure pat00009
에 의해 확률이 같도록 초기화된다. 병렬 디코더 아키텍처가 사용되는 경우, 상기 방안은 코드 서브-블록에 대해 적용되며 L은 코드 서브-블록 크기임에 유의해야 한다.
도 4의 우측 부분의 도면은 다음 디코딩 반복 i+1에서의 순방향 및 역방향 회귀들의 스케줄링을 도시한다. 다음 반복 i+1에서, 순방향 및 역방향 회귀들은 교체된다. 그 결과, 역방향 회귀는 이제 전체 코드 블록에 걸쳐서(또는, 병렬 디코딩 아키텍처가 사용되는 경우에는 코드 서브-블록에 걸쳐서) 연속적으로 수행되고, 순방향 회귀 frec는 윈도-기반이 되는데, 즉 전체 코드 블록에 걸쳐서(또는, 병렬 디코딩 아키텍처가 사용되는 경우에는 코드 서브-블록에 걸쳐서) 불연속적으로 수행된다. 따라서, 반복 i+1 동안, 역방향 회귀는 "완전하게" 수행되는 반면, 순방향 회귀는 윈도-기반으로 또는 "불완전하게" 수행되며, 이로 인해 성능에 손실을 야기할 수 있다.
일반적으로, 순방향 및 역방향 회귀들은 반복 i로부터 반복 i+1로 갈 때 리스케줄링된다. "완전하게" 수행되는 회귀 및 "불완전한" 회귀는 반복 i로부터 반복 i+1로 갈 때 서로 바뀔 수 있다. 더 구체적으로, "완전하게" 수행되는 회귀는 반복 i에서 트렐리스 인덱스들 k가 증가하는 방향으로 수행되는 반면, 반복 i+1에서는 트렐리스 인덱스들 k가 감소하는 방향으로 수행된다. 반대로, "불완전하게" 수행되는 회귀는 반복 i에서 트렐리스 인덱스들 k가 감소하는 방향으로 수행되는 반면, 반복 i+1에서는 트렐리스 인덱스들 k가 증가하는 방향으로 수행된다. 따라서, 반복 i에서 사용되는 순방향/역방향 디코딩 방안과 반복 i+1에서 사용되는 순방향 및 역방향 디코딩 방안은 순방향 및 역방향 처리의 측면에서 상이하다. 특히, 이러한 디코딩 방안들은 순방향 및 역방향 처리의 측면에서 반대일 수 있다.
일 실시예에 있어서, 선행하는 반복 i 동안 추정된 상태 메트릭들은 "불완전한" 윈도-기반 회귀들을 초기화하기 위해 다음 반복 i+1에서 사용된다. 윈도-기반 회귀들이 최초 취득 위상을 포함하는 경우, 선행하는 반복 i에서 추정되고 저장된 동일한 회귀 유형(즉, 순방향 또는 역방향)의 상태 메트릭들에 의해 초기화되는 것은 윈도-기반 회귀들의 취득 위상이다.
더 구체적으로, 도 4의 좌측 부분에 보여진 바와 같이, 반복 i에서의 "완전한" 순방향 회귀 동안 계산된 순방향 상태 메트릭들이 시간 t2, t3 및 t4에서 저장되고 다음 반복 i+1을 위해 유지된다. 다음 반복 i+1에서는, 연속적 역방향 회귀 brec가 t0에서 시작되고, 동시에 제1 윈도-기반 순방향 회귀 frec0가 시작된다.
제1 순방향 회귀 frec0의 시작 시간 t0는 취득 위상의 길이에 의존함에 유의하여야 한다. 취득 위상이 WS보다 길면 윈도-기반 순방향 회귀 frec0는 더 일찍 시작되며, 반대로 취득 위상이 WS보다 짧으면 순방향 회귀 frec0는 더 늦게 시작된다. 제1 윈도-기반 순방향 회귀 frec0가 취득 위상 없이 구현된다면, 그것은 t1에서 시작될 수도 있다. 이는 반복 i+1에서 수행되는 모든 순방향 회귀 frec0, frec1, frec2, ...에 적용된다.
일반성의 손실 없이, 그리고 설명의 편의를 위해, 이하에서는 윈도-기반 회귀들(순방향 또는 역방향)의 취득 위상이 윈도 크기 WS와 같다고 가정한다. 도 4에 도시된 디코딩 스케줄링이 이 경우에 적용된다. 그러면, 반복 i 동안에 시간 t4에서 저장된 순방향 상태 메트릭들은 시간 t0에서 시작된 반복 i+1에서의 윈도-기반 순방향 회귀 frec0의 초기화를 위해 사용된다.
반복 i+1 동안, 시간 t0에서 제1 순방향 회귀 frec0는 윈도 W6 내에서 계속되며, 동시에 윈도 W6에 대한 디코딩 결과들 res6(LLR)가 계산된다. 이러한 방안은 도 4의 우측 부분에 도시되는 바와 같이 계속된다. 즉, t1, t2 및 t3에서, 윈도-기반 순방향 회귀들 frec1, frec2 및 frec3는 각각 반복 i 동안 시간 t3, t2, t1에서 저장된 순방향 상태 메트릭들에 의해 각각 초기화되고, 디코딩 결과들 res5, res4, res3가 계산된다.
도 6은 도 4의 우측 부분에 도시된 것과 같은 반복 i+1에서의 "완전한" 역방향 및 윈도-기반 순방향 회귀들의 스케줄링을 도시한다. 역방향 회귀 brec는 t0에서 코드 블록 L의 끝에서 확정적으로 시작하며, 전체 코드 블록(또는 코드 서브-블록)에 걸쳐 역방향으로(인덱스 L로부터 1로) 연속적으로 수행된다. 윈도들 L-mWS(m=1, ..., L/WS)의 경계에서 역방향 상태 메트릭들
Figure pat00010
가 저장된다. 윈도-기반 순방향 회귀들 frec0, frec1, ...는 각각 t0와 t1에서 시작하며, 위에서 설명한 바와 같은 하나의 취득 위상 및 하나의 메트릭 계산 윈도에 걸쳐 각각 수행된다. 이를 위해, frec0는 상태 메트릭들
Figure pat00011
로 초기화되고, frec1은 상태 메트릭들
Figure pat00012
로 초기화되는 식으로 이어진다. 일반성의 손실 없이 도 5 및 도 6에서 i=1이다.
반복 i로부터 반복 i+1로 갈 때 회귀 방향들의 측면에서 디코딩 방안을 변경하는 개념으로 인해, 반복 i+1에서 "불완전한" 윈도-기반 회귀의 초기화에 사용되는 상태 메트릭들은 "완전한" 연속적 회귀에 기초하여 반복 i에서 계산된다. 그러므로, 일 실시예에서 적용되는 것과 같은 NII(next iteration initialization) 기법은 항상 고도로 신뢰할 수 있는 상태 메트릭 데이터에 근거한다.
그러면, 반복 i+2는 반복 i에서 사용된 디코딩 방안에 따라 수행될 수 있다. 즉, 순방향 회귀는 또 다시 연속적이고 "완전"하며, 후속 반복들에 대한 정제된 순방향 상태 메트릭들이 저장된다. 역방향 회귀는 다시 윈도-기반이며 "불완전"하지만, 역방향 회귀들의 취득 위상들에서 경계 상태 메트릭들을 초기화하기 위해 선행하는 "완전한" 역방향 회귀로부터의 고도로 신뢰할 수 있는 역방향 상태 메트릭들이 사용될 수 있다. 다시 말해, 반복 i+2에서 NII 접근법이 다시 적용될 수 있으며, NII 방법은 선행하는 반복 i+1에서의 "완전한" 역방향 회귀에서 저장된 역방향 메트릭들을 사용한다.
일 실시예에서, 순방향/역방향 디코딩 방안의 변경은 매 반복마다 수행되지 않는다. 예를 들면, 제1 수의 반복은 (예를 들어, 도 4의 좌측 부분에 예시된 것과 같은) 제1 디코딩 방안에 따라 처리하며, 제2 수의 반복은 제1 디코딩 방안에 대해서 순방향 및 역방향 회귀들의 스케줄링 측면에서 교체되었거나 반대인 (예를 들어, 도 4의 우측 부분에 예시된 것과 같은) 제2 디코딩 방안에 따라 처리하는 것도 가능하다. 예를 들면, 디코딩 방안들의 변경 또는 반전은 2, 3,... 반복마다 수행될 수 있다. 또한, 이 경우, 제1 디코딩 방안에 따라 계산된 순방향/역방향 상태 메트릭들은 제2 디코딩 방안에 따라 처리되는 순방향/역방향 회귀들의 초기화를 위해 사용될 수 있다.
또한, 디코딩 방안이 매 반복마다 변경되거나 반전되어도, 실제 반복에서 초기화를 위해 사용되는 순방향/역방향 메트릭들이 반드시 선행하는 반복 동안 계산되거나 저장될 필요는 없음에 유의해야 한다. 복수의 반복 이전에 계산되고 저장된 순방향/역방향 메트릭들이 실제 반복에 사용되는 것도 가능하다. 또한, 이러한 실시예에 있어서, 실제 반복에 사용되는 순방향/역방향 메트릭들은 (순방향 및 역방향 회귀들의 스케줄링의 측면에서) 다르거나 반대인 디코딩 방안이 운영되었던 이전 반복 동안 계산된 것이다. 그 결과, 이 경우에서도, "완전한" 회귀가 "불완전한" 실제 회귀의 초기화를 위한 신뢰할 수 있는 상태 메트릭들을 생성하는 데 이용된다.
제안된 솔루션을 사용함으로써, 순방향 및 역방향 회귀들은 항상 거의 완전하게 수행된다. 사실, (윈도-기반 회귀에 대하여, 취득 윈도들의 상태 메트릭들이 확률이 같도록 초기화되는) 제1 반복을 제외하고, 윈도-기반 회귀는 선행하는 반복으로부터의 완전하게 계산된 상태 메트릭들로 초기화된다. 비록 이러한 값들이 선행하는 반복에서 계산되며, 이것이 약간의 신뢰도 부족을 유발한다고 하더라도, 이러한 부족은 몇몇 반복 이후에 거의 사라짐을 보이는 것이 가능하다.
반복적 디코딩 동안 디코딩 방안 변경을 다음의(또는 나중의) 반복 초기화와 결합하는 것은, 윈도 크기에 대한 성능의 의존성을 상당히 감소시킨다는 것에 유의해야 하는데, 즉 동일한 성능을 달성하기 위해, 결합된 방안에 대해, 알려진 방안들에 비해 더 작은 윈도 크기들(또는 더 작은 취득 길이들)이 선택될 수 있다. 현실적인 코드 레이트(≤0.98)에 대하여 비윈도-기반 Max-Log-MAP 알고리즘으로 얻을 수 있는 성능에 가까운 성능을 달성하기 위해, 작은 윈도 크기(예를 들어, 20-130, 더 구체적으로는 20-70, 훨씬 더 구체적으로는 20-40)가 사용될 수 있다. 작은 윈도 크기들은 반복적 디코더의 요구되는 메모리 공간을 대폭 감소시킬 수 있다.
또한, 위에 설명된 개념들은 심지어는 높은 코드 레이트에 대해서도 매우 짧은 취득 위상들을 이용하는 것을 허용한다. 취득 위상이 짧을수록, 더 적은 연산상의 수고 및 전력 소비가 요구된다. 앞에서 언급된 바와 같이, 윈도-기반 회귀에서 취득 위상을 제거하는 것도 가능할 수 있다.
일 실시예에서, 다수 작업자(예를 들어, 다수의 프로세서와 같은 다수의 계산 유닛) 구현이 사용된다. 다수 작업자는 특히 고 처리량 솔루션들에 유용하다. 다수 작업자가 고려될 때, 코드 블록은 데이터의 인접 코드 서브-블록들로 세분된다. 각각의 작업자는 하나의 서브-블록을 다른 작업자들과 병렬로 처리하며, 서브-블록들은 반복 내에서 독립적인 코드워드 세그먼트들로서 고려될 수 있다. 다수 작업자 솔루션들은 병렬 디코더 아키텍처들에 의해 구현될 수 있는데, 여기에서 각각의 작업자를 위한 반복적 디코더 구조는 단일 작업자에 대하여 위에서 설명된 것과 동일하다. 즉, 하나 이상의 실시예에 따르면, 각각의 작업자는 도 1 및 도 2에 도시된 것과 같은 반복적 디코더(100) 및/또는 반복적 디코더(200)와, 도 3 내지 도 6에 도시된 것과 같은 디코딩 방안들을 사용할 수 있다.
더 구체적으로, 도 7에 도시된 일 실시예에서, 슬라이딩-윈도 접근법을 이용한 순방향 및 역방향 회귀들의 스케줄링이 예로서 두 명의 작업자(프로세서 P1 및 프로세서 P2)에 대해 나타나 있다. 도 7에 도시된 도면들은 도 4의 좌측 부분에 나타난 것과 같은 반복 i에 대응한다. 그러나, 도 4의 단일 작업자 솔루션과는 대조적으로, 제1 작업자(프로세서 P1)는 코드 블록의 제1 절반부 상에서 동작하며(도 7의 하측 부분), 제2 작업자(프로세서 P2)는 코드 블록의 제2 절반부 상에서 동시에 동작한다(도 7의 상측 부분). 따라서, 코드 블록은 2개의 코드 서브-블록으로 분할된다. 제1 코드 서브-블록은 윈도들 W1, W2,...로 분할되는 반면, 제2 코드 서브-블록은 윈도들 Wm, Wm +1,...로 분할된다. 각각의 윈도는 동일한 크기 WS를 가질 수 있고, 전형적으로, 윈도 크기 WS는 코드 서브-블록 사이즈 NS보다 더 작은데, 즉 WS<NS이다.
반복 i에서, 반복적 디코딩은 작업자 P1, P2 둘 다에 대해 "완전한" 연속적인 순방향 회귀 및 "불완전한" 윈도-기반 역방향 회귀를 사용한다. 간결함을 위해 그리고 반복을 피하기 위해, 도 4의 좌측 부분에 도시된 대응하는 디코딩 방안의 설명이 참조된다. 유일한 차이는 각 서브-블록의 에지들에 의해 표현된다. 단일 작업자의 경우에서의 윈도-기반 회귀에 대한 각 윈도의 초기화와 마찬가지로, 다수 작업자의 경우에서도, 서브-블록들의 에지 상태 메트릭들은 예를 들어 (순방향 및 역방향 회귀들의 스케줄링 측면에서) 다르거나 반대인 디코딩 방안 상에서 동작하는 선행하는 반복에서 계산된 상태 메트릭들에 의해 신뢰할 수 있게 초기화되어야 한다. 그러나, 최종(즉, 최상위) 코드 서브-블록의 최종 역방향 회귀는 단일 작업자의 경우와 마찬가지로 확정적으로 초기화된다.
도 7에 도시된 실시예에서, 예로서, 각각의 작업자를 위한 순방향 및 역방향 회귀들의 스케줄링은 주어진 반복 i에 대해 동일한데, 즉 주어진 반복 i에 대하여 "완전한" 회귀가 각각의 작업자에 대해 동일한 방향으로 수행된다. 그러나, 일 실시예에서, 주어진 반복 i에 대하여, 한 작업자에 대해서는 "완전한" 반복이 수행될 수 있고, 다른 작업자에 대해서는 반대 방향의 "불완전한" 반복이 수행될 수 있다.
반복 i로부터 반복 i+1로 갈 때의(또는 더 일반적으로는, 선행하는 반복으로부터 나중의 반복으로 갈 때의) 디코딩 방안 변경은 한 명의 작업자 솔루션에 관하여 위에서 설명된 것과 동일한 방식으로 수행될 수 있다. 또한, "완전한" 연속적 회귀에서 계산된 상태 메트릭들의 저장, 및 동일한 유형의 나중의 "불완전한" 윈도-기반 회귀에서의 이들 저장된 상태 메트릭들의 이용은 단일 작업자 솔루션에서 이용되는 앞에서 언급된 기법들에 대응한다. 이와 관련하여, 단일 작업자 솔루션에 대하여 개시된 모든 특징들 및 실시예들은 다수 작업자 솔루션에도 마찬가지로 적용될 수 있다.
도 8은 네 명의 작업자 시나리오에 대해 반복 i에서 적용되는 디코딩 방안(완전한 순방향 회귀, 윈도-기반 역방향 회귀)의 개략도이다. 길이 L의 코드 블록은 길이 SBL의 4개의 코드 서브-블록으로 분할되며, 각각의 코드 서브-블록은 다시 길이 WS의 수 개의 윈도로 분할된다. 각각의 코드 서브-블록은 전용 작업자(프로세서), 즉 앞에서 설명된 것과 같은 반복적 디코더(100, 200)에 의해 독립적으로 처리된다. 취득 위상들은 점선에 의해 나타나며, 원한다면 생략될 수 있다. 굵은 선들은 LLR 출력 계산이 수행됨을 나타낸다. 다시, 하나의, 다수의 또는 각각의 코드 서브-블록(들)에 대한 반복적 디코딩 프로세스는, 앞에서 설명된 모든 단일 및 다수 작업자 실시예에 따른 디코딩 방안 변경 및 "완전한" 회귀들에서 계산된 상태 메트릭들을 이용하는 NII의 개념을 포함할 수 있다.
도 9는 네 명의 작업자 시나리오에 대하여, 홀수 번호의 반복 1, 3, ...에서의 완전한 순방향 및 윈도-기반 역방향 회귀들, 및 짝수 번호의 반복 2, 4, ...에서의 윈도-기반 순방향 및 완전한 역방향 회귀들을 적용하는 디코딩 방안의 일 실시예의 개략도이다. 도 8에 도시된 실시예와 마찬가지로, 길이 L의 코드 블록은 SBx(x=1,...,4)로 표시되는 길이 SBL의 4개의 코드 서브-블록으로 분할되며, 각각의 코드 서브-블록 SBx는 길이 WS의 수 개(여기에서는 5개)의 윈도로 다시 분할된다. 각각의 코드 서브-블록 SBx는 전용 작업자(프로세서), 즉 앞에서 설명된 것과 같은 반복적 디코더(100, 200)에 의해 독립적으로 처리된다. 취득 위상들은 점선에 의해 나타나고, 원한다면 생략될 수 있다.
하나의, 다수의 또는 각각의 코드 서브-블록(들) SBx에 대한 반복적 디코딩 프로세스는 디코딩 방안 변경 및 NII의 개념을 포함할 수 있다. 반복 i=1에서, 도 8에 도시된 디코딩 방안과 유사한 디코딩 방안이 적용된다. 나중의 반복(여기에서, i=2)에서, 순방향/역방향 처리의 측면에서 반대인 디코딩 방안이 적용된다. 즉, 역방향 회귀는 연속적("완전")이며, 순방향 회귀는 윈도-기반("불완전")이다. 또한, "완전한" 회귀들에서 계산되는 상태 메트릭들은 나중의 반복에서 "불완전한" 회귀들을 초기화하기 위해 사용된다. 이것은 앞에서 설명된 바와 같이, 단일 및 다수 작업자 실시예에 적용될 수 있다.
일 실시예에서, 단 하나의 취득 유닛이 사용된다. 예로서, 도 9에 도시된 바와 같이, 취득 유닛은 홀수 반복들에 대한 역방향 회귀들 및 짝수 반복들에 대한 순방향 회귀들을 위해 사용된다.
앞에서 언급된 바와 같이, 본 명세서 전반에서 이용되는 용어 NII의 의미는 "나중 반복 초기화"도 포함할 수 있는데, 즉 일반적으로, 초기화되는 반복은 다음 반복 또는 나중 반복이다.
일 실시예에서, NII 개념은 다수 반복의 초기화를 더 포함할 수 있다. 예로서, 도 9에서, 다수 반복 초기화의 개념은 i=1에서 시작하여 i=2 및 i=3을 가리키는 수평의 이중 화살표에 의해 나타나 있다. 더 구체적으로, 코드 서브-블록들 SBx(x=1, 2, 3) 내의 최상위 윈도들에 대하여 i=1에서 계산된 순방향 상태 메트릭들은 i=2에서 코드 서브-블록 SBx+1 내의 윈도-기반 순방향 회귀를 초기화하며, i=3에서 코드 서브-블록 SBx 내의 "완전한" 순방향 회귀를 초기화하기 위해 이용된다.
일 실시예에서, 상이한 x의 코드 서브-블록들 SBx는 상이한 디코딩 방안들을 이용하여 처리될 수 있다. 예로서, i=1에서, 코드 서브-블록들 SB1 및 SB3는 i=1에서 도 9에 나타난 바와 같이 처리될 수 있는 반면에(즉, "완전한" 순방향, "불완전한" 역방향 회귀), 코드 서브-블록들 SB2 및 SB4는 도 9에 i=2에서 도시된 바와 같이 i=1에서 처리될 수 있다(즉, "완전한" 역방향, "불완전한" 역방향 회귀).
도 10은 디코딩 방안의 일 실시예의 개략도이다. 다시, (선택적인) 취득 위상들은 점선들에 의해 나타나고, NII는 수평 화살표들에 의해 나타난다. 여기에서, 예시로서, X-구조로 된 윈도 방안이 적용된다. 각각의 X는 2개의 윈도에 걸쳐 연장된다. 처리될 제1 X는 각각의 코드 서브-블록 SBx 내의 최하위의 2개의 윈도에 연관된 X이다. 순방향 회귀는 X의 제1 윈도의 하단에서 시작되고, 역방향 회귀는 X의 제2 윈도의 상단에서 시작된다. 계산된 상태 메트릭들은 윈도들에 걸쳐 저장되고, 그 다음, 순방향 및 역방향 회귀들이 만나고 나면(즉, X의 교점에서), 다른 윈도에 대하여 디코딩 결과들(LLR)이 계산된다. 제1 X에 연관된 2개의 윈도가 처리되고 나면, X 구조는 다음의 2개의 윈도로 시프트된다. 도 10에서, 예로서, 각각의 코드 서브-블록 SBx는 6개의 윈도를 포함하는데, 즉 코드 서브-블록 SBx마다 3개의 X 구조가 처리된다.
도 10에서, 나중의 반복 i=2에서, 순방향 및 디코딩 처리의 측면에서 상이한 디코딩 방안이 적용된다. 또한, i=2에서, 위에서 설명된 것과 같은 X-구조화된 디코딩 방안이 이용된다. 그러나, 처리되는 제1 X 구조는 각각의 코드 서브-블록 내의 최상위의 2개의 윈도에 연관된 X 구조이다. 따라서, 순방향 및 역방향 회귀들의 스케줄링, 즉 디코딩 방향은 i=1로부터 i=2로 갈 때 반전된다.
일 실시예에서, 제1 반복에서 사용되는 제1 디코딩 방안들 및 제2 반복에서 사용되는 제2 디코딩 방안은 디코딩 방안들의 구조의 측면에서 상이하다. 예로서, 제1 반복에서, 도 4, 7, 8, 9에 도시된 래더 구조 방안(즉, 하나의 연속적 회귀, 수 개의 반대 방향의 윈도-기반 회귀)과 같은 제1 구조의 제1 디코딩 방안이 사용되고, 제2 반복에서, 도 10에 도시된 X 구조 방안과 같은 제2 구조의 제2 디코딩 방안이 사용된다. 디코딩 방안의 구조는 코드 서브-블록들 또는 코드 블록들에 걸쳐 순방향 및 역방향 회귀들을 처리하는 스케줄링 패턴을 나타낸다. 또한, 본 실시예에서, 제1 반복에서 사용되는 제1 디코딩 방안 및 제2 반복에서 사용되는 제2 디코딩 방안은 상이하며, 취득 및 NII가 적용될 수 있다.
도 11은 일 실시예에 따라 다수 작업자 디코딩 방안을 도시한 도면이다. 여기에서, 도 7과 마찬가지로, 두 명의 작업자가 고려되는데, 즉 코드 블록은 2개의 코드 서브-블록 SB1, SB2로 분할된다. 도 7 및 도 8에 도시된 다수 작업자 실시예들과는 대조적으로, 비윈도-기반 디코딩 알고리즘이 사용된다. 예로서, 연속적인 순방향 회귀 및 연속적인 역방향 회귀를 이용하는, 도 3과 함께 설명된 것과 같은 비윈도-기반 디코딩 알고리즘이 사용될 수 있다.
더 구체적으로, 반복 i에서, 제1 연속적 순방향 회귀 frec 및 후속하는 연속적 역방향 회귀 brec가 작업자(예를 들어, 프로세서) 둘 다에 의해 운영된다. 반복 i+1에서, 디코딩 방안은 변경되거나, 더 구체적으로는 순방향 및 역방향 처리의 측면에서 반전되는데, 즉 회귀 방향들이 교체된다. 따라서, 반복 i+1에서, 제1 연속적 역방향 회귀 brec 및 후속하는 연속적 순방향 회귀 frec가 운영된다.
여기에서, 반복 i로부터 반복 i+1로 갈 때의 디코딩 방안의 변경은 반복 i+1에서의 회귀가 아래와 같이 초기화되는 것을 허용한다. 서브-블록 SB2 내의 역방향 회귀 brec는 코드 블록의 끝에서의 종료 비트들 덕분으로 확정적으로 초기화된다. 서브-블록 SB1 내의 역방향 회귀 brec는 반복 i 내의 서브-블록 SB2의 역방향 회귀 brec의 단순한 연속이고, 따라서 완전하게 초기화된다. 서브-블록 SB2 내의 순방향 회귀 frec는 선행하는 반복 i에서의 서브-블록 SB1 내의 순방향 회귀 frec의 끝에서 계산되고 저장된 순방향 메트릭들을 이용하여 초기화된다. 마지막으로, 서브-블록 SB1 내의 순방향 회귀는 최초 트렐리스 상태가 알려질 때 확정적으로 초기화된다. 따라서, 비윈도-기반 디코딩 방안의 경우에서도, 한 반복으로부터 다른 반복으로 갈 때의 디코딩 방안 변경(예를 들어, 반전)의 개념은 디코딩 성능을 상당히 개선할 수 있다.
일 실시예에서, 반복 i+2에서 사용되는 디코딩 방안은 반복 i에서 사용되는 디코딩 방안과 동일한데, 즉 반복마다 디코딩 방안의 반전이 수행된다. 이 경우, 반복 i+2에서의 서브-블록 SB2 내의 순방향 회귀 frec는 선행하는 반복 i+1에서의 서브-블록 SB1 내의 순방향 회귀 frec의 단순한 연속이며, 서브-블록 SB1 내의 역방향 회귀는 서브-블록 SB2의 최하위 트렐리스 인덱스에서 반복 i+1에서의 서브-블록 SB2 내의 역방향 회귀 brec에 의해 계산된 역방향 메트릭들에 의해 초기화된다.
따라서, 일 실시예에서, 반복 i에서 서브-블록 SB1을 위한 회귀에서 계산되는 상태 메트릭들은 나중의 반복(예를 들어, 다음 반복 i+1)에서 서브-블록 SB2 내의 회귀를 초기화하기 위해 사용되고, 반복 i에서 서브-블록 SB2 내의 회귀에서 계산되는 상태 메트릭들은 나중의 반복(예를 들어, 다음 반복 i+1)에서 서브-블록 SB1 내의 회귀를 초기화하기 위해 사용된다. 즉, 반복적 디코딩 동안의 회귀 방안 변동은 서브-블록들이 더 이상 서로에 독립하여 디코딩되지 않는 것으로 귀결될 수 있다. 반대로, 상태 메트릭 정보는 한 반복으로부터 다른 반복으로 갈 때 서브-블록들 간에서 교환된다.
단일 작업자 솔루션들에서 코드 블록을 디코딩하는 맥락에서 여기에 설명된 모든 특징들은 다수 작업자 솔루션들에서 코드 서브-블록을 디코딩하는 것에 적용될 수 있음에 유의해야 한다. 또한, 다수 작업자 솔루션들에서 코드 서브-블록을 디코딩하는 맥락에서 여기에 설명된 모든 특징들은 단일 작업자 솔루션들에서 코드 블록을 디코딩하기 위해 사용될 수 있다.
도 12는 kbps의 단위로 된 반복적 디코더의 처리량 대 ㏈의 단위로 된 채널 세기를 나타낸 그래프이다. 예로서, HS-PDSCH 채널이 고찰되었다. 도 2에 나타난 것과 같은 터보 디코더가 사용되었고, 도 4 내지 도 8에 도시된 것과 같은 윈도-기반 디코딩 방안이 이용되었다. 즉, 각각의 반복에서 디코딩 방안 반전과 상태 메트릭 교환이 사용되었다. 작은 윈도 크기 WS=32가 채택되었고, 길이 WS=32의 취득 위상이 사용되었다. 전형적인 시나리오(Cat10, MaxTput 및 lor/loc=25dB)가 사용되었고, 1 작업자, 두 명의 작업자 및 네 명의 작업자에 대해 시뮬레이션 결과들이 생성되었다. 한편, 디코딩 방안 변경 및 NII가 이용되지 않는 고전적인 윈도-기반 접근법에 대해서는, 윈도 크기 WS=512가 사용되었고, 단일 작업자의 경우만이 고찰되었다. 도 12로부터 볼 수 있는 바와 같이, 제안된 솔루션은 병렬성의 정도(한 명, 두 명, 네 명의 작업자)에 상관없이 고전적인 윈도-기반 솔루션에 비해 더 나은 성능을 갖는다. 또한, 작업자의 수가 증가함에 따른 성능 손실이 거의 없다.
도 13은 일 실시예에 따라 연접 코드를 반복적으로 디코딩하는 방법의 흐름도이다. 제1 반복에서, 제1 순방향/역방향 디코딩 방안이 사용된다. 이러한 반복에서, 순방향 또는 역방향 회귀 중 적어도 하나에 대한 상태 메트릭들이 계산되고 저장된다. 제2 반복에서, 제2 순방향/역방향 디코딩 방안이 사용되는데, 여기에서 제2 디코딩 방안은 순방향 및 역방향 회귀 처리의 측면에서 제1 디코딩 방안과 다르다. 제2 반복에서, 순방향 또는 역방향 회귀 중 적어도 하나를 초기화하기 위해, 제1 반복에서 계산되고 저장된 상태 메트릭들이 이용된다. 앞에서 언급된 바와 같이, 두가지 회귀 모두 연속적 회귀일 수도 있고, 아니면 회귀들 중 적어도 하나가 간헐적인 윈도-방식 회귀일 수도 있다. 또한, 회귀들은 전체 코드 블록에 걸쳐서 수행될 수도 있고(한 명의 작업자 솔루션), 아니면 회귀들은 코드 서브-블록들에 걸쳐서 각각 수행될 수도 있다(다수 작업자 솔루션).
일반적으로, 여기에 설명된 하나 이상의 실시예에서, 요구되는 저장 메모리 공간은 실질적으로 감소되어, 칩 셋의 칩 면적 및 전력 소비 감소를 유발할 수 있다. 이와 관련하여, 윈도 크기 WS의 감소는 저장될 상태 메트릭의 양을 감소시키는 것을 허용할 뿐만 아니라, 브랜치 메트릭들, 판독/기입 어드레스 등을 위한 캐시 크기들을 결정한다는 점에 유의해야 한다.
또한, 따라서, 윈도 크기 WS의 설계는 종래의 설계들에서보다 상당히 더 작게 선택될 수 있다.
또한, 대기 시간이 감소될 수 있다. 대부분의 윈도-기반 알고리즘 내의 각각의 반복에서의 최초 대기 시간은 윈도 크기 WS의 배수이다. 그러므로, 여기에서 설명되는 개념에 의해, 동일한 BLER TPut 성능(BLER: 블록 에러 레이트; Tput: 처리량)을 달성하기 위해 더 큰 윈도 크기 WS를 사용하는 종래의 솔루션에 비해, 전체적인 디코딩 대기 시간도 상당히 감소될 수 있다. 대안적으로, 주어진 디코딩 대기 시간에 대하여, 윈도 크기 감소는 칩 면적 및 전력 소비에 관하여 이로운, 디코딩 하드웨어의 더 작은 요구되는 클럭 레이트로 이어진다.
또한, 본 발명의 실시예의 특정한 특징 또는 양상은 수개의 구현 중 단 하나와 관련하여 개시되었을 수 있지만, 그러한 특징 또는 양상은 임의의 주어진 또는 특정한 응용에 대해 요구되고 유리할 수 있는 경우에는 다른 구현들의 하나 이상의 다른 특징 또는 양상과 결합될 수 있다. 본 출원은 여기에 논의되는 특정 실시예들의 임의의 적응 또는 변형을 포괄하도록 의도되며, 본 발명은 청구항들 및 그들의 등가물에 의해서만 제한되도록 의도된다.

Claims (24)

  1. 코드 블록을 디코딩하기 위한 반복적 디코더(iterative decoder)로서,
    각각의 디코딩 반복에서 코드 블록 또는 코드 서브-블록에 걸쳐 순방향 및 역방향 회귀를 수행하도록 구성되는 계산 유닛을 포함하되,
    제1 반복에서 제1 순방향/역방향 디코딩 방안이 이용되고, 제2 반복에서 제2 순방향/역방향 디코딩 방안이 이용되며,
    상기 제1 디코딩 방안 및 상기 제2 디코딩 방안은 순방향 및 역방향 처리의 측면에서 상이하며, 상기 제2 반복은 상기 제1 반복보다 더 높은
    반복적 디코더.
  2. 제 1 항에 있어서,
    상기 계산 유닛은 상기 제2 반복에서 순방향 또는 역방향 회귀 중 하나를 초기화하기 위해 상기 제1 반복에서 계산된 상태 메트릭 값을 이용하도록 구성되는
    반복적 디코더.
  3. 제 2 항에 있어서,
    상기 계산 유닛은 순방향 또는 역방향 회귀 중 하나의 취득 위상을 초기화하기 위해 상기 상태 메트릭 값을 이용하도록 구성되는
    반복적 디코더.
  4. 제 2 항에 있어서,
    상기 계산 유닛은 상기 제1 반복에서 순방향 회귀를 초기화하기 위해 선행하는 반복에서 계산된 상태 메트릭 값을 이용하며, 상기 제2 반복에서 역방향 회귀를 초기화하기 위해 상기 제1 반복에서 계산된 상태 메트릭 값을 이용하도록 구성되는
    반복적 디코더.
  5. 제 1 항에 있어서,
    상기 제1 순방향/역방향 디코딩 방안은, 상기 순방향 또는 역방향 회귀 중 하나를 상기 코드 블록 또는 코드 서브-블록에 걸쳐서 연속적으로 수행하며, 상기 순방향 또는 역방향 회귀 중 다른 하나를 상기 코드 블록 또는 코드 서브-블록의 복수의 윈도 섹션에 걸쳐서 불연속적으로 수행하는 것을 포함하는
    반복적 디코더.
  6. 제 1 항에 있어서,
    상기 제1 순방향/역방향 디코딩 방안은 상기 순방향 및 역방향 회귀를 상기 코드 블록 또는 코드 서브-블록에 걸쳐서 연속적으로 수행하는 것을 포함하는
    반복적 디코더.
  7. 제 1 항에 있어서,
    상기 반복적 디코더는 적어도 하나의 추가의 계산 유닛을 포함하고,
    상기 코드 블록은 적어도 제1 코드 서브-블록 및 제2 코드 서브-블록으로 구획화되며,
    각각의 계산 유닛은 상기 제1 코드 서브-블록 및 제2 코드 서브-블록 중 특정한 코드 서브-블록 상에서 순방향 및 역방향 회귀를 수행하도록 구성되는
    반복적 디코더.
  8. 제 7 항에 있어서,
    각각의 계산 유닛은 선행하는 반복에서 다른 계산 유닛에 의해 계산된 상태 메트릭 값을 이용하도록 구성되는
    반복적 디코더.
  9. 제 1 항에 있어서,
    상기 코드 블록은 터보 코드 블록인
    반복적 디코더.
  10. 코드 블록을 디코딩하기 위한 반복적 디코더로서,
    각각의 디코딩 반복에서 상기 코드 블록 또는 코드 서브-블록에 걸쳐서 순방향 및 역방향 회귀를 수행하도록 구성되는 계산 유닛 - 순방향 및 역방향 회귀의 스케줄링은 한 반복으로부터 나중의 반복으로 갈 때 변경됨 -과,
    상기 한 반복에서 계산되며 상기 나중의 반복에서 순방향 또는 역방향 회귀를 초기화하기 위해 이용되는 상태 메트릭 값이 저장되는 메모리를 포함하는
    반복적 디코더.
  11. 제 10 항에 있어서,
    순방향 및 역방향 회귀는 상기 한 반복으로부터 상기 나중의 반복으로 갈 때 교체되는
    반복적 디코더.
  12. 제 10 항에 있어서,
    순방향 및 역방향 회귀의 취득 위상의 사용은 상기 한 반복으로부터 상기 나중의 반복으로 갈 때 반전되는
    반복적 디코더.
  13. 반복에 의해 코드 블록을 디코딩하는 방법으로서,
    각각의 디코딩 반복에서 상기 코드 블록 또는 코드 서브-블록에 걸쳐서 순방향 및 역방향 회귀를 수행하는 단계와,
    제1 반복에서 제1 순방향/역방향 디코딩 방안을 이용하는 단계와,
    제2 반복에서 제2 순방향/역방향 디코딩 방안을 이용하는 단계를 포함하되, 상기 제1 및 제2 디코딩 방안은 순방향 및 역방향 처리의 측면에서 상이하며, 상기 제2 반복은 상기 제1 반복보다 더 높은
    방법.
  14. 제 13 항에 있어서,
    상기 제1 반복에서 순방향 또는 역방향 회귀 중 적어도 하나에 대해 상태 메트릭 값을 계산하는 단계와,
    상기 제2 반복에서 상기 상태 메트릭 값으로 순방향 또는 역방향 회귀 중 적어도 하나를 초기화하는 단계를 더 포함하는
    방법.
  15. 제 14 항에 있어서,
    순방향 또는 역방향 회귀 중 하나의 취득 위상은 상기 상태 메트릭 값으로 초기화되는
    방법.
  16. 제 13 항에 있어서,
    상기 제1 반복에서, 선행하는 반복에서 계산된 상태 메트릭 값을 이용하여 순방향 회귀를 초기화하는 단계와,
    상기 제2 반복에서, 상기 제1 반복에서 계산된 상태 메트릭 값을 이용하여 역방향 회귀를 초기화하는 단계를 더 포함하는
    방법.
  17. 제 13 항에 있어서,
    상기 순방향 또는 역방향 회귀 중 하나를 상기 코드 블록 또는 코드 서브-블록에 걸쳐서 연속적으로 수행하는 단계와,
    상기 순방향 또는 역방향 회귀 중 다른 하나를 상기 코드 블록 또는 코드 서브-블록의 복수의 윈도 섹션에 걸쳐서 불연속적으로 수행하는 단계를 더 포함하는
    방법.
  18. 제 13 항에 있어서,
    상기 순방향 및 상기 역방향 회귀를 상기 코드 블록 또는 상기 코드 서브-블록에 걸쳐서 연속적으로 수행하는 단계를 더 포함하는
    방법.
  19. 제 13 항에 있어서,
    상기 코드 블록을 적어도 제1 코드 서브-블록 및 제2 코드 서브-블록으로 구획화하는 단계와,
    상기 제1 코드 서브-블록 상에서 순방향 및 역방향 회귀를 수행하는 단계와,
    동시에 상기 제2 코드 서브-블록 상에서 순방향 및 역방향 회귀를 수행하는 단계를 더 포함하는
    방법.
  20. 제 13 항에 있어서,
    상기 코드 블록은 터보 코드 블록인
    방법.
  21. 반복에 의해 코드 블록을 디코딩하는 방법으로서,
    제1 디코딩 반복에서 제1 순방향/역방향 디코딩 방안에 따라 상기 코드 블록 또는 코드 서브-블록에 걸쳐서 순방향 및 역방향 회귀를 수행하는 단계와,
    상기 제1 반복에서 상태 메트릭 값을 계산하는 단계와,
    상기 상태 메트릭 값을 메모리 내에 저장하는 단계와,
    상기 저장된 상태 메트릭 값을 판독하는 단계와,
    상기 메모리로부터 판독된 상기 상태 메트릭 값을 이용하여 상기 제2 반복에서 순방향 또는 역방향 회귀를 초기화하는 단계와,
    상기 제2 디코딩 반복에서 상기 제1 디코딩 방안과는 스케줄이 다른 제2 순방향/역방향 디코딩 방안에 따라 상기 코드 블록 또는 코드 서브-블록에 걸쳐서 순방향 및 역방향 회귀를 수행하는 단계를 포함하는
    방법.
  22. 제 21 항에 있어서,
    상기 제1 반복에서 제1 디코딩 방안에 따라 상기 코드 블록 또는 코드 서브-블록에 걸쳐서 상기 순방향 및 역방향 회귀를 수행하는 단계와,
    역방향 회기와 순방향 회귀를 교체함으로써 상기 제1 디코딩 방안으로부터 제2 디코딩 방안을 도출하는 단계와,
    상기 제2 반복에서 상기 제2 디코딩 방안에 따라 상기 코드 블록에 걸쳐서 상기 순방향 및 역방향 회귀를 수행하는 단계를 더 포함하는
    방법.
  23. 제 22 항에 있어서,
    상기 제2 반복은 상기 제1 반복의 다음 반복인
    방법.
  24. 제 21 항에 있어서,
    상기 제1 반복에서, 선행하는 반복에서 계산된 상태 메트릭 값을 이용하여 순방향 회귀의 취득 위상을 초기화하는 단계와,
    상기 제2 반복에서, 상기 제1 반복에서 계산된 상기 상태 메트릭 값을 이용하여 역방향 회귀의 취득 위상을 초기화하는 단계를 더 포함하는
    방법.
KR1020120012312A 2011-02-08 2012-02-07 반복적 디코더 및 반복적 디코딩 방법 KR101323444B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/022,775 US8910029B2 (en) 2011-02-08 2011-02-08 Iterative decoder
US13/022,775 2011-02-08

Publications (2)

Publication Number Publication Date
KR20120090856A true KR20120090856A (ko) 2012-08-17
KR101323444B1 KR101323444B1 (ko) 2013-10-29

Family

ID=46547171

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120012312A KR101323444B1 (ko) 2011-02-08 2012-02-07 반복적 디코더 및 반복적 디코딩 방법

Country Status (4)

Country Link
US (1) US8910029B2 (ko)
KR (1) KR101323444B1 (ko)
CN (1) CN102638278B (ko)
DE (1) DE102012100945A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9125068B2 (en) 2010-06-04 2015-09-01 Ixia Methods, systems, and computer readable media for simulating realistic movement of user equipment in a long term evolution (LTE) network
EP2501049A1 (en) * 2011-03-14 2012-09-19 Commissariat à l'Énergie Atomique et aux Énergies Alternatives Trellis state based stopping criterion for turbodecoding
US8903027B1 (en) 2011-06-27 2014-12-02 Xilinx, Inc. Detector for a multiple-antenna receiver
US20130142057A1 (en) * 2011-12-01 2013-06-06 Broadcom Corporation Control Channel Acquisition
US8855070B2 (en) 2011-12-14 2014-10-07 Ixia Methods, systems, and computer readable media for improved long term evolution (LTE) hybrid automatic repeat request (HARQ) processing
US9154979B2 (en) 2011-12-14 2015-10-06 Ixia Scalable architecture for long term evolution (LTE) multiple user equipment (multi-UE) simulation
US9204325B2 (en) 2011-12-20 2015-12-01 Ixia Methods, systems, and computer readable media for reducing the impact of false downlink control information (DCI) detection in long term evolution (LTE) physical downlink control channel (PDCCH) data
US9071995B2 (en) 2012-01-17 2015-06-30 Ixia Methods, systems, and computer readable media for long term evolution (LTE) uplink data processing
US8908535B2 (en) 2012-02-10 2014-12-09 Ixia Methods, traffic simulators, and computer readable media for validating long term evolution (LTE) code blocks and transport blocks
US8724498B2 (en) 2012-02-14 2014-05-13 Ixia Methods, systems, and computer readable media for performing long term evolution (LTE) channel delineation
US8892829B2 (en) 2012-02-29 2014-11-18 Ixia Methods, systems, and computer readable media for integrated sub-block interleaving and rate matching
US8738985B2 (en) * 2012-03-28 2014-05-27 Ixia Methods, systems, and computer readable media for dynamically controlling a turbo decoding process in a long term evolution (LTE) multi-user equipment (UE) traffic simulator
US9131000B2 (en) 2012-04-13 2015-09-08 Ixia Methods, systems, and computer readable media for heuristics-based adaptive protocol parsing
US8848842B2 (en) * 2012-08-16 2014-09-30 Xilinx, Inc. Recursion unit scheduling
WO2014089830A1 (en) * 2012-12-14 2014-06-19 Nokia Corporation Methods and apparatus for decoding
US9325351B2 (en) * 2013-03-13 2016-04-26 Mediatek Singapore Pte. Ltd. Adaptive multi-core, multi-direction turbo decoder and related decoding method thereof
US9198065B2 (en) 2013-03-15 2015-11-24 Ixia Methods, systems, and computer readable media for utilizing adaptive symbol processing in a multiple user equipment (multi-UE) simulator
MX2019004072A (es) * 2016-10-12 2019-06-10 Guangdong Oppo Mobile Telecommunications Corp Ltd Metodo para la transmision de datos, dispositivo receptor final y dispositivo de transmision final.
CN108847914B (zh) * 2018-03-23 2021-03-23 中国人民解放军战略支援部队信息工程大学 一种循环迭代协同信号处理方法及装置
CN109379088B (zh) * 2018-12-13 2022-03-08 浙江天则通信技术有限公司 一种并行Turbo码迭代译码的方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020021770A1 (en) 2000-05-03 2002-02-21 Beerel Peter A. Reduced-latency soft-in/soft-out module
KR100390416B1 (ko) * 2000-10-16 2003-07-07 엘지전자 주식회사 터보 디코딩 방법
US7200799B2 (en) * 2001-04-30 2007-04-03 Regents Of The University Of Minnesota Area efficient parallel turbo decoding
US20030101402A1 (en) * 2001-10-25 2003-05-29 Cute Ltd. Hard-output iterative decoder
US7346833B2 (en) * 2002-11-05 2008-03-18 Analog Devices, Inc. Reduced complexity turbo decoding scheme
ATE400089T1 (de) * 2003-12-22 2008-07-15 Koninkl Philips Electronics Nv Siso-decoder mit subblockverarbeitung und auf subblock basierendem stoppkriterium
KR101066287B1 (ko) * 2004-01-20 2011-09-20 삼성전자주식회사 이동통신시스템에서 맵 방식을 이용하여 디코딩을 수행하는 장치 및 방법
JP2006115145A (ja) 2004-10-14 2006-04-27 Nec Electronics Corp 復号装置及び復号方法
KR20060040789A (ko) 2004-11-05 2006-05-10 에스케이 텔레콤주식회사 터보 부호의 복호화 장치 및 방법
EP1786109A1 (en) * 2005-11-15 2007-05-16 STMicroelectronics N.V. Block encoding and decoding method and apparatus, with controllable decoding latency
CN101834618B (zh) * 2009-03-13 2013-03-20 富士通株式会社 Turbo解码方法和Turbo解码器

Also Published As

Publication number Publication date
CN102638278B (zh) 2017-04-26
DE102012100945A1 (de) 2012-08-09
CN102638278A (zh) 2012-08-15
US20120204081A1 (en) 2012-08-09
US8910029B2 (en) 2014-12-09
KR101323444B1 (ko) 2013-10-29

Similar Documents

Publication Publication Date Title
KR101323444B1 (ko) 반복적 디코더 및 반복적 디코딩 방법
JP5479580B2 (ja) Lteにおける並列turboデコーディングの方法及び装置
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
US9048877B2 (en) Turbo code parallel interleaver and parallel interleaving method thereof
KR20080098391A (ko) 양방향 슬라이딩 윈도우 아키텍처를 갖는 map 디코더
JP4227481B2 (ja) 復号装置および復号方法
US8112698B2 (en) High speed turbo codes decoder for 3G using pipelined SISO Log-MAP decoders architecture
JP5700035B2 (ja) 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
US8793561B2 (en) Iterative decoding of signals received over a noisy channel using forward and backward recursions with warm-up initialization
US20090172495A1 (en) Methods and Apparatuses for Parallel Decoding and Data Processing of Turbo Codes
JP2004343716A (ja) 畳み込み符号化信号の伝送形式をブラインド検出する方法および復号器
WO2009151481A2 (en) Methods and apparatus for progarammable decoding of a plurality of code types
Mahdavi et al. Spatially coupled serially concatenated codes: Performance evaluation and VLSI design tradeoffs
GB2403106A (en) a turbo type decoder which performs decoding iterations on sub-blocks to improve convergence
Huang et al. A high speed turbo decoder implementation for CPU-based SDR system
Shao et al. Early stopping turbo decoders: a high-throughput, low-energy bit-level approach and implementation
US9325351B2 (en) Adaptive multi-core, multi-direction turbo decoder and related decoding method thereof
Lin et al. Efficient highly-parallel turbo decoder for 3GPP LTE-Advanced
US7917834B2 (en) Apparatus and method for computing LLR
Ambat et al. FPGA implementation of an efficient high speed max-log-map decoder
Ljunger Turbo decoder with early stopping criteria
Raymond et al. Design and VLSI implementation of a high throughput turbo decoder
US9647798B2 (en) Decoding method using dynamic scaler factor
Madhukumar et al. Application of Fixed Point Turbo Decoding Algorithm for Throughput Enhancement of SISO Parallel Advanced LTE Turbo Decoders.
Bahirgonde et al. BER Analysis of Turbo Decoding Algorithms

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee