KR20010082093A - Soft output decoder for convolutional codes - Google Patents

Soft output decoder for convolutional codes Download PDF

Info

Publication number
KR20010082093A
KR20010082093A KR1020010006371A KR20010006371A KR20010082093A KR 20010082093 A KR20010082093 A KR 20010082093A KR 1020010006371 A KR1020010006371 A KR 1020010006371A KR 20010006371 A KR20010006371 A KR 20010006371A KR 20010082093 A KR20010082093 A KR 20010082093A
Authority
KR
South Korea
Prior art keywords
window
return
trellis
backward
state
Prior art date
Application number
KR1020010006371A
Other languages
Korean (ko)
Other versions
KR100369422B1 (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 KR20010082093A publication Critical patent/KR20010082093A/en
Application granted granted Critical
Publication of KR100369422B1 publication Critical patent/KR100369422B1/en

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

PURPOSE: A soft output decoder for convolutional codes is provided, which mitigate the whole memory and processing requirements to decode the convolutional codes without restriction like a turbo decoder and a MAP decoder. CONSTITUTION: According to the method decoding a received convolutionally coded sequence of signals expressed as trellis of block length N, the trellis is divided into windows, and a window of length L of the trellis is selected. And determined state metrics is stored in the end of each window by decoding a part of the trellis using a backward recursion. And a set of known backward recursion state metrics is defined by decoding a part of the trellis in the window using a backward recursion, and the set is stored in a memory. Then, a part of the trellis in the window is decoded using a forward recursion, and then a soft output as to each stage is output by calculating the soft output in each stage of the forward recursion using the forward state metric, the stored backward recursion state metrics and a branch metrics in each stage.

Description

콘벌루션 코드용 소프트 출력 디코더{SOFT OUTPUT DECODER FOR CONVOLUTIONAL CODES}SOFT OUTPUT DECODER FOR CONVOLUTIONAL CODES}

관련 출원의 상호 참조Cross Reference of Related Application

본 출원은 미국 특허출원 제09/502,132호(발명자: Classon, Schaffner, Desai, Baker, Friend), 제09/501,922호(발명자: Classon, Schaffner) 및 제09/501,883호(발명자: Classon, Schaffner, Desai)와 연관이 있다. 이 관련 출원은 본 출원과 동일자로 출원되었으며, 본 출원의 양수인에게 양도된 것으로서, 여기에 그 전체를 참고 문헌으로 포함한다.This application discloses US patent applications 09 / 502,132 (inventor: Classon, Schaffner, Desai, Baker, Friend), 09 / 501,922 (inventor: Classon, Schaffner) and 09 / 501,883 (inventor: Classon, Schaffner, Desai). This related application is filed on the same day as this application and assigned to the assignee of the present application, which is hereby incorporated by reference in its entirety.

발명의 분야Field of invention

본 발명은 일반적으로 통신 시스템에 관한 것으로서, 보다 상세하게는 콘벌루션 코드(convolutional code) 통신 시스템의 수신기에 사용하기 위한 소프트 출력 디코더(soft output decoder)에 관한 것이다.FIELD OF THE INVENTION The present invention relates generally to communication systems, and more particularly to a soft output decoder for use in a receiver of a convolutional code communication system.

발명의 배경Background of the Invention

콘벌루션 코드는 디지털 통신 시스템에서 전송 정보를 에러로부터 보호하기 위해 종종 사용된다. 송신기에서, 발신 코드 벡터(outgoing code vector)는 인코더의 제한 길이(constraint length)로 복잡도가 정해지는 트렐리스 다이어그램을 사용하여 기술된다. 제한 길이가 증가함에 따라 계산의 복잡도도 중가하지만, 코딩의 무결성(robustness)도 제한 길이에 따라 증대된다.Convolutional codes are often used in digital communication systems to protect transmission information from errors. At the transmitter, the outgoing code vector is described using a trellis diagram whose complexity is determined by the constraint length of the encoder. The complexity of the calculation increases as the limit length increases, but the robustness of the coding also increases with the limit length.

수신기에서는, 공지된 비터비 디코더(Viterbi decoder)와 같은 실제의 소프트-결정(soft-decision) 디코더는 최우 전송 코드 벡터(maximum likelihood transmitted code vector)에 대한 최적 검색을 수행하기 위해 트렐리스 구조를 사용한다. 그러나, 비터비 알고리즘은 계산이 복잡하고, 그 복잡도는 제한 길이가 증가함에 따라 지수함수적으로 증가된다. 이것은 기본적으로 비터비 디코더는 제한 길이가 긴 콘벌루션 코드에 대해서 상당량의 메모리 및 처리 능력을 필요로 함을 의미한다.In the receiver, an actual soft-decision decoder, such as a known Viterbi decoder, employs a trellis structure to perform an optimal search for the maximum likelihood transmitted code vector. use. However, the Viterbi algorithm is complicated to calculate, and its complexity increases exponentially as the limit length increases. This basically means that Viterbi decoders require a significant amount of memory and processing power for long convolutional codes.

DS-CDMA(Direct Sequence Code Division Multiple Access) 표준 IS-95 및 GSM(Global System for Mobile Communications)와 같은 각종 통신 시스템에 대한 코더는 이와같이 긴 제한 길이를 가지고 있다. 예를 들면, GSM 하프 레이트 제한 길이 K = 7 이고, IS-95 제한 길이 K = 9 이다.Coders for various communication systems, such as the Direct Sequence Code Division Multiple Access (DS-CDMA) standard IS-95 and Global System for Mobile Communications (GSM), have this long limit. For example, GSM half rate limit length K = 7 and IS-95 limit length K = 9.

비터비 디코더의 다른 단점으로는, 전송 도중에 에러의 실제 발생 횟수에 상관없이 각 코드 벡터에 대해 일정 횟수의 계산을 수행해야만 한다는 것이다. 이와 같이, 비터비 디코더는 에러가 많은 수신 신호와 동일 횟수의 계산을 하여 전송 에러가 적거나 또는 전혀 없는 수신 신호를 처리하게 된다.Another disadvantage of the Viterbi decoder is that a certain number of calculations must be performed for each code vector regardless of the actual number of errors occurring during transmission. In this way, the Viterbi decoder calculates the same number of times as the error signal received and processes the received signal with little or no transmission error.

보다 최근에는, 종래의 코딩 기술보다 성능이 우수한 터보 코드(turbo code)가 개발되었다. 터보 코드는 일반적으로 2개 이상의 콘벌루션 코드와 터보 인터리버(turbo interleaver)로 이루어져 있다. 터보 디코딩은 반복적(iterative)이며, 소프트 출력 디코더를 사용하여 개개의 콘벌루션 코드를 디코드하게 된다. 소프트 출력 디코더는 소프트 코드 디코더가 다른 콘벌루션 코드를 디코드하는데 도움이 되는 각 비트 위치에 관한 정보를 제공한다. 소프트 출력 디코더에서는 통상 소프트 출력을 결정하는데 전후방 디코딩(backward and forward decoding)을 필요로 하는 MAP(maximuma posteriori) 디코더를 사용한다. 그러나, 메모리, 프로세싱 및 숫자상의 트레이드오프로 인해, MAP 디코딩은 통상 차선책으로 제한된다. 이들 변형방식 모두에서는 블럭에 대해 전후방 디코딩 양자를 필요로 한다.More recently, turbo codes have been developed that outperform conventional coding techniques. Turbo cords generally consist of two or more convolutional cords and a turbo interleaver. Turbo decoding is iterative and decodes individual convolutional codes using a soft output decoder. The soft output decoder provides information about each bit position that helps the soft code decoder decode other convolutional codes. Soft output decoders typically use a maximum a posteriori (MAP) decoder that requires backward and forward decoding to determine the soft output. However, due to memory, processing and numerical tradeoffs, MAP decoding is usually limited to suboptimal measures. Both of these variants require both forward and backward decoding for the block.

3GPP(third generation partnership project for wireless systems)와 같은 장래의 규격에 있어서, 블럭 길이 N = 5120 인 8-상태 터보 코드는 40960 워드의 중간 기억 장치(intermediate storage)를 필요로 하며, 이는 바람직하지 않을 수 있다. 장래의 시스템(프레임이 보다 크고 상태의 수가 보다 많음)은 훨씬 더 많은 메모리를 요구한다. 비교를 해보면, N=5120이고 8-상태 트렐리스에 대해 소프트 출력을 하지 못하는 비터비 디코더는 100 워드 이하의 중간 기억 장치를 필요로 한다.In future specifications such as third generation partnership project for wireless systems (3GPP), an 8-state turbo code with block length N = 5120 would require 40960 words of intermediate storage, which may not be desirable. have. Future systems (larger frames and more states) require much more memory. In comparison, a Viterbi decoder with N = 5120 and no soft output for 8-state trellis requires less than 100 words of intermediate storage.

종래 기술의 터보 디코더 및 MAP 디코더와 같은 정도의 제한이 없이 콘벌루션 코드를 디코드하기 위한 전체 메모리 및 처리 요건들을 완화하는 소프트 출력디코더가 필요하다.There is a need for a soft output decoder that mitigates the overall memory and processing requirements for decoding convolutional code without the same degree of limitations as prior art turbo decoders and MAP decoders.

도 1은 제1 종래 기술의 소프트 출력 디코더 기술에 대한 트렐리스 다이어그램(trellis diagram).1 is a trellis diagram for a first prior art soft output decoder technique.

도 2는 제2 종래 기술의 소프트 출력 디코더 기술에 대한 트렐리스 다이어그램.2 is a trellis diagram for a second prior art soft output decoder technique.

도 3은 제3 종래 기술의 소프트 출력 디코더 기술에 대한 트렐리스 다이어그램.3 is a trellis diagram for a third prior art soft output decoder technique.

도 4는 도3의 다이어그램의 그래픽 확대도.4 is an enlarged graphical view of the diagram of FIG. 3;

도 5는 도 3의 다이어그램의 다른 그래픽 확대도.5 is another graphical enlarged view of the diagram of FIG.

도 6은 본 발명에 따른 소프트 출력 디코더 기술에 대한 트렐리스 다이어그램.6 is a trellis diagram for a soft output decoder technique in accordance with the present invention.

도 7은 본 발명에 따른 소프트 출력 디코더의 블럭도.7 is a block diagram of a soft output decoder in accordance with the present invention.

도 8은 도 6의 다이어그램의 그래픽 확대도.8 is an enlarged graphical view of the diagram of FIG. 6;

도 9는 본 발명에 따른 소프트 출력 디코더 방법의 플로우챠트.9 is a flowchart of a soft output decoder method in accordance with the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100: 무선 전화100: cordless phone

102: 안테나102: antenna

104: 수신기104: receiver

106: 복조기106: demodulator

108: 프레임 버퍼108: frame buffer

110: 전방 복귀 프로세서110: forward return processor

112: 후방 복귀 프로세서(112)112: backward return processor 112

본 발명은 종래 기술의 터보 디코더의 메모리 요건을 대폭 완화시켰으나, 비터비 디코더보다는 약간의 계산만 증가할 뿐이다. 게다가, 본 발명은 종래 기술의 터보 디코더 및 MAP 디코더의 제한을 최소화하였다.The present invention greatly mitigates the memory requirements of prior art turbo decoders, but only slightly increases the computation than the Viterbi decoder. In addition, the present invention minimizes the limitations of prior art turbo decoders and MAP decoders.

일반적으로, 블럭 코드, 콘벌루션 코드, 터보 코드 및 다른 코드에 대해 도 1에서 트렐리스로 그래픽 표시하고 있다. MAP(maximuma posteriori) 타입 디코더(로그-MAP(log-MAP), MAP, 최대-로그-MAP(max-log-MAP), 상수-로그-MAP(constant-log-MAP))은 종래 기술에서와 같이 트렐리스에 대해 일반화된 전방 및 후방 비터비 복귀을 이용하여 소프트 출력을 제공한다. MAP 디코더는 모든 수신된 비트에 근거하여 각 정보 비트에 대한 디코드된 비트 에러 확률을 최소화한다. 종래 기술의 일반적인 MAP 디코더는 디코딩에 사용하기 위한 메모리를 필요로 한다.In general, block codes, convolutional codes, turbo codes and other codes are graphically represented in trellis in FIG. The maximum a posteriori (MAP) type decoder (log-MAP, MAP, max-log-MAP, constant-log-MAP) is known in the art. Soft forward is provided using a forward and backward Viterbi return generalized to the trellis as shown. The MAP decoder minimizes the decoded bit error probability for each information bit based on all received bits. Conventional MAP decoders of the prior art require memory for use in decoding.

인코드된 시퀀스의 마르코프 특성(Markov nature)(이전의 상태가 장래의 상태 또는 장래의 출력 브랜치에 영향을 주지 않음) 때문에, MAP 비트 확률은 과거 상태(현재 상태에 대한 트렐리스의 시작), 현재 상태(현재값에 대한 브랜치 메트릭) 및 장래 상태(현재값에 대한 트렐리스의 끝)로 분할될 수 있다. 보다 상세하게는, MAP 디코더는 현재 상태까지의 전방 및 후방 복귀를 수행하며, 현재의 브랜치 메트릭과 함께 과거 및 장래의 확률을 사용하여 출력 결정을 생성한다. 하드 및 소프트 출력 결정을 제공하는 원리는 기술 분야에 공지되어 있고, 상기한 디코딩법의 몇가지 변형례가 있다.Because of the Markov nature of the encoded sequence (the previous state does not affect the future state or future output branch), the MAP bit probability is derived from the past state (the beginning of the trellis for the current state), It can be divided into the current state (branch metric for the current value) and the future state (the end of the trellis for the current value). More specifically, the MAP decoder performs forward and backward returns to the current state and generates output decisions using past and future probabilities along with current branch metrics. The principle of providing hard and soft output decisions is well known in the art and there are several variations of the above decoding methods.

터보 코드용으로 고려되는 대부분의 소프트 입력-소프트 출력 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로 주어진다.Most of the soft input-soft output SISO decoders considered for turbo code are described in LR Bahl, J. Cocke, F. Jelinek, and J. Raviv's article "Optical Decoding of Linear Codes for Minimizing Symbol Error Rate", IEEE Transactions on Information Theory, Vol. IT-20, March 1974, pages 284-287, based on the prior art MAP algorithm (BCJR algorithm). Figure 1 shows a trellis diagram of this algorithm for an eight-state convolution code that can be used for a turbo code. As can be seen, the turbo decoder consists of an interleaver and a configuration code, but this configuration code is usually a systematic convolutional code, but may also be a block code. The MAP algorithm not only minimizes the probability of error for an information bit given a received sequence, but also provides a probability that an information bit is 1 or 0 given a received sequence. The BCJR algorithm provides soft output decisions for each bit position, where the influence of soft inputs in the block is divided into effects from past (previous soft inputs), current soft inputs, and future (last soft inputs). Lose. This decoder algorithm requires a generalized forward and backward Viterbi return on the trellis to reach the optimal soft output for each trellis section (stage). These asterory probabilities or more typically the log-likelihood ratios (LLR) of the probabilities are passed between SISO decoding steps in iterative turbo decoding. The LLR for information bit u t is given by Equation 1 for all bits (t = 1 to N) in the decoded sequence.

수학식 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)라고 한다.In Equation 1, given the received sequence, the probability that the decoded bit is 1 (or 0) in the trellis consists of the product of terms due to the Markov characteristic of the code. The Markov characteristic is that the past and the future are independent of the present. Currently, γ t (n, m) is the probability of being in state m at time t and generating a symbol y t when the previous state at time t-1 is n. This current functions as a branch metric. In the past, α t (m) is the probability of being in state m at time t at the received sequence {y 1 , ..., y t }, and future, β t (m) is the sequence received from state m at time t The probability of generating {y t + 1 , ..., y N }. The probability α t (m) may be expressed as a function of α t-1 (m) and γ t (n, m) as in Equation 2, and is called forward recursion.

여기서, M은 상태의 수이다. βt+1(n)과 γt(n,m)로부터 확률 βt(n)을 계산하기 위한 역방 또는 후방 복귀는 수학식 3과 같이 된다.Where M is the number of states. The inverse or backward return to calculate the probability βt (n) from β t + 1 (n) and γ t (n, m) is given by Equation (3).

수학식 1에서 전체 아 포스테리오리 확률은 ut=1(또는 0)에 대응하는 트렐리스 B1(B0)에서의 브랜치에 걸쳐 합산하여 계산된다.In Equation 1, the overall asterory probability is calculated by summing over the branches in trellis B 1 (B 0 ) corresponding to u t = 1 (or 0).

수학식 1에서 LLR은 시각 t에서 이용가능하게 되기 위해서 전방 및 후방 복귀 양자를 필요로 한다. 이 요건을 충족시키기 위한 BCJR법은 역방 복귀 전체를 계산하여 기억시키고, αt-1과 βt를 사용하여 t=1에서 t=N까지 αt(m)과 Λt를 반복 계산하는 것이다.In Equation 1, the LLR needs both forward and backward return to be available at time t. The BCJR method to satisfy this requirement is to calculate and store the total reverse return, and iteratively calculates α t (m) and Λ t from t = 1 to t = N using α t-1 and β t .

이 디코더의 단점은 N 스테이지의 전체 블럭을 처리하기 이전에 먼저 기억시켜야만 한다는 것이다. 이것은 많은 메모리(N 섹션 × M 상태 × 상태 당 비트 수)를 필요로 할 뿐만 아니라, 어떤 정보도 출력가능하게 되기 전에 길이 N의 신호 지연을 일으킨다. W-CDMA 시스템(N∼5000, M=8, 13비트)에서, 필요한 메모리는 약 0.5M비트이다. CDMA 2000 시스템에서, N은 대략 20000으로서 약 2M비트의 메모리가 필요하게 된다. 시퀀스 길이가 작은 경우, 메모리 활용은 일반적으로 문제가 되지 않는다. 그러나, 터보 코드가 최상의 성능을 발휘하는 경우와 같이 N이 큰 경우에는, 메모리 활용이 중요하게 된다.The disadvantage of this decoder is that it must be memorized before processing the entire block of N stages. This not only requires a lot of memory (N section × M state × bits per state), but also causes a signal delay of length N before any information can be output. In the W-CDMA system (N to 5000, M = 8, 13 bits), the required memory is about 0.5 M bits. In a CDMA 2000 system, N is approximately 20000, which requires about 2M bits of memory. If the sequence length is small, memory utilization is generally not a problem. However, memory utilization becomes important when N is large, such as when turbo code performs best.

복잡도의 면에서, BCJR법은 역방 복귀의 경우 NM번의 상태 갱신(트렐리스 섹션당 M번의 상태 갱신, 코드내에 N개의 트렐리스 섹션)을 필요로 하며, 최적 성능을 제공한다. 실제로는, 후방 복귀는 전체 블럭에 대해 프로세서에 의해 수행되어(도 1에 도시됨) 메모리에 기억된다. 그 다음에, 전방 복귀가 프로세서에 의해 수행되고, 그 결과는 현재 상태 및 기억된 미래 상태와 같이 사용되어 각 스테이지에 대한 소프트 출력 결정에 도달하게 된다. 이 경우, 프로세서는 각 스테이지에서 2번 동작하게 되며, 한번은 후방 복귀 상태를 기억시키기 위해, 한번은 후방 복귀 처리 동안에 동작한다(처리 능력(throughput) = 1/2).In terms of complexity, the BCJR method requires NM state updates (M state updates per trellis section, N trellis sections in the code) for reverse return and provides optimal performance. In practice, backward return is performed by the processor for the entire block (shown in Figure 1) and stored in memory. Then, a forward return is performed by the processor, and the result is used with the current state and the stored future state to reach the soft output decision for each stage. In this case, the processor operates twice in each stage, once to remember the backward return state, once during the backward return process (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)의 효과와 유사하다.In order to solve the memory utilization problem, sliding window method and similar deformation methods have been developed. S. Benedetto, D. Divsalar, G.Montorsi, and F. Pollara, "Algorithm for continuous decoding of turbo codes," Electronics Letters, Vol. 32, February 15, 1996, pages 314-315, shows the sliding window technique shown in FIG. 2 (in the following figure, the solid arrow indicates an output with a return but no storage, and the dashed arrow indicates no output and no storage And a hollow arrow indicates a memorized return with no output, the direction of the arrow indicating a forward or backward return). The assumption that the probability of occurrence of all states at time t + P is the same (or unknown) is also used for reverse recovery. To use this assumption, the learning period P must be several times the limit length of the configuration code to provide near optimal performance. Too small a learning period can result in noticeable performance degradation, similar to the effect of 'finite traceback' in conventional Viterbi algorithms.

슬라이딩 윈도우 기술은 메모리를 전혀 필요로 하지 않지만, 계산이 복잡하다. 상세히 말하면, 후방 복귀 전체를 수행하여 기억시키지 것이 아니라, 단지 후방 복귀의 일부만을 수행(기억하지 않음)하여 각 상태를 결정하게 된다. 각각의 현재 상태에 대해, 이 알고리즘은 알 수 없는 초기 상태를 가지고 현재 상태에서 학습 기간 P만큼 떨어진 미래 복귀를 초기화한다. 미래 확률은 알 수 없는 미래의 한 시점부터 후방으로 계산되며, 알고 있는 트렐리스의 끝부터 계산하는 것은 아니다. 길이 P(학습 기간)는 부분적인 후방 복귀가 현재 상태에 도달할 시점에서 미래 확률이 거의 정확하게 되도록 설정된다. P는 코드 레이트 및 코드의 제한 길이와 예기되는 채널 조건에 따라 달라진다. 예를 들어, 1/2 레이트 콘벌루션 코드를 갖는 8-상태 디코더의 경우, P는 일반적으로 16 내지 32이며, 여기서 P는 제한 길이의 배수이다. 이 디코더의 단점은 부분 후방 복귀가 동일 확률(알 수 없는 상태)로 시작되고, 그것이 현재의 윈도우에 도달할 때까지 반복이 허용된다는 것이다. 이것은 슬라이딩 윈도우가 진정한 MAP 성능에 열화를 초래하기 때문에 차선책의 알고리즘이며, 종래의 비터비 알고리즘에서의 유한 회귀와 유사한 효과를 갖게 되어, 디코드된 비트 에러의 확률을 증가시킨다. 또한, 프로세서는 각 상태에서 P번(처리 능력 1/P) 동작하고, P의 출력 지연을 갖는다. 게다가, 이 알고리즘은 P배의 복잡도를 요구하며, 이 복잡도는 더 많은 처리를 부가함으로써만 감축될 수 있다.Sliding window technology does not require any memory, but the computation is complicated. In detail, instead of performing the whole backward return and storing, only a part of the backward return is performed (not remembered) to determine each state. For each current state, the algorithm initiates a future return with an unknown initial state and a learning period P away from the current state. Future probabilities are calculated backwards from an unknown future, not from the end of the known trellis. The length P (learning period) is set such that the future probability is nearly accurate at the point when the partial backward return reaches the current state. P depends on the code rate and the limit length of the code and the expected channel conditions. For example, for an 8-state decoder with 1/2 rate convolutional code, P is generally 16 to 32, where P is a multiple of the limit length. The disadvantage of this decoder is that the partial back return begins with the same probability (unknown state) and iteration is allowed until it reaches the current window. This is a suboptimal algorithm because sliding windows cause degradation in true MAP performance, and have an effect similar to finite regression in conventional Viterbi algorithms, increasing the probability of decoded bit errors. In addition, the processor operates P times (processing capacity 1 / P) in each state, and has an output delay of P. In addition, this algorithm requires P times complexity, which can only be reduced by adding more processing.

슬라이딩 윈도우법은 다음과 같이 요약될 수 있다. 즉, t=1 내지 N인 경우,시각 t+P에서 시작하여 시각 t까지 역방 복귀를 계산하고, αt-1(m) 및 βt로부터 αt(m) 및 Λt를 계산한다. 슬라이딩 윈도우법은 메모리 요건을 BCJR법에서 필요한 NM에서 복귀에 필요한 적은량의 메모리로 감축시킨다. 더블 버퍼링을 가정하면, 메모리 양은 단지 2M이며, 분석에서는 무시할 수 있을 정도이다.The sliding window method can be summarized as follows. That is, when t = 1 to N, the reverse return is calculated starting from the time t + P to the time t, and α t (m) and Λ t are calculated from α t -1 (m) and β t . The sliding window method reduces the memory requirement from the NM required by the BCJR method to the smaller amount of memory required for the return. Assuming double buffering, the amount of memory is only 2M, which is negligible for analysis.

그러나, 이 메모리 절감을 달성하기 위해서는, 후방 복귀를 위한 계산의 복잡도가 인자 P만큼 증가하게 된다. 슬라이딩 윈도우법은 또한 '유한' 윈도우 사이즈로 인해 차선책이 된다.However, in order to achieve this memory savings, the complexity of the calculation for backward return is increased by the factor P. The sliding window method is also the next best thing due to the 'finite' window size.

비터비 등의 미국 특허 제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에 도시하였다.Other decoders of the prior art described in US Pat. No. 5,933,462 to Viterbi et al. (S. Pietrobon and S. Barbulescu's paper "A Simplification of the Modified Bahl et al. Decoding Algorithm for Systematic Convolutional Codes", Int. Symp. On Inform.Theory and its Applications, Sydney, Australia, pages 1073-1077, November 1994, revised January 4, 1996, and S. Pietrobon's article "Efficient Implementation of Continuous MAP Decoders and a Synchronization Technique for Turbo Decoders," Int. Symp. On Inform.Theory and its Applications, Victoria, BC, Canada, pp. 586-589, September 1996), discloses another sliding window technique, which is shown in FIG.

비터비 슬라이딩 윈도우법은 종래 기술의 슬라이딩 윈도우법의 계산의 복잡도가 크게 증가하는 것을 블럭 단위로 처리함으로써 절감하고 있다. 역방 복귀는 시각 t+2L에서 시작되며, 역방 복귀 값은 시각 t+L에서 시각 t까지 기억된다. 그다음에, 전방 복귀 및 출력 확률 계산이 시각 t에서 시각 t+L까지의 블럭에 걸쳐 수행된다. 메모리는 NM에서 LM으로 절감되며, 계산의 복잡도만 2배로 된다. 알 수 없는 상태에서 복귀를 시작하는 것의 주요 관점은 슬라이딩 윈도우 기술에 대한 것과 동일하다.The Viterbi sliding window method saves by increasing the complexity of the calculation of the sliding window method of the prior art by treating it in blocks. The reverse return starts at time t + 2L, and the reverse return value is stored from time t + L to time t. The forward return and output probability calculations are then performed over blocks from time t to time t + L. Memory is reduced from NM to LM, doubling the complexity of computation. The main aspect of initiating a return from an unknown state is the same as for sliding window technology.

이 기술은 얼마간의 메모리가 필요하며, 아직도 계산이 복잡하다. 이 디코더는 한번에 한개의 심볼이 아닌 블럭 단위로 전방으로 슬라이드하는 윈도우를 제공함으로써 상기한 슬라이딩 윈도우 기술과는 다르다. 상세히 말하면, 슬라이딩 윈도우는 상기한 학습 기간 P와 같은 길이 L을 갖는 슬라이딩 윈도우가 정의된다. 또한, L은 트렐리스 총 길이 N의 배수이고, 윈도우는 트렐리스의 시작에서 끝까지 길이 L의 스텝으로 슬라이드된다. 이와 같이, 트렐리스 전체를 기억시켰던 종래 기술의 디코더에서 필요한 메모리가 N에서 N/L로 감축되었다(일반적으로 L=32일 때, CDMA2000 및 W-CDMA 시스템의 경우 3k비트).This technique requires some memory and is still complicated to compute. This decoder differs from the sliding window technique described above by providing a window that slides forward in blocks instead of one symbol at a time. In detail, the sliding window is defined as a sliding window having a length L equal to the learning period P described above. L is also a multiple of the trellis total length N, and the window slides in steps of length L from the beginning to the end of the trellis. As such, the memory required by the prior art decoder that stored the entire trellis was reduced from N to N / L (typically 3k bits for CDMA2000 and W-CDMA systems when L = 32).

이 디코더는 또한 알 수 없는 미래 상태로부터 시작하는 학습 기간을 사용하며, 따라서 상기한 바와 같이 차선책이 된다. 상세히 말하면, 전방 복귀는 첫번째 윈도우 L의 시작점의 알고 있는 상태에서 시작하여 첫번째 윈도우의 길이(L)에 걸쳐 프로세서에 의해 수행된다. 이들 전방 복귀 상태들은 기억된다. 프로세서는 그 다음에 이 전방 복귀가 시작된 곳에서 2L만큼 떨어진 지점에서 시작하여 알 수 없는 상태부터 후방 복귀를 수행하여 첫번째 윈도우의 끝의 알고 있는 상태를 정의하게 된다. 그 다음에, 프로세서는 첫번째 윈도우의 끝의 알고 있는 상태에서 시작하여 현재 상태까지 제2의 후방 복귀를 수행하며, 여기서 후방 복귀 및 기억된전방 복귀로부터의 정보를 사용하여 소프트 출력을 생성하게 된다. 첫번째 윈도우의 모든 출력들이 결정되면, 윈도우는 L만큼 전방으로 슬라이드하고, 프로세스는 첫번째 윈도우의 끝에서 결정된 상태부터 시작하여 반복된다.This decoder also uses a learning period starting from an unknown future state, which is the next best thing as described above. Specifically, the forward return is performed by the processor over the length L of the first window starting from the known state of the beginning of the first window L. These forward return states are stored. The processor then defines a known state at the end of the first window by starting backward 2L from where this forward return began and performing a backward return from an unknown state. The processor then performs a second back return from the known state of the end of the first window to the current state, where the soft output is generated using information from the back return and the stored forward return. Once all outputs of the first window are determined, the window slides forward by L, and the process repeats starting from the determined state at the end of the first window.

이 디코더의 단점은 학습 기간 L에 걸친 제1의 후방 복귀가 동일한 확률(알 수 없는 상태)로 시작되고, 길이 L에 걸쳐 반복될 수 있어 상기한 것과 같이 차선책이 된다. 또한, 전방 및 후방 프로세서를 병행하여 동작시켜 1/2의 처리 능력을 달성할 수 있지만, 프로세서는 각 상태에서 3번씩 동작하게 된다. 디코더는 2L의 출력 지연을 발생한다. 게다가, 후방 복귀는 2배의 복잡도를 요구하며, 이 복잡도는 더 많은 처리를 부가함으로써만 감축(처리 능력이 증가)될 수 있는 것이다. 게다가, 이 디코더는 역순으로 소프트 출력을 발생하며, 이로써 출력되기 이전에 보조 메모리에 버퍼링될 필요가 있게 된다.A disadvantage of this decoder is that the first backward return over the learning period L begins with the same probability (unknown state) and can be repeated over the length L, which is the next best thing as described above. In addition, it is possible to achieve half the processing power by operating the front and rear processors in parallel, but the processor operates three times in each state. The decoder generates an output delay of 2L. In addition, backward return requires twice the complexity, which can only be reduced (increased processing capacity) by adding more processing. In addition, the decoder produces soft outputs in reverse order, which needs to be buffered in auxiliary memory before being output.

도 4는 도 3의 그래프의 확대도로서, 시간 성분이 부가되어 있다. 동작에 있어서, 시각 0에서는 전방 프로세서는 위치 0에서 L까지 첫번째 윈도우에 걸쳐 전방 복귀를 수행하고, 그 정보를 기억하는 반면, 동일 기간에 걸쳐 후방 프로세서는 위치 2L부터 L까지 후방 복귀를 수행하여 시각 L에 위치 L에서 첫번째 윈도우의 끝의 알고 있는 상태를 정의하게 된다. 그 후에, 제2의 후방 복귀가 위치 L에서 0까지에 걸쳐 시각 L에서 2L까지 동작하여 첫번째 윈도우에 걸쳐 소프트 출력을 정의하게 된다. 이 때, 소프트 결정은 역전되어 순서대로(명확하게 2L의 지연 후에 발생함) 출력되고, 메모리는 클리어되며, 윈도우 위치는 L의 길이만큼 전방으로 슬라이드되고, 프로세스는 반복된다. 그 대신에, 후방 복귀 프로세서 및 메모리를 부가하면, 처리 능력이 증대될 수 있다.4 is an enlarged view of the graph of FIG. 3, in which a time component is added. In operation, at time 0 the front processor performs a forward return over the first window from position 0 to L and stores the information, while over the same period the back processor performs a backward return from position 2L to L At L we define the known state of the end of the first window at position L. Thereafter, a second back return operates from time L to 2L from position L to zero to define the soft output over the first window. At this time, the soft decisions are reversed and output in order (obviously occurring after a delay of 2L), the memory is cleared, the window position slides forward by the length of L, and the process is repeated. Instead, the addition of a backward return processor and memory can increase processing power.

도 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배의 메모리가 필요하다.FIG. 5 shows yet another result for the graph of FIG. 3, which uses an additional rear processor. The operation is that at time 0, the front processor performs a forward return over the first window from position 0 to L and stores its information, while over the same period the back processor performs a backward return from position 2L to L to time L This defines the known state of the end of the first window at position L. Thereafter, a second back return operates from time L to 2L from position L to zero to define the soft output over the first window. In parallel with this, the front and additional rear processors begin the second cycle by starting to process the information in the second window (positions L to 2L). At time 2L, the soft decision for the first window is output, while the forward return and back learning period for the second window has already ended. Then, a second backward return to the second window is performed to obtain a soft output of the second window. As can be seen here, this technique doubles the throughput. Using the information of the forward return for the first window, double memory is required to store the forward return for the second window.

상기한 디코더(특히 도 4 및 도 5의 것)는 몇가지 문제점이 있다. 첫째로, 가장 중요한 것으로는, 소프트 출력이 무순서로 생성되므로 출력되기 이전에 순서를 바꿔야만 한다. 이렇게 하기 위해서는, 부가의 버퍼 메모리가 필요하며, 출력의 순서를 바꾸기 위해서 부가의 지연이 발생된다. 둘째로, 상기한 디코더는 차선책이다.The decoder (particularly those of Figs. 4 and 5) has some problems. First and foremost, the soft outputs are created out of order and must be reordered before they are output. To do this, an additional buffer memory is required, and an additional delay is generated to change the order of the outputs. Second, the decoder is the next best thing.

본 발명은 이러한 문제점들을 신규한 방식으로 해결하고 있다. 도 6은 본 발명에 따라 콘벌루션 디코딩을 사용하는 트렐리스 다이어그램을 도시한 것이다. 트렐리스 코드는 도 7에 간단히 도시한 통신 시스템에서 길이 N의 트렐리스로 나타낸 콘벌루션 코딩된 신호 시퀀스로부터 얻어진다. 무선 전화(100)에서는 기술 분야에서 공지된 바와 같이, 신호가 안테나(102)에서 수신기(104) 및 복조기(106)를 지나가게 된다. 이 신호는 프레임 버퍼(106)에 로드된다. 전방 복귀 프로세서(110) 및 후방 복귀 프로세서(112)는 블럭에 대해 작용한다.The present invention solves these problems in a novel way. Figure 6 shows a trellis diagram using convolutional decoding in accordance with the present invention. The trellis code is obtained from a convolution coded signal sequence represented by trellis of length N in the communication system shown briefly in FIG. In the radiotelephone 100, as is known in the art, a signal passes through the receiver 104 and the demodulator 106 at the antenna 102. This signal is loaded into the frame buffer 106. The forward return processor 110 and the backward return processor 112 act on the block.

본 발명은 초기화를 위해 기지 상태를 사용하는 모든 복귀가 각 윈도우에 대해 수행되는 최적의 기술이지만, 종래 기술의 슬라이딩 윈도우 방법에서 사용되는 미지의 값은 관련된 학습 기간이라는 점에서, 본 발명은 도 3 내지 도 5의 이미 설명한 슬라이딩 윈도우 기술과 다르다. 본 발명은 길이 N의 블럭을 X개의 길이 L의 섹션으로 분할하지만, 모든 섹션의 길이가 같을 필요는 없으며, 설명의 목적상 길이가 같은 것으로 가정한다. 종래 기술에서와 같이, 지점 0 및 N의 상태는 기지이다. 본 발명은 결정된 N에서 L까지의 블럭 길이에 걸쳐 제1의 후방 복귀를 제공하여 각 윈도우 끝의 상태 메트릭을 정의하는 특정 시각에서의 역방 복귀를 저장한다. 일반성을 상실하지 않고, 역방 값의 N/L이 βN부터 시작하여 균일하게 저장된다. 저장된 β끝점을 갖는 각 인덱스 그룹이 윈도우로서 정의되기 때문에, 트렐리스는 기지의 β끝점을 갖는 N/L개의 섹션으로 분리된다.The present invention is an optimal technique in which all returns using the known state for initialization are performed for each window, but in the sense that the unknown value used in the sliding window method of the prior art is an associated learning period, To the previously described sliding window technique of FIG. 5. The present invention divides a block of length N into X length L sections, but not all sections need to have the same length, and is assumed to be the same length for purposes of explanation. As in the prior art, the states of points 0 and N are known. The present invention provides a first backward return over the determined N to L block lengths to store the reverse return at a particular point in time defining the state metric of each window end. Without loss of generality, N / L of inverse values are stored uniformly starting from β N. Since each index group with the stored β endpoint is defined as a window, the trellis is divided into N / L sections with known β endpoints.

그 후에, 후방 복귀가 각 윈도우의 끝에 있는 기지의 β값 상태부터 L-1개의미지의 상태 메트릭에 대해 수행되고 저장된 다음에, 전방 복귀를 하여 소프트 출력이 제순서로 발생되므로 전체 윈도우가 지나가기를 기다리지 않고 즉각적으로 출력될 수 있다. 특히, 슬라이딩 윈도우는 길이 L을 가지고 전체 트렐리스 길이 N이 L의 배수와 같도록 정의되어 윈도우는 길이 L씩 트렐리스의 시작부터 끝까지 슬라이드한다. 본 발명은 종래 기술의 슬라이딩 윈도우 방법과는 달리 모든 복귀가 기지의 상태로부터 시작하기 때문에 최적이다.Thereafter, a backward return is performed and stored for L-1 unknown state metrics from the known β value state at the end of each window, and then the forward return causes the soft output to be generated in sequence so that the entire window passes. It can be output immediately without waiting. In particular, the sliding window has a length L and the total trellis length N is defined to be equal to a multiple of L so that the window slides from start to end of the trellis by length L. The present invention is optimal because, unlike the sliding window method of the prior art, all returns start from a known state.

상세히 설명하면, 후방 복귀(일반화된 비터비 알고리즘을 사용)가 블럭의 기지의 종단 상태부터 시작하여 첫번째 윈도우의 끝(첫번째 윈도우의 시작은 이미 블럭의 시작이므로 기지임)까지 후방 프로세서(112)에 의해 수행된다. 각 윈도우의 끝에 있는 상태 메트릭만 저장된다. 이들 메트릭은 블럭의 기지의 종단 상태로부터 도출되기 때문에 최적값이 된다. 그 다음에 후방 복귀는 첫번째 윈도우의 끝에서의 기지 상태부터 시작하여 역으로 윈도우의 시작부까지의 후방 프로세서(112)에 의해 수행되어 메모리(114)에 저장된다. 전방 복귀 프로세서(110)는 그 다음에 윈도우의 시작점의 기지의 상태부터 윈도의 길이에 걸쳐 전방 복귀를 수행하고 β 및 γ를 사용하여 αt(m) 및 Λt를 계산한다. 이와 병행하여, 디코더(116)는 소프트 출력 결정을 출력하는데, 이 결정은 메모리(114)내의 기지의 후방 복귀, 전방 복귀 프로세서(110)로부터의 전방 복귀 상태 메트릭으로부터의 정보, 및 현재의 분기 메트릭을 사용하여 발생된다.In detail, the back return (using the generalized Viterbi algorithm) starts at the known end of the block and goes to the rear processor 112 until the end of the first window (the start of the first window is already known as the beginning of the block). Is performed by. Only state metrics at the end of each window are stored. These metrics are optimal because they are derived from the known termination state of the block. The back return is then performed by the back processor 112 and stored in the memory 114 starting from the known state at the end of the first window and back to the beginning of the window. The forward return processor 110 then performs a forward return from the known state of the starting point of the window over the length of the window and calculates α t (m) and Λ t using β and γ. In parallel, the decoder 116 outputs a soft output decision, which determines the known back return in the memory 114, information from the forward return status metric from the forward return processor 110, and the current branch metric. Is generated using

첫번째 윈도우의 끝에서, 윈도우는 L만큼 전방으로 슬라이드하고, 그 윈도우및 후속의 각 윈도우에 대해 전체 블럭이 디코드될 때까지 프로세스를 반복한다. 양호한 실시예에서는, 전방 복귀 프로세서(110)가 첫번째 윈도우내에서 동작할 때, 후방 복귀 프로세서(112)는 그 다음 윈도우의 끝에서의 기지의 상태부터 역으로 그 다음 윈도우의 시작부까지의 후방 복귀를 사용하여 그 다음 윈도우내의 트렐리스의 일부분을 디코드하여 메모리가 전방 복귀 프로세서(110)에 의해 클리어될 때 메모리(114)에 저장되어 있는 그 다음 윈도우내의 기지의 후방 복귀 상태 메트릭의 세트를 정의하고, 현재의 윈도우가 처리된 바로 후에 그 다음 윈도우의 디코딩을 시작하기 위해 전방 복귀 프로세서(110)을 이용가능한 상태로 놓아두게 된다. 상기한 순환 버퍼 대신에 별도의 버퍼 메모리를 사용할 수 있다는 것을 알아야만 한다. 양호하게는, 전방 및 후방 프로세서는 블럭내의 모든 윈도우가 디코딩될 때까지 병행하여 동작을 한다.At the end of the first window, the window slides forward by L and repeats the process for that window and each subsequent window until the entire block is decoded. In the preferred embodiment, when the forward return processor 110 operates within the first window, the backward return processor 112 returns backward from the known state at the end of the next window and vice versa to the beginning of the next window. Decode a portion of the trellis in the next window to define a set of known backward return state metrics in the next window stored in memory 114 when the memory is cleared by the forward return processor 110. And immediately after the current window has been processed, the forward return processor 110 remains available to begin decoding the next window. It should be noted that a separate buffer memory can be used in place of the circular buffer described above. Preferably, the front and back processors operate in parallel until all windows in the block are decoded.

본 발명의 잇점은 출력이 순서대로 제공되며 추가의 버퍼 메모리가 필요하지 않고 출력이 생성될 때 출력될 수 있다는 것이다. 부가의 잇점은 소프트 출력 디코더가 종래의 기술에 비해 최적이라는 점이다. 본 발명의 소프트 출력 디코더는 N의 출력 지연으로 1/2의 처리 능력을 제공한다.An advantage of the present invention is that the outputs are provided in order and do not require additional buffer memory and can be output when the output is generated. An additional advantage is that the soft output decoder is optimal compared to the prior art. The soft output decoder of the present invention provides half the processing power with an N output delay.

도 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 알고리즘)과 같은 기지의 터보 코딩 기술에 따라 각 소프트 출력을 계산한다.FIG. 8 is an enlarged view of the graph of FIG. 6, with time components added. The operation results in the backward processor performing a first backward return from position N to L at time 0 to define the optimal known state at the end of each window at positions L, 2L, 3L and the like. This results in a first delay of length N-L. From time N-L to N (interval L), a second back return is performed over the first window from position L to O and the information is stored. From time N to N + L, forward return operates from the initial known state from position 0 to L, generating a soft output across the first window using the forward return value, the stored back return value, and the current branch metric. Output During this same time (N to N + L), a separate back return is performed from position 2L to L to be used in the subsequent window and repeated. The present invention calculates each soft output according to a known turbo coding technique such as that disclosed in Bahl et al., Supra (BCJR algorithm).

본 발명의 잇점은 이것이 최적이라는 점과 소프트 출력이 생성될 때 출력되므로 출력될 때 메모리를 프리 상태로 한다는 점이다. 또한, 메모리가 클리어될 때, 그 다음 윈도우에 대한 후방 복귀로부터의 새로운 정보가 메모리내로 순환될 수 있다. 따라서, 본 발명은 종래 기술에서 필요했던 출력의 순서를 바꾸기 위한 버퍼 메모리가 필요없을 뿐만 아니라, 메모리 요건도 절반으로 줄었다. 충분한 메모리가 있을 경우에는 이렇게 할 필요가 없다는 것을 알아야 한다. 게다가, 본 발명은 종래 기술에서 출력 생성시 소프트 출력의 순서를 바꿀 필요가 없기 때문에 시간도 절감된다. 또한, 출력에 후입선출(last-in first-out) 포맷이 필요한 경우에는, 상기한 전체 프로세스의 순서를 바꿀 수 있다(미러-이미지)는 것도 알아야 한다.The advantage of the present invention is that it is optimal and the memory is free when it is output since it is output when the soft output is generated. Also, when the memory is cleared, new information from the backward return to the next window can be cycled into the memory. Thus, the present invention not only eliminates the need for a buffer memory to reorder the outputs required in the prior art, but also halves the memory requirements. Note that you do not need to do this if you have enough memory. In addition, the present invention saves time because the prior art does not need to change the order of the soft outputs upon output generation. It should also be noted that if the output requires a last-in first-out format, the order of the entire process described above can be reversed (mirror-image).

도 9는 본 발명에 따라 블럭 길이 N의 트렐리스로 표현된 수신된 콘벌루션 코딩된 신호의 시퀀스를 디코딩하는 방법(200)을 나타낸 플로우챠트이다. 트렐리스 다이어그램은 기술 분야에 공지되어 있다. 첫번째 단계(202)는 트렐리스를 길이 L의 윈도우로 분할하는 것이다. 그 다음 단계(204)는 블럭의 끝에 있는 지점 N에서의 기지의 메트릭으로부터 역으로 첫번째 윈도우의 끝으로의 후방 복귀를 사용하여 트렐리스의 부분을 디코딩하여 각 윈도우의 끝에 소정의 상태 메트릭을 저장하는 것이다. 일반화된 비터비 알고리즘이 복귀에 사용된다. 길이 L은 콘벌루션 코드의 제한 길이와 독립적이지만, 편의상 제한 길이의 배수로 설정할 수 있고 또는 가변으로 할 수도 있다. 그 다음 단계(206)는 트렐리스의 윈도우를 선택하는 것이다. 그 다음 단계(208)는 상기 디코딩 단계에서 정의된 윈도우의 끝에서의 기지의 상태로부터 역으로 윈도우의 시작부로의 후방 복귀를 사용하여 윈도우내의 트렐리스의 일부분을 디코딩하여 윈도우내의 기지의 후방 복귀 상태 메트릭의 세트를 정의하고 이 기지의 후방 복귀 상태 메트릭의 세트를 메모리에 저장하는 것이다. 그 다음 단계(210)는 윈도우의 시작부에서의 기지의 상태로부터 시작하여 전방으로 이동하는 전방 복귀를 사용하여 윈도우내의 트렐리스의 일부분을 디코딩하는 것이다. 그 다음 단계(212)는 전방 복귀 상태 메트릭, 분기 메트릭, 및 저장된 후방 복귀 상태 메트릭을 사용하여 전방 복귀 프로세스의 각 스테이지에서 소프트 출력을 계산하여 그 스테이지에 대한 소프트 출력을 출력하는 것이다. 양호하게는, 복귀 갱신 및 소프트 출력은 MAP 알고리즘 또는 MAP 유도 함수(즉, log-MAP, max-log-MAP, constant-log-MAP 등등) 중 하나를 사용하여 계산된다.9 is a flowchart illustrating a method 200 for decoding a sequence of received convolutional coded signals represented by trellis of block length N in accordance with the present invention. Trellis diagrams are known in the art. The first step 202 is to split the trellis into a window of length L. Step 204 then decodes the portion of the trellis using a backward return back from the known metric at point N at the end of the block to the end of the first window, storing the predetermined state metric at the end of each window. It is. A generalized Viterbi algorithm is used for the return. The length L is independent of the limit length of the convolutional code, but may be set to a multiple of the limit length for convenience or may be variable. The next step 206 is to select the window of the trellis. Step 208 then decodes a portion of the trellis in the window using the backward return to the beginning of the window, inversely from the known state at the end of the window defined in the decoding step, to return the known backward in the window. It defines a set of state metrics and stores this known set of backward return state metrics in memory. The next step 210 is to decode a portion of the trellis in the window using forward return moving forward and starting from the known state at the beginning of the window. The next step 212 is to calculate the soft output at each stage of the forward return process using the forward return state metric, the branch metric, and the stored back return state metric and output the soft output for that stage. Preferably, the return update and soft output are calculated using one of the MAP algorithms or MAP derivation functions (ie log-MAP, max-log-MAP, constant-log-MAP, etc.).

일단 윈도우가 완전히 디코딩되면, 윈도우는 거리 L만큼 전방으로 "슬라이드" 할 수 있고, 그 다음 윈도우의 시작부는 이전에 결정된 기지의 상태부터 시작하도록 이전의 윈도우의 끝에서 시작한다. 상기 단계들은 새로운 윈도우에 대해 반복될 수 있다. 이 프로세스는 블럭 내의 모든 윈도우들이 처리될 때까지 계속된다. 본 발명은 종래 기술과는 달리 블럭내의 마지막 윈도우에 대해 특별한 처리가 필요하지 않다는 잇점이 있다.Once the window is fully decoded, the window can "slide" forward by a distance L, and then the beginning of the window begins at the end of the previous window to start from a previously determined known state. The above steps can be repeated for a new window. This process continues until all windows in the block have been processed. Unlike the prior art, the present invention has the advantage that no special processing is required for the last window in the block.

양호한 실시예에서, 그 다음 윈도우에 대한 후방 복귀가 현재의 윈도우에서 전방 복귀 및 출력이 행해지는 것과 병행하여 수행되는 경우에 추가의 단계를 포함한다. 바꾸어 말하면, 그 다음 윈도우에 대한 처리는 첫번째 윈도우가 처리되고 있는 동안에 시작된다. 특히, 추가의 단계는 상기 단계들을 반복하는 단계를 포함하며, 이 때 반복되는 선택 단계는 현재 선택된 윈도우의 끝에서 시작하는 그 다음 윈도우를 선택하는 단계를 포함하며, 반복된 단계들인 그 다음 윈도우에 대한 디코딩 및 계산 단계는 한 스텝 무순서로 또한 현재의 윈도우의 처리와 병행하여 일어난다. 이 부가 단계로 처리 시간이 절감되고, 부가 메모리가 필요없게 된다. 보다 양호하게는, 첫번째 윈도우에 대한 전방 복귀가 수행되고 있는 동안, 저장된 메모리가 클리어되고, 그 다음 윈도우의 후방 복귀가 메모리의 클리어된 부분에 저장 또는 순환된다.In a preferred embodiment, a further step is included if a backward return to the next window is performed in parallel with the forward return and output being made in the current window. In other words, processing for the next window begins while the first window is being processed. In particular, the further step includes repeating the above steps, wherein the repeating selection step includes selecting a next window starting at the end of the currently selected window, the repeated steps being in the next window. The decoding and calculating steps for the step take place in one step and in parallel with the processing of the current window. This additional step saves processing time and eliminates the need for additional memory. More preferably, while the forward return to the first window is being performed, the stored memory is cleared, and the back return of the window is then stored or cycled to the cleared portion of the memory.

표 1은 본 발명의 양호한 2-패스 방법과 함께 3가지 종래 기술의 방법의 메모리, 처리 능력 및 계산 요건을 요약한 것이다. 그러나, 본 발명의 주된 잇점은 종래 기술의 슬라이딩 방법과는 달리 최적의 솔루션을 제공한다는 것과 다른 최적 솔루션, 종래 기술의 BCJR법보다 훨씬 적은 메모리를 필요로 한다는 것이다.Table 1 summarizes the memory, processing power and computational requirements of the three prior art methods along with the preferred two-pass method of the present invention. However, the main advantage of the present invention is that unlike the prior art sliding method, it provides an optimal solution and other optimal solution, which requires much less memory than the BCJR method of the prior art.

후방 복귀에 대한 4가지 방법의 비교Comparison of Four Methods for Backward Return 방법Way 필요 메모리Need memory 처리 능력Processing power 계산의 복잡도Calculation Complexity BCJRBCJR NM 워드NM Word 1/21/2 NM 상태 갱신NM status update 슬라이딩 윈도우Sliding window 0 워드0 word 1/P1 / P LNM 상태 갱신LNM Status Update 비터비 슬라이딩 윈도우Viterbi Sliding Windows ML 워드ML word 1/21/2 2NM 상태 갱신2NM Status Update 본 발명The present invention 워드 word 1/21/2 2NM 상태 갱신2NM Status Update

방법들간의 차이점을 설명하기 위해, 표 2는 시퀀스 길이(N=5000), 상태의 수(M=8), 윈도우 사이즈(L=32)의 일반적인 값을 사용했을 때의 결과를 나타낸 것이다.To illustrate the differences between the methods, Table 2 shows the results when using typical values of sequence length (N = 5000), number of states (M = 8) and window size (L = 32).

일반적인 값 N, M 및 L에 대한 방법들간의 비교Comparison between methods for common values N, M and L 방법Way 필요 메모리Need memory 처리 능력Processing power 계산의 복잡도Calculation Complexity BCJRBCJR 40,000 워드40,000 words 1/21/2 40,000 상태 갱신40,000 Status Update 슬라이딩 윈도우Sliding window 0 워드0 word 1/321/32 1,280,000 상태 갱신1,280,000 Status Updates 비터비 슬라이딩 윈도우Viterbi Sliding Windows 256 워드256 words 1/21/2 80,000 상태 갱신80,000 Status Updates 본 발명The present invention 1132 워드1132 word 1/21/2 80,000 상태 갱신80,000 Status Updates

표 2에 나타낸 바와 같이, 본 발명의 메모리 요건은 아주 타당한 범위내에 있으며 BCJR법보다 훨씬 적은 용량인 반면, 단지 2배의 상태 갱신만 하면 된다(기본적으로 전체 역방 복귀를 2번 수행함). 이에 비해, 슬라이딩 윈도우법은 적은 메모리를 필요로 하지만, 최적이 아니다. 블럭 길이 L은 제한 길이에 독립적이고 최적 성능을 유지하면서 메모리 활용을 최소화하도록 선택될 수 있다. 어떤 경우에는, 본 발명이 필요로 하는 메모리가 비터비 슬라이딩 윈도우법이 필요로 하는 것보다 적다.As shown in Table 2, the memory requirements of the present invention are within a very reasonable range and much smaller than the BCJR method, while only requiring twice the status update (performing two full reverse returns by default). In contrast, the sliding window method requires less memory, but is not optimal. The block length L can be selected to minimize memory utilization while being independent of the limit length and maintaining optimal performance. In some cases, the memory required by the present invention is less than that required by the Viterbi sliding window method.

본 발명은 처리 능력을 향상시키고 터보 디코더에 필요한 것보다 메모리를 크게 감축시키지만 복잡도는 단지 조금 증가한다. 3GPP 표준내의 터보 코드의 경우, 40960 워드의 중간 기억용량이 약 1500 워드 이하로 용이하게 감축될 수 있다. 이에 비해, 종래 기술의 슬라이딩 윈도우 기술은 성능을 열화시킬 뿐만 아니라 계산의 복잡도도 본 발명보다 10 내지 15배 더 요한다.The present invention improves processing power and significantly reduces memory than is needed for a turbo decoder, but only slightly increases in complexity. For turbo codes within the 3GPP standard, the intermediate storage of 40960 words can be easily reduced to about 1500 words or less. In contrast, the prior art sliding window technology not only degrades performance, but also requires 10 to 15 times more computational complexity than the present invention.

콘벌루션 코드에 대한 소프트 출력 디코더의 특정 구성 요소 및 기능에 대해 이상에서 기술하였지만, 당업자라면 본 발명의 광의의 범위내에서 더 적은 기능 또는 부가 기능을 사용할 수 있다. 본 발명은 첨부된 특허 청구항들에 의해 한정되는 것은 아니다.Although specific components and functions of the soft output decoder for convolutional codes have been described above, those skilled in the art may use fewer or additional functions within the broad scope of the present invention. The invention is not limited by the appended patent claims.

Claims (9)

블럭 길이 N의 트렐리스(trellis)로 표현된 콘벌루션 코딩된 수신 신호 시퀀스(a received convolutionally coded sequence of signals)를 최적으로 디코딩하는 방법(200)에 있어서,A method 200 for optimally decoding a received convolutionally coded sequence of signals represented by trellis of block length N, a) 트렐리스를 윈도우들로 분할하는 단계(202);a) dividing the trellis into windows (202); b) 상기 트렐리스의 길이 L의 윈도우를 선택하는 단계(206);b) selecting (206) a window of length L of said trellis; c) 상기 블럭의 끝에 있는 지점 N부터 역으로 상기 윈도우의 끝으로의 후방 복귀(backward recursion)를 사용하여 상기 트렐리스의 일부분을 디코딩하여 각 윈도우의 끝에 결정된 상태 메트릭(determined state metrics)을 저장하는 단계(204);c) decode a portion of the trellis using backward recursion back to the end of the window from point N at the end of the block to store determined state metrics at the end of each window Step 204; d) 상기 단계 c)에서 정의된 상기 윈도우의 끝에서의 기지의 상태부터 역으로 상기 윈도우의 시작부로의 후방 복귀를 사용하여 상기 윈도우내의 트렐리스의 일부분을 디코딩하여 상기 윈도우에서의 기지의 후방 복귀 상태 메트릭 세트(a set of known backward recursion state metrics)를 정의하고, 이 기지의 후방 복귀 상태 메트릭 세트를 메모리에 저장하는 단계(208);d) decoding a portion of the trellis in the window using a backward return to the beginning of the window, from the known state at the end of the window defined in step c), to Defining a set of known backward recursion state metrics and storing the known set of backward recursion state metrics in memory (208); e) 상기 윈도우의 시작부에서의 기지의 상태부터 시작하여 전방으로 이동하는 전방 복귀를 사용하여 상기 윈도우내에서 상기 트렐리스의 일부분을 디코딩하는 단계(210); 및e) decoding (210) a portion of said trellis within said window using a forward return moving forward starting from a known state at the beginning of said window; And f) 전방 복귀 상태 메트릭, 분기 메트릭(branch metric) 및 상기 저장된 후방 복귀 상태 메트릭을 사용하여 상기 전방 복귀의 각 스테이지에서 소프트 출력을 계산하고 각 스테이지에서 이 소프트 출력을 출력하는 단계(212)f) calculating a soft output at each stage of the forward return and outputting this soft output at each stage using a forward return state metric, a branch metric and the stored back return state metric 를 포함하는 것을 특징으로 하는 디코딩 방법.Decoding method comprising a. 제1항에 있어서, 상기 분할 단계(202)는 상기 길이 L을 상기 콘벌루션 코드의 제한 길이(constraint length)의 배수로 하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.2. The decoding method according to claim 1, wherein said dividing step (202) comprises making said length L a multiple of the constraint length of said convolutional code. 제1항에 있어서, 상기 분할 단계(202)는 상기 길이 L을 상기 콘벌루션 코드의 제한 길이(constraint length)의 배수와 독립적으로 하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.2. The method of claim 1, wherein said dividing step (202) comprises making said length L independent of a multiple of the constraint length of said convolutional code. 제1항에 있어서,The method of claim 1, g) 상기 블럭 길이 전체 N을 디코딩할 때까지 상기 단계 b) 내지 단계 f)를 반복하는 단계g) repeating steps b) to f) until the block length N is decoded; 를 더 포함하되,Include more, 상기 반복된 선택 단계는 현재 선택된 윈도우의 끝에서 시작되는 그 다음 윈도우를 선택하는 단계(206)를 포함하고,The repeated selecting step includes selecting 206 the next window starting at the end of the currently selected window, 상기 반복된 단계 b) 내지 단계 e)는 각각 현재의 단계 c) 내지 단계 f)와 병행하여(concurrently) 행해지는 것을 특징으로 하는 디코딩 방법.Wherein said repeated steps b) to e) are performed concurrently with the current steps c) to f), respectively. 소프트-결정 출력 디코더(soft-decision output decoder; 110, 112, 114, 116)에 의해 프레임 버퍼(108)에서 길이 L의 윈도우로 분할되는 블럭 길이 N의 트렐리스로 표현된 콘벌루션 코딩된 신호 시퀀스를 처리하기 위한 수신기(104) 및 복조기(106)를 갖는 무선 전화(100)에 있어서,A convolution coded signal sequence represented by a trellis of block length N, divided by a soft-decision output decoder 110, 112, 114, 116 into a window of length L in the frame buffer 108. In a radiotelephone 100 having a receiver 104 and a demodulator 106 for processing 상기 디코더는,The decoder, 메모리(114);Memory 114; 후방 복귀 프로세서(backward recursion processor; 112);A backward recursion processor 112; 전방 복귀 프로세서(forward recursion processor; 110) 및Forward recursion processor 110 and 상기 메모리(114)에 결합된 디코더(116)Decoder 116 coupled to the memory 114 를 포함하되,Including but not limited to: 상기 후방 복귀 프로세서는 상기 블럭의 끝에 있는 지점 N부터 역으로 상기 윈도우의 끝으로의 후방 복귀를 사용하여 상기 트렐리스의 일부분을 디코드하여 상기 메모리에 저장되어 있는 각 윈도우의 끝에서의 상태 메트릭을 정의하고,The backward return processor decodes a portion of the trellis using a backward return to the end of the window, starting from point N at the end of the block, and returns a state metric at the end of each window stored in the memory. Define, 상기 후방 복귀 프로세서는 이어서 상기 윈도우의 끝에서의 기지의 상태부터 역으로 상기 윈도우의 시작부로의 후방 복귀를 사용하여 상기 윈도우내에서 상기 트렐리스의 일부분을 디코딩하여 상기 메모리에 저장되어 있는 상기 윈도우에서의 기지의 후방 복귀 상태 메트릭 세트를 정의하며,The backward return processor then decodes a portion of the trellis within the window using the backward return back to the beginning of the window from the known state at the end of the window and stored in the memory. Define a set of known backward return metrics in 상기 전방 복귀 프로세서는 상기 윈도우의 시작부에서의 기지의 상태부터 시작하여 전방으로 이동하는 전방 복귀를 사용하여 상기 윈도우에서의 트렐리스의 일부분을 디코딩하고,The forward return processor decodes a portion of the trellis in the window using forward return moving forward, starting from a known state at the beginning of the window, 상기 전방 복귀 프로세서는 상기 전방 복귀 상태 메트릭, 상기 메모리에 저장된 후방 복귀 상태 메트릭, 및 각 스테이지에서의 분기 메트릭(branch metric)을 사용하여 상기 전방 복귀의 각 스테이지에서 소프트 출력(soft output)을 계산하고, 그 스테이지에 대한 소프트 출력을 출력하는 것을 특징으로 하는 무선 전화.The forward return processor calculates a soft output at each stage of the forward return using the forward return state metric, a backward return state metric stored in the memory, and a branch metric at each stage. And outputting a soft output for the stage. 제5항에 있어서, 상기 길이 L은 상기 콘벌루션 코드의 제한 길이(constraint length)의 배수인 것을 특징으로 하는 무선 전화.6. A radiotelephone as set forth in claim 5, wherein said length L is a multiple of a constraint length of said convolutional code. 제5항에 있어서, 상기 길이 L은 상기 콘벌루션 코드의 제한 길이(constraint length)와 독립적인 것을 특징으로 하는 무선 전화.6. A radiotelephone as claimed in claim 5, wherein the length L is independent of the constraint length of the convolutional code. 제5항에 있어서, 전방 복귀 프로세서(110)가 상기 윈도우내에서 동작할 때, 후방 복귀 프로세서(112)는 그 다음 윈도우의 끝에서의 기지의 상태부터 역으로 그 다음 윈도우의 시작부로의 후방 복귀를 사용하여 그 다음 윈도우내의 트렐리스의 일부분을 디코딩하여 상기 전방 복귀 프로세서(110)에 의해 메모리가 클리어될 때 상기 메모리(114)에 저장되는 그 다음 윈도우에서의 기지의 후방 복귀 상태 메트릭 세트를 정의하고, 현재의 윈도우가 처리된 바로 후에 그 다음 윈도우의 디코딩을 시작하기 위해 전방 복귀 프로세서(100)를 이용가능한 상태로 두는 것을 특징으로하는 무선 전화.6. The method of claim 5, wherein when the forward return processor 110 operates within the window, the backward return processor 112 returns back to the beginning of the next window from the known state at the end of the next window. Decode a portion of the trellis in the next window to obtain a set of known backward return state metrics at the next window stored in the memory 114 when the memory is cleared by the forward return processor 110. And leave the forward reversion processor (100) available immediately after the current window has been processed to begin decoding the next window. 제8항에 있어서, 상기 전방 및 후방 프로세서(110, 112)는 상기 블럭내의 모든 윈도우가 디코딩될 때까지 병행하여 동작하는 것을 특징으로 하는 무선 전화.10. The radiotelephone according to claim 8, wherein the front and rear processors (110, 112) operate in parallel until all windows in the block are decoded.
KR10-2001-0006371A 2000-02-10 2001-02-09 Soft output decoder for convolutional codes KR100369422B1 (en)

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 true KR20010082093A (en) 2001-08-29
KR100369422B1 KR100369422B1 (en) 2003-01-30

Family

ID=23991075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0006371A KR100369422B1 (en) 2000-02-10 2001-02-09 Soft output decoder for convolutional codes

Country Status (3)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703307B1 (en) * 2002-08-06 2007-04-03 삼성전자주식회사 Turbo decoding apparatus and method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6598204B1 (en) * 1999-02-18 2003-07-22 Imec Vzw System and method of turbo decoding
DE60007956T2 (en) * 2000-02-21 2004-07-15 Motorola, Inc., Schaumburg Device and method for SISO decoding

Also Published As

Publication number Publication date
GB0102720D0 (en) 2001-03-21
GB2365289A (en) 2002-02-13
CN1308415A (en) 2001-08-15
GB2365289B (en) 2002-11-13
KR100369422B1 (en) 2003-01-30
CN1136661C (en) 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
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
EP1314254B1 (en) Iteration terminating for turbo decoder
HU220815B1 (en) Method for parallel concatenated tail-biting convolutional coding and decoding, coder and decoder of composite codes, coder and decoder system
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 (en) Method for decoding Turbo
EP2302811B1 (en) Soft output viterbi algorithm method and decoder
KR100369422B1 (en) Soft output decoder for convolutional codes
US6857101B1 (en) Apparatus and method of storing reference vector of state metric
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
WO2002021784A1 (en) Soft-output error-trellis decoder for convolutional codes
Yang et al. Iterative joint source channel decoding in wireless sensor networks
Koora et al. From Algorithms testing to ASIC Input code of SOVA algorithm for TURBO-Codes
KR20020066556A (en) A method and apparatus for implementing TURBO 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