KR100365724B1 - 이진 로그맵 알고리즘을 이용한 터보 복호기 및 그 구현방법 - Google Patents

이진 로그맵 알고리즘을 이용한 터보 복호기 및 그 구현방법 Download PDF

Info

Publication number
KR100365724B1
KR100365724B1 KR1020000083169A KR20000083169A KR100365724B1 KR 100365724 B1 KR100365724 B1 KR 100365724B1 KR 1020000083169 A KR1020000083169 A KR 1020000083169A KR 20000083169 A KR20000083169 A KR 20000083169A KR 100365724 B1 KR100365724 B1 KR 100365724B1
Authority
KR
South Korea
Prior art keywords
integer
value
fractional
logmap
function
Prior art date
Application number
KR1020000083169A
Other languages
English (en)
Other versions
KR20020054203A (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 KR1020000083169A priority Critical patent/KR100365724B1/ko
Priority to US09/966,201 priority patent/US6772389B2/en
Publication of KR20020054203A publication Critical patent/KR20020054203A/ko
Application granted granted Critical
Publication of KR100365724B1 publication Critical patent/KR100365724B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • 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/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/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/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization

Landscapes

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

Abstract

본 발명은 이진 로그맵 알고리즘(Binary LogMAP Algorithm)을 이용한 터보 복호기 및 그 구현 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 이진 LogMAP 알고리즘을 사용하여 터보 복호기를 구현하는 경우에, 기존의 LogMAP 알고리즘에서 사용되었던 복잡한 E 함수를 대신하여, 하드웨어의 구현이 용이한 2 함수를 사용하며, 이의 계산에 ABELA를 적용하여 작은 하드웨어를 가지면서도 정밀도가 높은 복호기를 구현할 수 있으며, 또한 순방향 및 역방향 상태 메트릭 값의 계산에 있어서 필요한 연산량을 줄이고 LLR의 계산을 고속으로 수행할 수 있어 기존의 LogMAP 방식의 터보 복호기에 비하여 작은 하드웨어를 필요로 하면서도 고속의 복호가 가능한 터보 복호기를 구현할 수 있다.

Description

이진 로그맵 알고리즘을 이용한 터보 복호기 및 그 구현 방법{Turbo decoder using the binary LogMAP algorithm and its embodiment method}
본 발명은 차세대 이동통신 시스템(IMT-2000 등) 등과 같은 무선통신 시스템에서 오류정정부호로 사용되고 있는 터보 복호기 구현시에, 밑수를 2로 하는 이진(Binary) 로그맵(LogMAP) 알고리즘을 적용하여, 기존의 로그맵(LogMAP) 방식의 터보 복호기에 비하여 작은 하드웨어를 필요로 하면서도 고속의 복호가 가능한 터보 복호기를 구현할 수 있도록 한 터보 복호기 및 그 구현 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
현재, 차세대 이동통신 시스템(IMT-2000)에서는 고속의 데이터를 전송하기 위한 오류정정부호로 터보 부호를 채택하고 있다. 또한, 터보 부호는 많은 통신 시스템의 오류정정부호로 자리잡고 있으며, 이에 따른 연구도 활발하게 진행되고 있다.
터보 부호를 사용한 오류정정기술은 1993년 "Claude Berrou"가 처음으로 발표하면서 오류정정 분야에 새로운 장을 열었다.
터보 부호의 오류정정능력은 반복 횟수에 따라 비트 오류 확률(BER : Bit Error Rate) 성능이 향상되는 특징을 가지고 있으며, 충분한 반복을 수행하였을 때 "Shannon"의 채널 능력(channel capacity) 근처까지 오류없이 정보의 전송이 가능하다고 알려져 있으며, 이러한 터보 부호에 대한 복호기의 개략적인 구조는 "C. Berrou"의 논문에 제시되어 있다.
일반적으로, 터보 복호기를 구현하기 위한 알고리즘은 크게 두 가지로 나눌 수 있는데, 하나는 "맵(MAP : Maximum A Posteriori) 알고리즘"에 의한 구현 방법이고, 다른 하나는 "SOVA(Soft Output Viterbi Algorithm)"에 의한 구현 방법이다.
먼저, "SOVA"를 살펴보면, 이는 맵(MAP) 알고리즘과는 달리 시퀀스 오류 확률을 최소화시키고 계산량을 포함한 복잡도가 MAP보다 간단하기 때문에 복호기 구현이 상대적으로 쉬운 장점을 가지고 있으나, 비트 오류 확률이 MAP 알고리즘보다 더 낮은 성능을 보이는 단점을 안고 있다.
반면에, "MAP 알고리즘"은 비트 오류 확률(BER)을 최소화시키고, SOVA보다 0.5dB이상 더 좋은 성능을 얻을 수 있지만, 계산량이 많고 복잡도가 크기 때문에 복호기를 구현하기가 어렵다는 단점이 있으며, 파라미터에 매우 민감하므로, 파라미터가 성능에 미치는 영향이 크게 된다.
이에 따라, 성능이 더 나은 MAP 알고리즘을 구현이 용이하도록 하려는 노력이 전개되었으며, "S.S.Pietrobon"에 의하여 "Modified MAP 알고리즘"을 간단하게 구성한 터보 복호기의 구조가 발표되었으며, 이것을 필드 프로그래머블 게이트 어레이(FPGA)를 사용하여 구현한 것도 발표되었다. "S. S. Pietrobon"은 이 논문에서기존의 LogMAP 알고리즘을 간략화하여 E 함수를 유도하여 E 함수를 이용하여 상태 메트릭 및 로그 유사도(LLR : Log-Likelihood Ratio)를 계산하였다. 하지만, E 함수를 하드웨어로 구현하게 되면 구현이 용이하지 않고, 하드웨어가 커지는 단점을 안고 있다. 따라서, 이런 단점을 극복하기 위하여 이를 근사화한 알고리즘으로, 대수 영역에서 동작하는 "MaxLogMAP" 및 "SubLogMAP" 방식들이 발표되었는데, "W.J.Gross"는 E 함수를 "Jacobi Logarithm"으로 변형하고 "Jacobi Logarithm"의 계산을 2 단계로 간략화한 "MAX* 알고리즘"을 발표하였다. 그러나, 이렇게 근사화를 하였을 경우 터보 복호기의 성능이 저하되는 단점이 있다.
이상에서와 같이, 종래에는 IMT-2000 시스템에서 오류 정정 부호로 사용되고 있는 터보 부호의 복호기를 구현함에 있어서, "LogMAP 알고리즘", "SubLogMAP 알고리즘", "MaxLogMAP 알고리즘" 및 "SOVA" 등이 주로 사용되어 왔으나, 주문형 반도체(ASIC) 또는 FPGA 등의 하드웨어 구현의 관점에서는 가능하면 하드웨어의 크기를 작게 하면서 성능을 최대한 좋게 하는 것이 요구되는데, E 함수를 사용하여 복호기를 구현하고 있는 종래의 LogMAP 방식에서는 이 E 함수를 하드웨어로 구현하는 것이 용이하지 않다. 그리고, 이를 SubLogMAP이나 MaxLogMAP 방식을 적용하여 복호기를 구현하게 되면 구현하기는 더 쉬워지더라도 그로 인한 성능의 악화는 피할 수 없게 된다.
따라서, 복호기를 구현하는데 있어서, 성능의 악화를 야기하지 않으면서도 하드웨어의 크기를 줄일 수 있는 방안이 필수적으로 요구된다.
상기한 바와 같은 요구에 부응하기 위하여 제안된 본 발명은, 차세대 이동통신 시스템(IMT-2000 등) 등과 같은 무선통신 시스템에서 오류 정정 부호로 사용되고 있는 터보 복호기 구현시에, 밑수를 2로 하는 이진(Binary) 로그맵(LogMAP) 알고리즘을 적용하여, 기존의 로그맵(LogMAP) 방식의 터보 복호기에 비하여 작은 하드웨어를 필요로 하면서도 고속의 복호가 가능한 터보 복호기를 구현하기 위한 터보 복호기 및 그 구현 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도 1 은 종래의 여러 개의 메모리를 사용한 E 함수 계산 과정을 나타낸 설명도.
도 2 는 종래의 단일 메모리를 사용한 E 함수 계산 과정을 나타낸 설명도.
도 3 은 종래의 상태 메트릭이 2개인 경우의 2 함수 계산 과정을 나타낸 설명도.
도 4 는 본 발명에 따른 2 함수를 사용하여 계산을 수행하는 2함수 계산기의 일실시예 구성도.
도 5 는 상태 메트릭이 8개인 경우 자연 로그맵(LogMAP)을 이용한 LLR 계산 과정을 나타낸 설명도.
도 6 은 본 발명에 따른 상태 메트릭이 8개인 경우 이진 로그맵(LogMAP)을 이용한 LLR 계산을 보여주는 터보 복호기의 일실시예 구성도.
*도면의 주요 부분에 대한 부호의 설명
41,62 : 비교기 42,61 : 스프리트
43,63 : 2Af룩업 테이블 44,64,80 : 감산기
45,65 : 이동기 46,49,66,69 : 가산기
47,67 : 로그 전처리기 48,68 : log2 룩업 테이블
60 : 우도 1 계산기 70 : 우도 2 계산기
상기 목적을 달성하기 위한 본 발명은, 무선통신 시스템에서 오류정정부호로 사용되고 있는 터보 복호기에 있어서, 이진 로그맵(LogMAP) 알고리즘을 사용하되, 입력된 두 개의 상태 메트릭 값의 합을 각각 정수부와 소수부로 분리하는 분리수단; 상기 분리수단에 의해 분리된 두 개의 상태 메트릭의 정수부들을 비교하여 최대 정수 값 혹은 최소 정수 값을 구하는 비교수단; 원래의 정수부와 상기 비교수단으로부터의 최대 정수 값 혹은 최소 정수 값의 차이를 구하는 감산수단; 상기 분리수단에 의해 분리된 두 개의 상태 메트릭의 소수부들의 2의 지수승 값을 구하는 2의 지수승 값 추출수단; 상기 2의 지수승 값 추출수단에서 추출된 소수부들의 2의 지수승 값중 더 작은 정수부를 갖는 소수부만을 상기 감산수단으로부터의 원래의 정수부와 최대 정수 값 또는 최소 정수 값의 차이만큼 쉬프트시키는 쉬프팅수단;상기 쉬프팅수단에 의해 쉬프트된 더 작은 정수부를 갖는 소수부와 상기 2의 지수승 값 추출수단에서 추출된 소수부들의 2의 지수승 값중 큰 정수부를 갖는 소수부를 가산하는 제1 가산수단; 상기 제1 가산수단에 의해 가산된 소수부를 로그2 처리하여 소수부에 대한 최종 값을 구하는 로그처리수단; 및 상기 비교수단으로부터 전달된 최대 정수 값과 상기 로그처리수단으로부터 전달된 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제2 가산수단을 포함하여 이루어진 것을 특징으로 한다.
그리고, 본 발명은 무선통신 시스템에서 오류정정부호로 사용되고 있는 터보 복호기에 있어서, 이진 로그맵(LogMAP) 알고리즘을 사용하되, 입력된 각 상태 메트릭들의 합을 정수부와 소수부로 분리하는 분리수단; 상기 분리수단에 의해 분리된 각 상태 메트릭들의 정수부들을 비교하여 최대 정수값 혹은 최소 정수값을 구하는 비교수단; 원래의 정수부와 상기 비교수단으로부터의 최대 정수 값 혹은 최소 정수 값의 차이를 구하는 제1 감산수단; 상기 분리수단에 의해 분리된 각 상태 메트릭의 소수부들의 2의 지수승 값을 구하는 2의 지수승 값 추출수단; 상기 2의 지수승 값 추출수단에서 추출된 소수부들의 2의 지수승 값을 상기 제1 감산수단으로부터의 원래의 정수부와 최대 정수값 또는 최소 정수 값의 차이만큼 쉬프트시키는 쉬프팅수단; 상기 쉬프팅수단에 의해 정수부의 차만큼 쉬프트된 소수부들의 2의 지수승 값들을 가산하는 제1 가산수단; 상기 제1 가산수단에 의해 가산된 소수부를 로그2 처리하여 소수부에 대한 최종 값을 구하는 로그처리수단; 상기 비교수단으로부터 전달된 최대 정수 값과 상기 로그처리수단으로부터 전달된 소수부에 대한 최종 값을가산하여 최종 2 함수 값을 구하는 제2 가산수단; 및 상기 제2 가산수단의 최종 2 함수 값에 따른 우도 값을 감산하여 로그 유사도(LLR)를 구하는 제2 감산수단을 포함하여 이루어진 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명은, 무선통신 시스템에서 오류정정부호로 사용되고 있는 터보 복호기 구현 방법에 있어서, 이진 로그맵(LogMAP) 알고리즘을 사용하되, 입력된 두 개의 상태 메트릭 값의 합을 각각 정수부와 소수부로 분리하는 제 1 단계; 상기 분리된 두 개의 상태 메트릭의 정수부들을 비교하여 최대 정수 값 혹은 최소 정수 값을 구하는 제 2 단계; 원래의 정수부와 최대 정수 값 혹은 최소 정수 값의 차이를 구하는 제 3 단계; 상기 분리된 두 개의 상태 메트릭의 소수부들의 2의 지수승 값을 구하고, 소수부들의 2의 지수승 값중 더 작은 정수부를 갖는 소수부만을 원래의 정수부와 최대 정수 값 또는 최소 정수 값의 차이만큼 쉬프트시키는 제 4 단계; 상기 쉬프트된 더 작은 정수부를 갖는 소수부와 상기 소수부들의 2의 지수승 값중 큰 정수부를 갖는 소수부를 가산해 로그2 처리하여 소수부에 대한 최종 값을 구하는 제 5 단계; 및 상기 최대 정수 값과 상기 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제 6 단계를 포함하여 이루어진 것을 특징으로 한다.
그리고, 본 발명은 무선통신 시스템에서 오류정정부호로 사용되고 있는 터보 복호기 구현 방법에 있어서, 이진 로그맵(LogMAP) 알고리즘을 사용하되, 입력된 각 상태 메트릭들의 합을 정수부와 소수부로 분리하는 제 1 단계; 상기 분리된 각 상태 메트릭들의 정수부들을 비교하여 최대 정수값 혹은 최소 정수값을 구하는 제 2단계; 원래의 정수부와 최대 정수값 혹은 최소 정수값의 차이를 구하는 제 3 단계; 상기 분리된 각 상태 메트릭의 소수부들의 2의 지수승 값을 구하고, 소수부들의 2의 지수승 값을 원래의 정수부와 최대 정수값 또는 최소 정수 값의 차이만큼 쉬프트시키는 제 4 단계; 정수부의 차만큼 쉬프트된 소수부들의 2의 지수승 값들을 가산한 후, 로그2 처리하여 소수부에 대한 최종 값을 구하는 제 5 단계; 상기 최대 정수 값과 상기 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제 6 단계; 및 상기 최종 2 함수 값에 따른 우도 값을 감산하여 로그 유사도(LLR)를 구하는 제 7 단계를 포함하여 이루어진 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명은, 프로세서를 구비한 터보 복호기에, 이진 로그맵(LogMAP) 알고리즘을 사용하되, 입력된 두 개의 상태 메트릭 값의 합을 각각 정수부와 소수부로 분리하는 제 1 기능; 상기 분리된 두 개의 상태 메트릭의 정수부들을 비교하여 최대 정수 값 혹은 최소 정수 값을 구하는 제 2 기능; 원래의 정수부와 최대 정수 값 혹은 최소 정수 값의 차이를 구하는 제 3 기능; 상기 분리된 두 개의 상태 메트릭의 소수부들의 2의 지수승 값을 구하고, 소수부들의 2의 지수승 값중 더 작은 정수부를 갖는 소수부만을 원래의 정수부와 최대 정수 값 또는 최소 정수 값의 차이만큼 쉬프트시키는 제 4 기능; 상기 쉬프트된 더 작은 정수부를 갖는 소수부와 상기 소수부들의 2의 지수승 값중 큰 정수부를 갖는 소수부를 가산해 로그2 처리하여 소수부에 대한 최종 값을 구하는 제 5 기능; 및 상기 최대 정수 값과 상기 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제 6 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
그리고, 본 발명은 프로세서를 구비한 터보 복호기에, 이진 로그맵(LogMAP) 알고리즘을 사용하되, 입력된 각 상태 메트릭들의 합을 정수부와 소수부로 분리하는 제 1 기능; 상기 분리된 각 상태 메트릭들의 정수부들을 비교하여 최대 정수값 혹은 최소 정수값을 구하는 제 2 기능; 원래의 정수부와 최대 정수값 혹은 최소 정수값의 차이를 구하는 제 3 기능; 상기 분리된 각 상태 메트릭의 소수부들의 2의 지수승 값을 구하고, 소수부들의 2의 지수승 값을 원래의 정수부와 최대 정수값 또는 최소 정수 값의 차이만큼 쉬프트시키는 제 4 기능; 정수부의 차만큼 쉬프트된 소수부들의 2의 지수승 값들을 가산한 후, 로그2 처리하여 소수부에 대한 최종 값을 구하는 제 5 기능; 상기 최대 정수 값과 상기 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제 6 기능; 및 상기 최종 2 함수 값에 따른 우도 값을 감산하여 로그 유사도(LLR)를 구하는 제 7 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명은 터보 복호기를 하드웨어로 구현하는데 있어서, 필요한 하드웨어를 작게 하면서도 정밀도가 높은 복호기를 구현하고자 한다.
이를 위하여, 본 발명에서는 기존의 LogMAP 알고리즘에서 사용되었던 복잡한 E 함수를 대신하여, 하드웨어의 구현이 용이한 2 함수를 사용하며, 이를 계산하는데 있어 ABELA(Approximated Binary Exponential and Logarithmic Algorithm)를 적용하여 작은 하드웨어를 가지면서도 정밀도가 높은 복호기를 구현할 수 있도록 한다. 즉, 본 발명에서는 터보 복호기를 하드웨어로 구현함에 있어서, 가능한 그 크기를 작게 하면서도 성능을 향상시키는 터보 복호기의 최적 구조를 설계하고자 한다. 더 나아가, 본 발명에서 얻어진 터보 복호기를 ASIC이나 FPGA로 구현하여 경쟁력있는 하드웨어를 얻을 수 있도록 한다.
본 발명은 IMT-2000 시스템에서 오류 정정 부호로 사용되고 있는 터보 부호의 복호기를 구현하기 위한 설계 구조에 관한 것으로, 종래에는 터보 복호기를 구현하는데 있어서 LogMAP 알고리즘, SubLogMAP 알고리즘, MaxLogMAP 알고리즘 및 SOVA 등이 주로 사용되어 왔으나, 본 발명에서는 성능은 좋지만 하드웨어의 복잡도가 커서 구현이 어려운 것으로 알려져 있는 자연(natural) LogMAP 알고리즘을 대신하여, 이를 변형한 이진(binary) LogMAP 알고리즘을 적용하여 다음과 같은 여러 장점을 갖는 터보 복호기를 구현할 수 있게 하였다.
이렇게 2를 밑수로 사용하는 이진 LogMAP 알고리즘을 사용하여 터보 복호기를 구현하는 경우에, 기존의 LogMAP 알고리즘에서 사용되었던 복잡한 E 함수를 대신하여, 하드웨어의 구현이 용이한 2 함수를 사용하게 되며, 이의 계산에 ABELA를 적용하여 작은 하드웨어를 가지면서도 정밀도가 높은 복호기를 구현할 수 있게 된다. 또한, 순방향 및 역 방향 상태 메트릭 값의 계산에 있어서 필요한 연산량을 줄이고 LLR의 계산을 고속으로 수행할 수 있도록 하여 기존의 LogMAP 방식의 터보 복호기에 비하여 작은 하드웨어를 필요로 하면서도 고속의 복호가 가능한 터보 복호기를 구현할 수 있게 하였다.
이처럼, 본 발명에서는 복호기를 구현하는데 있어서 성능의 악화를 야기하지 않으면서도 하드웨어의 크기를 줄일 수 있는 이진 LogMAP 알고리즘을 적용하였으며, 기존의 E함수 대신 2함수를 사용하여 작은 크기의 룩업 테이블(lookup table)과 논리회로로 구현이 가능하도록 하였다. 또한, 2함수의 고정소수점 계산에 ABELA를 적용하여 더 높은 정밀도를 얻을 수 있도록 하였으며, 터보 복호기의 성능이 기존의 LogMAP 알고리즘에 비하여 더 향상될 수 있도록 하였다. 그리고, 순방향 및 역방향 상태 메트릭 값의 계산에 있어서 필요한 연산량을 줄이고, LLR의 계산을 고속으로 수행할 수 있도록 하여 기존의 LogMAP 방식의 터보 복호기에 비하여 작은 하드웨어를 필요로 하면서도 고속으로 복호가 가능한 터보 복호기를 구현할 수 있게 하였다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
이진 LogMAP 알고리즘은 다음과 같이 유도된다.
하드웨어를 구현하기 위한 터보 복호기의 수식 전개는 "S.S. Pietrobon"이 수정된 "Bahl 복호 알고리즘"을 간략화하여 1995년과 1997년 두 차례에 걸쳐서 발표한 바 있는데, 본 실시예에서는 이진 LogMAP 알고리즘의 유도를 위하여 1995년의 수식을 사용하기로 한다.
먼저, S.S. Pietrobon이 1995년에 발표한 논문에 제시된 MAP 복호 알고리즘에 관한 수식은 다음의 (수학식 1)과 같다.
본 발명에서는 자연 로그가 아닌 밑수가 2인 로그, 즉 이진 로그를 사용하므로 위의 가지 메트릭부터 밑을 2로 하는 로그를 취하면 다음의 (수학식 2)와 같다.
상기 (수학식 2)는 원래 유도된 상기 (수학식 1)과 비교하면, log2e 만큼의 상수 차이가 날 뿐 원래의 (수학식 1)과 동일한 수식이 된다. 이 수식을 사용하여 순방향 및 역방향 상태 메트릭에 관한 수식을 구하면 다음의 (수학식 3)과 같다.
상기 (수학식 3)에서, log2(2x+2y)=x2y를 2 함수로 정의한다.
이상의 알고리즘을 기존의 자연 LogMAP 알고리즘과 비교하여 보면, 근본적으로 scale값의 변화만 있기 때문에 수학적으로는 동등한 식이 된다.
마지막으로, LLR(Log-Likelihood Ratio)은 순방향 상태 메트릭과 역방향 상태 메트릭으로부터 데이터 비트에 대한 사후 확률(APP : A Posteriori Probability)의 비를 계산하여 복호된 데이터 비트가 0인지 1인지를 판별하는 역할을 수행하게 된다.
먼저, 1995년에 발표된 S.Pietrobon의 논문에 나타난 터보 복호기에서 LLR(Log-Likelihood Ratio)은 다음의 (수학식 4)와 같이 이진 LogMAP 수식으로 변환된다.
이 LLR식을 Hardware MAP decoder 알고리즘에 따라 변경하면 다음의 (수학식 5)와 같다.
이 알고리즘에서는 입력이 1인 경우와 입력이 0인 경우의 순방향 및 역방향 메트릭을 각각 구하여 그 값을 이용하여 LLR을 계산하고 있다. 따라서, 상태 메트릭을 계산할 때 각각의 입력에 대한 상태 메트릭을 계산해야 한다는 단점을 가지고 있지만, LLR 계산시에는 그 상태 값만으로도 LLR을 계산할 수 있다는 장점이 있다.
이진 LogMAP 알고리즘에서는 E 함수 대신 2 함수를 사용하고 있으며, 이에 따라 LLR을 작은 크기의 룩업 테이블(lookup table)과 논리회로로 구현이 가능하며, 고정소수점이 제공하는 최대한의 정밀도를 제공하기 때문에 기존의 E 함수와 비교하여 고정소수점 알고리즘의 성능이 더 나아지게 된다.
2함수를 계산하는 ABELA(Approximated Binary Exponential and Logarithmic Algorithm) 알고리즘은 다음과 같다.
먼저, 2A, 2B를 계산하기 위하여 A, B를 정수부와 소수부로 분리한다(301). 일반적으로 A,B는 부호있는 2의 보수형태를 가지고 있으며, A가 양수인 경우 다음의 (수학식 6)과 같이 표현할 수 있다.
상기 (수학식 6)에서 Af는 1보다 작은 양의 소수이므로,의 범위의 값을 가지게 되며, 룩업 테이블로 구현할 수 있다(302). 그리고,는 쉬프트 연산을 의미하게 되므로,는 룩업 테이블에서 얻은 값을 Ai비트만큼 왼쪽으로 쉬프트하면 그 값을 얻을 수 있게 된다(303).
A가 음수인 경우에는 수식을 다음의 (수학식 7)과 같이 변형한다.
여기에서도 1-Af는 1보다 작은 양의 소수가 되므로, 위에서와 마찬가지로 그 값을 룩업 테이블에서 얻을 수 있게 된다. 따라서,는 룩업 테이블에서 얻은 값을 Ai+1 비트만큼 우측으로 쉬프트한 결과와 같게 된다. 2B역시 마찬가지 방법으로 구할 수 있다.
이제 2A와 2B를 구하였으므로 이들을 더하는 것은 간단히 덧셈기로 구현되며, 이 결과 값에 로그를 취하면 원하는 최종 값을 얻을 수 있게 된다. 덧셈 결과를 S라고 한다면, 로그의 계산은 ABLA(Approximated Binary Logarithmic Algorithm)를 사용하여 아래와 같이 구현된다. 먼저, S를 다음의 (수학식 8)과 같이 변형한다.
상기 (수학식 8)에서, b값은 S를 이진수로 표현하였을 때 최상위 비트의 위치이다. 즉, S가 이진수로 00001111.11110000인 경우 b의 값은 3이 되며,00000001.1111110인 경우 b의 값은 0이 되며, 00000000.00001111인 경우 b의 값은 -5가 된다(306). 한편, 2-b×S를 S'으로 치환하면 상기 (수학식 8)은 다음의 (수학식 9)와 같이 변환된다(305).
여기서, S'은 1과 2사이의 값을 갖는다. 최종적으로 로그를 취하면 상기 (수학식 9)는 다음의 (수학식 10)과 같이 변환된다.
여기서, log2S'은 룩업테이블(307)에 의하여 얻어지며, 0과 1사이의 값을 갖게 되는 양의 소수이고 b는 정수이므로 b+log2S'은 덧셈기를 사용하여 구현할 수 있게 된다.
도 1 및 도 2 는 기존의 자연 LogMAP 방식에서 구현되는 E 함수 계산기를 도시하고 있는데, 도 2는 도 1의 개념을 보완하여 필요한 메모리 크기를 줄인 구조이다. 도 2는 룩업 테이블에 입력되는 입력 값을 saturation시켜 룩업 테이블(203) 크기를 줄인 것으로, 도 2에 입력 값을 saturation시키는 부분은 도시하지 않았다.
도 3 은 이진 LogMAP 방식으로 구현한 기존의 2 함수 계산기를 보이고 있는데, 이 구조는 먼저 입력된 상태 메트릭 값을 정수부와 소수부로 나누고(301), 소수부에 대한 2의 지수 항을 룩업 테이블(302)을 통하여 구한 뒤, 정수부만큼 그 값을 이동시키는(303) 구조이다. 나머지 상태 메트릭에 대하여 위와 같은 과정을 수행한 뒤, 마지막으로 로그를 처리하면 원하는 2함수 값을 얻을 수 있다.
자연 LogMAP 방식의 E 함수 보다 이진 LogMAP 방식의 2 함수가 얻을 수 있는 장점은 하드웨어의 구현이 더 용이하다는 것과, 고정 소수점이 제공하는 최대한의 정밀도를 얻을 수 있다는 것인데, 도 2와 도 3의 하드웨어 크기를 비교해 보면 도 3의 2 함수의 하드웨어가 더 많이 필요하게 된다. 따라서, 이 보다 하드웨어의 크기를 줄이고, 추후 고속의 LLR 계산을 가능하도록 하기 위하여 다음과 같은 과정을 수행한다. 먼저, 상기 정의된 2함수의 정의식을 다음의 (수학식 11)과 같이 변형한다.
여기서, max는 상태 메트릭 A의 정수부와 상태 메트릭 B의 정수부 중 더 큰 값을 취한 것이다. 2 함수를 상기 (수학식 11)과 같은 수식으로 구현하는 경우, 상태 메트릭 값의 소수부를 지수승한 값을 룩업 테이블에서 구하고, 그 값을 최대 정수 값과 원래의 정수부의 차이만큼 쉬프트 시킨 후 로그를 취하면 원하는 2 함수 값을 얻을 수 있게 된다. 상기 (수학식 11)은 플러스(Plus) 로그를 취한 경우이며, 마이너스(Minus) 로그를 취하는 경우에는 다음의 (수학식 12)와 같이 표현된다.
이 경우는 각 정수부의 최대값 대신 최소값을 구한다는 것 외에는 Plus 로그를 취하는 경우와 동일한데, LLR은 우도비(ratio)이기 때문에 상기 2 함수식에 상수를 같이 더하거나 빼도 원래의 우도비에는 영향을 미치지 않게 된다. 따라서, 상기 (수학식 12)에서는 소수부 값을 양수를 만들기 위하여 1을 더하였다.
도 4에 상기 (수학식 12)를 구현한 구조가 도시되었다.
도 4에 도시된 바와 같이, 본 발명에 따른 2 함수 계산 보여주는 이진 로그맵(LogMAP) 알고리즘을 이용한 터보 복호기는, 입력된 두 개의 상태 메트릭 값의합을 각각 정수부와 소수부로 분리하는 스프리트(42)와, 스프리트(42)에 의해 분리된 두 개의 상태 메트릭의 정수부들을 비교하여 최대 정수 값 혹은 최소 정수 값을 구하는 비교기(41)와, 원래의 정수부와 비교기(41)로부터의 최대 정수 값 혹은 최소 정수 값의 차이를 구하는 감산기(44)와, 스프리트(42)에 의해 분리된 두 개의 상태 메트릭의 소수부들의 2의 지수승 값을 구하는 2af룩업 테이블(43)과, 2af룩업 테이블(43)에서 추출된 소수부들의 2의 지수승 값중 더 작은 정수부를 갖는 소수부만을 감산기(44)로부터의 원래의 정수부와 최대 정수 값 또는 최소 정수 값의 차이만큼 쉬프트시키는 이동기(45)와, 이동기(45)에 의해 쉬프트된 더 작은 정수부를 갖는 소수부와 2af룩업 테이블(43)에서 추출된 소수부들의 2의 지수승 값중 큰 정수부를 갖는 소수부를 가산하는 가산기(46)와, 가산기(46)에 의해 가산된 소수부를 로그2 처리하여 소수부에 대한 최종 값을 구하는 로그 전처리기(47) 및 log2 룩업 테이블(48)과, 비교기(41)로부터 전달된 최대 정수 값과 로그 전처리기(47) 및 log2 룩업 테이블(48)로부터 전달된 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 가산기(49)를 포함한다.
이를 구체적으로 살펴보면, 입력된 두 개의 상태 메트릭 값의 합은 스프리트(42)에서 각각 정수부와 소수부로 분리되고, 각각의 정수부들은 최대값 또는 최소값을 구하기 위해 비교기(41)에 입력된다. 이때, 비교기(41)에서는 원래의 정수부와 최대값 또는 최소값을 구하여 이를 감산기(44)로 전달하고, 감산기(44)에서는 원래의 정수부와 최대값 또는 최소값의 차이를 구한다.
한편, 소수부들은 2의 지수승 값을 구하기 위하여 2af룩업 테이블(43)에 입력되며, 더 작은 정수부를 갖는 소수부만이 이동기(shifter)(45)에 입력된다. 이때, 이동기(45)에서는 감산기(44)에 의해 원래의 정수부와 최대값 또는 최소값의 차이만큼 2af룩업 테이블(43)로부터 전달된 더 작은 정수부를 갖는 소수부를 쉬프트시킨다. 이후에, 가산기(46)에서는 쉬프트된 값과 2af룩업 테이블(43)에서 전달된 큰 정수부를 갖는 소수부를 더하여 로그 전처리기(47) 및 로그2 룩업 테이블(48)을 거쳐 로그 처리함으로써 소수부에 대한 최종 값을 구한다.
마지막으로, 가산기(49)에서는 비교기(41)로부터 전달된 최대 정수부와 로그 전처리기(47) 및 로그2 룩업 테이블(48)에서 구해진 소수부를 더해 최종 2 함수 값을 얻는다.
기존의 2 함수 구조는 입력이 여러 개가 있는 경우에는 요구되는 하드웨어의 양이 커지게 되므로, 도 4에 도시된 구조는 요구되는 하드웨어의 양을 줄이면서 고속의 계산이 가능한 구조를 유도하기 위한 전 단계로 의미가 있다.
이제, 고속의 터보 복호기에 적용하기 위하여 상태 메트릭이 4개가 있는 경우의 수식을 고려해 보면, 이진 LogMAP 알고리즘을 사용하는 경우의 LLR 계산을 위한 2 함수의 수식은 다음의 (수학식 13)과 같이 표현된다.
상기 (수학식 13)을 살펴보면, 먼저 4개의 상태 메트릭 값의 정수부 중에서 제일 큰 값을 찾고, 소수부를 지수 승 한 값을 룩업 테이블(lookup table)에서 구한 뒤 최대 정수 값과 각 정수부의 차이만큼 쉬프트시켜 로그를 취하면 원하는 값을 구할 수 있음을 알 수 있다. 따라서, 상태 메트릭의 정수부를 비교할 수 있는 비교기와, 소수부의 2의 지수 승을 계산하기 위한 4개의 룩업 테이블(lookup table)이 필요하고, 그 결과값을 정수부의 차이만큼 이동시킬 4개의 이동기(shifter)가 요구되며, 이 외에 4개의 가산기 및 로그 처리기가 필요하고, 우도 1 및 우도 0을 다 계산하여야 하기 때문에 위의 연산기들이 역시 두 쌍이 필요하게 된다.
이제, 상태 메트릭이 8개가 모두 입력되는 경우를 고려해 보자.
먼저, 이진(Binary) LogMAP 알고리즘을 사용하지 않고, 자연 LogMAP 방식에서 LLR을 구하기 위한 E 함수의 수식은 다음의 (수학식 14)와 같이 표현된다.
도 5에 상기 (수학식 14)에 대한 LLR 구조가 도시되었다.
전술한 바와 같이, LLR은 우도 1 값에서 우도 0 값을 빼면 구할 수 있는데, 상기 (수학식 14)를 살펴보면, 우도 1 계산기(52) 및 우도 0 계산기(53)에 각각 7개의 E 함수 계산기(51)가 필요하게 되어 모두 14개의 E 함수 계산기와 하나의 감산기(54)가 필요하게 된다. 이때, E 함수 계산기(51)는 상기 도 1 및 도 2에 도시한 바와 같은 구조를 사용하게 되며, 이 경우 E 함수 계산기(51)의 수만큼 필요한 하드웨어의 양이 늘어나게 되어 많은 양의 하드웨어가 필요하게 된다.
이에 반하여, 상태 메트릭이 8개 모두 입력되는 경우, 이진 LogMAP 알고리즘을 적용하는 LLR을 계산하기 위한 2 함수의 수식은 다음의 (수학식 15)와 같이 표현된다.
도 6에 상기 (수학식 15)에 대한 LLR 계산기의 구조가 도시되었다.
도 6에 도시된 바와 같이, 본 발명에 따른 상태 메트릭이 8개인 경우 이진 로그맵(LogMAP)을 이용한 LLR 계산을 보여주는 이진 로그맵(LogMAP) 알고리즘을 이용한 터보 복호기는, 입력된 각 상태 메트릭들의 합을 정수부와 소수부로 분리하는 스프리트(61)와, 스프리트(61)에 의해 분리된 각 상태 메트릭들의 정수부들을 비교하여 최대 정수값 혹은 최소 정수값을 구하는 비교기(62)와, 원래의 정수부와 비교기(62)로부터의 최대 정수 값 혹은 최소 정수 값의 차이를 구하는 감산기(64)와, 스프리트(61)에 의해 분리된 각 상태 메트릭의 소수부들의 2의 지수승 값을 구하는 2af룩업 테이블(63)과, 2af룩업 테이블(63)에서 추출된 소수부들의 2의 지수승 값을 감산기(64)로부터의 원래의 정수부와 최대 정수값 또는 최소 정수 값의 차이만큼 쉬프트시키는 이동기(65)와, 이동기(65)에 의해 정수부의 차만큼 쉬프트된 소수부들의 2의 지수승 값들을 가산하는 가산기(66)와, 가산기(66)에 의해 가산된 소수부를 로그2 처리하여 소수부에 대한 최종 값을 구하는 로그 전처리기(67) 및 로그2 룩업 테이블(68)과, 비교기(62)로부터 전달된 최대 정수 값과 로그 전처리기(67) 및 로그2 룩업 테이블(68)로부터 전달된 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 가산기(69)와, 가산기(69)의 최종 2 함수 값에 따른 우도 값을 감산하여 로그 유사도(LLR)를 구하는 감산기(80)를 포함한다.
이를 구체적으로 살펴보면, 먼저 입력된 각 상태 메트릭들의 합은 스프리트(61)에서 정수부와 소수부로 나뉘게 되고, 각 소수부들은 2의 지수 승을 구하기 위해 룩업 테이블(63)에 입력된다.
한편, 스프리트(61)에서 분리된 각 정수부들은 비교기(62)에서 최대 또는 최소 정수를 찾아 감산기에 전달하며, 감산기(64)에서는 원래의 정수부와 비교기(62)로부터 전달된 최대 또는 최소 정수와의 차이를 계산하여 이를 이동기(65)에 전송한다. 이때, 이동기(65)에서는 감산기(64)에 의해 원래의 정수부와 최대값 또는 최소값의 차이만큼 룩업 테이블(63)로부터 전달된 소수부를 쉬프트시킨다.
이후, 이동기(65)에서 정수부의 차만큼 쉬프트된 소수부 값들은 모두 가산기(66)에서 더해져서 로그 전처리기(67)와 로그2 룩업 테이블(68)을 거친 후, 가산기(69)에서 비교기(62)로부터 전달된 정수부와 로그 전처리기(67) 및 로그2 룩업 테이블(68)에서 구해진 소수부를 더해 최종 2 함수 값을 얻는다. 그리고, 이렇게 얻어진 2 함수 값은 최종 LLR을 계산하기 위해 감산기(80)로 입력된다.
마지막으로, 감산기(80)에서는 우도 1 계산기(60)에 의해 계산된 우도 1 값에서 우도 2 계산기(70)에 의해 계산된 우도 0 값을 감산하여 LLR을 구할 수 있다.
이상에서와 같이, E 함수를 이용하여 LLR을 계산하는 경우에는 필요한 하드웨어의 양이 E 함수 계산기의 수 만큼 증가하는데 반하여, 본 발명에 의해 제안된 구조에서는 비교기, 2의 지수 승 룩업 테이블, 이동기, 감산기는 필요한 2 함수의 수만큼 늘어나게 되지만, 로그 전처리기 및 로그2 룩업 테이블은 증가하지 않아 하드웨어의 양을 줄일 수 있게 된다. 더욱이, 2 함수를 사용하기 때문에 하드웨어의 구현이 쉽고, 고정 소수점이 제공하는 한도내의 정밀도를 최대한 얻을 수 있다는 장점을 가지고 있다.
MAP 방식을 사용한 터보 복호기를 구현하는데 있어서, E 함수는 하드웨어의 크기에 영향을 줄 뿐만 아니라, 계산의 정밀도에 따라 터보 복호기의 성능에도 영향을 주는 중요한 요소이다.
본 발명에서는 E 함수를 처리하는 데 있어서 간단하면서도 정밀한 계산을 할수 있도록, 기존의 자연 로그에 기반을 둔 MAP 알고리즘을 사용하지 않고 밑수가 2인 이진 LogMAP 알고리즘을 적용하였고, 이에 따라 E 함수를 2 함수로 변환하였으며 그것을 ABELA(Approximated Binary Exponential and Logarithmic Algorithm)를 사용하여 작은 크기의 하드웨어로 구현하였으며, 계산의 정밀도를 향상시켰다.
차세대 이동 통신 기술인 IMT-2000 시스템에서 오류정정부호로 사용되고 있는 터보 부호의 복호기를 구현하는데 있어서, 본 발명에 따른 구조를 사용하여 ASIC을 구현하면 한층 면적이 축소된 결과를 얻을 수 있으며, 그 성능도 향상된 결과를 얻어 통신기술의 세계 경쟁력을 향상 할 수 있을 것이다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.
상기한 바와 같은 본 발명은, 이진 LogMAP 알고리즘을 사용하여 터보 복호기를 구현하는 경우에, 기존의 LogMAP 알고리즘에서 사용되었던 복잡한 E 함수를 대신하여, 하드웨어의 구현이 용이한 2 함수를 사용하며, 이의 계산에 ABELA를 적용하여 작은 하드웨어를 가지면서도 정밀도가 높은 복호기를 구현할 수 있으며, 또한 순방향 및 역방향 상태 메트릭 값의 계산에 있어서 필요한 연산량을 줄이고 LLR의 계산을 고속으로 수행할 수 있어 기존의 LogMAP 방식의 터보 복호기에 비하여 작은 하드웨어를 필요로 하면서도 고속의 복호가 가능한 터보 복호기를 구현할 수 있는 효과가 있다.

Claims (8)

  1. 무선통신 시스템에서 오류정정부호로 사용되고 있는 터보 복호기에 있어서,
    이진 로그맵(LogMAP) 알고리즘을 사용하되,
    입력된 두 개의 상태 메트릭 값의 합을 각각 정수부와 소수부로 분리하는 분리수단;
    상기 분리수단에 의해 분리된 두 개의 상태 메트릭의 정수부들을 비교하여 최대 정수 값 혹은 최소 정수 값을 구하는 비교수단;
    원래의 정수부와 상기 비교수단으로부터의 최대 정수 값 혹은 최소 정수 값의 차이를 구하는 감산수단;
    상기 분리수단에 의해 분리된 두 개의 상태 메트릭의 소수부들의 2의 지수승 값을 구하는 2의 지수승 값 추출수단;
    상기 2의 지수승 값 추출수단에서 추출된 소수부들의 2의 지수승 값중 더 작은 정수부를 갖는 소수부만을 상기 감산수단으로부터의 원래의 정수부와 최대 정수 값 또는 최소 정수 값의 차이만큼 쉬프트시키는 쉬프팅수단;
    상기 쉬프팅수단에 의해 쉬프트된 더 작은 정수부를 갖는 소수부와 상기 2의 지수승 값 추출수단에서 추출된 소수부들의 2의 지수승 값중 큰 정수부를 갖는 소수부를 가산하는 제1 가산수단;
    상기 제1 가산수단에 의해 가산된 소수부를 로그2 처리하여 소수부에 대한 최종 값을 구하는 로그처리수단; 및
    상기 비교수단으로부터 전달된 최대 정수 값과 상기 로그처리수단으로부터 전달된 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제2 가산수단
    을 포함하는 이진 로그맵 알고리즘을 이용한 터보 복호기.
  2. 무선통신 시스템에서 오류정정부호로 사용되고 있는 터보 복호기에 있어서,
    이진 로그맵(LogMAP) 알고리즘을 사용하되,
    입력된 각 상태 메트릭들의 합을 정수부와 소수부로 분리하는 분리수단;
    상기 분리수단에 의해 분리된 각 상태 메트릭들의 정수부들을 비교하여 최대 정수값 혹은 최소 정수값을 구하는 비교수단;
    원래의 정수부와 상기 비교수단으로부터의 최대 정수 값 혹은 최소 정수 값의 차이를 구하는 제1 감산수단;
    상기 분리수단에 의해 분리된 각 상태 메트릭의 소수부들의 2의 지수승 값을 구하는 2의 지수승 값 추출수단;
    상기 2의 지수승 값 추출수단에서 추출된 소수부들의 2의 지수승 값을 상기 제1 감산수단으로부터의 원래의 정수부와 최대 정수값 또는 최소 정수 값의 차이만큼 쉬프트시키는 쉬프팅수단;
    상기 쉬프팅수단에 의해 정수부의 차만큼 쉬프트된 소수부들의 2의 지수승 값들을 가산하는 제1 가산수단;
    상기 제1 가산수단에 의해 가산된 소수부를 로그2 처리하여 소수부에 대한최종 값을 구하는 로그처리수단;
    상기 비교수단으로부터 전달된 최대 정수 값과 상기 로그처리수단으로부터 전달된 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제2 가산수단; 및
    상기 제2 가산수단의 최종 2 함수 값에 따른 우도 값을 감산하여 로그 유사도(LLR)를 구하는 제2 감산수단
    을 포함하는 이진 로그맵 알고리즘을 이용한 터보 복호기.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 이진 로그맵(LogMAP) 알고리즘은,
    E 함수 대신 2 함수를 사용하며, 이에 따라 LLR(Log-Likelihood Ratio)을 작은 크기의 룩업 테이블과 논리회로로 구현 가능하며, 고정소수점이 제공하는 최대한의 정밀도를 제공하는 것을 특징으로 하는 이진 로그맵 알고리즘을 이용한 터보 복호기.
  4. 무선통신 시스템에서 오류정정부호로 사용되고 있는 터보 복호기 구현 방법에 있어서,
    이진 로그맵(LogMAP) 알고리즘을 사용하되,
    입력된 두 개의 상태 메트릭 값의 합을 각각 정수부와 소수부로 분리하는 제 1 단계;
    상기 분리된 두 개의 상태 메트릭의 정수부들을 비교하여 최대 정수 값 혹은 최소 정수 값을 구하는 제 2 단계;
    원래의 정수부와 최대 정수 값 혹은 최소 정수 값의 차이를 구하는 제 3 단계;
    상기 분리된 두 개의 상태 메트릭의 소수부들의 2의 지수승 값을 구하고, 소수부들의 2의 지수승 값중 더 작은 정수부를 갖는 소수부만을 원래의 정수부와 최대 정수 값 또는 최소 정수 값의 차이만큼 쉬프트시키는 제 4 단계;
    상기 쉬프트된 더 작은 정수부를 갖는 소수부와 상기 소수부들의 2의 지수승 값중 큰 정수부를 갖는 소수부를 가산해 로그2 처리하여 소수부에 대한 최종 값을 구하는 제 5 단계; 및
    상기 최대 정수 값과 상기 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제 6 단계
    를 포함하는 이진 로그맵 알고리즘을 이용한 터보 복호기 구현 방법.
  5. 무선통신 시스템에서 오류정정부호로 사용되고 있는 터보 복호기 구현 방법에 있어서,
    이진 로그맵(LogMAP) 알고리즘을 사용하되,
    입력된 각 상태 메트릭들의 합을 정수부와 소수부로 분리하는 제 1 단계;
    상기 분리된 각 상태 메트릭들의 정수부들을 비교하여 최대 정수값 혹은 최소 정수값을 구하는 제 2 단계;
    원래의 정수부와 최대 정수값 혹은 최소 정수값의 차이를 구하는 제 3 단계;
    상기 분리된 각 상태 메트릭의 소수부들의 2의 지수승 값을 구하고, 소수부들의 2의 지수승 값을 원래의 정수부와 최대 정수값 또는 최소 정수 값의 차이만큼 쉬프트시키는 제 4 단계;
    정수부의 차만큼 쉬프트된 소수부들의 2의 지수승 값들을 가산한 후, 로그2 처리하여 소수부에 대한 최종 값을 구하는 제 5 단계;
    상기 최대 정수 값과 상기 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제 6 단계; 및
    상기 최종 2 함수 값에 따른 우도 값을 감산하여 로그 유사도(LLR)를 구하는 제 7 단계
    를 포함하는 이진 로그맵 알고리즘을 이용한 터보 복호기 구현 방법.
  6. 제 4 항 또는 제 5 항에 있어서,
    상기 이진 로그맵(LogMAP) 알고리즘은,
    E 함수 대신 2 함수를 사용하며, 이에 따라 LLR(Log-Likelihood Ratio)을 작은 크기의 룩업 테이블과 논리회로로 구현 가능하며, 고정소수점이 제공하는 최대한의 정밀도를 제공하는 것을 특징으로 하는 이진 로그맵 알고리즘을 이용한 터보 복호기 구현 방법.
  7. 프로세서를 구비한 터보 복호기에,
    이진 로그맵(LogMAP) 알고리즘을 사용하되,
    입력된 두 개의 상태 메트릭 값의 합을 각각 정수부와 소수부로 분리하는 제 1 기능;
    상기 분리된 두 개의 상태 메트릭의 정수부들을 비교하여 최대 정수 값 혹은 최소 정수 값을 구하는 제 2 기능;
    원래의 정수부와 최대 정수 값 혹은 최소 정수 값의 차이를 구하는 제 3 기능;
    상기 분리된 두 개의 상태 메트릭의 소수부들의 2의 지수승 값을 구하고, 소수부들의 2의 지수승 값중 더 작은 정수부를 갖는 소수부만을 원래의 정수부와 최대 정수 값 또는 최소 정수 값의 차이만큼 쉬프트시키는 제 4 기능;
    상기 쉬프트된 더 작은 정수부를 갖는 소수부와 상기 소수부들의 2의 지수승 값중 큰 정수부를 갖는 소수부를 가산해 로그2 처리하여 소수부에 대한 최종 값을 구하는 제 5 기능; 및
    상기 최대 정수 값과 상기 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제 6 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  8. 프로세서를 구비한 터보 복호기에,
    이진 로그맵(LogMAP) 알고리즘을 사용하되,
    입력된 각 상태 메트릭들의 합을 정수부와 소수부로 분리하는 제 1 기능;
    상기 분리된 각 상태 메트릭들의 정수부들을 비교하여 최대 정수값 혹은 최소 정수값을 구하는 제 2 기능;
    원래의 정수부와 최대 정수값 혹은 최소 정수값의 차이를 구하는 제 3 기능;
    상기 분리된 각 상태 메트릭의 소수부들의 2의 지수승 값을 구하고, 소수부들의 2의 지수승 값을 원래의 정수부와 최대 정수값 또는 최소 정수 값의 차이만큼 쉬프트시키는 제 4 기능;
    정수부의 차만큼 쉬프트된 소수부들의 2의 지수승 값들을 가산한 후, 로그2 처리하여 소수부에 대한 최종 값을 구하는 제 5 기능;
    상기 최대 정수 값과 상기 소수부에 대한 최종 값을 가산하여 최종 2 함수 값을 구하는 제 6 기능; 및
    상기 최종 2 함수 값에 따른 우도 값을 감산하여 로그 유사도(LLR)를 구하는 제 7 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020000083169A 2000-12-27 2000-12-27 이진 로그맵 알고리즘을 이용한 터보 복호기 및 그 구현방법 KR100365724B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020000083169A KR100365724B1 (ko) 2000-12-27 2000-12-27 이진 로그맵 알고리즘을 이용한 터보 복호기 및 그 구현방법
US09/966,201 US6772389B2 (en) 2000-12-27 2001-09-26 Turbo decoder using binary LogMAP algorithm and method of implementing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000083169A KR100365724B1 (ko) 2000-12-27 2000-12-27 이진 로그맵 알고리즘을 이용한 터보 복호기 및 그 구현방법

Publications (2)

Publication Number Publication Date
KR20020054203A KR20020054203A (ko) 2002-07-06
KR100365724B1 true KR100365724B1 (ko) 2002-12-31

Family

ID=19703706

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000083169A KR100365724B1 (ko) 2000-12-27 2000-12-27 이진 로그맵 알고리즘을 이용한 터보 복호기 및 그 구현방법

Country Status (2)

Country Link
US (1) US6772389B2 (ko)
KR (1) KR100365724B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210131574A (ko) * 2020-04-24 2021-11-03 한국전자통신연구원 로그 영역의 연산을 수행하도록 구성된 신경망 가속기

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383485B2 (en) * 2000-09-12 2008-06-03 Broadcom Corporation Fast min*- or max*-circuit in LDPC (low density parity check) decoder
FI111887B (fi) * 2001-12-17 2003-09-30 Nokia Corp Menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi
US7346833B2 (en) * 2002-11-05 2008-03-18 Analog Devices, Inc. Reduced complexity turbo decoding scheme
US6798366B1 (en) * 2003-07-28 2004-09-28 Lucent Technologies Inc. Architecture for a faster max* computation
KR100651570B1 (ko) * 2004-08-30 2006-11-29 삼성전자주식회사 이동통신 시스템의 수신기에서 디코딩을 위한 로그 근사율연산 방법 및 장치
US7764741B2 (en) * 2005-07-28 2010-07-27 Broadcom Corporation Modulation-type discrimination in a wireless communication network
US8127216B2 (en) 2007-11-19 2012-02-28 Seagate Technology Llc Reduced state soft output processing
US20090132894A1 (en) * 2007-11-19 2009-05-21 Seagate Technology Llc Soft Output Bit Threshold Error Correction
US8554824B2 (en) * 2010-09-02 2013-10-08 Texas Instruments Incorporated Efficient technique for optimal re-use of hardware in the implementation of instructions used in viterbi, turbo and LPDC decoders
RU2010152794A (ru) * 2010-12-24 2012-06-27 ЭлЭсАй Корпорейшн (US) Способ и устройство (варианты) для вычисления операции логарифма якоби
CN107565983B (zh) * 2017-09-08 2020-08-11 广东工业大学 一种Turbo码的译码方法及装置
US11163533B2 (en) 2019-07-18 2021-11-02 International Business Machines Corporation Floating point unit for exponential function implementation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2675971B1 (fr) 1991-04-23 1993-08-06 France Telecom Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants.
US5418795A (en) * 1991-09-13 1995-05-23 Sony Corporation Viterbi decoder with path metric comparisons for increased decoding rate and with normalization timing calculation
US5412669A (en) * 1993-12-09 1995-05-02 Cirrus Logic, Inc. Add, compare and select circuit
US5657354A (en) 1995-05-15 1997-08-12 Thesling, Iii; William H. Planar approximating method for computing the log-likelihood ratio optimal signal metric of each component code decoder in 8-PSK block coded modulation systems
US5815515A (en) * 1996-03-28 1998-09-29 Lsi Logic Corporation Edge metric calculation method and apparatus using permutations
US5781569A (en) * 1996-10-28 1998-07-14 Lsi Logic Corporation Differential trellis decoding for convolutional codes
US6725409B1 (en) * 2000-06-30 2004-04-20 Texas Instruments Incorporated DSP instruction for turbo decoding
US6718504B1 (en) * 2002-06-05 2004-04-06 Arc International Method and apparatus for implementing a data processor adapted for turbo decoding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210131574A (ko) * 2020-04-24 2021-11-03 한국전자통신연구원 로그 영역의 연산을 수행하도록 구성된 신경망 가속기
KR102592708B1 (ko) 2020-04-24 2023-10-24 한국전자통신연구원 로그 영역의 연산을 수행하도록 구성된 신경망 가속기

Also Published As

Publication number Publication date
US20020116680A1 (en) 2002-08-22
KR20020054203A (ko) 2002-07-06
US6772389B2 (en) 2004-08-03

Similar Documents

Publication Publication Date Title
US8495119B2 (en) Efficient check node message transform approximation for LDPC decoder
KR100365724B1 (ko) 이진 로그맵 알고리즘을 이용한 터보 복호기 및 그 구현방법
JP3958764B2 (ja) ディジタル通信システムにおけるターボ復号を利用したビットエラー率及びフレームエラー率を減少させる装置及び方法
EP1162750B1 (en) MAP decoder with correction function in LOG-MAX approximation
JP4520122B2 (ja) 高次基数のlogmapプロセッサ
US20150113027A1 (en) Method for determining a logarithmic functional unit
US7400688B2 (en) Path metric normalization
US6877125B2 (en) Devices and methods for estimating a series of symbols
US7925964B2 (en) High-throughput memory-efficient BI-SOVA decoder architecture
JP4152410B2 (ja) 演算回路
US7437657B2 (en) High speed add-compare-select processing
CN101964665B (zh) turbo解码中基于Log-MAP的译码方法及其译码装置
Veshala et al. FPGA based design and implementation of modified Viterbi decoder for a Wi-Fi receiver
JP2002215608A (ja) 近似演算装置およびmap復号装置
KR100403374B1 (ko) 입력연산자 정규화를 이용한 테이블참조 기반 고속통신용위상계산기
CN115085742B (zh) 解码方法、装置、电子设备和存储介质
US8554824B2 (en) Efficient technique for optimal re-use of hardware in the implementation of instructions used in viterbi, turbo and LPDC decoders
Liu et al. An improved implementation of MAX* operation for Turbo decoder
KR100331686B1 (ko) 2를 밑수로 하는 로그 맵을 이용한 터보 복호기
JP2000010763A (ja) 除算回路
Wong et al. Turbo decoder architecture for beyond-4G applications
KR100432332B1 (ko) 이동 통신 시스템에서 레이트 매칭을 위한 가변 길이나눗셈 장치 및 그 방법
KR101004445B1 (ko) 터보 복호기용 상태 메트릭 연산 장치
CN114337692A (zh) 一种重叠复用***解调方法、装置及电子设备
KR20010005074A (ko) 분기 메트릭 연산 장치 및 그 방법, 그리고 이를 이용한 비터비복호기

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

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee