KR100355452B1 - 엠에이피 방식을 사용한 터보 복호기 - Google Patents

엠에이피 방식을 사용한 터보 복호기 Download PDF

Info

Publication number
KR100355452B1
KR100355452B1 KR1019990031257A KR19990031257A KR100355452B1 KR 100355452 B1 KR100355452 B1 KR 100355452B1 KR 1019990031257 A KR1019990031257 A KR 1019990031257A KR 19990031257 A KR19990031257 A KR 19990031257A KR 100355452 B1 KR100355452 B1 KR 100355452B1
Authority
KR
South Korea
Prior art keywords
data
reverse
metric
map
output
Prior art date
Application number
KR1019990031257A
Other languages
English (en)
Other versions
KR20010011736A (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 KR1019990031257A priority Critical patent/KR100355452B1/ko
Publication of KR20010011736A publication Critical patent/KR20010011736A/ko
Application granted granted Critical
Publication of KR100355452B1 publication Critical patent/KR100355452B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • H03M13/2714Turbo interleaver for 3rd generation partnership project [3GPP] universal mobile telecommunications systems [UMTS], e.g. as defined in technical specification TS 25.212
    • 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

Landscapes

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

Abstract

본 발명에서는 터보 부호를 사용하는 터보 복호기를 ASIC으로 구현하는데 하드웨어 자원 공유를 통하여 면적을 최소화하기 위한 MAP(Maximum A Posteriori) 방식을 사용한 터보 복호기에 관한 것이다. 본 발명에서는 종래의 두 개의 MAP 복호기를 하나의 MAP 복호기로 사용하여 공통 하드웨어 자원으로 만들어 하드웨어 크기를 최소화한 것으로서, 그 구조는 제 1 RAM(20), 제 1 가산기(21), 제 2 멀티플렉서(22), 제 1 가산기와 제 2 멀티플렉서에서 출력된 데이터를 받아 순방향과 역방향 메트릭을 동시에 계산하여 입력정보를 혼합된 순서로 MAP 복호해서 출력하는 하나의 MAP 복호기(30), 하나의 지연소자(23), 제 1 멀티플렉서(24), 제 2 가산기(40), 제 2 RAM(50), 인터리버, 디인터리버, 역 인터리버, 역 디인터리버(41∼44), 그리고 최종 터보 복호된 정보를 출력하는 경성 판정부(60)로 구성된다. 이와 같이 구성되어, 본 발명에서는 복호시간의 지연이 없이 하드웨어의 자원 공유를 통하여 터보 복호기의 크기를 획기적으로 줄일 수 있다. 이에 따른 터보 복호기는 차세대 이동통신 시스템인 IMT-2000 규격에 채택된 오류정정 분야에 있어서 경쟁력을 확보할 수 있게 된다.

Description

엠에이피 방식을 사용한 터보 복호기{Turbo decoder using MAP algorithm}
본 발명은 차세대 이동통신 시스템인 IMT-2000 규격에서 오류 정정을 위한 터보 부호를 사용하는 터보 복호기를 ASIC으로 구현하는데 있어서 하드웨어 자원 공유(hardware resource sharing)를 통하여 MAP(Maximum A Posteriori) 방식 복호기의 면적을 최소화하기 위한 터보 복호기의 구조에 관한 것이다.
터보 부호를 사용한 오류정정기술은, 1993년 Claude Berrou가 처음으로 발표(C.Berrou,"Near Shannon Limit Error-Correcting Coding and Decoding : Turbo Code", Proc. 1993 IEEE Int. Conf. On Comm., Geneva, Switzerland, pp1064-1070, 1993) 하면서 오류정정 분야에 새로운 장을 열었다. 터보 부호의 오류정정능력은 반복 횟수에 따라 BER 성능이 향상되는 특징을 가지고 있으며 충분한 반복을 수행하였을 때 C.E.Shannon이 발표(C.E.Shannon,"A mathematical theory of communication", Bell Sys. Tech. J., Vol27, pp.379-423, July 1948and pp623-656, Oct.1948)한 channel capacity 근처까지 오류정정이 가능한 것으로 알려졌다.
이러한 터보 부호를 사용한 터보 복호기 구조는 C. Berrou의 논문에 나타나고 있다. 또한 수정된 MAP 알고리즘을 간단하게 하여 구성한 터보 복호기의 구조는 S.S.Pietrobon에 의하여 발표(S. S. Pietrobon,"A Simplification of the Modified Bahl Decoding Algorithm for Systematic Convolutional Codes", Int. Symp. Inform. Theory its Applic , 1073-1077, Nov. 1994)하였다. 그리고S.S.Pietrobon이 FPGA를 사용하여 구현(S.S.Pietrobon, "Implementation of a Serial MAP Decoder for use in an Iterative Turbo Decoders, Int. Symp. Inform. Theory its Applic , pp471, Nov. 1995)한 것도 발표되고 있다.
한편, 터보 복호기의 기본 복호기로 MAP 복호기를 사용하지 않고 SOVA(Soft Output Viterbi Algorithm)을 사용할 수 도 있다. SOVA는 J.Hagenauer가 특허(J. Hagenauerm, "Method for generalizing the viterbi algorithm and devices for executing the method", Jan. 19, 1993. Germany, USA patent5181209) 로 제안하였으며 SOVA를 사용한 터보 복호기는 C.Berrou가 발표(C.Berrou,"An IC for Turbo Codes Encoding and Decoding", ISSCC95, pp90-91, 1995) 하였다.
또한, 차세대 이동통신시스템인 IMT2000의 규격으로 제안되고 있는 내용에는 데이터 전송에 따른 오류정정을 위하여 터보 부호를 규격으로 채택하고 있다.
이상에서 살펴본 바와 같이 터보 부호는 오류정정분야의 규격으로 많은 통신 시스템에 자리잡고 있으며 이에 따라 연구도 활발하게 진행되고 있다. 그러나 아직 그 구체적인 하드웨어의 설계에 관한 것은 발표되는 것이 적고 발표된다 하더라도 그 구체적인 내용은 기술 보호의 관점에서 생략되고 있는 실정이다.
또한, 터보 복호기를 구성하는 기본 복호기는 상기 언급한 종래기술과 같이 MAP 복호기와 SOVA 복호기로 구현 될 수 있다. 그런데, 본 발명은 MAP 복호기를 사용한 터보 복호기에 관한 것이므로 SOVA에 관한 사항은 생략한다. 또한 일반적인 복호기에 대한 수식 유도 및 설명은 C. Berrou의 논문(C.Berrou,"Near Shannon Limit Error-Correcting Coding and Decoding : Turbo Code", Proc. 1993 IEEEInt. Conf. On Comm., Geneva, Switzerland, pp1064-1070, 1993) 과 S. Pietrobon의 논문(S. S. Pietrobon,"A Simplification of the Modified Bahl Decoding Algorithm for Systematic Convolutional Codes", Int. Symp. Inform. Theory its Applic , 1073-1077, Nov. 1994)에 상세히 나와 있다. 본 발명에서는 MAP 복호기를 사용한 터보 복호기의 구조(architecture)에 대하여 설명한다.
일반적인 터보 복호기의 구조는 전술한 C. Berrou와 S. S. Pietrobon의 논문에 나타나 있다. C. Berrou의 논문에서 발표한 구조는 개략적인 것으로서, 실제적인 하드웨어 설계를 다루고 있지 않다. S. S. Pietrobon의 논문에 따른 일반적인 터보 복호기의 구조는 하드웨어로 구현 가능하며 도 1과 같이 구성된다.
도 1 에 도시된 바와 같이, S. S. Pietrobon이 제시하는 터보 복호기의 구조는, MAP 복호기(4, 9)를 두개를 사용하여 구현되는 구조이고, 또한 터보 복호기에 사용되는 MAP 복호기의 구조에 대하여 어떠한 언급도 없다. 그리하여 본 발명에서는 종래의 기술을 S. S. Pietrobon의 논문에서 유도되고 있는 수식에 따라 도 1과 같은 일반적인 터보 복호기를 가정하였다.
도 1 에 나타난 터보 복호기를 보면, 터보 부호의 복호를 위하여 2개의 MAP 복호기(4, 9)와 인터리버(interleaver)(6), 2개의 디인터리버(deinterleaver)(11, 13), 3개의 가산기(2, 5, 10), 2개의 멀티플렉서(1, 7), 중간 계산 기억(delay)을 위한 3개의 지연소자(3, 8, 14)가 사용되고 있다.
따라서, 종래의 MAP방식을 사용한 터보 복호기의 구조를 이용하면, 알고리즘의 복잡성 때문에 기존의 오류정정에 사용되었던 비터비 복호기에 비하여 하드웨어크기가 커지는 문제점이 있고, 또한 터보 부호 특성상 반복(iteration)하여 복호를 수행하는데 긴 복호 시간을 요구하는 문제점이 있어 경쟁력이 떨어진다.
일반적인 ASIC이나 FPGA 등의 하드웨어 구현의 관점에서 보면 가능한 하드웨어의 크기를 작게하는 것이 필요하며 터보 복호기도 예외가 될 수 없다. 그러나, 상기한 종래의 기술에서 살펴 보았듯이 S. S. Pietrobon의 발표에 따라 터보 복호기를 ASIC 이나 FPGA로 구현하면 그 하드웨어 크기가 너무 커져서 경쟁력이 떨어지는 터보 복호기가 된다.
이에 따라 안출된 본 발명은, 복호시간의 지연이 없이 하드웨어의 자원 공유를 통하여 터보 복호기의 크기를 획기적으로 줄이는데 그 목적이 있다.
이와 같은 목적을 달성하기 위한 본 발명의 MAP 방식을 사용한 터보 복호기는, 외부로 부터 부호화된 노이즈가 포함된 제1, 제2 데이터가 임시 저장되는 제 1 저장수단(20), 제 2 저장수단(50)의 정보를 인터리빙 및 디인터리빙하여 읽어내어 정순서로 입력된 데이터와 역 인터리빙 및 역 디인터리빙하여 읽어내어 역순서로 입력된 데이타가 궤환 입력되는 제 3 데이터와 상기 제 1 저장수단의 제 1 데이터를 가산하는 제 1 가산수단(21), 상기 제 2 데이터와 '0' 데이터를 받아 원래의 정보를 부호화한 정보와 그 정보를 인터리빙한 후 부호화한 정보를 번갈아 출력시키는 제 2 선택수단(22), 상기 제 1 가산수단과 제 2 선택수단에서 출력된 데이터를 받아 순방향과 역방향 메트릭을 동시에 계산하여 입력정보를 혼합된 순서로 MAP 복호해서 출력하는 하나의 MAP 복호수단(30), 상기 궤환된 제 3 데이터를 일시 지연시켜 MAP 복호기의 출력순서에 맞추어 출력하는 지연소자(23), 그 지연되어 출력되는 데이터와 '0' 데이터를 받아 선택적으로 출력하는 제 1 선택수단(24), 상기 제 1 선택수단에서 출력된 데이터와 상기 MAP 복호된 데이터를 가산하는 제 2 가산수단(40), 상기 제 2 가산수단에서 출력된 데이터가 임시 저장되는 제 2 저장수단(50), 상기 제 2 저장수단에 저장된 데이터를 읽어, 인터리빙, 디인터리빙, 역 인터리빙, 역 디인터리빙을 각각 수행하는 인터리버, 디인터리버, 역 인터리버, 역 디인터리버, 그리고 상기 제 1 선택수단에서 '0' 값이 선택될 때 상기 MAP 복호수단의 출력을 빼지 않고 상기 제 2 저장수단에 저장된 후 디인터리빙된 데이터를 받아 경성 판정을 하여 최종 터보 복호된 정보를 출력하는 경성 판정수단(60)으로 구성된다.
위에서 제 1 및 제 2 저장수단의 바람직한 예는, 각기 RAM을 사용한다.
또한, 상술한 MAP 복호수단은, 정순서로 입력되는 데이터를 받아 가지 메트릭을 계산하는 제 1 가지 메트릭 계산기, 상기 계산된 가지 메트릭을 받아 상기 입력된 데이터를 정순서로 순방향 메트릭을 계산하는 순방향 메트릭 계산기, 이 계산된 정순서 데이터 중 앞 부분의 반을 저장하는 순방향 메트릭 계산기 메모리, 상기 정순서로 입력되는 데이터와 동시에 역순서로 입력되는 데이터를 받아 가지 메트릭을 계산하는 제 2 가지 메트릭 계산기, 이 계산된 가지 메트릭을 받아 상기 입력된 데이터를 역순서로 역방향 메트릭을 계산하는 역방향 메트릭 계산기, 이 계산된 역순서 데이터 중 앞 부분의 반을 저장하는 역방향 메트릭 계산기 메모리, 상기 순방향 및 역방향 메트릭 계산기 메모리에서 각기 출력된 데이터와 상기 순방향 및 역방향 메트릭 계산기에서 각기 그대로 출력된 나머지 데이터를 받아 선택적으로 출력하는 멀티플렉서, 그리고 이 선택되어 출력된 데이터를 받아 복호 과정이 반이 경과한 후에 순방향 메트릭 값을 받고 상기 역방향 메트릭 계산기 메모리의 값을 받아 정순서의 LLR(로그 가능성 비)을 계산하면서, 역방향 메트릭 값을 받고 해당 순방향 메트릭 계산기 메모리의 값을 받아 역순서의 LLR을 계산하는 LLR 계산기로 구성된다.
이러한 MAP 복호기의 동작을 살펴보면, 먼저, 순방향 메트릭은 정순서로 계산하고 그 결과 앞 부분 반은 순방향 메트릭 계산기 메모리에 저장하고 그 이후의 값은 LLR에 바로 제공한다. 그와 동시에 역순서로 역방향 메트릭을 계산하여 그 결과 중 앞 부분 반은 역방향 메트릭 계산기 메모리에 저장하고 그 이후의 값은 LLR에 바로 제공한다. LLR 계산부에서는 복호 과정이 반이 경과한 후 순방향 메트릭 값을 받고 해당 역방향 메트릭 계산기 메모리의 값을 받아 정순서의 LLR을 계산하면서, 역방향 메트릭 값을 받고 해당 순방향 메트릭 계산기 메모리의 값을 받아 역순서의 LLR을 계산한다.
이와 같은 본 발명은 터보 복호기를 하드웨어로 구현할 때 그 크기를 최소화하고, 또한 이렇게 구현된 구조에서 가능한 터보 복호에 수행되는 시간을 최소로 할 수 있다.
도 1은 종래의 터보 복호기의 구성도,
도 2는 본 발명에 따른 터보 복호기의 구성도,
도 3은 도 2에서 MAP 복호기의 내부 구성도,
도 4는 도 3에 도시된 MAP복호기의 타이밍도.
〈도면의 주요 부분에 대한 부호의 설명〉
20,50 : 제 1, 제 2 RAM 21,40 : 제 1, 제 2 가산기
23 : 지연소자 24,22 : 제 1, 제 2 멀티플렉서(MUX)
30 : MAP 복호부 31,34 : 제 1, 제 2 가지 메트릭 계산기
32 : 순방향 메트릭 계산기 33 : 순방향 메트릭 계산기 메모리
35 : 역방향 메트릭 계산기 36 : 역방향 메트릭 계산기 메모리
38 : 로그 가능성 비(Log Likelihood Ratio) 계산기
41 : 인터리버 42 : 역 인터리버
43 : 디인터리버 44 : 역 디인터리버
60 : 경성 판정부(H/D)
이하, 본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
도 2는 본 발명에 따른 MAP 방식을 사용한 터보 복호기의 구성도이다.
그 구성은, 외부로 부터 부호화된 노이즈가 포함된 제1, 제2 데이터(xk, yk)가 임시 저장되는 제 1 RAM(20)과, 인터리버(41)와 디인터리버(43)가 제 2 RAM의 정보를 각기 인터리빙 및 디인터리빙하여 읽어내어 정순서로 입력된 데이터와 역 인터리버(42)와 역 디인터리버(44)가 제 2 RAM의 정보를 각기 역 인터리빙 및 역 디인터리빙하여 읽어내어 역순서로 입력된 데이타가 궤환되어 입력되는 제3 데이터(z+k)와 멀티플렉서(20a)에서 상기 제 1 RAM(20)에서 읽은 제 1 데이터(xk) 또는 외부에서 입력되는 '0' 데이터를 가산하는 제 1 가산기(21)와, 상기 제 2 데이터와 '0' 데이터를 받아 y-k데이터(즉, 원래의 정보를 인터리빙한 후 부호화한 데이터)와 y+k데이터(즉, 원래의 정보를 부호화한 데이터)를 번갈아 출력하는 제 2 멀티플렉서(22)와, 제 1 가산기(21)와 제 2 멀티플렉서(22)에서 출력된 데이터를 받아 순방향과 역방향 메트릭을 동시에 계산하여 입력정보를 혼합된 순서로 MAP 복호해서 출력하는 하나의 MAP 복호부(30)와, 상기 궤환된 제 3 데이터를 일시 지연시켜 MAP 복호기의 출력순서에 맞추어 출력하는 지연소자(23)와, 그 지연되어 번갈아 출력되는 데이터(xj+z-j: xk+y-k를 가지고 복호한데이타를 인터리빙한 것) 또는 데이터(zk+ : xi+z-i와 y+k를 가지고 복호한데이타를 디인터리빙한 것)와 '0' 데이터를 받아 선택적으로 출력하는 제 1 멀티플렉서(24)와, 이 멀티플렉서(24)에서 출력된 데이터와 상기 MAP 복호된 데이터를 가산하는 제 2 가산기(40)와, 이 가산기(40)에서 출력된 데이터(xj+z-j) 또는 데이터(z+i)가 임시 저장되는 제 2 RAM(50)과, 상기 제 2 RAM(50)에 저장된 첫번째 계산된 LLR값을 읽어 인터리빙을 하는 인터리버(41)와, 상기 제 2 RAM(50)에 저장된 첫번째 계산된 LLR값을 읽어 두번째 MAP 동작을 위하여 디인터리빙을 하는 디인터리버(Deinterleaver; DINT)(43)와, 역방향 상태 메트릭을 계산하기 위해 첫번째 LLR값을 상기 제 2 RAM(50)에서 읽는 역 인터리빙을 하는 역 인터리버(Reverse INT)(42)와, 역방향 상태 메트릭을 계산하기 위해 두번째 LLR값을 제 2 RAM(50)에서 읽는 역 디인터리빙을 하는 역 디인터리버(Reverse DINT)(44)와, 그리고 상기 제 1 멀티플렉서(24)에서 '0' 값이 선택될 때 상기 MAP 복호부(30)의 출력을 빼지 않고 상기 제 2 RAM(50)에 저장된 후 디인터리빙된 데이터를 받아 경성 판정(Hard Decision)을 하여 최종 터보 복호된 정보를 출력하는 경성 판정부(60)로 구성되어 있다.
이와 같이 본 발명의 터보 복호기는, 하드웨어 자원공유 방법을 사용하여, MAP 복호부를 하나 만을 사용하고, 복호 과정에 사용되는 인터리버(41)와 디인터리버(43)의 메모리를 하나로 줄였으며, 계산 과정 중에 사용하는 지연소자를 한 개로 줄였으며, 최종 복호를 하기 위해 사용하는 디인터리버를 줄였다. 이러한 구조로 터보 복호기를 구성하기 위하여 종래와 동일한 수의 멀티플렉서를 사용하였고, MAP 복호부에 작은 량의 H/W 크기를 갖는 가지 메트릭 모듈을 추가하여 새로운 구조로 만들었다.
본 발명에서는 부호율 R을 1/2로 가정하여 상기한 구성에 의거하여 동작을설명한다.
먼저, 도 2에서와 같이, 외부에서 들어오는 데이터는 제 1 RAM(20)에 저장하고, 이 제 1 RAM(20)에서 제 1 데이터와 제 2 데이터를 읽어 첫번째 MAP 복호 과정을 수행하고 그 결과를 제 2 RAM(50)에 저장한다. 이 과정은 상기 도 1의 제 1 MAP 복호부(4)가 수행하는 과정과 동일하다. 그리고 제 2 RAM(50)에 저장된 정보를 인터리빙하면서 읽어서 지연소자(23)에 저장하면서 두번째 MAP 복호과정을 수행하고 그 결과를 제 2 RAM(50)에 저장한다. 이 과정은 상기 도 1의 제 2 MAP 복호부(9)가 수행하는 과정과 동일하다. 이러한 복호 과정을 필요한 만큼 반복한다.
그리고, 최종 복호된 정보를 저장할 때는, 도 1에서 보는 바와 같이, 지연소자(23)에서 나온 값과 뺄셈을 수행하지 않고 경성 판정부(60)에서 양의 값이면 '1', 음의 값이면 '0'으로 경성 판정을 한 후 그 값을 디인터리빙 하여 결정한다. 이에 대응하는 동작을 보면, 본 발명에서는 제 1 멀티플렉서(24)의 출력을 '0'으로 하여 MAP 복호부(30)에서 나온 출력을 빼지 않고 제 2 RAM(50)에 저장하고, 그 저장된 데이터를 디인터리빙한 후 경성 판정부(60)에서 경성 판정하여 최종 터보 복호된 정보를 얻는다.
이때, 도 1에서의 MAP 복호기의 계산 결과는 입력정보의 순서와 같게 1, 2, 3,..., N으로 출력되는 반면에, 도 2에서의 MAP 복호부의 계산 결과는 (N/2+1), (N/2), (N/2 +2), (N/2-1), ..., N, 1의 혼합된 순서로 출력된다(여기서, N은 짝수로 가정한다). 즉, 본 발명에 따른 터보 복호기를 구현하기 위해서는 터보 복호기에서 사용하는 MAP 복호부의 구조를 본 터보 복호기의 구조에 맞게 설계해야 한다.이러한 터보 복호기에 적절한 MAP 복호부의 예는 도 3에 도시된 바와 같다.
도 3을 참조로 한 MAP 복호부(30)의 내부 구성은, 정순서로 입력되는 데이터(1, 2, 3,...,N)를 받아 가지 메트릭(branch metric)을 계산하는 제 1 가지 메트릭 계산기(bmD)(31)와, 상기 계산된 가지 메트릭을 받아 상기 입력된 데이터를 정순서로 순방향 메트릭(Forward State Metric)을 계산하는 순방향 메트릭 계산기(fsmA)(32)와, 이 계산된 정순서 데이터 중 앞 부분 반(즉, 1,...,N/2)을 저장하는 순방향 메트릭 계산기 메모리(fsm N/2)(33)와, 상기 정순서로 입력되는 데이터와 동시에 역순서로 입력되는 데이터(N, N-1, N-2,..., 1)를 받아 가지 메트릭을 계산하는 제 2 가지 메트릭 계산기(bmD)(34)와, 상기 계산된 가지 메트릭을 받아 상기 입력된 데이터를 역순서로 역방향 메트릭(Backward State Metric)을 계산하는 역방향 메트릭 계산기(bsmB)(35)와, 이 계산된 역순서 데이터 중 앞 부분 반(즉, N, N-1, ... , N/2+1)을 저장하는 역방향 메트릭 메모리(bsm N/2)(36)와, 상기 순방향 메트릭 계산기(32)에서 계산되어 출력된 정순서 데이터중 앞 부분 반 및 뒷 부분 반과 상기 역방향 메트릭 계산기(35)에서 계산되어 출력된 역순서 데이터중 앞 부분 반 및 뒷 부분 반을 받아 (N/2 +1), (N/2), (N/2 +2), (N/2 -1), ... , N, 1의 순서로 LLR을 계산하는데, (N/2 +1)번째 LLR을 계산하기 위해 (N/2 +1)번째 순방향 메트릭은 순방향 메트릭 계산기에서 받고 (N/2 -1)번째 역방향 메트릭은 역방향 메트릭 계산기메모리에서 받고, 이 계산된 역순서 데이터 중 앞 부분 반(즉, N, N-1, ... , N/2+1)을 저장하는 역방향 메트릭 메모리(bsm N/2)(36)와, 상기 순방향 메트릭 계산기(32)에서 계산되어 출력된 정순서 데이터중 앞 부분 반 및 뒷 부분반과 상기 역방향 메트릭 계산기(35)에서 계산되어 출력된 역순서 데이터중 앞 부분 반 및 뒷 부분 반을 받아 (N/2 +1), (N/2), (N/2 +2), (N/2 -1), ... , N, 1의 순서로 LLR을 계산하는데, (N/2 +1)번째 LLR을 계산하기 위해 (N/2 +1)번째 순방향 메트릭은 순방향 메트릭 계산기에서 받고 (N/2 +1)(N/2 -1)번째 역방향 메트릭은 역방향 메트릭 계산기메모리에서 받고, 또 (N/2) 번째 LLR을 계산하기 위해 (N/2) 번째 순방향 메트릭은 순방향 메트릭 계산기 메모리에서 받고 (N/2)번째 역방향 메트릭은 역방향 메트릭 계산기에서 받기 위한 계산을 하기 위해 선택적으로 출력하는 멀티플렉서(37)와, 상기 출력된 데이터를 받아 복호 과정이 반이 경과한 후에 순방향 메트릭 값을 받고 상기 역방향 메트릭 계산기 메모리(36)의 값을 받아 정순서의 로그 가능성 비(Log Likelihood Ratio; 이하, 'LLR')를 계산하면서, 역방향 메트릭 값을 받고 해당 순방향 메트릭 계산기 메모리(33)의 값을 받아 역순서의 LLR을 계산하는 LLR 계산기(38)로 구성되어 있다.
이와 같은 구성에 의거한 MAP 복호부(30)의 작용을 살펴보면 다음과 같다.
먼저, 외부에서 1, 2, 3,..., N의 순서로 입력되는 신호 Dk를 받아 제 1 가지 메트릭 계산기(bmD)(31)에서 가지 메트릭(branch metric)을 계산하고, 그것을 순방향 메트릭 계산기(fsmA)(32)에 제공한다. 순방향 메트릭 계산기(32)에서는 1, 2, 3,..., N의 순서로 순방향 메트릭(forward state metric)을 계산하고 그 중 1부터 N/2까지는 순방향 메트릭 계산기 메모리(fsmN/2)(33)에 저장하고 나머지 (N/2 +1)부터 N까지의 값은 멀티플렉서(37)의 선택에 따라 LLR 계산기(38)에 바로 제공한다. 이러한 과정이 진행되는 동안 역방향 메트릭을 계산하기 위한 제 2 가지 메트릭 계산기(34)는 N, N-1, N-2,..., 1의 역순서로 가지 메트릭을 다시 계산하고 그것을 역방향 메트릭 계산기(35)에 제공한다. 이것이 가능한 것은, 가지 메트릭의 계산은 각 단(stage)마다 한 번만 수행하면 되기 때문에 1 단에서 두 번(순방향과 역방향) 가지 메트릭을 계산하는 것이 가능하기 때문이다. 역방향 메트릭 계산기(35)에서는 N, N-1, N-2,..., 1의 순서로 역방향 메트릭(backward state metric)을 계산하고 그 중 N부터 (N/2 +1)까지는 순방향 메트릭 계산기 메모리(33)에 저장하고 나머지 N/2부터 1 까지 값은 LLR 계산기(38)에 바로 제공한다. LLR 계산기(38)에서는 전체 1부터 n까지의 단(stage)중 (N/2 +1)단부터 동작하기 시작하는데, 순방향 메트릭 값을 받고 해당 역방향 메트릭 계산기 메모리의 값을 받아 (N/2 +1), (N/2 +2), ..., N의 순서로 LLR을 계산하면서, 그 사이 사이에 역방향 메트릭 값을 받고 해당 순방향 메트릭 계산기 메모리(33)의 값을 받아 (N/2), (N/2 -1), (N/2 -2), ..., 1의 순서로 LLR을 계산한다. 즉, LLR 계산기(38)는 (N/2 +1), (N/2), (N/2 +2), (N/2 -1), ..., N, 1의 순서가 혼합되어 출력된다(이것의 저장은 단지 쓰기 위한 메모리 주소를 상기 순서대로 생성하면 문제가 되지 않음). 이러한 계산이 가능한 것은 역방향 및 순방향 메트릭 계산에 시간이 많이 소요되기 때문에 LLR 계산을 두 번하는 것이 가능하다.
도 4는 상기 도 3에 따른 타이밍도로서, 이에 도시된 바와 같이 MAP 복호부의 순방향 메트릭을 계산하는 것과 역방향 메트릭을 계산하는 것을 동시에 할 수 있다. 그래서, 터보 복호기의 첫번째 복호에 소요되는 시간은 2단위 시간에 복호가 가능하며 그 이후의 복호는 2단위 시간 내에 복호가 가능하다. 최적화된 시간으로터보 복호를 수행할 수 있다.
이상에서 언급된 바와 같은 MAP 복호부를 사용한 터보 복호기의 작용을 살펴보면 다음과 같다.
먼저, 첫번째 복호에서는 순방향 메트릭 계산과 역방향 메트릭 계산을 동시에 수행하여 (N/2 +1), (N/2), (N/2 +2), (N/2 -1), ..., N, 1의 혼합된 순서로 LLR을 계산하여 제 2 RAM(50)에 저장한다.
두 번째 복호에서는 제 2 RAM(50)의 값을 인터리빙하여 지연소자(23)와 MAP 복호부(30)에 제공한다. 이때, MAP 복호부(30)가 순방향과 역방향 메트릭을 동시에 계산하기 위해서는 도 2에서 보는 바와 같이 인터리버(41)가 제 2 RAM(50)의 정보를 인터리빙하여 1, 2, 3, ..., N의 순서로 읽어내고 순방향 메트릭 계산기(32)에 제공하고 역 인터리버(42)가 역 인터리빙하여 N, N-1, N-2, ..., 1의 순서로 읽어 역방향 메트릭 계산기(35)에 제공한다. MAP 복호부(30)는 앞서 언급한 바와 동일하게 MAP 복호를 수행하여 제 2 RAM(50)에 저장한다.
세 번째 복호에서는 제 2 RAM(50)의 값을 디인터리빙하여 지연소자(23)와 MAP 복호부(30)에 제공한다. 이때, MAP 복호부가 순방향과 역방향 메트릭을 동시에 계산하기 위해서는 도 2에서 보는 바와 같이 디인터리버(43)가 제 2 RAM(50)의 정보를 디인터리빙하여 1, 2, 3, ..., N의 순서로 읽어내고 순방향 메트릭 계산기(32)에 제공하고, 역 디인터리버(44)가 역 디인터리빙하여 N, N-1, N-2, ..., 1의 순서로 읽어 역방향 메트릭 계산기(35)에 제공한다. MAP 복호부는 앞서 언급한 바와 동일하게 MAP 복호를 수행하여 제 2 RAM(50)에 저장한다.
이러한 과정을 필요한 회수 만큼 반복한 후 최종 복호된 정보를 얻을 때에는 제 1 멀티플렉서(24)의 출력을 '0'으로 하여 MAP 복호부(30)에서 나온 출력을 빼지않고 제 2 RAM(50)에 저장하고 그것을 디인터리빙한 후 경성 판정부(60)에서 경성판정하여 최종 터보 복호된 정보(di)를 얻는다.
따라서, 본 발명은 종래의 방법 보다 터보 복호기를 구현하는데 있어서 하드웨어의 크기를 거의 반으로 줄였으며, 복호에 소요되는 시간도 주어진 하드웨어 내에서 최소화 하였다.
터보 복호기는 비터비 복호기에 비하여 여러 번 반복하였을 때 그 성능이 뛰어난 것이 일반적으로 알려져 있는 사실이다. 그러나 터보 복호기의 하드웨어의 크기는 비터비 복호기에 비하여 4배 정도 큰것으로 알려져 있어 ASIC 구현에 단점으로 작용하고 있다.
그러나, 본 발명에서는 하드웨어 자원공유를 통하여 구조(architecture)를 설계함으로써 기존의 터보 복호기의 크기를 거의 반으로 줄일 수 있어 이러한 구조를 사용하여 ASIC을 구현하면 한층 면적이 축소된 결과를 얻을 수 있으며, 또한 복호에 소요되는 시간을 단축할 수 있는 효과가 있으므로, 차세대 이동통신 기술인 IMT 2000의 규격에 적합하여 통신기술 시장에서의 경쟁력을 향상시킬 수 있게 된다.

Claims (3)

  1. MAP 방식을 사용한 터보 복호기에 있어서,
    외부로 부터 부호화된 노이즈가 포함된 제1, 제2 데이터가 임시 저장되는 제 1 저장수단;
    제 2 저장수단의 정보를 인터리빙 및 디인터리빙하여 읽어내어 정순서로 입력된 데이터와 역 인터리빙 및 역 디인터리빙하여 읽어내어 역순서로 입력된 데이타가 궤환 입력되는 제 3 데이터와, 상기 제 1 저장수단으로부터 출력되어 선택된 데이터를 가산하는 제 1 가산수단;
    상기 제 2 데이터와 '0' 데이터를 받아 원래의 정보를 부호화한 데이터와 그 정보를 인터리빙한 후 부호화한 데이터를 번갈아 출력시키는 제 2 선택수단;
    상기 제 1 가산수단과 제 2 선택수단에서 출력된 데이터를 받아 순방향과 역방향 메트릭을 동시에 계산하여 입력정보를 혼합된 순서로 MAP 복호해서 출력하는 하나의 MAP 복호수단;
    상기 궤환된 제 3 데이터를 일시 지연시켜 MAP 복호기의 출력순서에 맞추어 출력하는 하나의 지연소자;
    그 지연되어 출력되는 데이터와 '0' 데이터를 받아 선택적으로 출력하는 제 1 선택수단;
    상기 제 1 선택수단에서 출력된 데이터와 상기 MAP 복호된 데이터를 가산하는 제 2 가산수단;
    상기 제 2 가산수단에서 출력된 데이터가 임시 저장되는 제 2 저장수단;
    상기 제 2 저장수단에 저장된 데이터를 읽어, 인터리빙, 디인터리빙, 역 인터리빙, 역 디인터리빙을 각각 수행하는 인터리버, 디인터리버, 역 인터리버, 역 디인터리버; 및
    상기 제 1 선택수단에서 '0' 값이 선택될 때 상기 MAP 복호수단의 출력을 빼지 않고 상기 제 2 저장수단에 저장된 후 디인터리빙된 데이터를 받아 경성 판정을 하여 최종 터보 복호된 정보를 출력하는 경성 판정수단으로 구성되어, 터보 복호기의 크기를 최소화할 수 있는 것을 특징으로 하는 MAP 방식을 사용한 터보 복호기.
  2. 제 1 항에 있어서,
    상기 제 1 및 제 2 저장수단은 각기 RAM을 사용하는 것을 특징으로 하는 MAP 방식을 사용한 터보 복호기.
  3. 제 1 항에 있어서,
    상기 MAP 복호수단은,
    정순서로 입력되는 데이터를 받아 가지 메트릭을 계산하는 제 1 가지 메트릭 계산기;
    상기 계산된 가지 메트릭을 받아 상기 입력된 데이터를 정순서로 순방향 메트릭을 계산하는 순방향 메트릭 계산기;
    이 계산된 정순서 데이터 중 앞 부분의 반을 저장하는 순방향 메트릭 계산기 메모리;
    상기 정순서로 입력되는 데이터와 동시에 역순서로 입력되는 데이터를 받아 가지 메트릭을 계산하는 제 2 가지 메트릭 계산기;
    이 계산된 가지 메트릭을 받아 상기 입력된 데이터를 역순서로 역방향 메트릭을 계산하는 역방향 메트릭 계산기;
    이 계산된 역순서 데이터 중 앞 부분의 반을 저장하는 역방향 메트릭 계산기 메모리;
    상기 순방향 및 역방향 메트릭 계산기 메모리에서 각기 출력된 데이터와 상기 순방향 및 역방향 메트릭 계산기에서 각기 그대로 출력된 나머지 데이터를 받아 선택적으로 출력하는 멀티플렉서; 및
    이 선택되어 출력된 데이터를 받아 복호 과정이 반이 경과한 후에 순방향 메트릭 값을 받고 상기 역방향 메트릭 계산기 메모리의 값을 받아 정순서의 LLR을 계산하면서, 역방향 메트릭 값을 받고 해당 순방향 메트릭 계산기 메모리의 값을 받아 역순서의 LLR을 계산하는 LLR 계산기로 구성되어, 복호 시간을 줄이는 것을 특징으로 하는 MAP 방식을 사용한 터보 복호기.
KR1019990031257A 1999-07-30 1999-07-30 엠에이피 방식을 사용한 터보 복호기 KR100355452B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990031257A KR100355452B1 (ko) 1999-07-30 1999-07-30 엠에이피 방식을 사용한 터보 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990031257A KR100355452B1 (ko) 1999-07-30 1999-07-30 엠에이피 방식을 사용한 터보 복호기

Publications (2)

Publication Number Publication Date
KR20010011736A KR20010011736A (ko) 2001-02-15
KR100355452B1 true KR100355452B1 (ko) 2002-10-11

Family

ID=19605710

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990031257A KR100355452B1 (ko) 1999-07-30 1999-07-30 엠에이피 방식을 사용한 터보 복호기

Country Status (1)

Country Link
KR (1) KR100355452B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100845829B1 (ko) * 2001-11-23 2008-07-14 엘지전자 주식회사 터보 디코더 및 디코딩 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100388780B1 (ko) * 2000-12-30 2003-06-25 주식회사 하이닉스반도체 이동통신 기지국의 디코더에서 메모리 용량 축소 방법
JP3540224B2 (ja) 2001-03-06 2004-07-07 シャープ株式会社 ターボ復号器とターボ復号方法及びその方法を記憶した記憶媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100845829B1 (ko) * 2001-11-23 2008-07-14 엘지전자 주식회사 터보 디코더 및 디코딩 방법

Also Published As

Publication number Publication date
KR20010011736A (ko) 2001-02-15

Similar Documents

Publication Publication Date Title
Masera et al. VLSI architectures for turbo codes
KR100671075B1 (ko) 터보 코딩의 사용을 용이하게 하기 위한 디코더, 디코딩 시스템 및 디코딩 방법
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
KR100955305B1 (ko) 큐피피 인터리브를 갖는 병렬 터보 디코딩을 위한 공식적플렉서블 충돌 방지 메모리 억세싱
US20070162837A1 (en) Method and arrangement for decoding a convolutionally encoded codeword
US20040153942A1 (en) Soft input soft output decoder for turbo codes
US9048877B2 (en) Turbo code parallel interleaver and parallel interleaving method thereof
US7246298B2 (en) Unified viterbi/turbo decoder for mobile communication systems
US7020827B2 (en) Cascade map decoder and method
US20030221084A1 (en) Interleaver address generator and method of generating an interleaver address
US7584389B2 (en) Turbo decoding apparatus and method
US6487694B1 (en) Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA
Martina et al. A flexible UMTS-WiMax turbo decoder architecture
Karim et al. An improved low-power high-throughput log-MAP turbo decoder
US8032811B2 (en) Efficient almost regular permutation (ARP) interleaver and method
KR100355452B1 (ko) 엠에이피 방식을 사용한 터보 복호기
US20050172203A1 (en) Decoder and method for performing decoding operation using map algorithm in mobile communication system
KR100436434B1 (ko) 상태 메트릭을 갖는 터보 복호기 및 그를 이용한 계산 방법
KR100988908B1 (ko) 터보 치환기 및 그것을 포함한 터보 복호기
Martina et al. VLSI implementation of WiMax convolutional turbo code encoder and decoder
Varghese et al. Memory Efficient, High Speed Implementation of MAX LOG MAP Decoder for CCSDS Turbo codes
Raymond et al. Design and VLSI implementation of a high throughput turbo decoder
Taskaldiran et al. Parallel decoding of turbo codes using multi-point trellis termination and collision-free interleavers
Karim et al. Design of pipelined parallel turbo decoder using contention free interleaver
Jackuline et al. A new architecture for the generation of picture based CAPTCHA: Double binary convolutional turbo decoder using low power memory reduced traceback MAP decoding

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: 20090901

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee