KR20050065873A - 터보 복호화 장치 및 방법 - Google Patents

터보 복호화 장치 및 방법 Download PDF

Info

Publication number
KR20050065873A
KR20050065873A KR1020030096771A KR20030096771A KR20050065873A KR 20050065873 A KR20050065873 A KR 20050065873A KR 1020030096771 A KR1020030096771 A KR 1020030096771A KR 20030096771 A KR20030096771 A KR 20030096771A KR 20050065873 A KR20050065873 A KR 20050065873A
Authority
KR
South Korea
Prior art keywords
likelihood ratio
value
decoding
output
state metric
Prior art date
Application number
KR1020030096771A
Other languages
English (en)
Other versions
KR100625242B1 (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 KR1020030096771A priority Critical patent/KR100625242B1/ko
Publication of KR20050065873A publication Critical patent/KR20050065873A/ko
Application granted granted Critical
Publication of KR100625242B1 publication Critical patent/KR100625242B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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

본 발명은 터보 복호화 장치 및 방법에 관한 것으로, 특히 터보 복호화기를 VLSI로 구현하기 위한 장치 및 방법에 관한 것이다.
본 발명에 따른 터보 복호화 장치는 순방향 상태 메트릭과 역방향 상태 메트릭을 동시에 연산하여 하나의 클럭당 하나의 대수우도비를 계산하는 MAP 복호기를 하나만 사용한다. 따라서, 하나의 MAP 복호기로 종래 두 개의 MAP 복호기와 동일한 동작을 하기 위해 각 복호 단계마다 입력 및 출력을 조정한다.
이와 같이 하면, 터보 복호화기 연산 완료에 따른 지연시간이 단축되고 복호 속도를 개선함으로써 하드웨어 증가량을 최소화할 수 있다.

Description

터보 복호화 장치 및 방법{APPARATUS AND METHOD FOR TURBO DECODER}
본 발명은 복호 속도를 향상시키고 하드웨어 구현에 있어서 면적 소모를 최소화하기 위한 터보 복호화기 장치 및 방법에 관한 것이다.
일반적으로 유무선 디지털 통신 시스템에서는 전송로상의 오류를 보정하기 위해 송신단에서 정보비트에 부가 비트를 첨부하고 수신단에서는 오류 정정 알고리즘을 이용하여 오류를 보정한다. 이러한 오류정정알고리즘의 하나로 터보코드(Turbo Code)를 사용한다. 터보코드는 최근 각광 받고 있는 CDMA 2000 무선 통신 시스템과 WCDMA 무선 통신 시스템에 채택되고 있다. 터보 복호 알고리즘으로는 크게 최대 사후 알고리즘(MAP: Maximum A Posteriori)과 연성 출력 비터비 알고리즘(SOVA: Soft Out Viterbi Alogorithm)으로 나누어지고 최대 사후 알고리즘은 다시 순수한 최대 사후 방식(pure MAP), 로그 최대 사후 방식(LOG-MAP), 최대 로그 최대 사후(MAX-LOG-MAP or MIN-LOG-MAP) 방식으로 나누어진다. 하드웨어 구현을 위해서는 오류 정정 능력은 다소 떨어지나 구현 복잡도가 낮은 로그 최대 사후 방식이나 최대 로그 최대 사후 방식이 주로 이용된다.
도 1은 일반적인 부호율 1/3을 갖는 터보 부호기를 나타내는 도면이다.
도 1에서 보면, 부호율 1/3을 갖는 터보 부호기(10)는 x_k 입력으로부터 정보 비트 열로부터 제1 길쌈부호기(2)를 통해 패리티 비트(Parity bit;잉여 비트), X_k, Z_k가 생성된다. 또한, x_k 입력은 인터리버(1)에 의해 재배열 된 후, 제1 길쌈 부호기(2)와 병렬 연결된 제2 길쌈 부호기(3)를 통해 패리티 비트 {Z_k}', {X_k}'가 생성된다. 이렇게 생성된 패리티 비트는 병/직렬 변환부(4)를 통해 직렬로 변환되어 하나의 출력심볼이 생성된다.
이와 같이 구성된 터보 부호기(10)는 제1 및 제2 길쌈 부호기(2, 3)을 통해 독립적인 패리티를 발생시키게 함으로써 반복적인 복호가 가능하도록 한다. 따라서, 인터리버 크기가 커질수록 연집 오류의 분산도가 증가하고, 패리티간의 연관성이 줄어들어 오류 정정 성능이 우수해진다. 하지만 인터리버의 크기가 크면 복호시간 지연이 길어지고 많은 버퍼 메모리가 필요하는 단점이 있다.
도 2는 도 1에서 부호율 1/3을 갖는 터보 부호기를 위한 종래 터보 복호기를 나타내는 도면이다.
도 2에 나타낸 바와 같이 일반적인 터보 복호기(20)는 두 개의 MAP(Maximum a posteriori) 복호기(5, 7)가 사용되고 MAP 복호기(21, 23) 사이에 비트열의 순서를 일치시키기 위한 인터리버(interleaver)(22)와 원래의 정보 비트와 같은 순서로 재배열하는 역인터리버(deinterleaver)(24, 25) 및 덧셈기의 결합으로 이루어진다. 그리고 최종 복호 결과인 정보 비트에 대한 결과값은 경판정기(26)를 통해 계산된다. 각 MAP 복호기(21, 23)에는 수신 심볼(x_k, y_k)과 전단의 MAP 복호기(23, 21)의 결과인 잉여 정보 값이 들어와 현재의 LLR 값을 계산하고 이 LLR 값과 입력 값을 이용하여 다음 단의 MAP 복호기(21, 23)의 입력 값으로 쓰일 새로운 잉여 정보를 생성한다. 이 잉여 정보는 수신 심볼과 결합하여 다음 단의 MAP 복호기(23, 21)에서 좀 더 신뢰도가 높은 LLR을 계산할 수 있도록 도와준다. 이러한 복호 과정을 반복함으로써 복호기의 연판정 결과값의 신뢰도가 점점 높아지게 되어 오류 정정 능력이 향상된다.
터보 복호기(20)의 핵심 연산 블록인 MAP 복호기(21, 23)의 일반적인 동작은 다음과 같다. MAP 복호기(21, 23)의 중요 요소에는 가지 메트릭 연산, 순방향 상태 메트릭 연산, 역방향 상태 메트릭 연산 및 가능도비(LLR;Log Likelihood Ratio) 연산이 있다.
가지 메트릭은 트렐리스 상에서 현재 시점에서 다음 시점으로 천이될 확률적 가중치로써 수신 심볼과 전단 MAP 복호기에서 계산되어진 잉여 정보 등을 이용하여 얻을 수 있다.
순방향 상태 메트릭은 시간 0인 시점부터 시작하여 시간 N인 시점까지 모든 상태에 대한 확률적 가중치로써 이전 순방향 상태 메트릭과 현재의 가지 메트릭을 이용하여 현재 시점의 순방향 상태 메트릭을 계산한다.
역방향 상태 메트릭은 시간 N인 시점부터 시작하여 시간 0인 시점까지 모든 상태에 대한 확률적 가중치로써 이전 역방향 상태 메트릭과 현재 시점의 가지 메트릭을 이용하여 현재의 역방향 상태 메트릭을 계산한다.
LLR은 앞서 계산된 가지 메트릭, 순방향 상태 메트릭, 역방향 상태 메트릭을 이용하여 구할 수 있다.
이러한 과정을 하드웨어로 구현하기 위한 일반적인 방법은 다음과 같다.
MAP 복호기(20)의 동작은 크게 가지 메트릭 연산부, 순방향 상태 메트릭 연산부, 역방향 상태 메트릭 연산부, 그리고 LLR 연산부로 구분된다. LLR 연산부는 복호된 연판정 값을 출력한다.
LLR 연산부 출력을 얻기 위해 종래의 방법에서는 가지 메트릭, 순방향 상태 메트릭 연산을 수행하면서 결과 값을 메모리에 저장하고 모든 순방향 상태 메트릭 연산이 끝난 후 역방향 상태 메트릭 계산을 시작한다. 이 때, 현재 계산되어진 역방향 상태 메트릭과 미리 계산되어 저장된 순방향 상태 메트릭을 이용하여 LLR을 계산하고 그 값을 출력 버퍼에 저장한다.
그러나, 종래의 터보 복호기는 차세대 이동 통신에서 요구되는 고속의 데이터 처리를 충족할 수 없다.
본 발명은 상기와 같은 문제점을 해결하고자 하는 것으로, 본 발명이 이루고자 하는 기술적 과제는 한 개의 MAP 복호기를 사용하면서 복호 시간을 단축시킬 수 있는 터보 복호화기 장치 및 방법을 제공하기 위한 것이다.
이러한 과제를 해결하기 위해 본 발명에서는 송신단으로부터 터보 코드에 의해 부호화하여 전송되는 송신 심볼을 복호화하기 위한 터보 복호화 장치가 제공된다.
본 발명의 하나의 특징에 따른 터보 복호화 장치는 순방향 상태 메트릭과 역방향 상태 메트릭에 대한 연산을 동시에 수행하여 심볼에 대한 터보 복호에 의하여 하나의 클럭 당 하나의 대수우도비를 계산하는 MAP 복호기; 상기 MAP 복호기의 복호 시에 입력 및 출력을 조정하는 다중화기; 역다중화기로부터 출력된 값을 다음 복호시 적용되는 심볼의 순서와 일치시키는 인터리버/디인터리버; 상기 MAP 복호기로부터 복호한 후 계산된 대수우도비를 디인터리빙하는 디인터리버; 및 상기 디인터리버로부터 출력된 값에 기초하여 상기 최종 복호 비트를 추정하는 경판정기를 포함한다. 이 때, MAP 복호기는, 수신 심볼열에 대해 0부터 N까지 번호를 부여한 후, 상기 수신 심볼에 대한 순방향 상태 메트릭 연산과 역방향 상태 메트릭 연산을 병렬로 수행하고, 그 결과값을 각각 저장하여 시간 N/2인 시점부터 대수우도비 연산을 수행하는 순방향 연산부; 및 상기 시간 0부터 N/2-1인 시점까지만 대수우도비 연산을 수행하는 역방향 연산부를 포함한다. 그리고 상기 순방향 연산부와 상기 역방향 연산부는 상하 대칭 구조일 수 있다.
그리고 상기 상단 연산부는, 순차적으로 입력되는 상기 수심 심볼에 대한 가지 메트릭 연산을 수행하는 상단 가지 메트릭 연산부; 상기 상단 가지 메트릭 연산부의 결과값을 입력받아 순방향 상태 메트릭을 계산하는 순방향 상태 메트릭 연산부; 상기 수신 심볼 0부터 N/2-1에 해당하는 상기 순방향 상태 메트릭 연산부의 출력값을 저장하는 제1 메모리; 및 상기 수신 심볼 N/2부터 N까지에 대한 상기 순방향 상태 메트릭 연산부의 출력값을 입력받아 N/2 시점부터 동작하여 대수우도비 연산을 수행하는 상단 대수우도비 연산부를 포함한다.
또한, 상기 하단 연산부는, 역순으로 입력되는 상기 수신 심볼에 대한 가지 메트릭 연산을 수행하는 하단 가지 메트릭 연산부; 상기 하단 가지 메트릭 연산부의 결과값을 입력받아 역방향 상태 메트릭을 수행하는 역방향 상태 메트릭 연산부; 상기 수신 심볼 N부터 N/2에 해당하는 상기 역방향 상태 메트릭 연산부의 출력값을 저장하는 제2 메모리; 및 상기 수신 심볼 N/2-1부터 0까지에 대한 상기 역방향 상태 메트릭 연산부의 출력값을 입력받아 N/2시점부터 동작하여 대수우도비 연산을 수행하는 하단 대수우도비 연산부를 포함한다.
그리고 상기 MAP 복호기는, 상기 순방향 상태 메트릭 및 상기 역방향 상태 메트릭을 동시에 수행할 수 있다.
그리고 상기 상단 대수우도비 연산부는, 상기 수신 심볼 N/2부터 N까지에 대한 상기 순방향 상태 메트릭 연산부의 출력값과 상기 제2 메모리에 저장된 값 및 상기 상단 가지 메트릭 연산부의 출력값에 기초하여 대수우도비 연산을 수행할 수 있고, 상기 하단 대수우도비 연산부는, 수신 심볼 N/2-1부터 0까지에 대한 상기 역방향 상태 메트릭 연산부의 출력값과 상기 제1 메모리에 저장된 값 및 상기 하단 가지 메트릭 연산부의 출력값에 기초하여 대수우도비 연산을 수행할 수 있다.
그리고 터보 복호화 장치는 상기 MAP 복호기로부터의 출력을 저장하는 제1 및 제2 메모리부를 더 포함할 수 있다. 이 때, 첫 번째 복호 수행시, 수신되는 심볼과 상기 제2 메모리부에 저장된 값을 더한 값이 입력되고, 두 번째 복호 수행시, 상기 제1 메모리에 저장된 값이 입력될 수 있다.
그리고 상기 다중화기는, 상기 MAP 복호기의 입력을 조정하는 제1 및 제2 다중화기; 및 상기 MAP 복호기의 출력을 조정하는 제3 다중화기를 포함할 수 있다. 이 때, 상기 MAP 복호기는 제1 및 제2 다중화기로부터 입력되는 값을 입력받아 대수우도비를 출력할 수 있다. 그리고 상기 MAP 복호기로부터 출력된 대수우도비는, 상기 제3 다중화기로 입력될 수 있다. 또한, 상기 제3 다중화기는 상기 대수우도비에서 사전 정보와 수신 심볼의 합을 뺀 잉여 정보값이 상단으로 입력되고, 상기 대수우도비에서 사전 정보를 뺀 값이 하단으로 입력될 수 있다.
그리고 상기 MAP 복호기는 상기 MAP 복호기 앞단에 위치한 제1 다중화기로의 입력을 조정하는 제1 가산기; 및 상기 제3 다중화기로의 대수우도비 입력을 조정하는 제2 및 제3 가산기를 더 포함할 수 있다.
본 발명에서는 송신단으로부터 터보 코드에 의해 부호화되어 전송되는 송신 심볼을 복호화하기 위한 터보 복호화 방법이 제공된다.
본 발명의 하나의 특징에 따른 터보 복호화 방법은 a) 상기 터보 코드에 의해 부호화되어 수신된 송신 심볼을 멀티플렉싱하여 수신하는 단계; b) 상기 a)단계로부터 수신 심볼에 대한 대수우도비를 계산하고, 상기 계산된 제1 연판정 대수우도비를 연산하여 출력하는 1차 복조 단계; c) 상기 제1 대수우도비의 출력값을 조정하고, 조정된 출력값을 입력받아 제2 연판정 대수우도비를 연산하여 출력하는 2차 복조 단계; 및 d) 상기 2차 복호 후 출력된 제2 연판정 대수우도비로부터 경판정 복호값을 출력하여 복호하는 단계를 포함한다. 이 때, 상기 복호 단계마다 입력 및 출력이 조정될 수 있다.
그리고 상기 b)단계 또는 c)단계에서 대수우도비 연산 결과, 상기 터보 복호를 위해 입력되는 사전 정보와, 상기 수신 심볼값 및 상기 터보 복호로부터 생성되어 다음 복호를 위한 사전 정보가 되는 잉여 정보가 출력될 수 있다.
그리고 상기 b)단계는, ⅰ) 상기 a)단계로부터 수신되는 입력값에 기초하여 1차 복호에 따른 제1 대수우도비를 출력하는 단계; ⅱ) 상기 제1 대수우도비의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및 ⅲ) 상기 ⅱ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함한다.
또한, 상기 c)단계는, ⅳ) 상기 a)단계로부터 수신되는 입력값에 기초하여 2차 복호에 따른 제2 대수우도비를 출력하는 단계; ⅴ) 상기 제2 대수우도비의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및 ⅵ) 상기 ⅴ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함한다.
그리고 상기 a) 단계에서, 상기 1차 복호와 상기 2차 복호를 위한 입력값이 각각 다르게 입력되도록 조정할 수 있다.
그리고 상기 대수우도비 연산 단계는, ⅶ) 하나의 수신 심볼열의 각 수신 심볼에 대해 수신된 순서에 따라 0부터 1씩 증가시켜 N까지 번호를 부여하고 순차적 또는 역순으로 입력되는 수신 심볼에 대해 각각 가지 메트리 연산을 수행하는 단계; ⅷ) 상기 순차적으로 입력되는 수신 심볼에 대한 가지 메트릭 연산 결과를 입력받아 순방향 상태 메트릭을 계산하고, 그와 동시에 역순으로 입력되는 수신 심볼에 대한 가지 메트릭 연산 결과를 입력받아 역방향 메트릭을 계산하는 단계; 및 ⅸ) 상기 순방향 상태 메트릭 및 역방향 메트릭 계산값에 기초하여 하나의 클럭 당 하나의 대수우도비를 계산하는 단계를 포함한다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.
먼저, 본 발명의 실시예에 따른 터보 복호기에 대하여 도 3을 참고로 하여 상세하게 설명한다. 이하, 도 1에서 나타낸 3GPP 규격에 채택된 부호율 1/3인 터보 부호기에 따른 WCDMA 규격에 채택된 부호율 1/3인 터보 코드를 예로 들어서 본 발명의 구성 및 작용을 살펴보기로 한다.
도 3은 본 발명의 실시예에 따른 터보 복호기를 나타내는 도면이다.
도 3에 나타낸 바와 같이, 본 발명의 실시예에 따른 터보 복호기(100)는 하나의 MAP 복호기(110)를 공유하여 사용한다.
본 발명의 실시예에 따른 터보 부호기(100)는 MAP 복호기(110), 가산기(112, 134, 136), 다중화기(114, 116, 118, 128), 인터리버/역인터리버(120), 역다중화기(122), 메모리(124, 126), 역인터리버(130) 및 경판정기(132)를 포함한다.
MAP 복호기(110)는 두 개의 입력값을 받아 복호 순서에 따른 입출력 값을 결정하기 위한 대수우도비를 출력한다.
가산기(112, 134, 136)는 입력되는 값을 더하여 출력한다.
다중화기(114, 116, 118, 128)는 입력되는 다수의 값 중 하나를 선택하여 출력으로 연결한다. 이와 같이 하여 MAP 복호기의 입력 및 출력을 조정한다.
인터리버/역인터리버(120)는 정보의 순서를 재배열한다.
역다중화기(122)는 하나의 입력을 다수 개의 출력으로 연결한다.
메모리(124, 126)는 역다중화기(122)로부터 출력된 값을 저장한다.
디인터리버(130)는 인터리버에 의해 재배열 된 정보를 원래의 정보와 같은 순서로 재배열한다.
경판정기(132)는 최종 복호 값 출력을 결정한다.
상기와 같이 구성된 터보 복호기(100)는 하나의 MAP 복호기(110)만을 사용하여 종래의 일반적인 터보 복호기와 동일한 동작을 하기 위해서 첫번째 복호 동작을 위한 복호기 입출력 값과 두번째 복호 동작을 위한 복호기 입출력 값은 서로 다르게 한다.
복호 순서에 따른 입출력 값을 결정하기 위해 대수우도비에 대한 정의를 살펴보자. 대수우도비는 채널을 통과한 수신 심볼이 1일 확률값과 0일 확률값의 비에 대한 로그값으로 수학식 1로써 표현될 수 있다.
여기서, R은 수신 심볼열을 의미하고 d는 부호화된 비트를 의미한다.
이러한 대수우도비는 수학적 정리를 거쳐 다음의 세가지 성분으로 나누어진다.
여기서, 는 전단 MAP 복호기로부터 입력되는 사전 정보, 는 채널로 수신된 심볼값이고, 는 현재 MAP 복호기에서 생성된 잉여 정보로써 다음단 복호기의 사전 정보로써 활용되는 값이다.
하나의 반복 복호 과정 중에서 첫번째 MAP 복호가 진행 될 때 MAP 복호기(110)의 입력 값은 두가지가 있는데 그 중 하나는 역다중화기(114)의 출력으로써 하단 입력을 선택하여 사전정보와 수신된 심볼들 중에서 송신단 부호기에서 부호화 되지 않은 심볼(x_k)을 더한 값으로써 역다중화기(114)의 하단 입력이고, 나머지 하나는 수신된 심볼들 중에서 제1 길쌈부호기(2)의 패리티 심볼(y_k)로써 역다중화기(116)의 상단 입력이다.
MAP 복호기(110)는 이들 두개의 값을 입력받아 수식식 2에서 에 해당하는 대수우도비를 출력한다.
대수우도비는 두가지 형태로 처리되어 역다중화기(118)에 입력되는데 하단 입력 값은 대수우도비에서 사전 정보와 수신 심볼의 합을 뺀 잉여 정보 값이 들어가고 상단 입력 값은 대수우도비에서 사전 정보를 뺀 값 즉, 잉여 정보와 수신 심볼을 더한 값이 들어간다.
첫번째 MAP 복호 과정에서는 역다중화기(118)에 의해 상단 값을 선택하여 출력하고 다음단 복호시 적용되는 심볼의 순서와 일치시키기 위해 인터리버/디인터리버(120)에서 인터리빙된다.
두 번째 MAP 복호 과정은 송신단 부호기의 제2 길쌈 부호기(3)에 대응되는 과정이다. 두번째 MAP 복호가 진행될 때 상기 기술한 복호 과정과 유사하게 MAP 복호기(110)의 입력은 두 가지가 있는데 하나는 전단 MAP 복호(첫번째 MAP 복호) 후 저장된 값(사전 정보와 수신심볼을 더한 후 인터리빙 처리한 값)이고, 다른 하나는 수신된 심볼들 중에서 제 2길쌈부호기(3)의 패리티 심볼({y_k}')로써 역다중화기(116) 하단 입력값이다. MAP 복호기(110)는 이 두 개의 입력을 받아 제2 길쌈부호기(3)에 대응하는 복호를 수행하여 대수우도비를 출력한다.
다음단 복호에 사용될 잉여 정보를 생성하기 위해 대수우도비에서 MAP 복호기(110) 입력(사전정보와 수신심볼을 더한 값)을 뺀 다음 디인터리빙하여 제 2 메모리(122)에 저장된다.
최종으로 경판정 복호 값을 얻기 위해서 두번째 MAP 복호 후 생성된 연판정 대수우도비를 디인터리빙 한 후 경판정기(130)을 통과시킨다.
상술한 내용을 정리해 보면 MAP 복호기(110) 출력은 첫번째 MAP 복호와 두번째 MAP 복호 동작할 때와 관계 없이 동일하게 대수우도비를 출력하고, 입력은 첫번째 MAP 복호가 수행될 때에는 수신된 심볼과 제 2메모리(126)에 저장된 값을 더한 값이 되고, 두번째 MAP 복호가 수행될 때에는 오직 제 1 메모리(124)에 저장된 값이다.
MAP 복호기 출력을 약간의 연산을 거쳐 메모리에 저장하는 방법은 첫번째 MAP 복호가 수행될 때 대수우도비에서 MAP 복호기(110) 입력을 뺀 후 인터리빙하여 제 1 메모리(124)에 저장하고, 두번째 MAP 복호가 수행될 때 대수우도비에서 MAP 복호기 전단의 역다중화기(114)의 상단 입력 값을 뺀 후 디인터리빙하여 제2 메모리(126)에 저장한다.
다음, MAP 복호기의 구조 및 동작에 대해 도 4 내지 도 5를 참조하여 상세하게 설명한다.
도 4 및 도 5는 본 발명의 실시예에 따른 MAP 복호기의 구성도 및 MAP 복호기의 동작에 대한 흐름도를 나타낸 도면이다.
먼저 도 4를 보면, 본 발명의 실시예에 따른 MAP 복호기는 순방향 연산부(A) 및 역방향 연산부(B)를 포함한다.
순방향 연산부(A)는 상단 가지 메트릭 연산부(101), 순방향 상태 메트릭 연산부(102), 제1 메모리(103) 및 상단 대수우도비 연산부(104)를 포함한다. 그리고 역방향 연산부(B)는 하단 가지 메트릭 연산부(105), 역방향 상태 메트릭 연산부(106), 제2 메모리(107), 하단 대수우도비 연산부(104, 108)를 포함한다.
본 발명의 실시예에 따른 MAP 복호기(110)는 순방향 상태 메트릭 연산부 (102)와 역방향 상태 메트릭 연산부(106)을 동시에 계산하여 처리 속도를 두 배 향상시키기 위하여 상하 대칭적인 형태로 각각 순방향 상태 메트릭 연산부(102)와 역방향 상태 메트릭 연산부(106)를 각각 별도로 배치하고, 가지 메트릭 연산부(101, 105)와 대수우도비 연산부(104, 108) 및 메모리(103, 107) 각각 하나씩 추가 배치한다. 여기서, 메모리(103, 107)는 그 크기가 일반적인 구조에서 사용되는 것에 절반이므로 메모리 용량은 기존과 동일하다.
다음, 하나의 수신 심볼열에 대해서 각각의 심볼들을 수신된 순서에 따라 0부터 1씩 증가시켜 N까지 번호를 부여한 후 MAP 복호기의 동작을 설명한다.
도 4에서 윗부분의 가지 메트릭 연산부(101)에는 0부터 N까지 순차적으로 수신 심볼이 입력되어 가지 메트릭 연산이 수행되고 이와 동시에 아래부분의 가지 메트릭 연산부(105)에는 N부터 0까지 역순으로 수신 심볼이 입력되어 가지 메트릭 연산을 수행한다(S40).
순방향 상태 메트릭 연산부(102)에서는 가지 메트릭 연산부(101)의 결과를 입력 받아 순방향 상태 메트릭을 계산하고(S42) 0 부터 N/2-1에 대해서만 그 결과를 제 1 메모리(103)에 저장하고 그 이후부터 즉, N/2부터 N까지에 대한 연산 결과는 상단 대수우도비 연산부(104)로 보낸다.
상단 대수우도연산부(104)는 시간 0부터 N/2-1인 시점까지는 동작을 하지 않고 N/2인 시점부터 동작을 시작한다. 대수우도비 연산을 위해서는 가지메트릭, 순방향 상태 메트릭, 역방향 상태 메트릭 세가지 값이 필요하다. 이 들은 각각 가지 메트릭 연산부(101), 순방향 상태 메트릭 연산부(102) 그리고 제 2 메모리(107)에서 입력받아 대수우도비 연산을 수행한다(S44).
하단 가지 메트릭 연산부(105)에서는 수신 심볼이 N부터 0까지 역순으로 들어오고 연산 결과를 역방향 상태 메트릭 연산부(106)로 보낸다.
역방향 상태 메트릭 연산부(106)는 가지 메트릭 연산부(105)의 결과를 입력 받아 역방향 상태 메트릭을 계산하고(S42) N부터 역순으로 N/2까지는 그 결과를 제 2 메모리(107)에 저장하고 그 이후부터 즉, N/2-1부터 0까지에 대한 연산 결과는 하단 대수우도비 연산부(108)로 보낸다.
하단 대수우도비 연산부(108)는 시간 N부터 역순으로 N/2인 시점까지는 동작을 하지 않고 N/2인 시점부터 동작을 시작한다. 대수우도비 연산을 위해서는 가지메트릭, 순방향 상태 메트릭, 역방향 상태 메트릭 세가지 값이 필요하다. 이 들은 각각 가지 메트릭 연산부(105), 역방향 상태 메트릭 연산부(106) 그리고 제 1 메모리(103)에서 입력 받아 대수우도비 연산을 수행한다(S44).
상기에 기술한 일련의 과정이 도 5에 나타나 있다.
도 5는 MAP 복호기의 대수우도비 연산 과정에 대한 타이밍을 나타내는 도면이다.
도 5에 나타낸 바와 같이, 순방향 상태 메트릭의 0번째 값과 역방향 상태 메트릭의 N번째 값은 초기값으로써 복호기 동작하기 전에 미리 정해진 값들이다. 그래서 실제 계산은 순방향 상태 메트릭은 1번째부터 순차적으로 N번째까지 메트릭을 계산하고 역방향 상태 메트릭은 N-1부터 연산이 시작하여 역순으로 1번째까지 메트릭을 계산한다. 도 5에서 '가' 구간동안은 대수우도비 연산은 이루어지지 않고 각각의 상태 메트릭 연산 결과를 메모리에 저장하고, '나' 구간 동안에 대수우도비 연산이 이루어진다.
예를 들어 상단 대수우도비 연산 과정을 살펴보면, N/2번째 대수우도비 연산을 위해 필요한 순방향 상태 메트릭은 A_N/2이고 역방향 상태 메트릭은 B_N/2+1이다. 그런데 A_N/2는 시간 N/2인 시점에서 계산되고 B_N/2+1은 이전 시간에 이미 계산되어서 메모리에 저장되어 있으므로 N/2번째 대수우도비를 계산할 수 있다. 마찬가지로 하단 대수우도비 연산 과정은 시간 N/2인 순간에 역방향 상태 메트릭 B_N/2가 계산되고 이전 시간에 이미 A_N/2-1이 계산되어 있으므로 이 값을 메모리로부터 읽어들여 N/2-1번째 대수우도비를 계산할 수 있다.
이러한 방법으로 상단 대수우도비 연산부(104)는 N/2번째부터 N번째까지의 대수우도비를 계산하고, 하단 대수우도비 연산부(108)는 0부터 N/2-1번째까지의 대수우도비를 계산한다.
이상의 실시예들은 본원 발명을 설명하기 위한 것으로, 본원 발명의 범위는 실시예들에 한정되지 아니하며, 첨부된 청구 범위에 의거하여 정의되는 본원 발명의 범주 내에서 당업자들에 의하여 변형 또는 수정될 수 있다.
본 발명에 의하면, 하나의 MAP 복호기를 이용하여 터보 복호기를 구현할 수 있다. 또한, 1비트를 복호하는데 있어 복호 속도를 증가시킬 수 있는 효과가 있다.
도 1은 일반적인 부호율 1/3을 갖는 터보 부호기를 나타내는 도면이다.
도 2는 부호율 1/3을 갖는 터보 부호기를 위한 종래 터보 복호기를 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 터보 복호기를 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 MAP 복호기의 구성도이다.
도 5는 본 발명의 실시예에 따른 MAP 복호기의 동작에 대한 흐름도이다.
도 6은 도 4의 MAP 복호기의 대수우도비 연산 과정에 대한 타이밍을 나타내는 도면이다.

Claims (20)

  1. 송신단으로부터 터보 코드에 의해 부호화하여 전송되는 송신 심볼을 복호화하기 위한 터보 복호화 장치에 있어서,
    순방향 상태 메트릭과 역방향 상태 메트릭에 대한 연산을 동시에 수행하여 심볼에 대한 터보 복호에 의하여 하나의 클럭 당 하나의 대수우도비를 계산하는 MAP 복호기;
    상기 MAP 복호기의 복호 시에 입력 및 출력을 조정하는 다중화기;
    역다중화기로부터 출력된 값을 다음 복호시 적용되는 심볼의 순서와 일치시키는 인터리버/디인터리버;
    상기 MAP 복호기로부터 복호한 후 계산된 대수우도비를 디인터리빙하는 디인터리버; 및
    상기 디인터리버로부터 출력된 값에 기초하여 상기 최종 복호 비트를 추정하는 경판정기를 포함하는 터보 복호화 장치.
  2. 제 1항에 있어서, 상기 MAP 복호기는,
    수신 심볼열에 대해 0부터 N까지 번호를 부여한 후, 상기 수신 심볼에 대한 순방향 상태 메트릭 연산과 역방향 상태 메트릭 연산을 병렬로 수행하고, 그 결과값을 각각 저장하여 시간 N/2인 시점부터 대수우도비 연산을 수행하는 순방향 연산부; 및
    상기 시간 0부터 N/2-1인 시점까지만 대수우도비 연산을 수행하는 역방향 연산부를 포함하고,
    상기 순방향 연산부와 상기 역방향 연산부는 상하 대칭 구조인 것을 특징으로 하는 터보 복호화 장치.
  3. 제 2항에 있어서,
    상기 상단 연산부는,
    순차적으로 입력되는 상기 수심 심볼에 대한 가지 메트릭 연산을 수행하는 상단 가지 메트릭 연산부;
    상기 상단 가지 메트릭 연산부의 결과값을 입력받아 순방향 상태 메트릭을 계산하는 순방향 상태 메트릭 연산부;
    상기 수신 심볼 0부터 N/2-1에 해당하는 상기 순방향 상태 메트릭 연산부의 출력값을 저장하는 제1 메모리; 및
    상기 수신 심볼 N/2부터 N까지에 대한 상기 순방향 상태 메트릭 연산부의 출력값을 입력받아 N/2 시점부터 동작하여 대수우도비 연산을 수행하는 상단 대수우도비 연산부를 포함하는 터보 복호화 장치.
  4. 제 3항에 있어서, 상기 하단 연산부는,
    역순으로 입력되는 상기 수신 심볼에 대한 가지 메트릭 연산을 수행하는 하단 가지 메트릭 연산부;
    상기 하단 가지 메트릭 연산부의 결과값을 입력받아 역방향 상태 메트릭을 수행하는 역방향 상태 메트릭 연산부;
    상기 수신 심볼 N부터 N/2에 해당하는 상기 역방향 상태 메트릭 연산부의 출력값을 저장하는 제2 메모리; 및
    상기 수신 심볼 N/2-1부터 0까지에 대한 상기 역방향 상태 메트릭 연산부의 출력값을 입력받아 N/2시점부터 동작하여 대수우도비 연산을 수행하는 하단 대수우도비 연산부를 포함하는 터보 복호화 장치.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 MAP 복호기는, 상기 순방향 상태 메트릭 및 상기 역방향 상태 메트릭을 동시에 수행하는 것을 특징으로 하는 터보 복호화 장치.
  6. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 상단 대수우도비 연산부는,
    상기 수신 심볼 N/2부터 N까지에 대한 상기 순방향 상태 메트릭 연산부의 출력값과 상기 제2 메모리에 저장된 값 및 상기 상단 가지 메트릭 연산부의 출력값에 기초하여 대수우도비 연산을 수행하는 것을 특징으로 하는 터보 복호화 장치.
  7. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 하단 대수우도비 연산부는,
    수신 심볼 N/2-1부터 0까지에 대한 상기 역방향 상태 메트릭 연산부의 출력값과 상기 제1 메모리에 저장된 값 및 상기 하단 가지 메트릭 연산부의 출력값에 기초하여 대수우도비 연산을 수행하는 것을 특징으로 하는 터보 복호화 장치.
  8. 제 1항에 있어서,
    상기 대수우도비는, 다음의 계산식에 기초하여 세 가지 성분으로 나누어지는 것을 특징으로 하는 터보 복호화 장치.
    여기서, R은 수신 심볼열, d는 부호화된 비트, 는 전단 MAP 복호기로부터 입력되는 사전 정보, 는 채널로 수신된 심볼값이고, 는 현재 MAP 복호기에서 생성된 잉여 정보로써 다음단 복호기의 사전 정보로써 활용되는 값임.
  9. 제 1항에 있어서,
    상기 MAP 복호기로부터의 출력을 저장하는 제1 및 제2 메모리부
    를 더 포함하며,
    첫 번째 복호 수행시, 수신되는 심볼과 상기 제2 메모리부에 저장된 값을 더한 값이 입력되고,
    두 번째 복호 수행시, 상기 제1 메모리에 저장된 값이 입력되는 것을 특징으로 하는 터보 복호화 장치.
  10. 제 1항에 있어서,
    상기 다중화기는,
    상기 MAP 복호기의 입력을 조정하는 제1 및 제2 다중화기; 및
    상기 MAP 복호기의 출력을 조정하는 제3 다중화기
    를 포함하며,
    상기 MAP 복호기는 제1 및 제2 다중화기로부터 입력되는 값을 입력받아 대수우도비를 출력하는 것을 특징으로 하는 터보 복호화 장치.
  11. 제 10항에 있어서,
    상기 MAP 복호기로부터 출력된 대수우도비는, 상기 제3 다중화기로 입력되는 것을 특징으로 하는 터보 복호화 장치.
  12. 제 10항에 있어서,
    상기 MAP 복호기 앞단에 위치한 제1 다중화기로의 입력을 조정하는 제1 가산기; 및
    상기 제3 다중화기로의 대수우도비 입력을 조정하는 제2 및 제3 가산기를 더 포함하는 터보 복호화 장치.
  13. 제 10항에 있어서,
    상기 제3 다중화는,
    상기 대수우도비에서 사전 정보와 수신 심볼의 합을 뺀 잉여 정보값이 상단으로 입력되고, 상기 대수우도비에서 사전 정보를 뺀 값이 하단으로 입력되는 것을 특징으로 하는 터보 복호화 장치.
  14. 송신단으로부터 터보 코드에 의해 부호화되어 전송되는 송신 심볼을 복호화하기 위한 터보 복호화 방법에 있어서,
    a) 상기 터보 코드에 의해 부호화되어 수신된 송신 심볼을 멀티플렉싱하여 수신하는 단계;
    b) 상기 a)단계로부터 수신 심볼에 대한 대수우도비를 계산하고, 상기 계산된 제1 연판정 대수우도비를 연산하여 출력하는 1차 복조 단계;
    c) 상기 제1 대수우도비의 출력값을 조정하고, 조정된 출력값을 입력받아 제2 연판정 대수우도비를 연산하여 출력하는 2차 복조 단계; 및
    d) 상기 2차 복호 후 출력된 제2 연판정 대수우도비로부터 경판정 복호값을 출력하여 복호하는 단계를 포함하고,
    상기 복호 단계마다 입력 및 출력이 조정되는 것을 특징으로 하는 터보 복호화 방법.
  15. 제 14항에 있어서,
    상기 b)단계 또는 c)단계에서 대수우도비 연산 결과, 상기 터보 복호를 위해 입력되는 사전 정보와, 상기 수신 심볼값 및 상기 터보 복호로부터 생성되어 다음 복호를 위한 사전 정보가 되는 잉여 정보가 출력되는 것을 특징으로 하는 터보 복호화 방법.
  16. 제 15항에 있어서,
    상기 b)단계는,
    ⅰ) 상기 a)단계로부터 수신되는 입력값에 기초하여 1차 복호에 따른 제1 대수우도비를 출력하는 단계;
    ⅱ) 상기 제1 대수우도비의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및
    ⅲ) 상기 ⅱ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함하는 터보 복호화 방법.
  17. 제 15항에 있어서,
    상기 c)단계는,
    ⅳ) 상기 a)단계로부터 수신되는 입력값에 기초하여 2차 복호에 따른 제2 대수우도비를 출력하는 단계;
    ⅴ) 상기 제2 대수우도비의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및
    ⅵ) 상기 ⅴ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함하는 터보 복호화 방법.
  18. 제 14항 내지 제 17항 중 어느 한 항에 있어서,
    상기 a) 단계에서, 상기 1차 복호와 상기 2차 복호를 위한 입력값이 각각 다르게 입력되도록 조정하는 것을 특징으로 하는 터보 복호화 방법
  19. 제 14항 내지 제 17항 중 어느 한 항에 있어서,
    상기 대수우도비 연산 단계는,
    ⅶ) 하나의 수신 심볼열의 각 수신 심볼에 대해 수신된 순서에 따라 0부터 1씩 증가시켜 N까지 번호를 부여하고 순차적 또는 역순으로 입력되는 수신 심볼에 대해 각각 가지 메트리 연산을 수행하는 단계;
    ⅷ) 상기 순차적으로 입력되는 수신 심볼에 대한 가지 메트릭 연산 결과를 입력받아 순방향 상태 메트릭을 계산하고, 그와 동시에 역순으로 입력되는 수신 심볼에 대한 가지 메트릭 연산 결과를 입력받아 역방향 메트릭을 계산하는 단계; 및
    ⅸ) 상기 순방향 상태 메트릭 및 역방향 메트릭 계산값에 기초하여 하나의 클럭 당 하나의 대수우도비를 계산하는 단계를 포함하는 터보 복호화 방법.
  20. 제 19항에 있어서,
    상기 ⅷ)단계에서, 상기 순방향 상태 메트릭의 0번째 값과 상기 역방향 상태 메트릭의 N 번째 값은 미리 정해진 값인 것을 특징으로 하는 터보 복호화 방법.
KR1020030096771A 2003-12-24 2003-12-24 터보 복호화 장치 및 방법 KR100625242B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030096771A KR100625242B1 (ko) 2003-12-24 2003-12-24 터보 복호화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030096771A KR100625242B1 (ko) 2003-12-24 2003-12-24 터보 복호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050065873A true KR20050065873A (ko) 2005-06-30
KR100625242B1 KR100625242B1 (ko) 2006-09-19

Family

ID=37257023

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030096771A KR100625242B1 (ko) 2003-12-24 2003-12-24 터보 복호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100625242B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070079448A (ko) * 2006-02-02 2007-08-07 삼성전자주식회사 다중 안테나 시스템에서 반복 검출 및 복호 수신 장치 및방법
KR100863702B1 (ko) 2005-12-14 2008-10-15 삼성전자주식회사 다중 안테나 통신시스템에서 반복적 검출 및 복호를 위한장치 및 방법
KR100923915B1 (ko) * 2005-12-16 2009-10-28 삼성전자주식회사 다중 안테나 시스템에서 반복 검출 및 복호 수신 장치 및방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100863702B1 (ko) 2005-12-14 2008-10-15 삼성전자주식회사 다중 안테나 통신시스템에서 반복적 검출 및 복호를 위한장치 및 방법
US7720181B2 (en) 2005-12-14 2010-05-18 Samsung Electronics Co., Ltd Apparatus and method for iterative detection and decoding (IDD) in multi-antenna communication system
KR100923915B1 (ko) * 2005-12-16 2009-10-28 삼성전자주식회사 다중 안테나 시스템에서 반복 검출 및 복호 수신 장치 및방법
US8027401B2 (en) 2005-12-16 2011-09-27 Samsung Electronics Co., Ltd Iterative detection and decoding apparatus and method in MIMO system
KR20070079448A (ko) * 2006-02-02 2007-08-07 삼성전자주식회사 다중 안테나 시스템에서 반복 검출 및 복호 수신 장치 및방법

Also Published As

Publication number Publication date
KR100625242B1 (ko) 2006-09-19

Similar Documents

Publication Publication Date Title
JP3640924B2 (ja) 移動通信システムにおける構成復号装置及び方法
US6829313B1 (en) Sliding window turbo decoder
JP5479580B2 (ja) Lteにおける並列turboデコーディングの方法及び装置
EP1022860B1 (en) Turbo decoding with variable number of iterations
US20030097633A1 (en) High speed turbo codes decoder for 3G using pipelined SISO Log-Map decoders architecture
US6999531B2 (en) Soft-decision decoding of convolutionally encoded codeword
US6799295B2 (en) High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture
KR20010072498A (ko) 맵 디코더용 분할 디인터리버 메모리
US8112698B2 (en) High speed turbo codes decoder for 3G using pipelined SISO Log-MAP decoders architecture
JP4227481B2 (ja) 復号装置および復号方法
JP2004096747A (ja) 高次基数のlogmapプロセッサ
KR100703307B1 (ko) 터보 복호화 장치 및 방법
EP1471677A1 (en) Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder
US20100054375A1 (en) System and method for forward and backward recursive computation
JP2002111519A (ja) 繰り返し誤り訂正復号装置に用いられる軟入力軟出力復号器
EP1128560B1 (en) Apparatus and method for performing SISO decoding
KR100625242B1 (ko) 터보 복호화 장치 및 방법
US7634703B2 (en) Linear approximation of the max* operation for log-map decoding
CN1129257C (zh) 串行回溯的最大似然解码方法及其使用该方法的解码器
CN109831217B (zh) 一种Turbo码译码器、用于Turbo码的分量译码器及分量译码方法
US7120851B2 (en) Recursive decoder for switching between normalized and non-normalized probability estimates
KR101066287B1 (ko) 이동통신시스템에서 맵 방식을 이용하여 디코딩을 수행하는 장치 및 방법
JP2006217042A (ja) ターボ復号装置
KR100612648B1 (ko) Ctc 복호화 장치 및 방법
CN111130570A (zh) 一种并行Turbo译码算法在LEO中应用的方法

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120817

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130816

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140820

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150820

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180820

Year of fee payment: 13