KR100612648B1 - Ctc 복호화 장치 및 방법 - Google Patents

Ctc 복호화 장치 및 방법 Download PDF

Info

Publication number
KR100612648B1
KR100612648B1 KR1020030096772A KR20030096772A KR100612648B1 KR 100612648 B1 KR100612648 B1 KR 100612648B1 KR 1020030096772 A KR1020030096772 A KR 1020030096772A KR 20030096772 A KR20030096772 A KR 20030096772A KR 100612648 B1 KR100612648 B1 KR 100612648B1
Authority
KR
South Korea
Prior art keywords
value
output
state metric
metric
decoding
Prior art date
Application number
KR1020030096772A
Other languages
English (en)
Other versions
KR20050065874A (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 KR1020030096772A priority Critical patent/KR100612648B1/ko
Publication of KR20050065874A publication Critical patent/KR20050065874A/ko
Application granted granted Critical
Publication of KR100612648B1 publication Critical patent/KR100612648B1/ko

Links

Images

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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • 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

본 발명은 CTC 복호화 장치 및 방법에 관한 것으로, 특히 CTC 복호화기를 VLSI로 구현하기 위한 장치 및 방법에 관한 것이다.
CTC 복호화 장치는 하나의 MAP 복호기가 포함된 CTC 복호기를 병렬로 배치한다. 그리고 MAP 복호기는 순방향 상태 메트릭 연산과 역방향 상태 메트릭 연산을 동시에 수행하여 하나의 단위 시간당 2 비트를 복호한다. 이를 위하여 순방향 상태 메트릭을 연산하는 역방향 연산부와 역방향 상태 메트릭을 연산하는 순방향 연산부를 상하 대칭적인 구조로 배치한다. 그리고 상태 메트릭 연산부는 결정된 모든 상태 메트릭값을 필요 비트 수보다 하나를 더 추가하여 사용하고 상태 메트릭 연산 완료 후 각 메트릭 값의 최상위 비트를 검사하여 오버플로우 발생시 리셋하여 연산 지연을 최소화한다.
이와 같이 하면, 복호 속도를 증가시킬 수 있다.
CTC 복호기, MAP 복호기, 인터리버,

Description

CTC 복호화 장치 및 방법{APPARATUS AND METHOD FOR CTC DECODER}
도 1은 부호율 1/2인 일반적인 터보 부호기를 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 4개의 CTC 복호기를 병렬로 배치한 고속 CTC 복호기의 구조도이다.
도 3은 도 2에서 하나의 MAP 복호기를 이용한 CTC 복호기의 구조도이다.
도 4는 도 3에서 MAP 복호기의 구조도이다.
도 5는 본 발명의 실시예에 따른 MAP 복호기에서 최소 지연을 갖는 상태 메트릭 연산부를 나타내는 도면이다.
도 6은 본 발명의 실시예에 따른 MAP 복호기에서 최소 지연을 갖는 상태 메트릭 정규화부를 나타내는 도면이다.
도 7은 인터리버의 구조도이다.
본 발명은 복호 속도를 향상시키고 하드웨어 구현에 있어서 면적 소모를 최소화하기 위한 CTC 복호화기 장치 및 방법에 관한 것이다.
일반적으로 유무선 디지털 통신 시스템에서는 전송로상의 오류를 보정하기 위해 송신단에서 정보비트에 부가 비트를 첨부하고 수신단에서는 오류 정정 알고리즘을 이용하여 오류를 보정한다. 이러한 오류정정알고리즘의 하나로 터보코드(Turbo Code)를 사용한다. 일반적인 터보 코드에서 부호기가 매 클럭마다 하나의 비트 입력을 받아 처리하는 반면에 CTC(Convolutional Turbo Code) 코드에서는 매 클럭마다 2개의 비트를 입력받아 처리한다. 따라서 CTC 복호기에서 처리 속도가 이진 터보 코드에 비해 2배 정도 향상된다.
CTC 코드는 최근 연구가 진행되고 있는 802.16a의 채널 코덱으로써 채택되어 있고, 개인 휴대 인터넷(HPi, High speed Personal Internet) 무선 통신 시스템에도 채택되고 있다.
터보 복호기는 기존의 이진 터보 코드와 알고리즘을 이용하여 구현된다. 다만 부분적으로 CTC의 특징을 수용하는 구조를 가진다. 복호 알고리즘으로는 크게 최대 사후 알고리즘(MAP: Maximum A Posteriori)과 연성 출력 비터비 알고리즘(SOVA: Soft Out Viterbi Alogorithm)으로 나누어지고 최대 사후 알고리즘은 다시 순수한 최대 사후 방식(pure MAP), 로그 최대 사후 방식(LOG-MAP), 최대 로그 최대 사후(MAX-LOG-MAP or MIN-LOG-MAP) 방식으로 나누어진다. 하드웨어 구현을 위해서는 오류 정정 능력은 다소 떨어지나 구현 복잡도가 낮은 로그 최대 사후 방식이나 최대 로그 최대 사후 방식이 주로 이용된다.
일반적인 터보 복호기는 두 개의 MAP 복호기가 사용되고 MAP 복호기 사이에 비트열의 순서를 일치시키기 위한 인터리버(interleaver)가 존재한다. 각 MAP 복호기에는 수신 심볼과 전단의 MAP 복호기의 결과인 잉여 정보 값이 들어와 현재의 확 률적 가중치를 계산하고 이 값과 입력 값을 이용하여 다음 단의 MAP 복호기의 입력 값으로 쓰일 새로운 잉여 정보를 생성한다. 이 잉여 정보는 수신 심볼과 결합하여 다음 단의 MAP 복호기에서 좀 더 신뢰도가 높은 확률적 가중치를 계산할 수 있도록 도와준다. 이러한 복호 과정을 반복함으로써 복호기의 연판정 결과값의 신뢰도가 점점 높아지게 되어 오류 정정 능력이 향상되게 된다.
CTC 복호기의 핵심 연산부인 MAP 복호기의 일반적인 동작은 다음과 같다. MAP 복호기의 중요 요소에는 가지 메트릭 연산, 순방향 상태 메트릭 연산, 역방향 상태 메트릭 연산 그리고 확률적 가중치 연산이 있다.
가지 메트릭은 트렐리스 상에서 현재 시점에서 다음 시점으로 천이될 확률적 가중치로써 수신 심볼과 전단 MAP 복호기에서 계산되어진 잉여 정보 등을 이용하여 얻을 수 있다.
순방향 상태 메트릭은 시간 0인 시점부터 시작하여 시간 N인 시점까지 모든 상태에 대한 확률적 가중치로써 이전 순방향 상태 메트릭과 현재의 가지 메트릭을 이용하여 현재 시점의 순방향 상태 메트릭을 계산한다.
역방향 상태 메트릭은 시간 N인 시점부터 시작하여 시간 0인 시점까지 모든 상태에 대한 확률적 가중치로써 이전 역방향 상태 메트릭과 현재 시점의 가지 메트릭을 이용하여 현재의 역방향 상태 메트릭을 계산한다.
확률적 가중치는 앞에서 계산된 가지 메트릭, 순방향 상태 메트릭, 역방향 상태 메트릭을 이용하여 구한다.
그러나, 이와 같은 CTC복호기는 개인 휴대 인터넷에서 요구되는 고속의 데이 터를 처리하기에는 한계가 있다.
본 발명은 상기와 같은 문제점을 해결하고자 하는 것으로, 본 발명이 이루고자 하는 기술적 과제는 복호 수행 시간을 단축시킬 수 있는 CTC 복호화기 장치 및 방법을 제공하기 위한 것이다.
이러한 과제를 해결하기 위해 본 발명에서는 송신단으로부터 CTC 코드에 의해 부호화하여 전송되는 송신 심볼을 복호화하기 위한 CTC 복호화 장치가 제공된다.
본 발명의 하나의 특징에 따른 CTC 복호화기 장치는, 순방향 상태 메트릭과 역방향 상태 메트릭에 대한 연산을 동시에 수행하여 상기 심볼에 대해 하나의 단위 시간당 2 비트를 복호하는 MAP 복호기; 상기 MAP 복호기의 복호 시에 입력 및 출력을 조정하는 다중화기; 역다중화기로부터 출력된 값을 다음 복호시 적용되는 심볼의 순서와 일치시키는 인터리버/디인터리버; 상기 MAP 복호기로부터 복호한 후 계산된 대수우도비를 디인터리빙하는 디인터리버; 및 상기 디인터리버로부터 출력된 값에 기초하여 상기 최종 복호 비트를 추정하는 경판정기를 포함한다.
상기 MAP 복호기는, 상기 심볼에 대한 현재 복호될 비트값이 4가지 확률에 대한 순방향 상태 메트릭과 역방향 상태 메트릭 연산을 병렬로 수행하고 그 결과값을 각각의 메모리에 저장하여 시간 N/2인 시점부터 확률적 가중치 연산을 수행하는 순방향 연산부 및 역방향 연산부를 포함하고, 상기 순방향 연산부와 상기 역방향 연산부는 상하 대칭 구조인 것을 특징으로 한다.
그리고 상기 순방향 연산부는, 순차적으로 입력되는 수신심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 가지 메트릭을 수행하는 상단 가지 메트릭 연산부; 상기 상단 가지 메트릭 연산부의 결과값과 이전 상태 메트릭 값을 이용하여 현재의 상태 메트릭을 계산하는 순방향 상태 메트릭 연산부; 상기 순방향 상태 메트릭 연산부로부터 계산된 상태 메트릭값을 저장하는 제1 메모리; 상기 이전 상태 메트릭 값과 상기 가지 메트릭 값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 계산하는 상단 확률적 가중치 연산부; 및 상기 상단 확률적 가중치 연산부로부터 출력된 확률적 가중치에 기초하여 잉여 정보를 발생시키는 상단 잉여 정보 연산부를 포함하고, 상기 역방향 연산부는, 역순으로 입력되는 수신심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 가지 메트릭을 수행하는 하단 가지 메트릭 연산부; 상기 하단 가지 메트릭 연산부의 결과값과 이전 상태 메트릭 값을 이용하여 현재의 상태 메트릭을 계산하는 역방향 상태 메트릭 연산부; 상기 역방향 상태 메트릭 연산부로부터 계산된 상태 메트릭값을 저장하는 제2 메모리; 상기 이전 상태 메트릭 값과 상기 하단 가지 메트릭 값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 계산하는 하단 확률적 가중치 연산부; 및 상기 하단 확률적 가중치 연산부로부터 출력된 확률적 가중치에 기초하여 잉여 정보를 발생시키는 하단 잉여 정보 연산부를 포함하며, 상기 순방향 상태 메트릭 및 상기 역방향 상태 메트릭을 동시에 수행하는 것을 특징으로 한다.
그리고 상기 상태 메트릭 연산부는, 상기 4가지 확률에 대한 이전 상태 메트 릭 값과 가지 메트릭값을 더한 값으로부터 특정 연산에 의해 최소값을 출력하기 위한 제1 및 제2 덧셈기; 상기 특정 연산에 기초하여 출력된 각 비트들이 입력되는 결합기; 및 상기 결합기로부터 출력된 값과 상기 4가지 확률에 대한 이전 상태 메트릭값과 가지 메트릭값을 더한 값에 기초하여 최소값을 출력하는 다중화기를 포함한다. 이 때, 상기 순방향 상태 메트릭 연산부 또는 역방향 상태 메트릭 연산부는 출력된 상태 메트릭값을 필요 비트 수보다 더 추가하여 상태 메트릭 연산 완료 후 각 메트릭 값의 최상위 비트를 검사하여 정규화하는 것을 특징으로 한다. 그리고 모든 상태 메트릭의 최상위 비트 검사 결과에 기초하여 오버플로우를 판단하고 상기 오버플로우가 발생한 경우, 상기 모든 최상위 비트 값을 리셋하여 연산 지연을 최소화하는 것을 특징으로 한다.
또한, 상기 잉여 정보 연산부는, 상기 계산된 확률적 가중치로부터 입력 사전 확률값(APP)을 뺀 값의 크기를 반으로 줄이는 것여 정규화하는 것을 특징으로 한다.
또한, 상기 인터리버는, 순차적으로 증가시키면서 CTC 코드 블록 사이즈의 1/2까지 카운트하는 카운터; 상기 카운트 값의 최하위 2비트를 제어값으로 입력받아 상수값을 출력하는 제1 다중화기; 특정 연산에 의해 특정값을 입력받아 덧셈연산하는 제1 및 제2 덧셈기; 상기 제2 덧셈기로부터 출력된 값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제1 비교기; 상기 제1 비교기로부터의 출력값과 제1 및 제2 덧셈기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제2 다중화기; 상기 상수값과 제2 다중화기로부터의 출력값을 더하는 제3 및 제4 덧셈 기; 상기 제4 덧셈기로부터의 출력값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제2 비교기; 상기 제2 비교기로부터의 출력값 및 상기 제3 및 제4 덧셈기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제3 다중화기를 포함하고, 상기 제1 및 제2 다중화기로부터 출력된 값들은 각각의 D 플립플롭에 저장되는 것을 특징으로 한다.
또한, 상기 인터리버는, 상기 제3 다중화기로부터의 출력값과 특정 연산에 의해 특정값을 입력받아 덧셈연산하는 제5 덧셈기; 상기 제5 덧셈기의 출력값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제3 비교기; 및 상기 제5 덧셈기의 입출력값과 상기 제3 비교기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제4 다중화기를 더 포함하며, 상기 제4 다중화기는 인터리빙 주소를 출력하는 것을 특징으로 한다.
그리고 CTC 복호기는 상기 MAP 복호기로부터의 출력을 저장하는 제1 및 제2 메모리부를 더 포함하며, 첫 번째 복호 수행시, 수신되는 심볼과 상기 제2 메모리부에 저장된 값을 더한 값이 입력되고, 두 번째 복호 수행시, 상기 제1 메모리에 저장된 값이 입력되는 것을 특징으로 한다. 그리고 상기 다중화기는, 상기 MAP 복호기의 입력을 조정하는 제1 및 제2 다중화기; 및 상기 MAP 복호기의 출력을 조정하는 제3 다중화기를 포함하며, 상기 MAP 복호기는 제1 및 제2 다중화기로부터 입력되는 값을 입력받아 대수우도비를 출력하고, 상기 MAP 복호기로부터 출력되는 확률적 가중치는 상기 제3 다중화기로 입력되는 것을 특징으로 한다. 또한, 상기 MAP 복호기 앞단에 위치한 제1 다중화기로의 입력을 조정하는 제1 가산기; 및 상기 제3 다중화기로의 확률적 가중치 입력을 조정하는 제2 및 제3 가산기를 더 포함할 수 있다.
본 발명에서는 송신단으로부터 CTC 코드에 의해 부호화하여 전송되는 송신 심볼을 복호화하기 위한 CTC 복호화 방법이 제공된다.
본 발명의 다른 하나의 특징에 따른 CTC 복호화 방법은 a) 상기 CTC 코드에 의해 부호화되어 수신된 송신 심볼을 멀티플렉싱하여 수신하는 단계; b) 상기 a)단계로부터 수신된 심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 제1 확률적 가중치를 계산하는 1차 복조 단계; c) 상기 제1 확률적 가중치로부터 출력된 잉여 정보 및 상기 계산된 제1 확률적 가중치를 조정한 값을 입력으로 받아 제2 확률적 가중치를 연산하여 출력하는 2차 복조 단계; 및 d) 상기 2차 복호 후 출력된 확률적 가중치로부터 경판정하여 최종 복호 비트를 결정하는 단계를 포함하고, 상기 복호 단계마다 입력 및 출력이 조정되는 것을 특징으로 한다.
그리고 상기 b)단계는, ⅰ) 상기 a)단계로부터 수신되는 심볼값에 기초하여 1차 복호에 따른 제1 확률적 가중치를 출력하는 단계; ⅱ) 상기 제1 확률적 가중치의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및 ⅲ) 상기 ⅱ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함한다.
그리고 상기 c)단계는, ⅳ) 상기 a)단계로부터 수신되는 심볼값에 기초하여 2차 복호에 따른 제2 확률적 가중치를 출력하는 단계; ⅴ) 상기 제2 확률적 가중치의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및 ⅵ) 상기 ⅴ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함한다.
그리고 상기 확률적 가중치 연산 단계는, 순차적 또는 역순으로 각각 수신되는 심볼의 4가지 확률 경로에 대해 가지 메트릭 연산을 수행하는 가지 메트릭 연산 단계; 상기 순차적으로 입력되는 수신 심볼에 대한 4가지 확률 경로에 대해 각각 입력된 이전 상태 메트릭 값과 가지 메트릭 값을 더한 값에서 특정 연산에 의해 최소값을 현재의 상태 메트릭 값으로 결정하는 상태 메트릭 연산 단계; 상기 이전 상태 메트릭값과 상기 가지 메트릭값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 결정하는 확률적 가중치 연산 단계; 및 상기 확률적 가중치에 기초하여 잉여 정보를 발생시키는 잉여 정보 연산 단계를 포함하며, 순차적으로 입력되는 수신 심볼의 4가지 확률 경로에 대한 순방향 상태 메트릭값과 상기 역순으로 입력되는 수신 심볼의 4가지 확률 경로에 대한 역방향 상태 메트릭값을 동시에 연산하여 하나의 단위 시간 당 2비트를 복호하는 것을 특징으로 한다.
그리고 상기 상태 메트릭 연산 단계는, 상기 결정된 모든 상태 메트릭값을 필요 비트수보다 하나 더 추가하는 단계; 상기 상태 메트릭 연산 완료 후, 각 메트릭값의 최상위 비트를 검사하는 단계; 및 상기 검사 결과, 수신 심볼의 4가지 확률 경로에 대한 모든 상태 메트릭의 최상위 비트가 제1 값을 가진 경우 모든 최상위 비트의 값을 제2 값으로 리셋하는 단계를 포함하며, 상기 모든 상태 메트릭의 최상위 비트가 제1 값을 가지면, 오버플로우가 발생한 것으로 간주하는 것을 특징으로 한다.
그리고 상기 잉여 정보 연산 단계는, 상기 연산된 확률적 가중치로부터 입력되는 사전정보값을 차감하여 잉여 정보를 발생시키는 단계; 및 상기 발생된 잉여 정보값에 1/2을 곱하여 정규화하는 단계를 포함한다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.
이하, 802.16a 규격에 채택된 부호율 1/2인 CTC 코드를 예로 들어서 본 발명 의 구성 및 동작을 설명한다.
먼저, 도 1을 참조하여 802.16a 규격에 채택된 부호율 1/2인 터보 부호기에 대해 설명한다.
도 1은 부호율 1/2인 일반적인 터보 부호기를 나타내는 도면이다.
도 1에서 나타낸 바와 같이 802.16a 규격에 채택된 부호율 1/2인 터보 부호기(10)는 A 및 B가 입력되는 정보 비트 열로부터 제1 길쌈부호기(2)를 통해 패리티 비트(Parity bit;잉여 비트) Y1을 생성하여 출력한다. 또한, 입력 A 및 B는 인터리버(1)에 의해 재배열 된 후, 제1 길쌈 부호기(2)와 병렬 연결된 제2 길쌈 부호기(3)를 통해 패리티 비트 Y2를 생성하여 출력한다. 그리고 입력 A, B는 그대로 부호화되지 않은 C1, C2를 출력한다. 이렇게 생성된 패리티 비트 및 부호화되지 않은 심볼은 병/직렬 변환부(4)를 통해 직렬로 변환되어 하나의 출력심볼이 생성된다.
이와 같이 구성된 터보 부호기(10)는 제1 및 제2 길쌈 부호기(2, 3)을 통해 독립적인 패리티를 발생시키게 함으로써 반복적인 복호가 가능하도록 한다.
다음으로, 부호율 1/2인 일반적인 터보 부호기에 대해 802.16a 규격에 채택된 부호율 1/2인 CTC 코드를 예로 들어서 설명한다.
도 2는 본 발명의 실시예에 따른 4개의 CTC 복호기를 병렬로 배치한 고속 CTC 복호기의 구조도이다.
도 2에 나타낸 바와 같이 본 발명의 실시예에 따른 CTC 복호기(100)는 4개의 CTC 복호기(101, 102, 103, 104)를 병렬 구조로 배치한다. 각각의 CTC 복호기(101, 102, 103, 104)는 동일한 기능을 하고 이에 대한 내부 구조도 각각 동일하므로, 이하, 하나의 CTC 복호기에 대해 도 3을 참조하여 상세하게 설명한다.
도 3은 본 발명의 실시예에 따른 MAP 복호기를 이용한 CTC 복호기의 구조도이다.
도 3에 나타낸 바와 같이, 본 발명의 실시예에 따른 터보 복호기(101)는 하나의 MAP 복호기(110)를 공유하여 사용한다.
본 발명의 실시예에 따른 터보 복호기(101)는 MAP 복호기(110), 가산기(112, 134, 136), 다중화기(114, 116, 118, 128), 인터리버/디인터리버(120), 역다중화기(122), 메모리(124, 126), 디인터리버(130) 및 경판정기(132)를 포함한다.
MAP 복호기(110)는 순방향 상태 메트릭 연산과 역방향 상태 메트릭 연산을 병렬로 수행하고 그 결과 값을 각각의 메모리에 저장한 후, 시간 N/2인 시점부터 확률적 가중치 계산하여 복호를 수행한다.
가산기(112)는 입력되는 값을 더하여 출력한다.
다중화기(114, 116, 118, 128)는 입력되는 다수의 값 중 하나를 선택하여 출력으로 연결한다. 이와 같이 하여 MAP 복호기의 입력 및 출력을 조정한다.
인터리버/디인터리버(120)는 입력되는 정보의 순서를 재배열한다.
역다중화기(122)는 하나의 입력을 다수 개의 출력으로 연결한다.
메모리(124, 126)는 역다중화기(122)로부터 출력된 값을 저장한다.
디인터리버(130)는 인터리버에 의해 재배열 된 정보를 원래의 정보와 같은 순서로 재배열한다.
경판정기(132)는 최종 복호 값 출력을 결정한다.
다음, CTC 복호기의 동작 과정에 대해 상세하게 설명한다.
복호 순서에 따른 입출력 값을 결정하기 위해 확률적 가중치에 대한 정의를 살펴보자. CTC 복호기에서는 stage에서 발생할 확률값이 "00", "01", "10", "11" 총 4가지이다. 이를 어떤 비율로서 하나의 값으로 표현할 수 없기 때문에 각각에 대한 확률값을 메모리에 저장하여 활용하면서 최종 복호비트를 결정한다.
하나의 반복 복호 과정 중에서 첫번째 MAP 복호가 진행 될 때 MAP 복호기(110)의 입력 값은 두가지가 있는데 그 중 하나는 다중화기(114)의 출력으로써 하단 입력을 선택하여 사전정보와 수신된 심볼들 중에서 송신단 부호기에서 부호화 되지 않은 심볼을 더한 값으로써 다중화기(114)의 하단 입력이고, 나머지 하나는 수신된 심볼들 중에서 제1 길쌈부호기(2)의 패리티 심볼로써 다중화기(116)의 상단 입력이다.
MAP 복호기(110)는 이들 두개의 값을 입력받아 확률적 가중치를 출력시킨다. 그리고 확률적 가중치로부터 현재 MAP 복호기로 입력되는 사전 정보 값(APP)을 빼서 잉여 정보가 얻어진다.
확률적 가중치는 두가지 형태로 처리되어 다중화기(118)에 입력되는데 하단 입력 값은 대수우도비에서 사전 정보와 수신 심볼의 합을 뺀 잉여 정보 값이 들어가고 상단 입력 값은 확률적 가중치에서 사전 정보를 뺀 값 즉, 잉여 정보와 수신 심볼을 더한 값이 들어간다.
첫번째 MAP 복호 과정에서는 다중화기(118)에 의해 상단 값을 선택하여 출력하고 다음단 복호시 적용되는 심볼의 순서와 일치시키기 위해 인터리버/디인터리버(120)에서 인터리빙된다.
두 번째 MAP 복호 과정은 송신단 부호기의 제2 길쌈 부호기(4)에 대응되는 과정이다. 두번째 MAP 복호가 진행될 때 상기 기술한 복호 과정과 유사하게 MAP 복호기(110)의 입력은 두 가지가 있는데 하나는 전단 MAP 복호(첫번째 MAP 복호) 후 저장된 값(사전 정보와 수신심볼을 더한 후 인터리빙 처리한 값)이고, 다른 하나는 수신된 심볼들 중에서 제 2길쌈부호기(4)의 잉여 심볼로써 다중화기(116) 하단 입력값이다. MAP 복호기(110)는 이 두 개의 입력을 받아 제2 길쌈부호기(4)에 대응하는 복호를 수행하여 확률적 가중치를 출력한다.
다음단 복호에 사용될 잉여 정보를 생성하기 위해 대수우도비에서 MAP 복호기(110) 입력(사전정보와 수신심볼을 더한 값)을 뺀 다음 디인터리빙하여 제 2 메 모리(124)에 저장된다.
최종으로 경판정 복호 값을 얻기 위해서 두번째 MAP 복호 후 생성된 연판정 확률적 가중치를 디인터리빙 한 후 경판정기(130)을 통과시킨다.
상술한 내용을 정리해 보면 MAP 복호기(110) 출력은 첫번째 MAP 복호와 두번째 MAP 복호 동작할 때와 관계 없이 동일하게 확률적 가중치를 각각 2비트씩 출력하고, 입력은 첫번째 MAP 복호가 수행될 때에는 수신된 심볼과 제 2메모리(126)에 저장된 값을 더한 값이 되고, 두번째 MAP 복호가 수행될 때에는 오직 제 1 메모리(126)에 저장된 값이다.
MAP 복호기 출력을 약간의 연산을 거쳐 메모리에 저장하는 방법은 첫번째 MAP 복호가 수행될 때 확률적 가중치에서 MAP 복호기(110) 입력을 뺀 후 인터리빙하여 제1 메모리(126)에 저장하고, 두번째 MAP 복호가 수행될 때 대수우도비에서 MAP 복호기 전단의 다중화기(114)의 상단 입력 값을 뺀 후 디인터리빙하여 제2 메모리(126)에 저장한다.
다음, MAP 복호기(110)에 대해서 도 4를 참조하여 상세하게 설명한다.
도 4는 본 발명의 실시예에 따른 MAP 복호기의 구조를 나타낸 도면이다.
도 4에 나타낸 바와 같이, MAP 복호기(110)는 CTC 복호기의 핵심부로서, 순방향 연산부 및 역방향 연산부를 포함한다.
순방향 연산부(200)는 상단 가지메트릭 연산부(210), 순방향 상태 매트릭 연산부(220), 메모리(230), 상단 확률적 가중치 연산부(240) 및 상단 잉여 정보 생성부(250)를 포함한다. 그리고 역방향 연산부(300)는 하단 가지 메트릭 연산부(310), 역방향 상태 메트릭 연산부(320), 메모리(330), 하단 확률적 가중치 연산부(340) 및 하단 잉여 정보 생성부(250)를 포함한다.
순방향 연산부(200)는 수신 심볼에 대해 0번째부터 N번째까지 순차적으로 연산이 이루어지고, 역방향 연산부(300)는 수신 심볼에 대해 N번째부터 0번째까지 역순으로 연산이 이루진다는 점을 제외하고 순방향 연산부(200) 및 역방향 연산부(300)는 연산과정이 동일하기 때문에 순방향 연산부(200)만을 설명하기로 한다.
상단 가지 메트릭 연산부(210)는 이진 터보 코드와 달리 CTC 코드에서는 4가지 확률 즉, 현재 시점에 복호될 비트 값들이 “00”, “01”, “10” 또는 “11”에 대한 가지 메트릭 연산을 수행한다. 가지 메트릭은 수학식 1에 의해 구해진다.
Figure 112003049554150-pat00001
여기서,
Figure 112003049554150-pat00002
는 시간 k일 때, state s에서 출력되는 가지들 중에서 부호화 비트 a인 가지메트릭이고,
Figure 112003049554150-pat00003
는 전단 MAP 복호기에서 생성된 잉여 정보 값(CTC에서는 a라는 인덱스에 의해 "00", “01”, “10”, “11” 총 4가지의 값을 갖음)이다. 그리고
Figure 112003049554150-pat00004
는 수신된 1번째 정보(systematic) 심볼로써 A는 노이즈 채널을 통과하면서 왜곡된 것을 의미하고
Figure 112003049554150-pat00005
는 수신된 2번째 정보 심볼로써 A는 노이즈 채널을 통과하면서 왜곡된 것을 의미한다.
그리고
Figure 112003049554150-pat00006
는 수신된 잉여 심볼로써 A는 노이즈 채널을 통과하면서 왜곡된 것을 의미하고, a(1)은 부호기 출력 비트 중 1번째 systematic 비트를 의미하고, a(0)는 부호기 출력 비트 중 2번째 systematic 비트를 의미하며, c는 부호기 출력 비트 중 잉여(parity) 비트를 의미한다.
즉, 각 가지에서 수신심볼(2의 보수로 표현)의 부호비트(최상위비트)와 부호기 출력 비트를 각각 비교하여 서로 같으면 0, 다르면 해당 수신 심볼의 절대값을 취해 모두 더한 것이 그 천이에 해당하는 가지 메트릭 값으로 결정한다.
상단 가지 메트릭 연산부(210)는 한 번의 가지 메트릭 연산에 2개의 systematic 심볼과 하나의 패리티 심볼이 필요하고 더불어 이전 MAP 복호기에서 생성된 잉여 정보 값을 입력 받아 수신 심볼 값을 이용하여 계산된 메트릭 값에 더해준다.
순방향 상태 메트릭 연산부(220)는 이전 상태 메트릭 값과 가지 메트릭 값을 이용하여 현재의 상태 메트릭을 계산한다. 그리고 “00”, “01”, “10”, “11” 4가지 확률 경로에 대해 각각의 상태 메트릭과 가지 메트릭 값을 서로 더한 후에 이들 중에서 가장 작은 값을 현재의 상태 메트릭 값으로 정한다. 또한,“00”, “01”, “10”, “11” 4가지 확률 경로에 대해 각각의 상태 메트릭과 가지 메트릭 값을 서로 더한 후 메모리(230)에 저장한다.
상단 확률 가중치 연산부(240)는 이전 상태 메트릭, 가지 메트릭, 현재 상태 메트릭 등 세가지 값들을 이용하여 각각의 확률적 가중치를 결정한다. 즉, “00” 확률을 갖는 총 8개의 경로 각각에 대해 이전 상태 메트릭, 가지 메트릭, 현재 메트릭에 대한 합을 구하고 이들 중 최소 값을 “00”에 대한 확률적 가중치로써 결 정한다. 나머지 “01”, “10”, “11”에 대한 확률적 가중치도 동일한 방법으로 구한다. 이렇게 구해진 값들은 다음단의 잉여 정보 연산부의 입력으로 작용하거나 경판정을 할 경우 최종 복호 비트로 결정된다.
상단 잉여 정보 연산부(250)는 다음 번 반복 복호 수행시 APP 값으로써 작용하는 잉여 정보를 발생시킨다. 잉여 정보는 확률적 가중치로부터 현재 MAP 복호기로 입력되는 APP 값을 빼서 얻어지고 정규화를 위해 다시 그 크기를 1/2로 줄인다. 이렇게 얻어진 값은 메모리에 저장되어 다음 번 반복 복호의 입력으로 사용된다.
상기와 같이 수신 심볼에 대해 0번째부터 N번째까지 순차적으로 이루지는 동시에 N번째부터 0번째까지 역순으로 연산이 이루어진다. 이렇게 함으로써 복호 속도를 2 배 빠르게 할 수 있다. 즉, 일반적으로 CTC 복호기는 매 단위시간마다 2비트를 복호 할 수 있지만 도 4에서와 같이 연산부를 순방향 연산부(200)와 역방향 연산부(300)를 두어 순방향 상태 메트릭과 역방향 상태 메트릭 연산을 동시에 수행하면 상단 확률 가중치 연산부와 하단 확률 가중치 연산부에서 각각 복호 값을 얻을 수 있어 매 단위 시간마다 4비트를 복호 할 수 있다. 또한, 이러한 방법은 일반적인 방법과 비교하여 추가적인 메모리를 필요로 하지도 않는다.
다음, 도 5 내지 도 6을 참조하여 고속 동작에 적합하도록 하기 위한 상태 메트릭 연산부(220, 320)의 하드웨어적인 구성에 대해 상세하게 설명한다.
도 5는 본 발명의 실시예에 따른 MAP 복호기에서 최소 지연을 갖는 상태 메트릭 연산부를 나타내는 도면이고, 도 6은 본 발명의 실시예에 따른 MAP 복호기에서 최소 지연을 갖는 상태 메트릭 정규화부를 나타내는 도면이다.
도 5에서 보면, 상태 메트릭 연산부(220, 320)는 덧셈기(211, 212)와 AND 게이트(213)와 결합기(214) 및 다중화기(215)를 포함한다. 상태 메트릭 연산부(220, 320)는 각각 입력된 이전 상태 메트릭과 가지 메트릭을 더한 값인 a, b, c, d 중 가장 작은 값을 선택한다.
그리고 본 발명에서는 상태 메트릭 연산에 있어서, 수학식 2와 같은 알고리즘을 사용한다.
Figure 112003049554150-pat00007
이와 같이 a, b, c, d 중 최소값을 구하기 위해서 수학식 2에서 같은 알고리즘을 사용하면, 임계 경로가 두 개의 덧셈기(211, 212)로도 상태 메트릭을 연산할 수 있게 된다. 두 개의 덧셈기(211, 212)로부터 출력된 값들은 AND 게이트(213)를 통해 해당 비트가 출력되어 결합기(214)로 입력된다. 결합기(214)는 입력된 3개의 비트를 결합하여 다중화기(215)로 출력한다. 다중화기(215)는 이 3개의 비트열에 따라 최소값을 출력한다.
한편, 1/2 CTC 코드는 총 8개의 상태를 가지고 있고, 매 시점마다 오버플로우 발생 방지를 위해 8개 상태 메트릭 값은 정규화 되어야 한다.
따라서 본 발명의 실시예에 따른 CTC 복호기는 도 6에서와 같이 AND 게이트(216, 217)를 통해 정규화부를 구성한다. 이를 위해 모든 상태 메트릭 값을 필요 비트 수보다 하나를 더 추가하여 사용하고 상태 메트릭 연산 완료 후 각 메트릭 값의 최상위 비트를 검사하여 모든 상태 메트릭의 최상위 비트가 '1’의 값을 가지면 오버플로우가 발생한 것으로 간주하여 모든 최상위 비트를 값을 '0’으로 리셋한다. 이렇게 하면 추가적인 덧셈기 없이 간단하게 구현이 가능하고 더불어 처리 시간도 크게 단축된다.
다음, 본 발명의 실시예에 따른 CTC 복호기에서는 802,16a에서 CTC 내부 인터리빙 알고리즘을 수학식 3과 같이 나타낸다.
Figure 112003049554150-pat00008
수학식 3를 보면, 덧셈 연산으로만 모든 과정이 이루어진다. 따라서, 인터리빙 알고리즘에 따른 하드웨어 구현이 용이하다. 이에 대한 인터리버의 구조 및 동작에 대해 도 7을 참조하여 설명한다.
도 7은 본 발명의 실시예에 따른 인터리버의 구조도이다. 여기서, 인터리버 주소 생성은 수학식 3에서와 같이 두 단계로 나누어진다. 도 7은 이 두 단계 중 두 번째 단계(Step 2)에 관한 것이다.
도 7에서 나타낸 바와 같이, 인터리버(120)는 카운터(21), 다중화기(22, 26, 31, 35), 덧셈기(23, 24, 28, 29, 33), 비교기(25, 30, 34) 및 D 플립플롭(27, 32)을 포함한다.
먼저, 카운터(21)는 0부터 1씩 증가하면서 코드 블록 사이즈의 1/2까지(N-1) 카운트된다. 그리고 다중화기(22)는 카운터 값의 최하위 2비트를 제어값으로 받아 상수 값(const)을 출력한다. 이와 같은 인터리버의 동작은 수학식 3의 B부분의 연산을 수행한다.
그리고 덧셈기(23, 24)와 비교기(25) 및 다중화기(26)를 통해 D 플립플롭(27)으로 입력되어 D+P0에 대해 N으로 모듈로 연산을 수행한다. 이와 같은 인터리버의 동작은 수학식 3의 A부분 연산을 수행한다. 즉, D+P0에서 N을 뺀 후 이 값이 0보다 크면 비교기 출력으로 ‘1’을 발생시키고, 작으면 ‘0’을 발생 시켜 비교기(25)의 출력이 ‘1’이면 (D+P0)-N을 출력하고 ‘0’이면 D+P0를 출력하여 D 플립플롭(27)에서 저장한다.
다음, D 플립플롭(27)의 출력값과 다중화기(22)의 출력값을 입력으로 받아 덧셈기(28, 29)와 비교기(30) 및 다중화기(31)를 통해 D 플립플롭(32)으로 입력되어 수학식 3의 C부분 연산을 수행한다. 이와 같이 인터리버의 연산 동작은 A부분 연산을 위한 인터리버의 동작 과정과 동일하다. 단, 덧셈기(28)에 입력되는 값은 D 플립플롭(27)의 출력값과 다중화기(22)의 출력값이고, 다중화기(31)의 출력값은 Y가 된다.
이후, 덧셈기(33)와 비교기(34) 및 다중화기(35)를 통해 인터리빙 주소가 출 력된다. 이 때, 덧셈기(33)의 입력값은 D 플립플롭(32)의 출력값이다. 이 동작과정 역시 A부분 연산을 위한 동작 과정과 동일하다. 단, 덧셈기(33)의 입력값은 D 플립플롭(32)의 출력값이고 다중화기(35)의 출력값은 최종 인터리빙 주소가 된다.
이와 같이 덧셈기(28)의 입력 값에 대해 모듈로 연산을 수행하는데 덧셈기(28)의 입력값이 어느 특정한 경우에 2*N보다 큰 경우가 발생한다. 이렇게 되면 모듈로 연산에 오류가 발생하므로 이를 방지하기 위해 본 발명의 실시예에서는 동일한 부분(33-35)을 연속적으로 둔다.
이상의 실시예들은 본원 발명을 설명하기 위한 것으로, 본원 발명의 범위는 실시예들에 한정되지 아니하며, 첨부된 청구 범위에 의거하여 정의되는 본원 발명의 범주 내에서 당업자들에 의하여 변형 또는 수정될 수 있다.
본 발명에 의하면, 순방향 연산부와 역방향 연산부를 각각 구성하고 고속 처리가 가능하도록 설계함으로써 복호 속도를 향상시킬 수 있는 효과가 있다.

Claims (22)

  1. 송신단으로부터 CTC(Convolutional Turbo Code) 코드에 의해 부호화하여 전송되는 송신 심볼을 복호화하기 위한 CTC 복호화 장치에 있어서,
    순방향 상태 메트릭과 역방향 상태 메트릭에 대한 연산을 동시에 수행하여 상기 심볼에 대해 하나의 단위 시간당 2 비트를 복호하는 MAP 복호기;
    상기 MAP 복호기의 복호 시에 입력 및 출력을 조정하는 다중화기;
    상기 다중화기로부터 출력된 값을 다음 복호시 적용되는 심볼의 순서와 일치시키는 인터리버/디인터리버;
    상기 MAP 복호기로부터 복호한 후 계산된 대수우도비를 디인터리빙하는 디인터리버; 및
    상기 디인터리버로부터 출력된 값에 기초하여 상기 최종 복호 비트를 추정하는 경판정기를 포함하는 CTC 복호화 장치.
  2. 제 1항에 있어서,
    상기 MAP 복호기는,
    상기 심볼에 대한 현재 복호될 비트값이 4가지 확률에 대한 순방향 상태 메트릭과 역방향 상태 메트릭 연산을 병렬로 수행하고 그 결과값을 각각의 메모리에 저장하여 시간 N/2인 시점부터 확률적 가중치 연산을 수행하는 순방향 연산부 및 역방향 연산부를 포함하고,
    상기 순방향 연산부와 상기 역방향 연산부는 상하 대칭 구조인 것을 특징으로 하는 CTC 복호화 장치.
  3. 제 2항에 있어서,
    상기 순방향 연산부는,
    순차적으로 입력되는 수신심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 가지 메트릭을 수행하는 상단 가지 메트릭 연산부;
    상기 상단 가지 메트릭 연산부의 결과값과 이전 상태 메트릭 값을 이용하여 현재의 상태 메트릭을 계산하는 순방향 상태 메트릭 연산부;
    상기 순방향 상태 메트릭 연산부로부터 계산된 상태 메트릭값을 저장하는 제1 메모리;
    상기 이전 상태 메트릭 값과 상기 가지 메트릭 값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 계산하는 상단 확률적 가중치 연산부; 및
    상기 상단 확률적 가중치 연산부로부터 출력된 확률적 가중치에 기초하여 잉여 정보를 발생시키는 상단 잉여 정보 연산부를 포함하는 CTC 복호화 장치.
  4. 제 3항에 있어서,
    상기 역방향 연산부는,
    역순으로 입력되는 수신심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 가지 메트릭을 수행하는 하단 가지 메트릭 연산부;
    상기 하단 가지 메트릭 연산부의 결과값과 이전 상태 메트릭 값을 이용하여 현재의 상태 메트릭을 계산하는 역방향 상태 메트릭 연산부;
    상기 역방향 상태 메트릭 연산부로부터 계산된 상태 메트릭값을 저장하는 제2 메모리;
    상기 이전 상태 메트릭 값과 상기 하단 가지 메트릭 값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 계산하는 하단 확률적 가중치 연산부; 및
    상기 하단 확률적 가중치 연산부로부터 출력된 확률적 가중치에 기초하여 잉여 정보를 발생시키는 하단 잉여 정보 연산부를 포함하고,
    상기 순방향 상태 메트릭 및 상기 역방향 상태 메트릭을 동시에 수행하는 것을 특징으로 하는 CTC 복호화 장치.
  5. 제 3항 또는 제 4항에 있어서,
    상기 가지 메트릭 연산부는 다음의 계산식에 기초하여 가지 메트릭을 구하는 것을 특징으로 하는 CTC 복호화 장치.
    Figure 112006005714344-pat00009
    여기서,
    Figure 112006005714344-pat00010
    는 시간 k일 때, state s에서 출력되는 가지들 중에서 부호화 비트 a인 가지메트릭이고,
    Figure 112006005714344-pat00011
    는 전단 MAP 복호기에서 생성된 잉여 정보 값,
    Figure 112006005714344-pat00012
    는 수신된 1번째 정보 심볼,
    Figure 112006005714344-pat00013
    는 수신된 2번째 정보 심볼,
    Figure 112006005714344-pat00014
    는 수신된 잉여 심볼임.
  6. 제 3항 또는 제 4항에 있어서,
    상기 상태 메트릭 연산부는,
    상기 4가지 확률에 대한 이전 상태 메트릭 값과 가지 메트릭값을 더한 값으을 출력하는 제1 및 제2 덧셈기;
    상기 제1 및 제2 덧셈기의 출력으로부터 최소 지연을 갖는 값을 출력하는 연산을 하여 출력하는 앤드 게이트;
    상기 앤드 게이트의 연산에 기초하여 출력된 각 비트들이 입력되는 결합기; 및
    상기 결합기로부터 출력된 값과 상기 4가지 확률에 대한 이전 상태 메트릭값과 가지 메트릭값을 더한 값에 기초하여 최소값을 출력하는 제2 다중화기를 포함하는 CTC 복호화 장치.
  7. 제 3항 또는 제 4항에 있어서,
    상기 순방향 상태 메트릭 연산부 또는 역방향 상태 메트릭 연산부는, 출력된 상태 메트릭값을 필요 비트 수보다 더 추가하여 상태 메트릭 연산 완료 후 각 메트릭 값의 최상위 비트를 검사하여 정규화하는 것을 특징으로 하는 CTC 복호화 장치.
  8. 제 7항에 있어서,
    상기 순방향 상태 메트릭 연산부 또는 역방향 상태 메트릭 연산부는 모든 상태 메트릭의 최상위 비트 검사 결과에 기초하여 오버플로우를 판단하고 상기 오버플로우가 발생한 경우, 상기 모든 최상위 비트 값을 특정값으로 리셋하는 것을 특징으로 하는 CTC 복호화 장치.
  9. 제 3항 또는 제 4항에 있어서,
    상기 잉여 정보 연산부는, 상기 계산된 확률적 가중치로부터 입력 사전 확률값(APP)을 뺀 값의 크기를 1/2로 줄이는 것을 특징으로 하는 CTC 복호화 장치.
  10. 제 1항에 있어서,
    상기 인터리버는,
    순차적으로 증가시키면서 CTC 코드 블록 사이즈의 1/2까지 카운트하는 카운터;
    상기 카운트 값의 최하위 2비트를 제어값으로 입력받아 상수값을 출력하는 제1 다중화기;
    상기 제1 다중화기의 출력값과 외부의 데이터값을 입력받아 덧셈연산하는 제1 덧셈기;
    상기 제1 덧셈기 및 상기 제1 다중화기의 출력값을 덧셈 연산하여 출력하는 제2 덧셈기;
    상기 제2 덧셈기로부터 출력된 값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제1 비교기;
    상기 제1 비교기로부터의 출력값과 제1 및 제2 덧셈기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제2 다중화기;
    상기 제2 다중화기의 출력을 입력받는 제1 D 플립플롭;
    상기 상수값과 상기 제1 D 플립플롭을 통한 출력값을 더하는 제3 덧셈기;
    상기 제3 덧셈기 및 상기 제1 다중화기의 상수값을 덧셈 연산하여 출력하는 제4 덧셈기;
    상기 제4 덧셈기로부터의 출력값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제2 비교기;
    상기 제2 비교기로부터의 출력값 및 상기 제3 및 제4 덧셈기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제3 다중화기;
    제3 다중화기로부터 출력된 값을 저장하는 제2 D 플립플롭을 포함하는 것을 특징으로 하는 CTC 복호화 장치.
  11. 제 10항에 있어서,
    상기 인터리버는,
    상기 제1 다중화기로부터의 출력값과 상기 제2 D 플립플롭의 출력값을 입력받아 덧셈연산하는 제5 덧셈기;
    상기 제5 덧셈기의 출력값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제3 비교기; 및
    상기 제5 덧셈기의 입출력값과 상기 제3 비교기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제4 다중화기를 더 포함하며,
    상기 제4 다중화기는 인터리빙 주소를 출력하는 것을 특징으로 하는 CTC 복호화 장치.
  12. 제 1항에 있어서,
    상기 MAP 복호기로부터의 출력을 저장하는 제1 및 제2 메모리부를 더 포함하며,
    첫 번째 복호 수행시, 수신되는 심볼과 상기 제2 메모리부에 저장된 값을 더한 값이 입력되고, 두 번째 복호 수행시, 상기 제1 메모리에 저장된 값이 입력되는 것을 특징으로 하는 CTC 복호화 장치.
  13. 제 1항에 있어서,
    상기 다중화기는,
    상기 MAP 복호기의 입력을 조정하는 제1 및 제2 다중화기; 및
    상기 MAP 복호기의 출력을 조정하는 제3 다중화기를 포함하며,
    상기 MAP 복호기는 제1 및 제2 다중화기로부터 입력되는 값을 입력받아 대수우도비를 출력하고, 상기 MAP 복호기로부터 출력되는 확률적 가중치는 상기 제3 다중화기로 입력되는 것을 특징으로 하는 CTC 복호화 장치.
  14. 제13항에 있어서,
    상기 MAP 복호기 앞단에 위치한 제1 다중화기로의 입력을 조정하는 제1 가산기; 및
    상기 제3 다중화기로의 확률적 가중치 입력을 조정하는 제2 및 제3 가산기를 더 포함하는 CTC 복호화 장치.
  15. 송신단으로부터 CTC(Convolutional Turbo Code) 코드에 의해 부호화하여 전송되는 송신 심볼을 복호화하기 위한 CTC 복호화 방법에 있어서,
    a) 상기 CTC 코드에 의해 부호화되어 수신된 송신 심볼을 멀티플렉싱하여 수신하는 단계;
    b) 상기 a)단계로부터 수신된 심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 제1 확률적 가중치를 계산하는 1차 복조 단계;
    c) 상기 제1 확률적 가중치로부터 출력된 잉여 정보 및 상기 계산된 제1 확률적 가중치를 조정한 값을 입력으로 받아 제2 확률적 가중치를 연산하여 출력하는 2차 복조 단계; 및
    d) 상기 2차 복호 후 출력된 확률적 가중치로부터 경판정하여 최종 복호 비트를 결정하는 단계를 포함하고,
    상기 복호 단계마다 입력 및 출력이 조정되는 것을 특징으로 하며,
    상기 b)단계는,
    ⅰ) 상기 a)단계로부터 수신되는 심볼값에 기초하여 1차 복호에 따른 제1 확률적 가중치를 출력하는 단계;
    ⅱ) 상기 제1 확률적 가중치의 출력값을 조정하여 멀티플렉싱하여 출력하는 단계; 및
    ⅲ) 상기 ⅱ)단계로부터 출력된 값을 인터리빙한 후 저장하는 단계를 포함하는 CTC 복호화 방법.
  16. 삭제
  17. 제 15항에 있어서,
    상기 c)단계는,
    ⅳ) 상기 a)단계로부터 수신되는 심볼값에 기초하여 2차 복호에 따른 제2 확률적 가중치를 출력하는 단계;
    ⅴ) 상기 제2 확률적 가중치의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및
    ⅵ) 상기 ⅴ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함하는 CTC 복호화 방법.
  18. 제 15항에 있어서,
    상기 a) 단계에서, 상기 1차 복호와 상기 2차 복호를 위한 입력값이 각각 다르게 입력되도록 조정하는 것을 특징으로 하는 CTC 복호화 방법.
  19. 제 15항, 제17항 및 제18항 중 어느 한 항에 있어서,
    상기 확률적 가중치 연산 단계는,
    순차적 또는 역순으로 각각 수신되는 심볼의 4가지 확률 경로에 대해 가지 메트릭 연산을 수행하는 가지 메트릭 연산 단계;
    상기 순차적으로 입력되는 수신 심볼에 대한 4가지 확률 경로에 대해 각각 입력된 이전 상태 메트릭 값과 가지 메트릭 값을 더한 값에서 논리 연산에 의해 최소값을 현재의 상태 메트릭 값으로 결정하는 상태 메트릭 연산 단계;
    상기 이전 상태 메트릭값과 상기 가지 메트릭값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 결정하는 확률적 가중치 연산 단계; 및
    상기 확률적 가중치에 기초하여 잉여 정보를 발생시키는 잉여 정보 연산 단계를 포함하며,
    순차적으로 입력되는 수신 심볼의 4가지 확률 경로에 대한 순방향 상태 메트릭값과 상기 역순으로 입력되는 수신 심볼의 4가지 확률 경로에 대한 역방향 상태 메트릭값을 동시에 연산하여 하나의 단위 시간 당 2비트를 복호하는 것을 특징으로 하는 CTC 복호화 방법.
  20. 제 19항에 있어서,
    상기 상태 메트릭 연산 단계에서,
    상기 결정된 모든 상태 메트릭값을 필요 비트수보다 하나 더 추가하는 단계;
    상기 상태 메트릭 연산 완료 후, 각 메트릭값의 최상위 비트를 검사하는 단계; 및
    상기 검사 결과, 수신 심볼의 4가지 확률 경로에 대한 모든 상태 메트릭의 최상위 비트가 제1 값을 가진 경우 모든 최상위 비트의 값을 제2 값으로 리셋하는 단계를 포함하는 CTC 복호화 방법.
  21. 제 20항에 있어서,
    상기 모든 상태 메트릭의 최상위 비트가 제1 값을 가지면, 오버플로우가 발생한 것으로 간주하는 것을 특징으로 하는 CTC 복호화 방법.
  22. 제 19항에 있어서, 상기 잉여 정보 연산 단계는,
    상기 연산된 확률적 가중치로부터 입력되는 사전정보값을 차감하여 잉여 정보를 발생시키는 단계; 및
    상기 발생된 잉여 정보값에 1/2을 곱하여 정규화하는 단계를 포함하는 CTC 복호화 방법.
KR1020030096772A 2003-12-24 2003-12-24 Ctc 복호화 장치 및 방법 KR100612648B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030096772A KR100612648B1 (ko) 2003-12-24 2003-12-24 Ctc 복호화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030096772A KR100612648B1 (ko) 2003-12-24 2003-12-24 Ctc 복호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050065874A KR20050065874A (ko) 2005-06-30
KR100612648B1 true KR100612648B1 (ko) 2006-08-16

Family

ID=37257024

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030096772A KR100612648B1 (ko) 2003-12-24 2003-12-24 Ctc 복호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100612648B1 (ko)

Also Published As

Publication number Publication date
KR20050065874A (ko) 2005-06-30

Similar Documents

Publication Publication Date Title
JP3640924B2 (ja) 移動通信システムにおける構成復号装置及び方法
US5349608A (en) Viterbi ACS unit with renormalization
US6999531B2 (en) Soft-decision decoding of convolutionally encoded codeword
US20040153942A1 (en) Soft input soft output decoder for turbo codes
US20040044946A1 (en) Higher radix Log MAP processor
US20090077330A1 (en) Modified branch metric calculator to reduce interleaver memory and improve performance in a fixed-point turbo decoder
KR101051933B1 (ko) 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산
US7200798B2 (en) Unified serial/parallel concatenated convolutional code decoder architecture and method
US20070113161A1 (en) Cascaded radix architecture for high-speed viterbi decoder
US6614858B1 (en) Limiting range of extrinsic information for iterative decoding
KR20070065831A (ko) 연산 회로
Chen et al. Design of a low power viterbi decoder for wireless communication applications
KR100606023B1 (ko) 고속 터보 복호화 장치
KR100612648B1 (ko) Ctc 복호화 장치 및 방법
CN1129257C (zh) 串行回溯的最大似然解码方法及其使用该方法的解码器
US6757859B1 (en) Parallel turbo trellis-coded modulation
EP1317071A2 (en) Turbo decoder extrinsic normalization
KR100625242B1 (ko) 터보 복호화 장치 및 방법
KR101134806B1 (ko) 부호 복호 방법
US7120851B2 (en) Recursive decoder for switching between normalized and non-normalized probability estimates
Benaissa et al. Reconfigurable hardware architectures for sequential and hybrid decoding
KR100305293B1 (ko) 터보 복호기에서 최소 메모리를 이용하여 대수 근사화 확률비를구하는 방법
CN113258939A (zh) 一种基于MAP算法的卷积Turbo码译码器及译码方法
Han et al. A power efficient reconfigurable max-log-MAP turbo decoder for wireless communication systems
Kim et al. Reduction of computational complexity in two-step SOVA decoder for turbo code

Legal Events

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

Payment date: 20120719

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130719

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150717

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160719

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180716

Year of fee payment: 13