KR20020066759A - Processor and method for implementing MAP algorithm used in a turbo decoder - Google Patents

Processor and method for implementing MAP algorithm used in a turbo decoder Download PDF

Info

Publication number
KR20020066759A
KR20020066759A KR1020010007099A KR20010007099A KR20020066759A KR 20020066759 A KR20020066759 A KR 20020066759A KR 1020010007099 A KR1020010007099 A KR 1020010007099A KR 20010007099 A KR20010007099 A KR 20010007099A KR 20020066759 A KR20020066759 A KR 20020066759A
Authority
KR
South Korea
Prior art keywords
block
acs
subframe
output
compare
Prior art date
Application number
KR1020010007099A
Other languages
Korean (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 삼성전자 주식회사
Priority to KR1020010007099A priority Critical patent/KR20020066759A/en
Publication of KR20020066759A publication Critical patent/KR20020066759A/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
    • H03M13/3922Add-Compare-Select [ACS] operation in forward or backward recursions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2978Particular arrangement of the component decoders

Abstract

PURPOSE: A MAP(Maximum A-Posteriori) algorithm embodying processor for a turbo decoder and a method for embodying the MAP algorithm are provided to process high speed data and reduce a complexity of a hardware by embodying the maximum normalized throughput instead of a full-speed architecture necessary for hardware and memory architecture of a low throughput. CONSTITUTION: In a MAP algorithm embodying processor for a turbo decoder for receiving a branch metric and outputting extrinsic information, the first ACS(Add-Compare-Select) block(10) performs a recursive Add-Compare-Select calculation and outputs a reverse state metric with respect to a sub frame which is sectioned into a plurality of sections from one flame of the branch metric. The second ACS block(20) performs a recursive Add-Compare-Select calculation and outputs a forward state metric. The third ACS block(30) makes the output of the first ACS block(10) as an initial value, performs a recursive Add-Compare-Select calculation, and outputs a reverse state metric with respect to the sub frame. A plurality of buffers(61-64) stores the sub frames being inputted successively and shifts the sub frames successively, and inputs the sub frames in the first, second, and third ACS blocks(10,20,30). An LLRE(Log Likelihood Ratio Evaluator) block(40) performs an Add-Compare-Select calculation with respect to an output of the second and third ACS blocks(20,30) and an output of the buffer for storing data being inputted in the third ACS block(30), and outputs extrinsic information.

Description

터보디코더용 맵알고리즘 구현 프로세서 및 맵알고리즘 구현방법{Processor and method for implementing MAP algorithm used in a turbo decoder}Processor and method for implementing MAP algorithm used in a turbo decoder

본 발명은 터보디코더용 맵알고리즘 구현 프로세서 및 그 구현방법에 관한 것으로서, 보다 상세하게는, 터보디코더 내에서 반복적인 디코딩동작을 수행하기 위해 맵(MAP)알고리즘을 구현하는 프로세서 및 그 구현방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a processor for implementing a map algorithm for a turbo decoder and a method for implementing the same. will be.

일반적으로 무선 디지털통신에서는 채널상의 에러를 보정하기 위해 송신단에서 에러정정코드를 가하고 디코더에서 에러를 보정하는 방법을 사용한다. 이러한 에러보정 가능한 코딩 방식 중 하나로 사용되는 것이 터보코드(Turbo Code)이다. 터보코드는 미국향 CDMA2000 및 유럽향 W-CDMA에서 높은 데이터율(data rate)을 필요로 하는 채널에 채택되고 있다. 이 터보코드는 낮은 수신전력에서도 반복복호를 행함으로써 이론적인 한계치인 샤논한계(Shannon Limit)에 매우 근접하는 것으로 알려져 있다. 이 터보코드의 복호방법에는 SOVA(Soft-Output Viterbi Algorithm) 방식과 MAP(Maximum A Posteriori) 방식이 있는데, MAP방식이 SOVA방식보다 채널환경이 좋은 AWGN(Additive White Gaussian Noise)환경에서 0.3㏈ 정도, 그리고 채널환경이 좋지 않은 레이라이페이딩(Rayleigh Fading)환경에서 3㏈ 정도 더 높은 코딩이득(coding gain)을 갖는 것으로 알려져 있다.In general, in wireless digital communication, an error correction code is applied at a transmitter and a decoder is used to correct an error on a channel. One of such error-correctable coding schemes is turbo code. Turbocode has been adopted for channels that require high data rates in US CDMA2000 and W-CDMA for Europe. The turbo code is known to be very close to the Shannon limit, which is a theoretical limit by performing repeated decoding even at low reception power. The turbo code decoding methods include SOVA (Soft-Output Viterbi Algorithm) and MAP (Maximum A Posteriori). The MAP method is 0.3 dB in AWGN (Additive White Gaussian Noise), which has better channel environment than SOVA. In addition, it is known to have a coding gain of about 3 dB higher in a Rayleigh Fading environment where the channel environment is not good.

도 1은 일반적인 터보코드를 생성하는 터보인코더를 도시한 도면으로서, R=1/3인 터보인코더를 도시한 것이다. 터보인코더는 병렬연접된(parallel concatenated) 두 개의 RSC(Recursive Systematic Convolutional)블록(RSC1, RSC2)과 한 개의 인터리버(interleaver)로 구성되어 있다. 정보비트 시퀀스(dk)는 첫번째 RSC블록(RSC1)에 입력되고, RSC블록(RSC1)은 첫번째 패리티비트열(Y1k)을 생성한다. 정보비트시퀀스(dk)는 이와 동시에 인터리버(interleaver)에 입력되어 프레임 단위로 저장된다. 인터리버에 입력된 정보비트시퀀스(dk)는 인터리버에 의해 인터리빙(interleaving)되고, 인터리빙된 정보비트시퀀스(dk')가 두번째 RSC블록(RSC2)에 입력된다. RSC블록(RSC2)은 두번째 패리티비트열(Y2k)을 생성한다.1 shows a turbo encoder for generating a general turbo code, and shows a turbo encoder with R = 1/3. The turbo encoder is composed of two parallel concatenated Recursive Systematic Convolutional (RSC) blocks (RSC1, RSC2) and one interleaver. The information bit sequence d k is input to the first RSC block RSC1, and the RSC block RSC1 generates the first parity bit string Y 1k . The information bit sequence d k is simultaneously input to an interleaver and stored in units of frames. The information bit sequence d k input to the interleaver is interleaved by the interleaver, and the interleaved information bit sequence d k ′ is input to the second RSC block RSC2. The RSC block RSC2 generates a second parity bit string Y 2k .

입력된 정보비트열(dk)가 그대로 출력된 Xk와 첫번째 및 두번째 패리티비트열 Y1k, Y2k가 합해져 부호시퀀스가 (X1, Y11, Y21, X2, Y12, Y22, X3, Y13, Y23, ......)인 터보코드가 생성되게 되며, 이때 코드율(code rate) R=1/3이 된다. 이 부호시퀀스를 BPSK(Binary Phase Shift Keying)로 변조한 뒤 채널상으로 전송하게 된다. 즉, 1과 0의 부호시퀀스는 +1과 -1의 전송심벌로 변화된 후 채널상으로 송신된다.The input information bit sequence (d k) is as the output X k and the first and second parity bit stream Y 1k, Y 2k haphaejyeo code sequences (X 1, Y 11, Y 21, X 2, Y 12, Y 22 , X 3 , Y 13 , Y 23 ,...) Is generated, and the code rate R = 1/3. The code sequence is modulated by binary phase shift keying (BPSK) and transmitted on the channel. That is, the code sequences of 1 and 0 are transmitted on the channel after being changed to the transmission symbols of +1 and -1.

채널을 거쳐 수신되는 전송심벌에는 여러 가지 잡음이 더해진다. 이를 수식적으로 표현하면 다음과 같다.Various noises are added to the transmission symbol received through the channel. This can be expressed as a formula.

xk= (2Xk- 1) + Pk x k = (2X k -1) + P k

yk= (2Yk- 1) + Qk y k = (2Y k -1) + Q k

여기서, Xk와 xk는 각각 전송된 정보비트열 및 수신된 정보심벌열이고, Yk와 yk는 각각 전송된 패리티비트열 및 수신된 패리티심벌열이며, Pk와 Qk는 서로 독립적인 잡음(noise)이다.Where X k and x k are the transmitted information bit stream and the received information symbol stream, respectively, Y k and y k are the transmitted parity bit stream and the received parity symbol stream, respectively, and P k and Q k are independent of each other. Noise.

MAP방식을 이용한 터보디코더의 일반적인 블록도는 도 2에 도시된 바와 같이 두 개의 맵디코더(Dec1, Dec2)(MAP decoder)가 직렬연접된(Serial Concatenated) 형태로 나타낼 수 있다. 이러한 터보디코더의 원리를 설명하면 다음과 같다.A general block diagram of a turbo decoder using the MAP method may be represented in the form of serial concatenated two map decoders Dec1 and Dec2 (MAP decoder) as shown in FIG. 2. The principle of such a turbo decoder is as follows.

수신된 한 프레임의 심벌시퀀스를 RN 1이라 하자. 이때,Assume that the received symbol sequence of one frame is R N 1 . At this time,

RN 1= (R1, ..... , Rk, .... , RN)R N 1 = (R 1 , ....., R k , ...., R N )

으로 표현할 수 있다.It can be expressed as

여기서 Rk= (xk, yk) 이고, 시간 k에서의 수신심벌들이다.Where R k = (x k , y k ) and receive symbols at time k.

복호되는 dk와 관련된 가능성율(likeligood ratio) λk를 다음과 같이 정의한다.The likeligood ratio λ k associated with the decoded d k is defined as follows.

λk= P(dk=1|RN 1) / (P(dk=0|RN 1)λ k = P (d k = 1 | R N 1 ) / (P (d k = 0 | R N 1 )

여기서, i=0,1 이고, P(dk=i|RN 1) 은 정보비트 dk의 APP(A Posteriori Probability)이다. MAP방식이란 이 APP가 최대가 되는 정보비트 dk를 선택하는 방식이다.Here, i = 0,1 and P (d k = i | R N 1 ) is APP (A Posteriori Probability) of the information bit d k . The MAP method is a method in which this APP selects the information bit dk that is maximum.

제1맵디코더(Dec1)는 정보비트 dk의 사전확률비(A Priori Probability Ratio) La(dk)와 수신 정보심벌에 대한 값 L(xk)와 첫번째 인코더(RSC1)에 의한 패리티의 수신심벌에 대한 값 L(y1k)를 가지고 정보비트 dk의 외부정보(ExtrinsicInformation)를 만들어낸다. 첫번째 반복에서 제1맵디코더(Dec1)의 La(dk)는 0이 된다. 왜냐햐면 dk의 값은 1 혹은 0을 구성되는데, 송신단에서 1의 사전확률과 0의 사전확률이 똑같이 1/2로 가정할 수 있으므로 비율은 (1/2)/(1/2)이고, 이를 로그도메인(Log-domain)에서 계산하면 log1=0 이 되기 때문이다. L(xk)와 L(y1k)는 xk와 y1k값에다 채널신뢰도(Channel Reliability, Lc)를 곱한 값이 된다. 이러한 입력값을 가지고 제1맵디코더(Dec1)의 출력 L1(dk)는 다음 식과 같은 항의 조합으로 이루어진다.The first map decoder (Dec1) has a priori probability ratio L a (d k ) of the information bits d k , a value L (x k ) for the received information symbol, and parity by the first encoder (RSC1). Extrinsic Information of the information bit d k is generated with the value L (y 1k ) for the reception symbol. In a first iteration, L a (d k ) of the first map decoder Dec1 becomes zero. Because the value of d k consists of 1 or 0, the ratio is (1/2) / (1/2) because the transmit probability of 1 and the prior probability of 0 can be assumed to be equal 1/2. This is because log1 = 0 is calculated in the log domain. L (x k ) and L (y 1k ) are the product of x k and y 1k multiplied by Channel Reliability (L c ). With this input value, the output L 1 (d k ) of the first map decoder Dec1 has a combination of terms as shown in the following equation.

L1(dk) = La(dk) + L(xk) + Le1(dk)L 1 (d k ) = L a (d k ) + L (x k ) + L e1 (d k )

여기서, La(dk)와 L(xk)항은 입력으로 받아들인 항으로서, 출력에서 이 항들을 빼면 제1맵디코더(Dec1)가 생성해내는 외부정보는 Le1(dk)가 된다. 이 항은 각 dk에 관계하는 항으로 제2맵디코더(Dec2)에서 정보비트의 사전확률비로 활용된다.Here, L a (d k ) and L (x k ) terms are input terms. If the terms are subtracted from the output, external information generated by the first map decoder Dec1 is L e1 (d k ). do. This term is a term related to each d k and is used as a prior probability ratio of information bits in the second map decoder Dec2.

첫번째 반복의 제2맵디코더(Dec2)의 입력을 살펴보면 정보비트(dk)의 사전확률비 La(dk)는 제1맵디코더(Dec1)에서 구한 Le1(dk)가 되고, 수신 정보심벌에 대한 값 L(xk)와 두번째 RSC블록(RSC2)에 의한 패리티의 수신심벌에 대한 값 L(y2k)를 입력으로 하게 된다. 여기서 수신패리티 심벌(L(y2k))은 송신단에서 인터리빙된 상태에서 얻어진 값이므로 사전확률비값으로 활용되는 제1맵디코더(Dec1)의 외부정보Le1(dk)와 정보심벌값 L(xk)은 인터리빙을 해서 복호되어진다. 제2맵디코더(Dec2)의 출력 L2(dk)는 다음식과 같은 항의 조합으로 이루어진다.A priori probability ratio L a (d k) of a look at the input of the second map decoders (Dec2) of the first repetition information bit (d k) becomes the L e1 (d k) obtained from the first map decoder (Dec1), the receiving The value L (x k ) for the information symbol and the value L (y 2k ) for the reception symbol of parity by the second RSC block (RSC2) are input. In this case, since the reception parity symbol L (y 2k ) is obtained from the interleaved state at the transmitter, the external information L e1 (d k ) and the information symbol value L (x) of the first map decoder Dec1 used as a pre-probability ratio value are used. k ) is decoded by interleaving. The output L 2 (d k ) of the second map decoder Dec2 is a combination of the following terms.

L2(dk) = La(dk)(=Le1(dk)) + L(xk) + Le2(dk)L 2 (d k ) = L a (d k ) (= L e1 (d k )) + L (x k ) + L e2 (d k )

Le2(dk)는 제2맵디코더(Dec2)가 생성해내는 외부정보이고 두번째 반복에서 제1맵디코더(Dec1)의 사전확률비값으로 사용되어진다.L e2 (d k ) is external information generated by the second map decoder Dec2 and used as a prior probability ratio value of the first map decoder Dec1 in the second iteration.

그리고, 상기와 같은 반복적인 터보복호를 위해서 MAP 알고리즘을 구현하는 데 필요한 수식은 다음과 같다. 하기의 식은 로그영역(Log-Domain)에서 표현되어 있다.And, the equation required to implement the MAP algorithm for the iterative turbo decoding as described above is as follows. The following equation is expressed in the log-domain.

Dk= - (zk+ Lcxk)dk- Lcykck D k =-(z k + L c x k ) d k -L c y k c k

Ak,m= min*(Ak-1,b(0,m)+ Dk-1,b(0,m), Ak-1,b(1,m)+ Dk-1,b(1,m))A k, m = min * (A k-1, b (0, m) + D k-1, b (0, m) , A k-1, b (1, m) + D k-1, b (1, m) )

Bk,m= min*(Bk+1,f(0,m)+ Dk,f(0,m), Bk+1,f(1,m)+ Dk,f(1,m))B k, m = min * (B k + 1, f (0, m) + D k, f (0, m) , B k + 1, f (1, m) + D k, f (1, m ) )

Lk= min*(Ak,m+ Dk,f(0,m)+ Bk+1,f(0,m)|∀m) - min*(Ak,m+ Dk,f(1,m)+ Bk+1,f(1,m)|∀m)L k = min * (A k, m + D k, f (0, m) + B k + 1, f (0, m) | ∀ m )-min * (A k, m + D k, f ( 1, m) + B k + 1, f (1, m) | ∀ m )

min* (A,B) = min (A,B) loge(1 + e-|A-B|)min * (A, B) = min (A, B) log e (1 + e- | AB | )

상기에서 사용된 용어는 다음과 같다.The terms used above are as follows.

시각을 k, 상태를 m, 정보비트를 dk, 그리고 그에 상응하는 패리티비트를 ck라 할 때,Let k be the time, m be the status, d k be the information bits, and c k be the corresponding parity bits,

b(dk,m)과 f(dk,m)은 역방향과 순방향 상태값,b (d k , m) and f (d k , m) are the reverse and forward state values,

Lc는 채널신뢰도 = 2/σ22은 AWGN에서 잡음의 분산(noise variance)이다.),L c is channel reliability = 2 / σ 22 is noise variance in AWGN),

Dk, Ak,m와 Bk,m은 각각 브랜치(branch), 순방향(forward), 및 역방향(reverse)의 상태메트릭(state metric), 그리고D k , A k, m and B k, m are branch, forward, and reverse state metrics, and

m은 모든 상태 m을 의미한다.m means all states m.

이를 구현하려면 한 수신심벌을 모두 받은 상태에서만 가능하다. 그러기 위해서는 순방향 상태메트릭 혹은 역방향 상태메트릭을 모두 저장하여야 하므로 엄청난 양의 메모리가 소요된다. 예를 들어 한 프레임이 5000비트(bit)이고 상태의 수가 8개이며 한 스테이트(state)를 나타내는데 8비트가 사용된다면 320,000비트의 메모리가 필요하고, 한 프레임의 상태메트릭들을 다 구현하려면 모든 수신심벌이 들어와야 하므로 이를 디코딩하는 데에 많은 시간이 필요하여 디코딩지연(decoding delay)이 길어지게 된다.This can only be achieved with one receive symbol received. This requires a large amount of memory because it must store both forward and reverse state metrics. For example, if a frame is 5000 bits, the number of states is 8, and 8 bits are used to represent a state, 320,000 bits of memory are required, and all receive symbols to implement the state metrics of a frame. This requires a large amount of time to decode, resulting in a long decoding delay.

이와 같은 문제점을 해결하기 위해 순방향 상태메트릭은 종전대로 하고 역방향 상태메트릭의 계산향을 줄이는 형태로 슬라이딩윈도우(sliding window)방식이 제안되어 있다. 이 방식은 전체 프레임을 모두 수신한 상태에서 디코딩하는 경우에 비해 0.1 내지 0.2dB 정도의 열화만 존재한다고 알려져 있다. 이 방식을 이용하여 구현한 종래의 MAP 디코더가 도 3 및 도 4에 도시되어 있다.In order to solve such a problem, the sliding window method has been proposed in the form of the forward state metric as before and reducing the calculation direction of the reverse state metric. It is known that this scheme has only about 0.1 to 0.2 dB of degradation compared to the case where the entire frame is decoded with all the received frames. A conventional MAP decoder implemented using this scheme is shown in FIGS. 3 and 4.

도 3은 풀스피드구조(full-speed architecture)의 터보디코더용 MAP 알고리즘 구현 프로세서(상기의 맵디코더(Dec1, Dec2)에 해당됨.)를 도시하고 있다. 수신심벌의 하나의 프레임 사이즈를 N이라 하고 하나의 프레임을 소정의 크기로 구획하여 얻은 서브프레임 사이즈를 Nsub라 한다. 도 3에서는 2Nsub길이 만큼의 버퍼를 두고 브랜치 메트릭을 계산하는 데 필요한 L(xk)와 L(yk)를 입력시킨다. 그리고 2Nsub동안의 시간지연(latency)을 거쳐 순방향 상태 메트릭(forward state metric)을 계산하게 되고, 한 개의 순방향 상태 메트릭에 대응하는 역방향 상태 메트릭(backward state metric)은 2Nsub만큼의 계산 후에 최종적으로 첫번째 디코딩 비트(decoding bit)에 대한 연출력(soft output)을 계산해 내게 된다. 계속해서 모든 디코딩비트의 연출력(soft output)은 이런 식으로 계산해 낸다. 역방향 상태 메트릭을 계산할 때의 모든 상태(state)의 초기(initial)값은 동일하게 둔다. 이러한 구조(architecture)는 하나의 디코딩 비트의 연출력을 계산해 내기 위해 (역방향 상태 메트릭을 계산하는 데에) 많은 계산량이 필요하게 되고, 또한 많은 ACS(Add-Compare-Select)블록을 필요로 한다. 즉 상태(state)의 수 × 2 × Nsub개의 역방향 ACS(Add-Compare-Select)블록을 필요로 하는데, 만약 Nsub= 16 이고, 상태의 수 = 8 인 경우 256개의 ACS블록이 필요하게 된다.FIG. 3 illustrates a MAP algorithm implementation processor (corresponding to the map decoders Dec1 and Dec2 described above) for a turbo decoder in a full-speed architecture. One frame size of the reception symbol is referred to as N, and a subframe size obtained by dividing one frame into a predetermined size is referred to as N sub . In FIG. 3, L (x k ) and L (y k ) required to calculate the branch metric are input with a buffer having a length of 2N sub . The forward state metric is calculated through the time delay during 2N sub , and the backward state metric corresponding to one forward state metric is finally calculated after 2N sub . The soft output for the first decoding bit is calculated. Subsequently, the soft output of all decoded bits is calculated in this way. When calculating the reverse state metric, the initial values of all states are kept the same. This architecture requires a large amount of computation (to calculate the reverse state metric) to calculate the soft output of one decoding bit, and also requires a large number of Add-Compare-Select (ACS) blocks. In other words, the number of states × 2 × N sub backward Add-Compare-Select (ACS) blocks are required. If N sub = 16 and the number of states = 8, 256 ACS blocks are required. .

종래 기술의 다른 예로서 메모리구조(memory architecture)의 터보디코더용맵알고리즘 구현 프로세서가 도 4에 도시되어 있다. 도 4에 도시된 예에서는, 3개의 브랜치 메트릭 저장용 RAM(각각의 용량은 Nsub, 즉, 총 3Nsub길이 만큼의 용량)과 상태의 수 만큼의 순방향 상태 메트릭 저장용 RAM을 이용하여, 역방향 상태 메트릭의 계산량과 ACS의 수를 줄일 수 있다. 그 동작 단계는 다음과 같다.As another example of the prior art, a processor for implementing a map algorithm for a turbo decoder of a memory architecture is shown in FIG. 4. In the example shown in FIG. 4, using three branch metric storage RAMs (each capacity is N sub , i.e., a capacity of 3N sub total length) and as many forward state metric storage RAMs as the number of states, You can reduce the amount of health metrics and the number of ACS. The operation steps are as follows.

첫번째 단계로, Nsub길이 만큼의 첫번째 블록이 RAM1에 저장된 후, Nsub길이 만큼의 두번째 블록이 RAM2에 저장된다.In the first step, the first block of length N sub is stored in RAM1, and the second block of length N sub is stored in RAM2.

두번째 단계로, Nsub길이 만큼의 세번째 블록이 RAM3에 저장되며, 이와 동시에 RAM2에 있는 브랜치 메트릭을 이용하여 역순으로 역방향 상태 메트릭을 계산하고(베타 1), RAM1에 있는 브랜치 메트릭을 이용하여 순방향 상태 메트릭을 계산하면서 aRAM에 저장한다.(알파).In the second step, a third block of length N sub is stored in RAM3, and at the same time, the reverse state metric is calculated in reverse order using the branch metric in RAM2 (beta 1), and the forward state using the branch metric in RAM1. Calculate the metric and store it in aRAM (alpha).

세번째 단계로, aRAM에 있는 순방향 상태 메트릭을 역(reverse)으로 읽어내고, RAM1에 있는 브랜치 메트릭을 이용해서 역방향 상태 메트릭을 계산하고(베타 2), 관련된 디코딩된 비트(decoded bit)에 대한 LLR(Log-Likelihood Rate) 혹은 APP(A Posteriori Probability)값을 찾아낸다. 동시에 Nsub길이만큼의 네번째 블록이 RAM1에 저장된다. 이러한 방식은 역방향 상태 메트릭을 계산하기 위해 읽고(read) 브랜치 메트릭을 저장하기 위해 쓰는(wirte) 읽기-수정-쓰기(read-modify-write)를 해야 하므로 대단하 복잡한 제어를 가지게 된다. 물론 RAM1, RAM2, RAM3, aRAM 모두에 해당되는 사항이다. 그리고 RAM2는 순방향 상태 메트릭(알파), RAM3에는 역방향 상태 메트릭(베타1)을 계산하기 위해 읽기(read)동작을 한다.The third step is to read the forward state metric in aRAM in reverse, calculate the reverse state metric using the branch metric in RAM1 (Beta 2), and apply the LLR for the associated decoded bit. Find the Log-Likelihood Rate (AP) or A Posteriori Probability (APP) value. At the same time, a fourth block of length N sub is stored in RAM1. This approach has tremendous and complex control because it requires a read read-modify-write to read and store branch metrics to compute the reverse state metric. Of course, this is the case for RAM1, RAM2, RAM3, and aRAM. The RAM2 reads to calculate the forward state metric (alpha) and the RAM3 reverse state metric (beta1).

네번째 단계에서는, 세번째 단계와 동일하나 저장하고 읽어내는 RAM만 달라진다.In the fourth step, the same as in the third step, except that the RAM you store and read is different.

그러나, 상기와 같은 구조는 aRAM(순방향 상태 메트릭 저장용 메모리) 및 RAM 1, 2, 3를 제어하는 데에 있어서 동일한 주소(address)에서 읽고 쓰는(read & write) 데에 따르는 낮은 작업처리효율(low throughput)과 제어의 복잡성이라는 문제점을 가지고 있다.However, such a structure has low processing efficiency (read & write) at the same address in controlling aRAM (forward state metric storage memory) and RAMs 1, 2, and 3. low throughput) and control complexity.

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 많은 양의 하드웨어(hardware)를 요하여 그 구조가 복작한 풀스피드구조(full-speed architecture)나, 낮은 작업처리효율(low thruoghput) 때문에 고속 데이터처리가 곤란한 메모리구조(memory architecture)와는 달리, 정규화된 작업처리효율(normalized throughput)을 최대로 하여 고속의 데이터 처리가 가능하면서도 하드웨어의 복잡성을 줄인 터보디코더용 맵 알고리즘 구현 프로세서 및 맵 알고리즘 구현방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to provide a full-speed architecture that requires a large amount of hardware and a complex structure thereof, and low work processing. Unlike memory architecture, where high speed data processing is difficult due to low thruoghput, the turbo algorithm's map algorithm reduces hardware complexity while maximizing normalized throughput. An implementation processor and a map algorithm implementation method are provided.

도 1은 종래의 터보인코더의 블록도,1 is a block diagram of a conventional turbo encoder,

도 2는 종래의 터보디코더의 블록도,2 is a block diagram of a conventional turbo decoder;

도 3은 종래의 터보디코더용 맵알고리즘 구현 프로세서의 일 예를 도시한 블록도,3 is a block diagram showing an example of a conventional map algorithm implementation processor for a turbo decoder;

도 4는 종래의 터보디코더의 맵알고리즘 구현 프로세서의 다른 예를 도시한 블록도,4 is a block diagram showing another example of a map algorithm implementing processor of a conventional turbo decoder;

도 5는 본 발명에 따른 터보디코더용 맵알고리즘 구현 프로세서의 블록도, 그리고5 is a block diagram of a map algorithm implementing processor for a turbo decoder according to the present invention;

도 6은 도 5에 도시된 터보디코더용 맵알고리즘 구현 프로세서에 의해 수행되는 한 프레임 내의 각 서브프레임에 대한 연산 순서를 도시한 도면이다.FIG. 6 is a diagram illustrating an operation sequence for each subframe in one frame performed by the turbo decoder implementation algorithm for map decoder shown in FIG. 5.

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

10, 20, 30, 40 : ACS블록11, 21, 31 : 멀티플렉서10, 20, 30, 40: ACS block 11, 21, 31: multiplexer

61, 62, 63, 64 : 버퍼50, 70 : LIFO블록61, 62, 63, 64: Buffer 50, 70: LIFO block

상기 목적은 본 발명에 따라, 브랜치메트릭을 입력받아 외부정보(Extrinsic information)를 산출하는, 터보디코더용 MAP 알고리즘 구현 프로세서에 있어서, 재귀적(recursive)인 덧셈-비교-선택(Add-Compare-Select) 연산을 수행하여, 상기 브랜치메트릭의 한 프레임을 복수개로 구획한 서브프레임에 대해 역방향 상태메트릭(reverse state metric)을 산출하는 제1 ACS블록; 재귀적인 덧셈-비교-선택 연산을 수행하여, 상기 서브프레임에 대해 순방향 상태 메트릭(forward state metric)을 산출하는 제2 ACS블록; 상기 제1 ACS블록의 출력을 초기치로 하며, 재귀적인 덧셈-비교-선택 연산을 수행하여 상기 서브프레임에 대해 역방향 상태 메트릭을 산출하는 제3 ACS블록; 순차적으로 입력되는 상기 서브프레임을 저장하여 순차적으로 쉬프트(shift)시키며, 상기 제1 내지 제3 ACS블록에 각각 입력시키는 복수의 버퍼; 및 상기 제2 및 제3 ACS블록의 출력, 및 상기 제3 ACS블록에 입력되는 데이터를 저장하는 상기 버퍼의 출력에 대해 덧셈-비교-선택 연산을 수행하여, 상기 외부정보를 산출하는 LLRE블록을 포함하는 것을 특징으로 하는 터보디코더용 MAP 알고리즘 구현 프로세서에 의해 달성된다.The above object is a recursive Add-Compare-Select in a turbo decoder MAP algorithm implementation processor which receives a branch metric and calculates extrinsic information according to the present invention. A first ACS block for performing reverse arithmetic operation to calculate a reverse state metric for a subframe in which one frame of the branch metric is divided into a plurality of frames; A second ACS block for performing a recursive add-compare-select operation to calculate a forward state metric for the subframe; A third ACS block configured as an initial value of the output of the first ACS block, and performing a recursive add-compare-selection operation to calculate a reverse state metric for the subframe; A plurality of buffers for storing the subframes sequentially input and shifting the subframes sequentially and inputting the subframes to the first to third ACS blocks; And performing an add-compare-selection operation on the outputs of the second and third ACS blocks and the output of the buffer for storing data input to the third ACS block, thereby calculating the LLRE block. It is achieved by a MAP algorithm implementation processor for a turbo decoder.

여기서, 상기 제1 ACS블록의 초기치는 모든 상태에 대해 같은 값을 취하며, 상기 제2 ACS블록의 초기치는 '0'상태에 대해서는 1(로드도메인 상에서 0)을 취하고 '0'이 아닌 상태에 대해서는 0(로드도메인 상에서 -∞)을 취한다. 상기 LLRE블록의 출력은 제2 LIFO블록에 의해 후입선출되며, 이에 따라 상기 외부정보가 출력되게 된다.Here, the initial value of the first ACS block takes the same value for all states, and the initial value of the second ACS block takes 1 (0 on the road domain) for the '0' state and the non-zero state. Takes 0 (-∞ on road domain). The output of the LLRE block is last-in-first-out by the second LIFO block, so that the external information is output.

본 발명에 따르면, 종래의 MAP구조(MAP Architecture)보다 회로의 크기가 작고, 제어가 간단하며, 작업량효율(throughput)이 높은 터보디코더가 제공된다.According to the present invention, there is provided a turbo decoder having a smaller circuit size, simpler control, and higher throughput than a conventional MAP architecture.

한편, 본 발명에 따르면, 상기한 바와 같은 터보디코더용 MAP 알고리즘 구현 프로세서에 의해 수행되는 MAP 알고리즘 구현방법이 제공된다.On the other hand, according to the present invention, there is provided a MAP algorithm implementation method performed by the MAP algorithm implementation processor for a turbo decoder as described above.

이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. 본 발명은도 1 및 도 2에 도시된 터보인코더 및 터보디코더를 함께 참조하여 설명한다.Hereinafter, with reference to the drawings will be described the present invention in more detail. The present invention will be described with reference to the turbo encoder and turbo decoder shown in FIGS. 1 and 2 together.

도 5는 본 발명에 따른 터보디코더용 MAP 알고리즘 구현 프로세서의 구조를 도시한 블록도이다. 본 발명에 따른 MAP 알고리즘 구현 프로세서는, 도 2에 도시된 바와 같은 터보디코더 내의 제1맵디코더(Dec1) 또는 제2맵디코더(Dec2)에 해당되는 부분이다. 따라서, 본 발명에 따른 프로세서에는, 수신된 터보코드 내의 정보비트의 사전확률비(La(dk)), 수신된 정보심벌(L(xk)), 및 수신된 패리티심벌(L(y1k) 또는 L(y2k))가 입력되며, 또한, 종래기술에 대한 설명에서 전술한 바와 같이 외부정보(Extrinsic Information)인,5 is a block diagram showing the structure of a MAP algorithm implementation processor for a turbo decoder according to the present invention. The MAP algorithm implementation processor according to the present invention is a part corresponding to the first map decoder Dec1 or the second map decoder Dec2 in the turbo decoder as shown in FIG. 2. Thus, in the processor according to the present invention, the prior probability ratio L a (d k ) of the information bits in the received turbo code, the received information symbol L (x k ), and the received parity symbol L (y 1k ) or L (y 2k )), and as described above in the description of the prior art, which is Extrinsic Information,

L1(dk) = La(dk) + L(xk) + Le1(dk) 를 출력하거나(Dec 1의 경우),L 1 (d k ) = L a (d k ) + L (x k ) + L e1 (d k ) or output (for Dec 1),

L2(dk) = La(dk)(=Le1(dk)) + L(xk) + Le2(dk) 를 출력한다(Dec 2의 경우).L 2 (d k ) = L a (d k ) (= L e1 (d k )) + L (x k ) + L e2 (d k ) is output (in Dec 2).

도 5에 도시된 바와 같이, 본 발명에 따른 MAP 알고리즘 구현 프로세서는, 역방향 상태메트릭을 구하기 위한 제1 ACS블록(10) 및 제3 ACS블록(30), 순방향 상태메트릭을 구하기 위한 제2 ACS블록(20), 제1 내지 제3 ACS블록(10, 20, 30)에 서브프레임을 순차적으로 제공하기 위한 제1 내지 제4 버퍼(61, 62, 63, 64), 제2 ACS블록(20)의 출력을 후입선출하는 제1 LIFO블록(50), 제1 LIFO블록(50)의 출력과 제4 버퍼(64)의 출력 및 제3 ACS블록(30)의 출력을 이용하여 외부정보(Extrinsic Information)을 산출하는 LLRE(Log Likelihood Ratio Evaluator)블록(40), 및 LLRE블록(40)의 출력을 후입선출하는 제2 LIFO블록(70)으로 구성되어 있다.As shown in FIG. 5, the MAP algorithm implementation processor according to the present invention includes a first ACS block 10 and a third ACS block 30 for obtaining a reverse state metric, and a second ACS block for obtaining a forward state metric. (20), first to fourth buffers 61, 62, 63, and 64 for sequentially providing subframes to the first to third ACS blocks 10, 20, and 30, and the second ACS block 20; External information using the first LIFO block 50, the output of the first LIFO block 50, the output of the fourth buffer 64, and the output of the third ACS block 30, which are inputted to the output of the first-in-first-out. A Log Likelihood Ratio Evaluator (LLRE) block 40 for calculating Information, and a second LIFO block 70 for inputting-out the output of the LLRE block 40.

제1 내지 제3 ACS블록(10, 20, 30)은 각각 하나의 멀티플렉서(11, 21, 31)와하나의 ACS연산기(11, 21, 31)로 이루어져 있다.Each of the first to third ACS blocks 10, 20, and 30 includes one multiplexer 11, 21, 31, and one ACS operator 11, 21, 31.

제1 ACS블록(10) 내의 멀티플렉서(11)에는 역방향 상태메트릭을 구하기 위한 소정의 초기치와 ACS연산기(13)의 출력의 궤환이 입력되며, 멀티플렉서(11)는 이러한 입력들 중 하나를 선택하여 ACS연산기(13)에 입력시킨다. 멀티플렉서(11)는 제1 ACS블록(10)의 첫 연산시에는 초기치(모두 '0')를 선택하여 ACS연산기(13)에 입력시키고, 그 후의 연산시에는 ACS연산기(13)로부터 궤환된 값을 선택하여 ACS연산기(13)에 입력시킨다. 이에 따라, 제귀적인(recursive) 덧셈-비교-선택(Add-Compare-Select)연산이 수행되어, 입력된 브랜치메트릭(branch metric)에 대한 상태메트릭(state metric)이 계산되게 된다.The multiplexer 11 in the first ACS block 10 is input with a predetermined initial value for obtaining the reverse state metric and the feedback of the output of the ACS operator 13, and the multiplexer 11 selects one of these inputs for ACS. It is input to the calculator 13. The multiplexer 11 selects an initial value (all '0') at the first operation of the first ACS block 10 and inputs it to the ACS operator 13, and at the subsequent operation, the value returned from the ACS operator 13 Is selected and input to the ACS operator 13. Accordingly, a recursive add-compare-select operation is performed to calculate a state metric for the input branch metric.

즉, 하나의 ACS연산기(13)는 두 개의 이전 역방향 상태값과 그 상태값에 관계하는 브랜치메트릭(branch metric)의 값을 더하고, 더한 값을 서로 비교하여, 그로부터 적절한 값을 선택하는 덧셈-비교-선택(Add-Compare-Select)연산을 행함으로써 계속적으로 역방향 상태값을 개선시켜 나간다.That is, one ACS operator 13 adds two previous backward state values and a branch metric value related to the state values, compares the added values with each other, and selects an appropriate value therefrom. The reverse state value is continually improved by performing an Add-Compare-Select operation.

제2 ACS블록(20) 및 제3 ACS블록(30)의 구성 및 동작도 상기와 같은 제1 ACS블록(10)의 구성 및 동작과 동일하다. 다만, 제1 및 제3 ACS블록(10, 30)은 후술되는 바와 같이 역방향 상태메트릭(reverse state metric)을 구하는 데 사용되며, 제2 ACS블록(20)은 순방향 상태메트릭(forward state metric)을 구하는 데 사용된다.The configuration and operation of the second ACS block 20 and the third ACS block 30 are also the same as the configuration and operation of the first ACS block 10 as described above. However, the first and third ACS blocks 10 and 30 are used to obtain a reverse state metric as described below, and the second ACS block 20 obtains a forward state metric. Used to get

LLRE(Log Likelihood Ratio Evaluator)블록(40)은 로그가능성율을 계산하는 블록으로서, 예컨데, 하나의 ACS연산기, 하나의 CS(compare-select)연산기, 및하나의 뺄셈기로 구성될 수 있다. LLRE블록(40)은 하나의 디코딩된 비트(decoded bit)의 APP를 로드도메인에서 최대화(maximize)하는 연산을 수행한다.The Log Likelihood Ratio Evaluator (LLRE) block 40 is a block for calculating a log likelihood ratio, and may include, for example, one ACS operator, one compare-select (CS) operator, and one subtractor. The LLRE block 40 performs an operation of maximizing the APP of one decoded bit in the load domain.

상태-병렬(state-parallel)형태로 맵(MAP)프로세서가 구현된다면, 역방향 상태메트릭을 구하기 위한 제1 ACS블록(10) 및 제3 ACS블록(30)의 필요한 개수는 상태의 수의 2배이고, 순방향 상태메트릭을 구하기 위한 제2 ACS블록(20)의 필요한 개수는 상태의 수와 동일하다.If a map processor is implemented in state-parallel form, the required number of first ACS block 10 and third ACS block 30 to obtain the reverse state metric is twice the number of states. The required number of second ACS blocks 20 for obtaining the forward state metric is equal to the number of states.

또한, 입력신호의 한 프레임의 심볼 사이즈를 N이라 하고 하나의 프레임을 소정의 크기로 구획하여 얻은 서브프레임의 심볼 사이즈를 Nsub라 할 때, 각 버퍼(61, 62, 63, 64)의 용량은 Nsub× 4 × 2 × [브렌치메트릭의 비트수] 이고, 제1 LIFO블록(50)의 용량은 Nsub× [상태의 수] × [상태메트릭의 비트수] 이며, 제2 LIFO블록(70)의 용량은 Nsub× [상태메트릭의 비트수] 이다.Also, when the symbol size of one frame of the input signal is N and the symbol size of the subframe obtained by dividing one frame into a predetermined size is N sub , the capacity of each buffer 61, 62, 63, and 64. Is N sub × 4 × 2 × [number of bits of branch metric], and the capacity of the first LIFO block 50 is N sub × [number of states] × [number of bits of state metric], and the second LIFO block ( The capacity of 70) is N sub x [the number of bits of the state metric].

제1 버퍼(61)에는 입력신호가 서브프레임 단위로 저장되며, 최초의 서브프레임이 제1 버퍼(61)에 저장되면 제1 버퍼(61)에 저장된 데이터는 제2 버퍼(62)에 병렬적으로 쉬프트되어 로드(load)된다. 제3 및 제4 버퍼(63, 64)에도 이와 마찬가지로 하나의 서브프레임 단위로 순차적으로 쉬프트된다. 따라서, 입력신호는 서브프레임 단위로 제1 버퍼(61)로부터 제2, 제3, 및 제4 버퍼(62, 63, 64)에 순차적으로 쉬프트되며 로드된다.Input signals are stored in the first buffer 61 in subframe units, and when the first subframe is stored in the first buffer 61, the data stored in the first buffer 61 is parallel to the second buffer 62. Is shifted and loaded. Similarly, the third and fourth buffers 63 and 64 are shifted sequentially in one subframe unit. Accordingly, the input signal is sequentially shifted and loaded from the first buffer 61 to the second, third, and fourth buffers 62, 63, and 64 in subframe units.

또한, 제2 버퍼(62)에 저장된 데이터는 제 1버퍼(61)에 들어온 데이터의 입력방향에 대해 역방향으로 제1 ACS블록(10) 내의 ACS연산기(13)에 입력되며, 이에따라 제2 버퍼(62)에 저장되어 있던 데이터에 대해 제1 ACS블록(10)의 역방향 상태메트릭 산출을 위한 연산이 수행된다. 제3 버퍼(63)에 저장된 데이터는 제2 ACS블록(20) 내의 ACS연산기(23)에 순방향으로 입력되어 제2 ACS블록(20)에 의한 순방향 상태메트릭 산출 연산이 수행되며, 제4 버퍼(64)에 저장된 데이터는 역방향으로 제3 ACS블록(30) 내의 ACS연산기(33)에 입력되어 제3 ACS블록(30)에 의한 역방향 상태메트릭 산출 연산이 수행되게 된다.In addition, the data stored in the second buffer 62 is input to the ACS operator 13 in the first ACS block 10 in a reverse direction with respect to the input direction of the data entered into the first buffer 61. An operation for calculating a reverse state metric of the first ACS block 10 is performed on the data stored in 62. The data stored in the third buffer 63 is forwarded to the ACS operator 23 in the second ACS block 20 to perform a forward state metric calculation operation by the second ACS block 20. The data stored in 64 is input in the reverse direction to the ACS operator 33 in the third ACS block 30 so that the reverse state metric calculation operation by the third ACS block 30 is performed.

도 6은 도 5에 도시된 바와 같은 터보디코더용 MAP 알고리즘 프로세서에 의해 수행되는 MAP 알고리즘의 수행시, 각 서브프레임에 대해 순방향 상태메트릭과 역방향 상태메트릭을 산출하는 순서를 스테이지(stage)별로 도시한 도면이다. 도 6에서 각 스테이지 내에 나타낸 숫자는 당해 스테이지에서 처리되는 서브프레임의 번호이다. 예컨데, N0은 첫번째 입력된 서브프레임을 나타내고, N1은 두번째 입력된 서브프레임을 나타낸다. 또한, 서브프레임 위의 바아(bar) 표시는 역방향 상태메트릭을 구하는 것임을 나타내며, 바아가 없는 서브프레임 번호는 당해 서브프레임에 대해 순방향 상태메트릭을 구하는 것임을 나타낸다. 또한, '알파'열은 제2 ACS블록(20)에서 순방향 상태메트릭을 산출하는 서브프레임을 표시하고, '베타-1'열과 '베타-2'열은 각각 제1 ACS블록(10)과 제3 ACS블록(30)에서 역방향 상태메트릭을 산출하는 서브프레임을 표시한다. '입력'열은 제1 버퍼(61)에 입력되는 서브프레임을, '람다'열은 LLRE블록(40)에서 출력되는 서브프레임을, 그리고 '출력'열은 제2 LIFO블록(70)에서 출력되는 서브프레임을 표시한다.FIG. 6 illustrates, in stages, the order of calculating the forward state metric and the reverse state metric for each subframe when the MAP algorithm executed by the turbo decoder MAP algorithm processor as shown in FIG. 5 is performed. Drawing. The number shown in each stage in FIG. 6 is the number of the subframe processed in the stage. For example, N0 represents a first input subframe and N1 represents a second input subframe. In addition, a bar indication on a subframe indicates that a backward state metric is obtained, and a subframe number without a bar indicates that a forward state metric is obtained for the subframe. In addition, the 'alpha' column indicates a subframe that calculates the forward state metric in the second ACS block 20, and the 'beta-1' and 'beta-2' columns correspond to the first ACS block 10 and the second, respectively. 3 In the ACS block 30, a subframe for calculating the reverse state metric is indicated. The 'input' column outputs the subframe input to the first buffer 61, the 'lambda' column outputs the subframe output from the LLRE block 40, and the 'output' column outputs the second LIFO block 70. Indicates a subframe.

이하에서는, 본 발명에 따른 MAP 알고리즘 구현과정을 각 스테이지별로 설명한다.Hereinafter, a process of implementing the MAP algorithm according to the present invention will be described for each stage.

제 1 스테이지:First stage:

제1 버퍼(61)에는 전술한 바와 같은 수식에서의 Dk값, 즉 수신심벌의 브렌치메트릭이 입력된다. 즉, dk및 ck는 '0' 또는 '1' 이므로, 수신된 패리티비트(yk)열에 채널신뢰도(Lc)가 곱해진 값, 및 수신된 정보비트(xk)열에 채널신뢰도(Lc)가 곱해지고 전술한 바와 같은 -zk값이 더해진 값이 조합되어 입력되게 된다. 따라서, 가능한 입력은, '0' (ck, dk모두 '0'인 경우), '-(zk+ Lcxk)' (ck는 '1'이고, dk는 '0'인 경우), '-Lcyk' (ck는 '0'이고, dk는 '1'인 경우), 또는 '-(zk+ Lcxk) - Lcyk' (ck, dk모두 '0'인 경우)가 된다. 이와 같은 입력의 첫번째 서브프레임(N0)의 브렌치메트릭이 제1 버퍼(61)에 저장된다.The D k value in the above-described equation, that is, the branch metric of the reception symbol is input to the first buffer 61. That is, since d k and c k are '0' or '1', the value obtained by multiplying the received parity bit (y k ) by the channel reliability (L c ), and the received channel reliability (x k ) by the channel reliability ( L c ) is multiplied and a value obtained by adding -z k as described above is input in combination. Thus, possible inputs are '0' (where c k and d k are all '0'), '-(z k + L c x k )' (c k is '1' and d k is '0' ), '-L c y k ' (where c k is '0' and d k is '1'), or '-(z k + L c x k )-L c y k ' (c k and d k are both '0'). The branch metric of the first subframe N0 of this input is stored in the first buffer 61.

제 2 스테이지:2nd stage:

제1 버퍼(61)에는 다음 서브프레임(N1)의 브렌치메트릭이 입력되며, 이전에 제1 버퍼(61)에 저장되어 있던 전체 데이터(N0의 브렌치메트릭)는 제2 버퍼(62)에 로드(load)된다.The branch metric of the next subframe N1 is input to the first buffer 61, and the entire data (branch metric of N0) previously stored in the first buffer 61 is loaded into the second buffer 62 ( load).

제 3 스테이지:Third stage:

제1 버퍼(61)에는 다음 서브프레임(N2)의 브렌치메트릭이 입력되며, 이전에 제1 버퍼(61)에 저장되어 있던 전체 데이터(N1의 브렌치메트릭)는 제2 버퍼(62)에 로드되고, 제2 버퍼(62)에 저장되어 있던 전체 데이터(N0의 브렌치메트릭)는 제 3버퍼(63)에 로드된다.The branch metric of the next subframe N2 is input to the first buffer 61, and the entire data (the branch metric of N1) previously stored in the first buffer 61 is loaded into the second buffer 62. The entire data (branch metric of N0) stored in the second buffer 62 is loaded into the third buffer 63.

제3 버퍼(63)에 로드된 데이터(N0의 브렌치메트릭)는 순방향으로 제2 ACS블록(20)에 입력되며, 제2 버퍼(62)에 로드된 데이터(N1의 브렌치메트릭)는 역방향으로 제1 ACS블록(10)에 입력된다. 이에 따라, 제2 ACS블록(20)에 의해 첫번째 서브프레임(N0)에 대한 순방향 상태메트릭이 산출됨과 동시에, 제1 ACS블록(10)에 의해 두번째 서브프레임(N1)에 대한 역방향 상태메트릭이 산출된다.The data (branch metric of N0) loaded in the third buffer 63 is input to the second ACS block 20 in the forward direction, and the data (branch metric of N1) loaded in the second buffer 62 is generated in the reverse direction. 1 is input to the ACS block 10. Accordingly, the forward state metric for the first subframe N0 is calculated by the second ACS block 20, and the backward state metric for the second subframe N1 is calculated by the first ACS block 10. do.

이때, 제1 ACS블록(10)의 초기치로는 모든 상태에 대해 같은 값이 입력된다. 원칙적으로는, 순방향 상태 메트릭에 의해 구해진 전체 프레임의 마지막 상태의 값이 초기치로 사용되어야 하나, 이와 같이 할 경우에는 많은 양의 메모리가 소요되게 된다. 따라서, 하나의 서브프레임의 마지막 상태의 값은 확률적으로 대략 같은 값을 가진다고 가정하여 상기와 같이 모든 상태에 대해 같은 값을 초기치로 부여한다. 또한, 제2 ACS블록(20)의 초기치로는 '0'인 상태에 대해서는 '1'(Log 영역에서는 0의 값)의 값을 부여하고, '0'이외의 상태에 대해서는 '0'(Log 영역에서는 -∞의 값)의 값을 부여한다. 왜냐하면, 터보인코더에서 터보코드를 생성할 때, 첫 상태는 '0'으로부터 시작되므로, 상태가 '0'일 확률은 '1'이고 '0'이외의 상태를 가질 확률은 '0'이기 때문이다. 각 멀티플렉서(11, 21)는, 각 ACS블록(10, 20)에 입력되는 값을 이용하여 첫 연산(즉, 덧셈-비교-선택 연산)을 행할 때는 각 초기치가 ACS연산기(13, 23)에 입력되도록 초기치를 선택하며, 그 후의 덧셈-비교-선택 연산을 행할 때는 각 ACS연산기(13, 23)의 출력값이 자기 자신에게 궤환되어 입력되도록 선택 동작을 한다.At this time, the same value is input to all states as the initial value of the first ACS block 10. In principle, the value of the last state of the entire frame determined by the forward state metric should be used as an initial value, but this requires a large amount of memory. Accordingly, assuming that the value of the last state of one subframe has approximately the same value, the same value is given as an initial value for all states as described above. In addition, as the initial value of the second ACS block 20, a value of '1' (zero value in the log area) is assigned to a state of '0', and '0' (Log) for a state other than '0'. Area is assigned a value of -∞). This is because when generating turbo code in the turbo encoder, the first state starts from '0', so the probability that the state is '0' is '1' and the probability of having a state other than '0' is '0'. . When the multiplexers 11 and 21 perform the first operation (i.e., add-compare-select operation) using the values input to the ACS blocks 10 and 20, the initial values are assigned to the ACS operators 13 and 23. The initial value is selected to be inputted, and when the subsequent add-compare-selection operation is performed, the selection operation is performed such that the output value of each ACS operator 13, 23 is fed back to itself.

제 4 스테이지:4th stage:

제1 버퍼(61)에는 다음 서브프레임(N3)의 브렌치메트릭이 입력되며, 이전에 제1 버퍼(61)에 저장되어 있던 전체 데이터(N2의 브렌치메트릭)는 제2 버퍼(62)에 로드되고, 제2 버퍼(62)에 저장되어 있던 전체 데이터(N1의 브렌치메트릭)는 제3 버퍼(63)에 로드된다. 또한, 이전에 제3 버퍼(63)에 저장되어 있던 전체 데이터(N0의 브렌치메트릭)는 제4 버퍼(64)에 로드된다.The branch metric of the next subframe N3 is input to the first buffer 61, and the entire data (the branch metric of N2) previously stored in the first buffer 61 is loaded into the second buffer 62. The entire data (branch metric of N1) stored in the second buffer 62 is loaded into the third buffer 63. In addition, the entire data (branch metric of N0) previously stored in the third buffer 63 is loaded into the fourth buffer 64.

제4 버퍼(64)에 로드된 데이터(N0의 브렌치메트릭)는 역방향으로 제3 ACS블록(30)에 입력되며, 제3 버퍼(63)에 로드된 데이터(N1의 브렌치메트릭)는 순방향으로 제2 ACS블록(20)에 입력되고, 제2 버퍼(62)에 로드된 데이터(N2의 브렌치메트릭)는 역방향으로 제1 ACS블록(10)에 입력된다. 이에 따라, 제3 ACS블록(20)에 의해 첫번째 서브프레임(N0)의 역방향 상태메트릭이 산출되고, 제2 ACS블록(20)에 의해 두번째 서브프레임(N1)에 대한 순방향 상태메트릭이 산출됨과 동시에, 제1 ACS블록(10)에 의해 세번째 서브프레임(N2)에 대한 역방향 상태메트릭이 산출된다.The data (branch metric of N0) loaded in the fourth buffer 64 is input to the third ACS block 30 in the reverse direction, and the data (branch metric of N1) loaded in the third buffer 63 is generated in the forward direction. 2 is input to the ACS block 20, and the data (branch metric of N2) loaded in the second buffer 62 is input to the first ACS block 10 in the reverse direction. Accordingly, the backward state metric of the first subframe N0 is calculated by the third ACS block 20, and the forward state metric of the second subframe N1 is calculated by the second ACS block 20. The reverse state metric for the third subframe N2 is calculated by the first ACS block 10.

이때, 제3 ACS블록(30)의 초기치로는 제1 ACS블록(10)의 출력이 사용된다. 또한, 제1 ACS블록(10)의 초기치와 제2 ACS블록(20)의 초기치는 전술한 바와 동일하다. 각 멀티플렉서(11, 21, 31)는 제 3 스테이지에서와 마찬가지로, 첫 덧셈-비교-선택 연산에서는 초기치가, 그리고 그 후의 덧셈-비교-선택 연산에서는 각 ACS연산기(13, 23, 33)의 출력이 자기 자신에게 궤환되어 입력되도록 동작한다.At this time, the output of the first ACS block 10 is used as the initial value of the third ACS block 30. In addition, the initial value of the first ACS block 10 and the initial value of the second ACS block 20 are the same as described above. Each multiplexer (11, 21, 31), as in the third stage, has an initial value for the first add-compare-select operation, and the output of each ACS operator (13, 23, 33) for subsequent add-compare-select operations. This feeds back to itself and operates.

또한, 제2 ACS블록(20)의 출력은 제1 LIFO블록(50)에 입력되며, 제1 LIFO블록(50)은 후입선출(Last-In, First-Out) 방식에 따라 제2 ACS블록(20)의 출력을 역으로 출력한다. LLRE블록(40)은 제1 LIFO블록(50)의 출력, 제4 버퍼(64)에 저장되어 있던 데이터(N0의 브렌치메트릭) 및 제3 ACS블록(30)의 최종 출력에 대해 덧셈-비교-선택 연산을 행하며, 이에 따라, LLRE블록(40)으로부터 첫번째 서브프레임(N0)의 외부정보(Extrinsic Information : 상기 식에서의 L1(dk)에 해당)가 역으로 출력된다.In addition, the output of the second ACS block 20 is input to the first LIFO block 50, the first LIFO block 50 is a second ACS block (Last-In, First-Out) method The output of 20) is output in reverse. The LLRE block 40 adds-compares-outputs to the output of the first LIFO block 50, the data stored in the fourth buffer 64 (the branch metric of N0) and the final output of the third ACS block 30. A selection operation is performed, whereby external information of the first subframe N0 (Extrinsic Information: corresponding to L 1 (d k in the above equation)) is reciprocally output from the LLRE block 40.

제 5 스테이지:5th stage:

제1 버퍼(61)에는 다음 서브프레임(N4)의 브렌치메트릭이 입력되며, 이전에 제1 버퍼(61)에 저장되어 있던 전체 데이터(N3의 브렌치메트릭)는 제2 버퍼(62)에 로드되고, 제2 버퍼(62)에 저장되어 있던 전체 데이터(N2의 브렌치메트릭)는 제3 버퍼(63)에 로드된다. 또한, 이전에 제3 버퍼(63)에 저장되어 있던 전체 데이터(N1의 브렌치메트릭)는 제4 버퍼(64)에 로드된다.The branch metric of the next subframe N4 is input to the first buffer 61, and the entire data (branch metric of N3) previously stored in the first buffer 61 is loaded into the second buffer 62. The entire data (branch metric of N2) stored in the second buffer 62 is loaded into the third buffer 63. In addition, the entire data (branch metric of N1) previously stored in the third buffer 63 is loaded into the fourth buffer 64.

제4 버퍼(64)에 로드된 데이터(N1의 브렌치메트릭)는 역방향으로 제3 ACS블록(30)에 입력되며, 제3 버퍼(63)에 로드된 데이터(N2의 브렌치메트릭)는 순방향으로 제2 ACS블록(20)에 입력되고, 제2 버퍼(62)에 로드된 데이터(N3의 브렌치메트릭)는 역방향으로 제1 ACS블록(10)에 입력된다. 이에 따라, 제3 ACS블록(20)에 의해 두번째 서브프레임(N1)의 역방향 상태메트릭이 산출되고, 제2 ACS블록(20)에 의해 세번째 서브프레임(N2)에 대한 순방향 상태메트릭이 산출됨과 동시에, 제1 ACS블록(10)에 의해 네번째 서브프레임(N3)에 대한 역방향 상태메트릭이 산출된다.The data (branch metric of N1) loaded in the fourth buffer 64 is input to the third ACS block 30 in the reverse direction, and the data (branch metric of N2) loaded in the third buffer 63 is generated in the forward direction. 2 is input to the ACS block 20, and the data (branch metric of N3) loaded in the second buffer 62 is input to the first ACS block 10 in the reverse direction. Accordingly, the backward state metric of the second subframe N1 is calculated by the third ACS block 20, and the forward state metric of the third subframe N2 is calculated by the second ACS block 20. The reverse state metric for the fourth subframe N3 is calculated by the first ACS block 10.

이때에도, 제 4 스테이지에서와 마찬가지로, 제3 ACS블록(30)의 초기치로는제1 ACS블록(10)의 출력이 사용되며, 또한, 제1 ACS블록(10)의 초기치와 제2 ACS블록(20)의 초기치도 전술한 바와 동일하다. 각 멀티플렉서(11, 21, 31)는 전술한 바와 마찬가지로, 첫 덧셈-비교-선택 연산에서는 초기치가, 그리고 그 후의 덧셈-비교-선택 연산에서는 각 ACS연산기(13, 23, 33)의 출력이 궤환되어 입력되도록 동작한다.In this case, as in the fourth stage, the output of the first ACS block 10 is used as the initial value of the third ACS block 30, and the initial value of the first ACS block 10 and the second ACS block ( The initial value of 20) is also the same as described above. As described above, each multiplexer 11, 21, 31 returns the initial value in the first add-compare-select operation and the output of each ACS operator 13, 23, 33 in the subsequent add-compare-select operation. To be input.

또한, 제 4 스테이지에서와 마찬가지로, 제2 ACS블록(20)의 출력은 제1 LIFO블록(50)에 입력되며, 제1 LIFO블록(50)은 후입선출(Last-In, First-Out) 방식에 따라 제2 ACS블록(20)의 출력을 역으로 출력한다. LLRE블록(40)은 제1 LIFO블록(50)의 출력, 제4 버퍼(64)에 저장되어 있던 데이터(N1의 브렌치메트릭) 및 제3 ACS블록(30)의 최종 출력에 대해 덧셈-비교-선택 연산을 행하며, 이에 따라, LLRE블록(40)으로부터 두번째 서브프레임(N1)의 외부정보가 역으로 출력된다.In addition, as in the fourth stage, the output of the second ACS block 20 is input to the first LIFO block 50, and the first LIFO block 50 is a last-in, first-out scheme. As a result, the output of the second ACS block 20 is reversely output. The LLRE block 40 adds, compares, and compares the output of the first LIFO block 50, the data stored in the fourth buffer 64 (the branch metric of N1) and the final output of the third ACS block 30. A selection operation is performed, whereby external information of the second subframe N1 is output inverse from the LLRE block 40.

한편, LLRE블록(40)의 제 4 스테이지에서의 출력은 제2 LIFO블록(70)에 입력되며, 제2 LIFO블록(70)은 후입선출방식에 따라 LLRE블록(40)의 출력을 제 5 스테이지에서 역으로 출력한다. 이에 따라 제5스테이지에서 제2 LIFO블록(70)에 의해 첫번째 서브프레임(N0)의 외부정보가 출력되게 된다.On the other hand, the output of the fourth stage of the LLRE block 40 is input to the second LIFO block 70, the second LIFO block 70 outputs the output of the LLRE block 40 in the fifth stage according to the last-in first-out method. Reversed from Accordingly, the external information of the first subframe N0 is output by the second LIFO block 70 in the fifth stage.

마찬가지로, 다음의 스테이지에서는 전술한 바와 동일한 과정을 거쳐 두번째 서브프레임(N1)의 외부정보가 출력되고, 이와 같은 과정은 전체 프레임의 외부정보가 모두 출력될 때까지 반복된다.Similarly, in the next stage, external information of the second subframe N1 is output through the same process as described above, and this process is repeated until all external information of the entire frame is output.

상기한 도 5 및 도 6에 대한 설명은 도 2에 도시된 터보디코더의 첫번째 맵디코더(Dec1)에 해당되는 맵알고리즘 구현 프로세서를 기준으로 설명하였으나, 도2에 도시된 터보디코더의 두번째 맵디코더(Dec2)는 물론, 패리티비트열(L(yk))가 여러 열로 구성된 경우 그 여러 열에 대응되는 각각의 맵디코더에도 적용된다. 다만, 예컨데, 도 2의 두번째 맵디코더(Dec2)에 적용되는 경우는, 그 입력이 도 2에 도시된 바와 같이 인터리버를 거친 Le1(dk)와 인터리버를 거친 L(xk) 및 두번째 패리티비트열(L(y2k))가 될 것이다.5 and 6 have been described based on a map algorithm implementing processor corresponding to the first map decoder Dec1 of the turbo decoder shown in FIG. 2, but the second map decoder of the turbo decoder shown in FIG. Dec2) is also applied to each map decoder corresponding to the multiple columns when the parity bit string L (y k ) is composed of multiple columns. However, for example, when applied to the second map decoder Dec2 of FIG. 2, its input is L e1 (d k ) through the interleaver, L (x k ) and the second parity through the interleaver as shown in FIG. 2. It will be a bit string L (y 2k ).

본 발명에 따르면, 종래의 MAP구조(MAP Architecture)보다 회로의 크기가 작고, 제어가 간단하며, 작업량효율(throughput)이 높은 터보디코더가 제공된다. 따라서, 고속의 터보코드의 디코딩에 적합하다는 장점이 있다.According to the present invention, there is provided a turbo decoder having a smaller circuit size, simpler control, and higher throughput than a conventional MAP architecture. Therefore, there is an advantage that it is suitable for decoding high speed turbo codes.

Claims (8)

브랜치메트릭을 입력받아 외부정보(Extrinsic information)를 산출하는, 터보디코더용 MAP 알고리즘 구현 프로세서에 있어서,A processor for implementing a MAP algorithm for a turbo decoder that receives branch metrics and calculates extrinsic information, 재귀적(recursive)인 덧셈-비교-선택(Add-Compare-Select) 연산을 수행하여, 상기 브랜치메트릭의 한 프레임을 복수개로 구획한 서브프레임에 대해 역방향 상태 메트릭(reverse state metric)을 산출하는 제1 ACS블록;Performing a recursive Add-Compare-Select operation to calculate a reverse state metric for a subframe in which a frame of the branch metric is divided into a plurality; 1 ACS block; 재귀적인 덧셈-비교-선택 연산을 수행하여, 상기 서브프레임에 대해 순방향 상태 메트릭(forward state metric)을 산출하는 제2 ACS블록;A second ACS block for performing a recursive add-compare-select operation to calculate a forward state metric for the subframe; 상기 제1 ACS블록의 출력을 초기치로 하며, 재귀적인 덧셈-비교-선택 연산을수행하여 상기 서브프레임에 대해 역방향 상태 메트릭을 산출하는 제3 ACS블록;A third ACS block configured as an initial value of the output of the first ACS block and performing a recursive add-compare-selection operation to calculate a reverse state metric for the subframe; 순차적으로 입력되는 상기 서브프레임을 저장하여 순차적으로 쉬프트(shift)시키며, 상기 제1 내지 제3 ACS블록에 각각 입력시키는 복수의 버퍼; 및A plurality of buffers for storing the subframes sequentially input and shifting the subframes sequentially and inputting the subframes to the first to third ACS blocks; And 상기 제2 및 제3 ACS블록의 출력, 및 상기 제3 ACS블록에 입력되는 데이터를 저장하는 상기 버퍼의 출력에 대해 덧셈-비교-선택 연산을 수행하여, 상기 외부정보를 산출하는 LLRE블록을 포함하는 것을 특징으로 하는 터보디코더용 MAP 알고리즘 구현 프로세서.And an LLRE block configured to perform an add-compare-selection operation on the outputs of the second and third ACS blocks and the output of the buffer for storing data input to the third ACS block. MAP algorithm implementation processor for a turbo decoder, characterized in that the. 제 1항에 있어서,The method of claim 1, 상기 제1 ACS블록의 초기치는 모든 상태에 대해 같은 값을 취하는 것을 특징으로 하는 터보디코더용 MAP 알고리즘 구현 프로세서.And the initial value of the first ACS block takes the same value for all states. 제 1항에 있어서,The method of claim 1, 상기 제2 ACS블록의 초기치는, '0'상태에 대해서는 1을 취하고 '0'이 아닌 상태에 대해서는 0을 취하는 것을 특징으로 하는 터보디코더용 MAP 알고리즘 구현 프로세서.And an initial value of the second ACS block takes 1 for a '0' state and a 0 for a state other than '0'. 제 1항에 있어서,The method of claim 1, 상기 제2 ACS블록의 출력을 후입선출하여 상기 LLRE블록에 제공하는 제1 LIFO블록을 더 포함하는 것을 특징으로 하는 터보디코더용 MAP 알고리즘 구현 프로세서.And a first LIFO block configured to provide a last-in first-out output of the second ACS block to the LLRE block. 제 4항에 있어서,The method of claim 4, wherein 상기 LLRE블록의 출력을 후입선출하는 제2 LIFO블록을 더 포함하는 것을 특징으로 하는 터보디코더용 MAP 알고리즘 프로세서.And a second LIFO block for performing a last-in first-out output of the LLRE block. 브랜치메트릭을 입력받아 외부정보(Extrinsic information)를 산출하는, 터보디코더용 MAP 알고리즘 구현방법에 있어서,In a method of implementing a turbo decoder MAP algorithm for receiving branch metrics and calculating extrinsic information, 상기 브랜치메트릭의 한 프레임을 구획한 복수개의 서브프레임을 순차적으로 입력받는 제1단계;A first step of sequentially receiving a plurality of subframes partitioning one frame of the branch metric; 각각의 상기 서브프레임에 대한 순방향 상태메트릭을 순차적으로 산출하는 제2단계;A second step of sequentially calculating a forward state metric for each subframe; 상기 제2단계 수행 중에, 상기 제2단계에서의 산출대상인 서브프레임의 다음 서브프레임에 대해 역방향 상태메트릭을 순차적으로 산출하는 제3단계;A third step of sequentially calculating backward state metrics with respect to a next subframe of a subframe that is a calculation target in the second step while performing the second step; 상기 제3단계에서 산출된 값을 초기치로 하여 상기 제3단계에서의 산출대상인 서브프레임의 직전 서브프레임에 대해 역방향 상태메트릭을 순차적으로 산출하는 제4단계; 및A fourth step of sequentially calculating backward state metrics with respect to the immediately preceding subframe of the subframe that is the calculation target in the third step using the value calculated in the third step as an initial value; And 상기 제2단계의 출력과 상기 제4단계의 출력 및 상기 제4단계에서의 연산 대상이 되는 서브프레임의 데이터를 이용하여 상기 외부정보를 순차적으로 산출하는 제5단계를 포함하는 것을 특징으로 하는 터보디코더용 MAP알고리즘 구현방법.And a fifth step of sequentially calculating the external information by using the output of the second step, the output of the fourth step, and data of a subframe that is an operation target in the fourth step. Implementation method of MAP algorithm for decoder. 제 6항에 있어서,The method of claim 6, 상기 제2단계에서는, '0'상태에 대해서는 1을, '0'이 아닌 상태에 대해서는 0을 초기치로 취하는 것을 특징으로 하는 터보디코더용 MAP 알고리즘 구현방법.In the second step, the MAP algorithm for turbo decoder, wherein 1 is set as '0' and '0' is set as an initial value. 제 6항에 있어서,The method of claim 6, 제3단계에서는, 모든 상태에 대해 같은 값을 초기치로 취하는 것을 특징으로 하는 터보디코더용 MAP 알고리즘 구현방법.In the third step, the MAP algorithm for turbo decoder, characterized in that the same value is taken as an initial value for all states.
KR1020010007099A 2001-02-13 2001-02-13 Processor and method for implementing MAP algorithm used in a turbo decoder KR20020066759A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010007099A KR20020066759A (en) 2001-02-13 2001-02-13 Processor and method for implementing MAP algorithm used in a turbo decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010007099A KR20020066759A (en) 2001-02-13 2001-02-13 Processor and method for implementing MAP algorithm used in a turbo decoder

Publications (1)

Publication Number Publication Date
KR20020066759A true KR20020066759A (en) 2002-08-21

Family

ID=27694261

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010007099A KR20020066759A (en) 2001-02-13 2001-02-13 Processor and method for implementing MAP algorithm used in a turbo decoder

Country Status (1)

Country Link
KR (1) KR20020066759A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG110006A1 (en) * 2002-12-05 2005-04-28 Oki Techno Ct Singapore Pte A method of calculating internal signals for use in a map algorithm
KR101015664B1 (en) * 2008-08-28 2011-02-22 최철민 Sea farming structure protecting from the red tide and the sea contamination

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG110006A1 (en) * 2002-12-05 2005-04-28 Oki Techno Ct Singapore Pte A method of calculating internal signals for use in a map algorithm
KR101015664B1 (en) * 2008-08-28 2011-02-22 최철민 Sea farming structure protecting from the red tide and the sea contamination

Similar Documents

Publication Publication Date Title
US7636879B2 (en) Error correction decoder
US6665357B1 (en) Soft-output turbo code decoder and optimized decoding method
US6445755B1 (en) Two-step soft output viterbi algorithm decoder using modified trace back
US7500169B2 (en) Turbo decoder, turbo decoding method, and turbo decoding program
US7107509B2 (en) Higher radix Log MAP processor
US6516444B1 (en) Turbo-code decoder
US7246298B2 (en) Unified viterbi/turbo decoder for mobile communication systems
EP1130789A2 (en) Soft-decision decoding of convolutionally encoded codeword
US6487694B1 (en) Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA
JP2007081760A (en) Turbo decoder and method thereof, and program
JP4229948B2 (en) Decoding device, decoding method, and receiving device
US6807239B2 (en) Soft-in soft-out decoder used for an iterative error correction decoder
US8230307B2 (en) Metric calculations for map decoding using the butterfly structure of the trellis
EP1128560B1 (en) Apparatus and method for performing SISO decoding
US7165210B2 (en) Method and apparatus for producing path metrics in trellis
US7584407B2 (en) Decoder and method for performing decoding operation using map algorithm in mobile communication system
JP3987520B2 (en) Simple MAP decoder and decoding method thereof
JP2001127647A (en) Decoder for parallel consecutive code, decoding method, and storage medium recording decoding program
US7143335B2 (en) Add-compare-select arithmetic unit for Viterbi decoder
KR20020066759A (en) Processor and method for implementing MAP algorithm used in a turbo decoder
JP4049620B2 (en) Method and apparatus for decoding a bit sequence
JP2002217748A (en) Error correction decoder
JP2006217042A (en) Turbo decoder
KR100305293B1 (en) Method of calculating log likelihood ratio using minimium memory in a turbo decoder
US20030101403A1 (en) Turbo decoder and its calculation methods having a state metric

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination