KR100369422B1 - 콘벌루션 코드용 소프트 출력 디코더 - Google Patents

콘벌루션 코드용 소프트 출력 디코더 Download PDF

Info

Publication number
KR100369422B1
KR100369422B1 KR10-2001-0006371A KR20010006371A KR100369422B1 KR 100369422 B1 KR100369422 B1 KR 100369422B1 KR 20010006371 A KR20010006371 A KR 20010006371A KR 100369422 B1 KR100369422 B1 KR 100369422B1
Authority
KR
South Korea
Prior art keywords
window
return
state
trellis
backward
Prior art date
Application number
KR10-2001-0006371A
Other languages
English (en)
Other versions
KR20010082093A (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 KR20010082093A publication Critical patent/KR20010082093A/ko
Application granted granted Critical
Publication of KR100369422B1 publication Critical patent/KR100369422B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • 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
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/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/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/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • 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/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Landscapes

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

Abstract

콘벌루션 코드용 소프트 출력 디코더
길이 L의 윈도우로 분할된 블록 길이 N의 트렐리스로 표현된 신호들을 최적으로 디코딩하는 방법은 블록의 끝에 있는 점 N부터 역으로 윈도우의 끝으로의 후방 복귀를 디코딩하여 결정된 상태 메트릭을 각 윈도우의 단부에 저장하는 단계(204)를 포함한다. 그 다음 단계는, 기억된 기지의 후방 복귀 상태 메트릭의 집합을 정의하기 위해 윈도우의 단부에서의 기지의 상태에서 역으로 윈도우의 시작부로의 후방 복귀을 사용하여 윈도우를 디코딩하는 단계(208)를 포함한다. 그 다음 단계는, 윈도우의 초기에서의 기지 상태에서 시작하는 전방 복귀를 사용하여 디코딩하고 전방으로 이동하는 단계(210)를 포함한다. 그 다음 단계는, 기억된 후방 복귀 상태 메트릭 및 각 상태에서의 분기 메트릭을 사용하여 전방 복귀의 각 상태에서 소프트 출력을 계산하고 그 단계에서의 소프트 출력을 출력하는 단계(212)를 포함한다.

Description

콘벌루션 코드용 소프트 출력 디코더{SOFT OUTPUT DECODER FOR CONVOLUTIONAL CODES}
관련 출원의 상호 참조
본 출원은 미국 특허출원 제09/502,132호(발명자: Classon, Schaffner, Desai, Baker, Friend), 제09/501,922호(발명자: Classon, Schaffner) 및 제09/501,883호(발명자: Classon, Schaffner, Desai)와 연관이 있다. 이 관련 출원은 본 출원과 동일자로 출원되었으며, 본 출원의 양수인에게 양도된 것으로서, 여기에 그 전체를 참고 문헌으로 포함한다.
발명의 분야
본 발명은 일반적으로 통신 시스템에 관한 것으로서, 보다 상세하게는 콘벌루션 코드(convolutional code) 통신 시스템의 수신기에 사용하기 위한 소프트 출력 디코더(soft output decoder)에 관한 것이다.
발명의 배경
콘벌루션 코드는 디지털 통신 시스템에서 전송 정보를 에러로부터 보호하기 위해 종종 사용된다. 송신기에서, 발신 코드 벡터(outgoing code vector)는 인코더의 제한 길이(constraint length)로 복잡도가 정해지는 트렐리스 다이어그램을 사용하여 기술된다. 제한 길이가 증가함에 따라 계산의 복잡도도 중가하지만, 코딩의 무결성(robustness)도 제한 길이에 따라 증대된다.
수신기에서는, 공지된 비터비 디코더(Viterbi decoder)와 같은 실제의 소프트-결정(soft-decision) 디코더는 최우 전송 코드 벡터(maximum likelihood transmitted code vector)에 대한 최적 검색을 수행하기 위해 트렐리스 구조를 사용한다. 그러나, 비터비 알고리즘은 계산이 복잡하고, 그 복잡도는 제한 길이가 증가함에 따라 지수함수적으로 증가된다. 이것은 기본적으로 비터비 디코더는 제한 길이가 긴 콘벌루션 코드에 대해서 상당량의 메모리 및 처리 능력을 필요로 함을 의미한다.
DS-CDMA(Direct Sequence Code Division Multiple Access) 표준 IS-95 및 GSM(Global System for Mobile Communications)와 같은 각종 통신 시스템에 대한 코더는 이와같이 긴 제한 길이를 가지고 있다. 예를 들면, GSM 하프 레이트 제한 길이 K = 7 이고, IS-95 제한 길이 K = 9 이다.
비터비 디코더의 다른 단점으로는, 전송 도중에 에러의 실제 발생 횟수에 상관없이 각 코드 벡터에 대해 일정 횟수의 계산을 수행해야만 한다는 것이다. 이와 같이, 비터비 디코더는 에러가 많은 수신 신호와 동일 횟수의 계산을 하여 전송 에러가 적거나 또는 전혀 없는 수신 신호를 처리하게 된다.
보다 최근에는, 종래의 코딩 기술보다 성능이 우수한 터보 코드(turbo code)가 개발되었다. 터보 코드는 일반적으로 2개 이상의 콘벌루션 코드와 터보 인터리버(turbo interleaver)로 이루어져 있다. 터보 디코딩은 반복적(iterative)이며, 소프트 출력 디코더를 사용하여 개개의 콘벌루션 코드를 디코드하게 된다. 소프트 출력 디코더는 소프트 코드 디코더가 다른 콘벌루션 코드를 디코드하는데 도움이 되는 각 비트 위치에 관한 정보를 제공한다. 소프트 출력 디코더에서는 통상 소프트 출력을 결정하는데 전후방 디코딩(backward and forward decoding)을 필요로 하는 MAP(maximuma posteriori) 디코더를 사용한다. 그러나, 메모리, 프로세싱 및 숫자상의 트레이드오프로 인해, MAP 디코딩은 통상 차선책으로 제한된다. 이들 변형방식 모두에서는 블럭에 대해 전후방 디코딩 양자를 필요로 한다.
3GPP(third generation partnership project for wireless systems)와 같은 장래의 규격에 있어서, 블럭 길이 N = 5120 인 8-상태 터보 코드는 40960 워드의 중간 기억 장치(intermediate storage)를 필요로 하며, 이는 바람직하지 않을 수 있다. 장래의 시스템(프레임이 보다 크고 상태의 수가 보다 많음)은 훨씬 더 많은 메모리를 요구한다. 비교를 해보면, N=5120이고 8-상태 트렐리스에 대해 소프트 출력을 하지 못하는 비터비 디코더는 100 워드 이하의 중간 기억 장치를 필요로 한다.
종래 기술의 터보 디코더 및 MAP 디코더와 같은 정도의 제한이 없이 콘벌루션 코드를 디코드하기 위한 전체 메모리 및 처리 요건들을 완화하는 소프트 출력디코더가 필요하다.
도 1은 제1 종래 기술의 소프트 출력 디코더 기술에 대한 트렐리스 다이어그램(trellis diagram).
도 2는 제2 종래 기술의 소프트 출력 디코더 기술에 대한 트렐리스 다이어그램.
도 3은 제3 종래 기술의 소프트 출력 디코더 기술에 대한 트렐리스 다이어그램.
도 4는 도3의 다이어그램의 그래픽 확대도.
도 5는 도 3의 다이어그램의 다른 그래픽 확대도.
도 6은 본 발명에 따른 소프트 출력 디코더 기술에 대한 트렐리스 다이어그램.
도 7은 본 발명에 따른 소프트 출력 디코더의 블럭도.
도 8은 도 6의 다이어그램의 그래픽 확대도.
도 9는 본 발명에 따른 소프트 출력 디코더 방법의 플로우챠트.
<도면의 주요 부분에 대한 부호의 설명>
100: 무선 전화
102: 안테나
104: 수신기
106: 복조기
108: 프레임 버퍼
110: 전방 복귀 프로세서
112: 후방 복귀 프로세서(112)
본 발명은 종래 기술의 터보 디코더의 메모리 요건을 대폭 완화시켰으나, 비터비 디코더보다는 약간의 계산만 증가할 뿐이다. 게다가, 본 발명은 종래 기술의 터보 디코더 및 MAP 디코더의 제한을 최소화하였다.
일반적으로, 블럭 코드, 콘벌루션 코드, 터보 코드 및 다른 코드에 대해 도 1에서 트렐리스로 그래픽 표시하고 있다. MAP(maximuma posteriori) 타입 디코더(로그-MAP(log-MAP), MAP, 최대-로그-MAP(max-log-MAP), 상수-로그-MAP(constant-log-MAP))은 종래 기술에서와 같이 트렐리스에 대해 일반화된 전방 및 후방 비터비 복귀을 이용하여 소프트 출력을 제공한다. MAP 디코더는 모든 수신된 비트에 근거하여 각 정보 비트에 대한 디코드된 비트 에러 확률을 최소화한다. 종래 기술의 일반적인 MAP 디코더는 디코딩에 사용하기 위한 메모리를 필요로 한다.
인코드된 시퀀스의 마르코프 특성(Markov nature)(이전의 상태가 장래의 상태 또는 장래의 출력 브랜치에 영향을 주지 않음) 때문에, MAP 비트 확률은 과거 상태(현재 상태에 대한 트렐리스의 시작), 현재 상태(현재값에 대한 브랜치 메트릭) 및 장래 상태(현재값에 대한 트렐리스의 끝)로 분할될 수 있다. 보다 상세하게는, MAP 디코더는 현재 상태까지의 전방 및 후방 복귀를 수행하며, 현재의 브랜치 메트릭과 함께 과거 및 장래의 확률을 사용하여 출력 결정을 생성한다. 하드 및 소프트 출력 결정을 제공하는 원리는 기술 분야에 공지되어 있고, 상기한 디코딩법의 몇가지 변형례가 있다.
터보 코드용으로 고려되는 대부분의 소프트 입력-소프트 출력 SISO 디코더는 L.R. Bahl, J. Cocke, F. Jelinek, 및 J. Raviv의 논문 "Optical Decoding of Linear Codes for Minimizing Symbol Error Rate", IEEE Transactions on Information Theory, Vol. IT-20, 1974년 3월, 284-287 페이지에 있는 종래 기술의 MAP 알고리즘(BCJR 알고리즘)에 근거하고 있다. 도 1은 터보 코드에 사용될 수 있는 8-상태 콘벌루션 코드에 대한 이 알고리즘의 트렐리스 다이어그램을 도시한 것이다. 알 수 있듯이, 터보 디코더는 인터리버와 구성 코드로 이루어져 있지만, 이 구성 코드는 통상은 체계적인 콘벌루션 코드(systematic convolutional code)이지만, 블럭 코드일 수도 있다. MAP 알고리즘은 수신된 시퀀스가 주어졌을 때 정보 비트에 대한 에러의 확률을 최소화할 뿐만 아니라, 수신된 시퀀스가 주어졌을 때 정보 비트가 1 또는 0일 확률도 제공한다. BCJR 알고리즘은 각 비트 위치에 대한 소프트 출력 결정을 제공하며, 이때 블럭내에서의 소프트 입력의 영향은 과거(이전의 소프트 입력), 현재의 소프트 입력 및 장래(나중의 소프트 입력)으로부터의 영향으로 나누어진다. 이 디코더 알고리즘은 각각의 트렐리스 섹션(스테이지)에 대한 최적 소프트 출력에 도달하는데 트렐리스상에서의 일반화된 전방 및 후방 비터비 복귀를 필요로 한다. 이들 아 포스테리오리 확률 또는 보다 통상적으로는 확률의 로그-확률비(LLR, log-likelihood ratio)이 반복적 터보 디코딩에서 SISO 디코딩 단계들간에 전달된다. 정보 비트 ut에 대한 LLR은 디코딩된 시퀀스내의 모든 비트(t=1 내지 N)에 대해 수학식 1로 주어진다.
수학식 1에서, 수신된 시퀀스가 주어졌을 때 디코드된 비트가 트렐리스에서 1 (또는 0)일 확률은 그 코드의 마르코프 특성에 기인한 항들의 곱으로 이루어져 있다. 마르코프 특성이라는 것은 과거 및 미래가 현재와는 독립적이라는 것이다. 현재, γt(n,m)은 시간 t-1에서의 이전의 상태가 n일 때 시각 t에서 상태 m에 있고 심볼 yt를 생성할 확률이다. 이 현재는 브랜치 메트릭의 함수 기능을 한다. 과거, αt(m)은 수신된 시퀀스 {y1,...,yt}에서 시각 t에서 상태 m에 있을 확률이며, 미래, βt(m)은 시각 t에서 상태 m으로부터 수신된 시퀀스 {yt+1,...,yN}를 발생할 확률이다. 확률 αt(m)은 수학식 2에서와 같이 αt-1(m)과 γt(n,m)의 함수로 표현될 수 있으며, 전방 복귀(forward recursion)라고 한다.
여기서, M은 상태의 수이다. βt+1(n)과 γt(n,m)로부터 확률 βt(n)을 계산하기 위한 역방 또는 후방 복귀는 수학식 3과 같이 된다.
수학식 1에서 전체 아 포스테리오리 확률은 ut=1(또는 0)에 대응하는 트렐리스 B1(B0)에서의 브랜치에 걸쳐 합산하여 계산된다.
수학식 1에서 LLR은 시각 t에서 이용가능하게 되기 위해서 전방 및 후방 복귀 양자를 필요로 한다. 이 요건을 충족시키기 위한 BCJR법은 역방 복귀 전체를 계산하여 기억시키고, αt-1과 βt를 사용하여 t=1에서 t=N까지 αt(m)과 Λt를 반복 계산하는 것이다.
이 디코더의 단점은 N 스테이지의 전체 블럭을 처리하기 이전에 먼저 기억시켜야만 한다는 것이다. 이것은 많은 메모리(N 섹션 × M 상태 × 상태 당 비트 수)를 필요로 할 뿐만 아니라, 어떤 정보도 출력가능하게 되기 전에 길이 N의 신호 지연을 일으킨다. W-CDMA 시스템(N∼5000, M=8, 13비트)에서, 필요한 메모리는 약 0.5M비트이다. CDMA 2000 시스템에서, N은 대략 20000으로서 약 2M비트의 메모리가 필요하게 된다. 시퀀스 길이가 작은 경우, 메모리 활용은 일반적으로 문제가 되지 않는다. 그러나, 터보 코드가 최상의 성능을 발휘하는 경우와 같이 N이 큰 경우에는, 메모리 활용이 중요하게 된다.
복잡도의 면에서, BCJR법은 역방 복귀의 경우 NM번의 상태 갱신(트렐리스 섹션당 M번의 상태 갱신, 코드내에 N개의 트렐리스 섹션)을 필요로 하며, 최적 성능을 제공한다. 실제로는, 후방 복귀는 전체 블럭에 대해 프로세서에 의해 수행되어(도 1에 도시됨) 메모리에 기억된다. 그 다음에, 전방 복귀가 프로세서에 의해 수행되고, 그 결과는 현재 상태 및 기억된 미래 상태와 같이 사용되어 각 스테이지에 대한 소프트 출력 결정에 도달하게 된다. 이 경우, 프로세서는 각 스테이지에서 2번 동작하게 되며, 한번은 후방 복귀 상태를 기억시키기 위해, 한번은 후방 복귀 처리 동안에 동작한다(처리 능력(throughput) = 1/2).
메모리 활용 문제를 해결하기 위하여, 슬라이딩 윈도우법 및 유사한 변형방법들이 개발되었다. S. Benedetto, D. Divsalar, G.Montorsi, 및 F. Pollara의 논문 "Algorithm for continuous decoding of turbo codes," Electronics Letters, Vol. 32, 1996년 2월 15일, 314-315페이지에 기술된 슬라이딩 윈도우 기술은, 도 2(이하 도면에서, 실선 화살표는 복귀는 있지만 기억 장치는 없는 출력을 나타내고, 점선 화살표는 출력도 없고 기억장치도 없는 학습 기간(learning period)을 나타내며, 속이 빈 화살표는 출력이 없는 기억된 복귀를 나타내는데, 화살표의 방향은 전방 또는 후방 복귀를 나타냄)에 나타낸 바와 같다. 시각 t+P에서의 모든 상태의 발생 확률이 동일하다(또는 알 수 없다)라는 가정을 역방 복귀에도 사용한다. 이 가정을 사용하기 위해, 학습 기간 P는 최적에 가까운 성능을 제공하기 위하여 구성 코드의 제한 길이 몇배가 되어야만 한다. 학습 기간을 너무 작게 하면 눈에 띄게 성능 열화를 야기할 수 있으며, 이는 종래의 비터비 알고리즘에서의 '유한' 회귀(finite traceback)의 효과와 유사하다.
슬라이딩 윈도우 기술은 메모리를 전혀 필요로 하지 않지만, 계산이 복잡하다. 상세히 말하면, 후방 복귀 전체를 수행하여 기억시키지 것이 아니라, 단지 후방 복귀의 일부만을 수행(기억하지 않음)하여 각 상태를 결정하게 된다. 각각의 현재 상태에 대해, 이 알고리즘은 알 수 없는 초기 상태를 가지고 현재 상태에서 학습 기간 P만큼 떨어진 미래 복귀를 초기화한다. 미래 확률은 알 수 없는 미래의 한 시점부터 후방으로 계산되며, 알고 있는 트렐리스의 끝부터 계산하는 것은 아니다. 길이 P(학습 기간)는 부분적인 후방 복귀가 현재 상태에 도달할 시점에서 미래 확률이 거의 정확하게 되도록 설정된다. P는 코드 레이트 및 코드의 제한 길이와 예기되는 채널 조건에 따라 달라진다. 예를 들어, 1/2 레이트 콘벌루션 코드를 갖는 8-상태 디코더의 경우, P는 일반적으로 16 내지 32이며, 여기서 P는 제한 길이의 배수이다. 이 디코더의 단점은 부분 후방 복귀가 동일 확률(알 수 없는 상태)로 시작되고, 그것이 현재의 윈도우에 도달할 때까지 반복이 허용된다는 것이다. 이것은 슬라이딩 윈도우가 진정한 MAP 성능에 열화를 초래하기 때문에 차선책의 알고리즘이며, 종래의 비터비 알고리즘에서의 유한 회귀와 유사한 효과를 갖게 되어, 디코드된 비트 에러의 확률을 증가시킨다. 또한, 프로세서는 각 상태에서 P번(처리 능력 1/P) 동작하고, P의 출력 지연을 갖는다. 게다가, 이 알고리즘은 P배의 복잡도를 요구하며, 이 복잡도는 더 많은 처리를 부가함으로써만 감축될 수 있다.
슬라이딩 윈도우법은 다음과 같이 요약될 수 있다. 즉, t=1 내지 N인 경우,시각 t+P에서 시작하여 시각 t까지 역방 복귀를 계산하고, αt-1(m) 및 βt로부터 αt(m) 및 Λt를 계산한다. 슬라이딩 윈도우법은 메모리 요건을 BCJR법에서 필요한 NM에서 복귀에 필요한 적은량의 메모리로 감축시킨다. 더블 버퍼링을 가정하면, 메모리 양은 단지 2M이며, 분석에서는 무시할 수 있을 정도이다.
그러나, 이 메모리 절감을 달성하기 위해서는, 후방 복귀를 위한 계산의 복잡도가 인자 P만큼 증가하게 된다. 슬라이딩 윈도우법은 또한 '유한' 윈도우 사이즈로 인해 차선책이 된다.
비터비 등의 미국 특허 제5,933,462호에 기술된 종래 기술의 다른 디코더(S. Pietrobon 및 S. Barbulescu의 논문 "A Simplification of the Modified Bahl et al. Decoding Algorithm for Systematic Convolutional Codes", Int. Symp. On Inform. Theory and its Applications, 오스트레일리아 시드니, 1073-1077 페이지, 1994년 11월, 1996년 1월 4일 개정, 및 S. Pietrobon의 논문 "Efficient Implementation of Continuous MAP Decoders and a Synchronisation Technique for Turbo Decoders," Int. Symp. On Inform. Theory and its Applications, Victoria, B.C., 카나다, 586-589페이지, 1996년 9월)에서는 다른 슬라이딩 윈도우 기술에 대해 개시하고 있으며, 이것은 도 3에 도시하였다.
비터비 슬라이딩 윈도우법은 종래 기술의 슬라이딩 윈도우법의 계산의 복잡도가 크게 증가하는 것을 블럭 단위로 처리함으로써 절감하고 있다. 역방 복귀는 시각 t+2L에서 시작되며, 역방 복귀 값은 시각 t+L에서 시각 t까지 기억된다. 그다음에, 전방 복귀 및 출력 확률 계산이 시각 t에서 시각 t+L까지의 블럭에 걸쳐 수행된다. 메모리는 NM에서 LM으로 절감되며, 계산의 복잡도만 2배로 된다. 알 수 없는 상태에서 복귀를 시작하는 것의 주요 관점은 슬라이딩 윈도우 기술에 대한 것과 동일하다.
이 기술은 얼마간의 메모리가 필요하며, 아직도 계산이 복잡하다. 이 디코더는 한번에 한개의 심볼이 아닌 블럭 단위로 전방으로 슬라이드하는 윈도우를 제공함으로써 상기한 슬라이딩 윈도우 기술과는 다르다. 상세히 말하면, 슬라이딩 윈도우는 상기한 학습 기간 P와 같은 길이 L을 갖는 슬라이딩 윈도우가 정의된다. 또한, L은 트렐리스 총 길이 N의 배수이고, 윈도우는 트렐리스의 시작에서 끝까지 길이 L의 스텝으로 슬라이드된다. 이와 같이, 트렐리스 전체를 기억시켰던 종래 기술의 디코더에서 필요한 메모리가 N에서 N/L로 감축되었다(일반적으로 L=32일 때, CDMA2000 및 W-CDMA 시스템의 경우 3k비트).
이 디코더는 또한 알 수 없는 미래 상태로부터 시작하는 학습 기간을 사용하며, 따라서 상기한 바와 같이 차선책이 된다. 상세히 말하면, 전방 복귀는 첫번째 윈도우 L의 시작점의 알고 있는 상태에서 시작하여 첫번째 윈도우의 길이(L)에 걸쳐 프로세서에 의해 수행된다. 이들 전방 복귀 상태들은 기억된다. 프로세서는 그 다음에 이 전방 복귀가 시작된 곳에서 2L만큼 떨어진 지점에서 시작하여 알 수 없는 상태부터 후방 복귀를 수행하여 첫번째 윈도우의 끝의 알고 있는 상태를 정의하게 된다. 그 다음에, 프로세서는 첫번째 윈도우의 끝의 알고 있는 상태에서 시작하여 현재 상태까지 제2의 후방 복귀를 수행하며, 여기서 후방 복귀 및 기억된전방 복귀로부터의 정보를 사용하여 소프트 출력을 생성하게 된다. 첫번째 윈도우의 모든 출력들이 결정되면, 윈도우는 L만큼 전방으로 슬라이드하고, 프로세스는 첫번째 윈도우의 끝에서 결정된 상태부터 시작하여 반복된다.
이 디코더의 단점은 학습 기간 L에 걸친 제1의 후방 복귀가 동일한 확률(알 수 없는 상태)로 시작되고, 길이 L에 걸쳐 반복될 수 있어 상기한 것과 같이 차선책이 된다. 또한, 전방 및 후방 프로세서를 병행하여 동작시켜 1/2의 처리 능력을 달성할 수 있지만, 프로세서는 각 상태에서 3번씩 동작하게 된다. 디코더는 2L의 출력 지연을 발생한다. 게다가, 후방 복귀는 2배의 복잡도를 요구하며, 이 복잡도는 더 많은 처리를 부가함으로써만 감축(처리 능력이 증가)될 수 있는 것이다. 게다가, 이 디코더는 역순으로 소프트 출력을 발생하며, 이로써 출력되기 이전에 보조 메모리에 버퍼링될 필요가 있게 된다.
도 4는 도 3의 그래프의 확대도로서, 시간 성분이 부가되어 있다. 동작에 있어서, 시각 0에서는 전방 프로세서는 위치 0에서 L까지 첫번째 윈도우에 걸쳐 전방 복귀를 수행하고, 그 정보를 기억하는 반면, 동일 기간에 걸쳐 후방 프로세서는 위치 2L부터 L까지 후방 복귀를 수행하여 시각 L에 위치 L에서 첫번째 윈도우의 끝의 알고 있는 상태를 정의하게 된다. 그 후에, 제2의 후방 복귀가 위치 L에서 0까지에 걸쳐 시각 L에서 2L까지 동작하여 첫번째 윈도우에 걸쳐 소프트 출력을 정의하게 된다. 이 때, 소프트 결정은 역전되어 순서대로(명확하게 2L의 지연 후에 발생함) 출력되고, 메모리는 클리어되며, 윈도우 위치는 L의 길이만큼 전방으로 슬라이드되고, 프로세스는 반복된다. 그 대신에, 후방 복귀 프로세서 및 메모리를 부가하면, 처리 능력이 증대될 수 있다.
도 5는 도 3의 그래프에 대한 또다른 결과를 나타낸 것으로서, 여기에는 부가의 후방 프로세서를 사용하고 있다. 그 동작은, 시각 0에서 전방 프로세서는 위치 0에서 L까지 첫번째 윈도우에 걸쳐 전방 복귀를 수행하고 그 정보를 기억시키는 반면, 동일 기간에 걸쳐 후방 프로세서는 위치 2L부터 L까지 후방 복귀를 수행하여 시각 L에 위치 L에 있는 첫번째 윈도우의 끝의 알고 있는 상태를 정의하게 된다. 그 후에, 제2의 후방 복귀가 위치 L에서 0까지에 걸쳐 시각 L부터 2L까지 동작하여 첫번째 윈도우에 걸쳐 소프트 출력을 정의하게 된다. 이와 병행하여, 전방 및 부가의 후방 프로세서는 제2 윈도우(위치 L부터 2L까지)의 정보를 처리하기 시작함으로써 제2 사이클을 시작한다. 시각 2L에서, 제1 윈도우에 대한 소프트 결정이 출력되는 반면, 제2 윈도우에 대한 전방 복귀 및 후방 학습 기간은 이미 종료되었다. 그 다음에, 제2 윈도우에 대한 두번째 후방 복귀를 수행하여 제2 윈도우의 소프트 출력을 얻게 된다. 여기서 알 수 있는 바와 같이, 이 기술은 처리 능력(throughput)을 배가시킨다. 첫번째 윈도우에 대한 전방 복귀의 정보를 사용하면서 두번째 윈도우에 대한 전방 복귀를 저장하는데는 2배의 메모리가 필요하다.
상기한 디코더(특히 도 4 및 도 5의 것)는 몇가지 문제점이 있다. 첫째로, 가장 중요한 것으로는, 소프트 출력이 무순서로 생성되므로 출력되기 이전에 순서를 바꿔야만 한다. 이렇게 하기 위해서는, 부가의 버퍼 메모리가 필요하며, 출력의 순서를 바꾸기 위해서 부가의 지연이 발생된다. 둘째로, 상기한 디코더는 차선책이다.
본 발명은 이러한 문제점들을 신규한 방식으로 해결하고 있다. 도 6은 본 발명에 따라 콘벌루션 디코딩을 사용하는 트렐리스 다이어그램을 도시한 것이다. 트렐리스 코드는 도 7에 간단히 도시한 통신 시스템에서 길이 N의 트렐리스로 나타낸 콘벌루션 코딩된 신호 시퀀스로부터 얻어진다. 무선 전화(100)에서는 기술 분야에서 공지된 바와 같이, 신호가 안테나(102)에서 수신기(104) 및 복조기(106)를 지나가게 된다. 이 신호는 프레임 버퍼(106)에 로드된다. 전방 복귀 프로세서(110) 및 후방 복귀 프로세서(112)는 블럭에 대해 작용한다.
본 발명은 초기화를 위해 기지 상태를 사용하는 모든 복귀가 각 윈도우에 대해 수행되는 최적의 기술이지만, 종래 기술의 슬라이딩 윈도우 방법에서 사용되는 미지의 값은 관련된 학습 기간이라는 점에서, 본 발명은 도 3 내지 도 5의 이미 설명한 슬라이딩 윈도우 기술과 다르다. 본 발명은 길이 N의 블럭을 X개의 길이 L의 섹션으로 분할하지만, 모든 섹션의 길이가 같을 필요는 없으며, 설명의 목적상 길이가 같은 것으로 가정한다. 종래 기술에서와 같이, 지점 0 및 N의 상태는 기지이다. 본 발명은 결정된 N에서 L까지의 블럭 길이에 걸쳐 제1의 후방 복귀를 제공하여 각 윈도우 끝의 상태 메트릭을 정의하는 특정 시각에서의 역방 복귀를 저장한다. 일반성을 상실하지 않고, 역방 값의 N/L이 βN부터 시작하여 균일하게 저장된다. 저장된 β끝점을 갖는 각 인덱스 그룹이 윈도우로서 정의되기 때문에, 트렐리스는 기지의 β끝점을 갖는 N/L개의 섹션으로 분리된다.
그 후에, 후방 복귀가 각 윈도우의 끝에 있는 기지의 β값 상태부터 L-1개의미지의 상태 메트릭에 대해 수행되고 저장된 다음에, 전방 복귀를 하여 소프트 출력이 제순서로 발생되므로 전체 윈도우가 지나가기를 기다리지 않고 즉각적으로 출력될 수 있다. 특히, 슬라이딩 윈도우는 길이 L을 가지고 전체 트렐리스 길이 N이 L의 배수와 같도록 정의되어 윈도우는 길이 L씩 트렐리스의 시작부터 끝까지 슬라이드한다. 본 발명은 종래 기술의 슬라이딩 윈도우 방법과는 달리 모든 복귀가 기지의 상태로부터 시작하기 때문에 최적이다.
상세히 설명하면, 후방 복귀(일반화된 비터비 알고리즘을 사용)가 블럭의 기지의 종단 상태부터 시작하여 첫번째 윈도우의 끝(첫번째 윈도우의 시작은 이미 블럭의 시작이므로 기지임)까지 후방 프로세서(112)에 의해 수행된다. 각 윈도우의 끝에 있는 상태 메트릭만 저장된다. 이들 메트릭은 블럭의 기지의 종단 상태로부터 도출되기 때문에 최적값이 된다. 그 다음에 후방 복귀는 첫번째 윈도우의 끝에서의 기지 상태부터 시작하여 역으로 윈도우의 시작부까지의 후방 프로세서(112)에 의해 수행되어 메모리(114)에 저장된다. 전방 복귀 프로세서(110)는 그 다음에 윈도우의 시작점의 기지의 상태부터 윈도의 길이에 걸쳐 전방 복귀를 수행하고 β 및 γ를 사용하여 αt(m) 및 Λt를 계산한다. 이와 병행하여, 디코더(116)는 소프트 출력 결정을 출력하는데, 이 결정은 메모리(114)내의 기지의 후방 복귀, 전방 복귀 프로세서(110)로부터의 전방 복귀 상태 메트릭으로부터의 정보, 및 현재의 분기 메트릭을 사용하여 발생된다.
첫번째 윈도우의 끝에서, 윈도우는 L만큼 전방으로 슬라이드하고, 그 윈도우및 후속의 각 윈도우에 대해 전체 블럭이 디코드될 때까지 프로세스를 반복한다. 양호한 실시예에서는, 전방 복귀 프로세서(110)가 첫번째 윈도우내에서 동작할 때, 후방 복귀 프로세서(112)는 그 다음 윈도우의 끝에서의 기지의 상태부터 역으로 그 다음 윈도우의 시작부까지의 후방 복귀를 사용하여 그 다음 윈도우내의 트렐리스의 일부분을 디코드하여 메모리가 전방 복귀 프로세서(110)에 의해 클리어될 때 메모리(114)에 저장되어 있는 그 다음 윈도우내의 기지의 후방 복귀 상태 메트릭의 세트를 정의하고, 현재의 윈도우가 처리된 바로 후에 그 다음 윈도우의 디코딩을 시작하기 위해 전방 복귀 프로세서(110)을 이용가능한 상태로 놓아두게 된다. 상기한 순환 버퍼 대신에 별도의 버퍼 메모리를 사용할 수 있다는 것을 알아야만 한다. 양호하게는, 전방 및 후방 프로세서는 블럭내의 모든 윈도우가 디코딩될 때까지 병행하여 동작을 한다.
본 발명의 잇점은 출력이 순서대로 제공되며 추가의 버퍼 메모리가 필요하지 않고 출력이 생성될 때 출력될 수 있다는 것이다. 부가의 잇점은 소프트 출력 디코더가 종래의 기술에 비해 최적이라는 점이다. 본 발명의 소프트 출력 디코더는 N의 출력 지연으로 1/2의 처리 능력을 제공한다.
도 8은 도 6의 그래프의 확대도로서 시간 성분이 부가되어 있다. 동작은, 시각 0에서 후방 프로세서가 위치 N부터 L까지 제1의 후방 복귀를 수행하여 위치 L, 2L, 3L 등에서 각 윈도우의 끝에서의 최적의 기지 상태를 정의하게 된다. 이것이 길이 N-L의 제1 지연을 가져온다. 시각 N-L에서 N까지(간격 L), 제2의 후방 복귀가 위치 L부터 O까지 첫번째 윈도우에 걸쳐 수행되고 정보가 저장된다. 시각 N부터 N+L까지, 위치 0부터 L까지에서의 초기의 기지 상태로부터 전방 복귀가 동작하여 전방 복귀 값, 저장된 후방 복귀값 및 현재의 분기 메트릭을 사용하여 첫번째 윈도우에 걸쳐 소프트 출력을 생성하여 출력한다. 이 동일 시간(N부터 N+L까지)동안, 별도의 후방 복귀가 후속 윈도우에서 사용될 위치 2L부터 L까지 수행되고 이를 반복하게 된다. 본 발명은 상기한 Bahl 등의 논문에 개시된 것(BCJR 알고리즘)과 같은 기지의 터보 코딩 기술에 따라 각 소프트 출력을 계산한다.
본 발명의 잇점은 이것이 최적이라는 점과 소프트 출력이 생성될 때 출력되므로 출력될 때 메모리를 프리 상태로 한다는 점이다. 또한, 메모리가 클리어될 때, 그 다음 윈도우에 대한 후방 복귀로부터의 새로운 정보가 메모리내로 순환될 수 있다. 따라서, 본 발명은 종래 기술에서 필요했던 출력의 순서를 바꾸기 위한 버퍼 메모리가 필요없을 뿐만 아니라, 메모리 요건도 절반으로 줄었다. 충분한 메모리가 있을 경우에는 이렇게 할 필요가 없다는 것을 알아야 한다. 게다가, 본 발명은 종래 기술에서 출력 생성시 소프트 출력의 순서를 바꿀 필요가 없기 때문에 시간도 절감된다. 또한, 출력에 후입선출(last-in first-out) 포맷이 필요한 경우에는, 상기한 전체 프로세스의 순서를 바꿀 수 있다(미러-이미지)는 것도 알아야 한다.
도 9는 본 발명에 따라 블럭 길이 N의 트렐리스로 표현된 수신된 콘벌루션 코딩된 신호의 시퀀스를 디코딩하는 방법(200)을 나타낸 플로우챠트이다. 트렐리스 다이어그램은 기술 분야에 공지되어 있다. 첫번째 단계(202)는 트렐리스를 길이 L의 윈도우로 분할하는 것이다. 그 다음 단계(204)는 블럭의 끝에 있는 지점 N에서의 기지의 메트릭으로부터 역으로 첫번째 윈도우의 끝으로의 후방 복귀를 사용하여 트렐리스의 부분을 디코딩하여 각 윈도우의 끝에 소정의 상태 메트릭을 저장하는 것이다. 일반화된 비터비 알고리즘이 복귀에 사용된다. 길이 L은 콘벌루션 코드의 제한 길이와 독립적이지만, 편의상 제한 길이의 배수로 설정할 수 있고 또는 가변으로 할 수도 있다. 그 다음 단계(206)는 트렐리스의 윈도우를 선택하는 것이다. 그 다음 단계(208)는 상기 디코딩 단계에서 정의된 윈도우의 끝에서의 기지의 상태로부터 역으로 윈도우의 시작부로의 후방 복귀를 사용하여 윈도우내의 트렐리스의 일부분을 디코딩하여 윈도우내의 기지의 후방 복귀 상태 메트릭의 세트를 정의하고 이 기지의 후방 복귀 상태 메트릭의 세트를 메모리에 저장하는 것이다. 그 다음 단계(210)는 윈도우의 시작부에서의 기지의 상태로부터 시작하여 전방으로 이동하는 전방 복귀를 사용하여 윈도우내의 트렐리스의 일부분을 디코딩하는 것이다. 그 다음 단계(212)는 전방 복귀 상태 메트릭, 분기 메트릭, 및 저장된 후방 복귀 상태 메트릭을 사용하여 전방 복귀 프로세스의 각 스테이지에서 소프트 출력을 계산하여 그 스테이지에 대한 소프트 출력을 출력하는 것이다. 양호하게는, 복귀 갱신 및 소프트 출력은 MAP 알고리즘 또는 MAP 유도 함수(즉, log-MAP, max-log-MAP, constant-log-MAP 등등) 중 하나를 사용하여 계산된다.
일단 윈도우가 완전히 디코딩되면, 윈도우는 거리 L만큼 전방으로 "슬라이드" 할 수 있고, 그 다음 윈도우의 시작부는 이전에 결정된 기지의 상태부터 시작하도록 이전의 윈도우의 끝에서 시작한다. 상기 단계들은 새로운 윈도우에 대해 반복될 수 있다. 이 프로세스는 블럭 내의 모든 윈도우들이 처리될 때까지 계속된다. 본 발명은 종래 기술과는 달리 블럭내의 마지막 윈도우에 대해 특별한 처리가 필요하지 않다는 잇점이 있다.
양호한 실시예에서, 그 다음 윈도우에 대한 후방 복귀가 현재의 윈도우에서 전방 복귀 및 출력이 행해지는 것과 병행하여 수행되는 경우에 추가의 단계를 포함한다. 바꾸어 말하면, 그 다음 윈도우에 대한 처리는 첫번째 윈도우가 처리되고 있는 동안에 시작된다. 특히, 추가의 단계는 상기 단계들을 반복하는 단계를 포함하며, 이 때 반복되는 선택 단계는 현재 선택된 윈도우의 끝에서 시작하는 그 다음 윈도우를 선택하는 단계를 포함하며, 반복된 단계들인 그 다음 윈도우에 대한 디코딩 및 계산 단계는 한 스텝 무순서로 또한 현재의 윈도우의 처리와 병행하여 일어난다. 이 부가 단계로 처리 시간이 절감되고, 부가 메모리가 필요없게 된다. 보다 양호하게는, 첫번째 윈도우에 대한 전방 복귀가 수행되고 있는 동안, 저장된 메모리가 클리어되고, 그 다음 윈도우의 후방 복귀가 메모리의 클리어된 부분에 저장 또는 순환된다.
표 1은 본 발명의 양호한 2-패스 방법과 함께 3가지 종래 기술의 방법의 메모리, 처리 능력 및 계산 요건을 요약한 것이다. 그러나, 본 발명의 주된 잇점은 종래 기술의 슬라이딩 방법과는 달리 최적의 솔루션을 제공한다는 것과 다른 최적 솔루션, 종래 기술의 BCJR법보다 훨씬 적은 메모리를 필요로 한다는 것이다.
후방 복귀에 대한 4가지 방법의 비교
방법 필요 메모리 처리 능력 계산의 복잡도
BCJR NM 워드 1/2 NM 상태 갱신
슬라이딩 윈도우 0 워드 1/P LNM 상태 갱신
비터비 슬라이딩 윈도우 ML 워드 1/2 2NM 상태 갱신
본 발명 워드 1/2 2NM 상태 갱신
방법들간의 차이점을 설명하기 위해, 표 2는 시퀀스 길이(N=5000), 상태의 수(M=8), 윈도우 사이즈(L=32)의 일반적인 값을 사용했을 때의 결과를 나타낸 것이다.
일반적인 값 N, M 및 L에 대한 방법들간의 비교
방법 필요 메모리 처리 능력 계산의 복잡도
BCJR 40,000 워드 1/2 40,000 상태 갱신
슬라이딩 윈도우 0 워드 1/32 1,280,000 상태 갱신
비터비 슬라이딩 윈도우 256 워드 1/2 80,000 상태 갱신
본 발명 1132 워드 1/2 80,000 상태 갱신
표 2에 나타낸 바와 같이, 본 발명의 메모리 요건은 아주 타당한 범위내에 있으며 BCJR법보다 훨씬 적은 용량인 반면, 단지 2배의 상태 갱신만 하면 된다(기본적으로 전체 역방 복귀를 2번 수행함). 이에 비해, 슬라이딩 윈도우법은 적은 메모리를 필요로 하지만, 최적이 아니다. 블럭 길이 L은 제한 길이에 독립적이고 최적 성능을 유지하면서 메모리 활용을 최소화하도록 선택될 수 있다. 어떤 경우에는, 본 발명이 필요로 하는 메모리가 비터비 슬라이딩 윈도우법이 필요로 하는 것보다 적다.
본 발명은 처리 능력을 향상시키고 터보 디코더에 필요한 것보다 메모리를 크게 감축시키지만 복잡도는 단지 조금 증가한다. 3GPP 표준내의 터보 코드의 경우, 40960 워드의 중간 기억용량이 약 1500 워드 이하로 용이하게 감축될 수 있다. 이에 비해, 종래 기술의 슬라이딩 윈도우 기술은 성능을 열화시킬 뿐만 아니라 계산의 복잡도도 본 발명보다 10 내지 15배 더 요한다.
콘벌루션 코드에 대한 소프트 출력 디코더의 특정 구성 요소 및 기능에 대해 이상에서 기술하였지만, 당업자라면 본 발명의 광의의 범위내에서 더 적은 기능 또는 부가 기능을 사용할 수 있다. 본 발명은 첨부된 특허 청구항들에 의해 한정되는 것은 아니다.

Claims (9)

  1. 블럭 길이 N의 트렐리스(trellis)로 표현된 콘벌루션 코딩된 수신 신호 시퀀스(a received convolutionally coded sequence of signals)를 최적으로 디코딩하는 방법(200)에 있어서,
    a) 트렐리스를 윈도우들로 분할하는 단계(202);
    b) 상기 트렐리스의 길이 L의 윈도우를 선택하는 단계(206);
    c) 상기 블럭의 끝에 있는 지점 N부터 역으로 상기 윈도우의 끝으로의 후방 복귀(backward recursion)를 사용하여 상기 트렐리스의 일부분을 디코딩하여 각 윈도우의 끝에 결정된 상태 메트릭(determined state metrics)을 저장하는 단계(204);
    d) 상기 단계 c)에서 정의된 상기 윈도우의 끝에서의 기지의 상태부터 역으로 상기 윈도우의 시작부로의 후방 복귀를 사용하여 상기 윈도우내의 트렐리스의 일부분을 디코딩하여 상기 윈도우에서의 기지의 후방 복귀 상태 메트릭 세트(a set of known backward recursion state metrics)를 정의하고, 이 기지의 후방 복귀 상태 메트릭 세트를 메모리에 저장하는 단계(208);
    e) 상기 윈도우의 시작부에서의 기지의 상태부터 시작하여 전방으로 이동하는 전방 복귀를 사용하여 상기 윈도우내에서 상기 트렐리스의 일부분을 디코딩하는 단계(210); 및
    f) 전방 복귀 상태 메트릭, 분기 메트릭(branch metric) 및 상기 저장된 후방 복귀 상태 메트릭을 사용하여 상기 전방 복귀의 각 스테이지에서 소프트 출력을 계산하고 각 스테이지에서 이 소프트 출력을 출력하는 단계(212)
    를 포함하는 것을 특징으로 하는 디코딩 방법.
  2. 제1항에 있어서, 상기 분할 단계(202)는 상기 길이 L을 상기 콘벌루션 코드의 제한 길이(constraint length)의 배수로 하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  3. 제1항에 있어서, 상기 분할 단계(202)는 상기 길이 L을 상기 콘벌루션 코드의 제한 길이(constraint length)의 배수와 독립적으로 하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  4. 제1항에 있어서,
    g) 상기 블럭 길이 전체 N을 디코딩할 때까지 상기 단계 b) 내지 단계 f)를 반복하는 단계
    를 더 포함하되,
    상기 반복된 선택 단계는 현재 선택된 윈도우의 끝에서 시작되는 그 다음 윈도우를 선택하는 단계(206)를 포함하고,
    상기 반복된 단계 b) 내지 단계 e)는 각각 현재의 단계 c) 내지 단계 f)와 병행하여(concurrently) 행해지는 것을 특징으로 하는 디코딩 방법.
  5. 소프트-결정 출력 디코더(soft-decision output decoder; 110, 112, 114, 116)에 의해 프레임 버퍼(108)에서 길이 L의 윈도우로 분할되는 블럭 길이 N의 트렐리스로 표현된 콘벌루션 코딩된 신호 시퀀스를 처리하기 위한 수신기(104) 및 복조기(106)를 갖는 무선 전화(100)에 있어서,
    상기 디코더는,
    메모리(114);
    후방 복귀 프로세서(backward recursion processor; 112);
    전방 복귀 프로세서(forward recursion processor; 110) 및
    상기 메모리(114)에 결합된 디코더(116)
    를 포함하되,
    상기 후방 복귀 프로세서는 상기 블럭의 끝에 있는 지점 N부터 역으로 상기 윈도우의 끝으로의 후방 복귀를 사용하여 상기 트렐리스의 일부분을 디코드하여 상기 메모리에 저장되어 있는 각 윈도우의 끝에서의 상태 메트릭을 정의하고,
    상기 후방 복귀 프로세서는 이어서 상기 윈도우의 끝에서의 기지의 상태부터 역으로 상기 윈도우의 시작부로의 후방 복귀를 사용하여 상기 윈도우내에서 상기 트렐리스의 일부분을 디코딩하여 상기 메모리에 저장되어 있는 상기 윈도우에서의 기지의 후방 복귀 상태 메트릭 세트를 정의하며,
    상기 전방 복귀 프로세서는 상기 윈도우의 시작부에서의 기지의 상태부터 시작하여 전방으로 이동하는 전방 복귀를 사용하여 상기 윈도우에서의 트렐리스의 일부분을 디코딩하고,
    상기 전방 복귀 프로세서는 상기 전방 복귀 상태 메트릭, 상기 메모리에 저장된 후방 복귀 상태 메트릭, 및 각 스테이지에서의 분기 메트릭(branch metric)을 사용하여 상기 전방 복귀의 각 스테이지에서 소프트 출력(soft output)을 계산하고, 그 스테이지에 대한 소프트 출력을 출력하는 것을 특징으로 하는 무선 전화.
  6. 제5항에 있어서, 상기 길이 L은 상기 콘벌루션 코드의 제한 길이(constraint length)의 배수인 것을 특징으로 하는 무선 전화.
  7. 제5항에 있어서, 상기 길이 L은 상기 콘벌루션 코드의 제한 길이(constraint length)와 독립적인 것을 특징으로 하는 무선 전화.
  8. 제5항에 있어서, 전방 복귀 프로세서(110)가 상기 윈도우내에서 동작할 때, 후방 복귀 프로세서(112)는 그 다음 윈도우의 끝에서의 기지의 상태부터 역으로 그 다음 윈도우의 시작부로의 후방 복귀를 사용하여 그 다음 윈도우내의 트렐리스의 일부분을 디코딩하여 상기 전방 복귀 프로세서(110)에 의해 메모리가 클리어될 때 상기 메모리(114)에 저장되는 그 다음 윈도우에서의 기지의 후방 복귀 상태 메트릭 세트를 정의하고, 현재의 윈도우가 처리된 바로 후에 그 다음 윈도우의 디코딩을 시작하기 위해 전방 복귀 프로세서(100)를 이용가능한 상태로 두는 것을 특징으로하는 무선 전화.
  9. 제8항에 있어서, 상기 전방 및 후방 프로세서(110, 112)는 상기 블럭내의 모든 윈도우가 디코딩될 때까지 병행하여 동작하는 것을 특징으로 하는 무선 전화.
KR10-2001-0006371A 2000-02-10 2001-02-09 콘벌루션 코드용 소프트 출력 디코더 KR100369422B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US50081900A 2000-02-10 2000-02-10
US09/500,819 2000-02-10

Publications (2)

Publication Number Publication Date
KR20010082093A KR20010082093A (ko) 2001-08-29
KR100369422B1 true KR100369422B1 (ko) 2003-01-30

Family

ID=23991075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0006371A KR100369422B1 (ko) 2000-02-10 2001-02-09 콘벌루션 코드용 소프트 출력 디코더

Country Status (3)

Country Link
KR (1) KR100369422B1 (ko)
CN (1) CN1136661C (ko)
GB (1) GB2365289B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703307B1 (ko) * 2002-08-06 2007-04-03 삼성전자주식회사 터보 복호화 장치 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1030457B1 (en) * 1999-02-18 2012-08-08 Imec Methods and system architectures for turbo decoding
DE60007956T2 (de) * 2000-02-21 2004-07-15 Motorola, Inc., Schaumburg Vorrichtung und Verfahren zur SISO Dekodierung

Also Published As

Publication number Publication date
KR20010082093A (ko) 2001-08-29
GB0102720D0 (en) 2001-03-21
GB2365289A (en) 2002-02-13
GB2365289B (en) 2002-11-13
CN1308415A (zh) 2001-08-15
CN1136661C (zh) 2004-01-28

Similar Documents

Publication Publication Date Title
US6901117B1 (en) Soft output decoder for convolutional codes
US6829313B1 (en) Sliding window turbo decoder
US6452979B1 (en) Soft output decoder for convolutional codes
CA2273608C (en) Reduced-complexity max-log app decoders and related turbo decoders
US6192501B1 (en) High data rate maximum a posteriori decoder for segmented trellis code words
Anderson et al. Tailbiting MAP decoders
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
HU220815B1 (hu) Eljárás párhuzamos, összefűzött, spirálos kódolásra és dekódolásra, összetettkódszó-kódoló és dekódoló, kódoló és dekódolórendszer
EP1314254B1 (en) Iteration terminating for turbo decoder
US6856657B1 (en) Soft output decoder for convolutional codes
WO2002031964A1 (en) Improved decoding of turbo codes using data scaling
US6812873B1 (en) Method for decoding data coded with an entropic code, corresponding decoding device and transmission system
US6868132B1 (en) Soft output decoder for convolutional codes
EP1471677A1 (en) Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder
KR100390416B1 (ko) 터보 디코딩 방법
EP2302811B1 (en) Soft output viterbi algorithm method and decoder
KR100369422B1 (ko) 콘벌루션 코드용 소프트 출력 디코더
Ould-Cheikh-Mouhamedou et al. Enhanced Max-Log-APP and enhanced Log-APP decoding for DVB-RCS
US7031406B1 (en) Information processing using a soft output Viterbi algorithm
US7096410B2 (en) Turbo-code decoding using variably set learning interval and sliding window
US20030110438A1 (en) Turbo decoder, and a MAP decoder component of the turbo decoder
US20030101403A1 (en) Turbo decoder and its calculation methods having a state metric
Yang et al. Iterative joint source channel decoding in wireless sensor networks
Cong et al. Further results on the equivalence between SOVA and max-log-MAP decodings
Francis et al. FPGA implementation of a UMTS turbo coder/decoder

Legal Events

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

Payment date: 20061229

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee