KR20020066556A - 터보 코드 복호화 장치 및 방법 - Google Patents

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

Info

Publication number
KR20020066556A
KR20020066556A KR1020010006800A KR20010006800A KR20020066556A KR 20020066556 A KR20020066556 A KR 20020066556A KR 1020010006800 A KR1020010006800 A KR 1020010006800A KR 20010006800 A KR20010006800 A KR 20010006800A KR 20020066556 A KR20020066556 A KR 20020066556A
Authority
KR
South Korea
Prior art keywords
memory
metric
decoder
llr
turbo
Prior art date
Application number
KR1020010006800A
Other languages
English (en)
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 KR1020010006800A priority Critical patent/KR20020066556A/ko
Publication of KR20020066556A publication Critical patent/KR20020066556A/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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Abstract

본 발명은 터보(TURBO) 디코더 장치를 VLSI로 구현하기 위한 복호화 방법 및 하드웨어 장치에 관한 것으로서, 터보 부호화(encoding)된 신호를 복호화 하기 위한 방법으로 로그를 취한 맥시멈 최대 사후 (Max-Log-MAP) 방식을 사용한 복호화 방법과 이를 수행하는 과정, 그리고 Max-Log-MAP 복호화기의 하드웨어 구조와 이를 이용한 터보 디코더의 하드웨어 구조에 관한 것이다. 구체적으로 본 발명은 반복적 복호화를 수행함에 따라서 성능이 향상되는 터보 디코더의 복호화의 방법으로서 메모리 크기와 지연을 최소화하기 위한 복호화 방법 및 복호화기의 구조, 그리고 터보 복호화 과정을 수행하는 선입선출(FIFO) 구조의 지연기(delay), LLR값을 저장하는 메모리, 콘트롤러, Max-Log-MAP 복호화기와 부가적 회로로 이루어진 터보 디코더 구조로 이루어져 있다.

Description

터보 코드 복호화 장치 및 방법 {A method and apparatus for implementing TURBO decoder}
본 발명은 터보(TURBO) 코드 복호화를 수행하기 위한 방법과 이를이용하여 터보 디코더를 구현하기 위한 하드웨어 장치에 관한 것으로서, 고속으로 멀티미디어 데이터를 신뢰성 있게 전송할 수 있는 차세대 이동통신시스템의 전방향 에러 정정 (FEC:Forward Error Correction) 코드로 최근 각광받고 있는 터보 디코더를 최소화한 메모리 사이즈와 저소비 전력의 초대규모집적회로(VLSI)로 구현하기 위한 MAP(Maximum A posteriori Probability:MAP)알고리즘을 사용하는 터보코드 디코딩 방법과 이를 구현하기 위한 터보코드 디코더장치에 관한 것이다.
기본적으로 터보 디코더는 두 개 이상의 요소 디코더로 이루어져 있으며 상기 요소 디코더는 대표적으로 연성출력 비터비 알고리듬(Soft-output Viterbi Algorithm;SOVA)을 이용한 방식 혹은 최대사후방식(Maximum A posterioriProbability;MAP)을 이용한 방식으로서 반복 복호(Iterative decoding)를 통해서 원래의 정보를 복원하게 된다.
연성출력 비터비 알고리듬(Soft-output Viterbi Algorithm;SOVA)을 이용한 디코더는 비터비 복호기(Viterbi decoder)를 연성출력(Soft-output)으로 확장한 것으로서 구현은 간단하나 최대사후방식(Maximum A posteriori Probability;MAP)을 이용한 복호기(decoder)에 비하여 비트당 에러율(BitErrorRate,BER)성능이 떨어지는 문제점이 있어서 하드웨어(H/W)의 구현은 복잡하지만 BER성능이 좋은 MAP알고리듬을 이용한 복호기가 많이 사용되고 있는 추세이다.
일반적인 터보 코드의 MAP 복호화 과정을 간략하게 설명하면 각 요소 디코더에서는 채널 입력과 다른 요소 디코더에서 생성된 출력값인 LLR(Log-Likelihood Ratio)값이 입력으로 들어와 내부의 LLR을 생성하게 되며 이렇게 생성된 LLR값이 다른 요소 디코더에서 입력 수신신호 이외에 추가적인 LLR값으로 이용되어 새로운 복호화기에서 좀 더 높은 신뢰도의 LLR값이 생성되는 것을 돕게 된다. 이러한 복호화 과정을 반복함에 따라서 높은 신뢰도를 갖는 LLR값이 생성되고 특정 회수만큼 반복 복호화를 수행한 뒤에 경성판정(hard decision)을 수행해서 최종적으로 복호화된 값을 얻게 된다. 이와 같이 터보 디코더는 두 개이상의 요소 디코더를 내부에 포함하여 각 요소 부호화기에서 생성된 LLR값을 서로 주고 받으며 반복적 복호화 과정을 수행해서 복호화된 출력을 내보내게 되며 이러한 반복 복호화 과정을 통해 점차 에러 정정 능력이 향상되게 된다.
앞으로 무선 이동통신 분야는 단순한 음성신호에서 벗어나 복잡한 영상신호,다양한 데이터 통신 서비스를 수행하기 위한 방식으로 변화, 발전해 갈 것이기 때문에 기존의 통신 시스템보다 높은 비트당 에러율을 갖는 통신 시스템이 요구되고 따라서 보다 강력하고 우수한 에러 정정 성능을 갖는 전방향 에러 정정 부호가 필요하다. 터보 코드는 1993년 Berrou에 의하여 발표된 이래 전송율과 비트당 에러율에서 샤논 한계(Shannon limit)에 거의 근접한 성능으로 지금까지의 오류정정부호 중 가장 우수한 것으로 많은 연구가 진행되고 있으며 이러한 추세에 발맞추어 터보 디코더는 비터비 디코더(Viterbi decoder)와 함께 제 3세대 이동통신 시스템에서 전방향 에러정정 시스템의 표준이 되었다. 특히 터보 디코더는 고속의 영상신호, 데이터 서비스를 수행하는 경우에 많이 사용될 것으로 사용될 것으로 예견되고 있다. 그러나 터보 복호화 방식을 하드웨어로 구현하고자 할 경우에 알고리듬의 복잡도로 인한 연산량의 문제, 메모리 사이즈, 그리고 메모리 관리의 복잡성과 반복적 복호화로 인한 시스템 크기의 증가 그리고 이로 인한 높은 전력소모 등으로 인하여 현재까지 상품화된 단일 칩으로 된 제품은 발표되지 않고 있는 실정이다. 따라서 터보코드는 차세대 이동통신인 IMT-2000에서 고속 통신 서비스의 표준이 되었기 때문에 현재 여러 통신업체에서 터보 디코더의 개발이 진행 중이며 제 3세대 이동통신 시장에서 상품성과 경쟁력을 갖춘 제품을 만들기 위해서는 최소화된 면적과 저소비 전력의 효율적인 IC로 만드는 것이 무엇보다 경쟁력 있고 상품성 있는 제품을 만들기 위한 중요한 과제이다.
본 발명은 전술한 문제점을 해소하기 위하여 안출한 것으로서, 기지국 장비에서 단일 집적회로로 사용되거나 또는 단말용 통신 시스템 IC에서 하나의 코어(core) 블록으로 사용하기 위한 터보 부호화된 신호를 고속으로 복호화 하는 과정, 그리고 이를 구현하기 위한 효율적인 하드웨어 구조를 제시한 것으로서 알파변수와 베타 변수의 초기화 부분을 반복 루프(loop)안에 추가하여 단일한 회로로 구성 가능하게 하였으며, 델타 메모리와 알파 메모리를 두어 수신신호의 입력에 따라서 델타 변수와 알파 변수를 구하고 베타 메모리와 LLR의 메모리가 필요 없는 구조의 Max-Log-MAP 디코더를 제시하였으며, 콘벌루션 부호(Convolution code)의 특징을 이용하여 적절한 윈도우를 두어서 베타 메트릭값을 구하는 구조로 만들어 델타 메모리와 알파 메모리의 사이즈를 줄였으며 하나의 Max-Log-MAP 복호화기만으로도 터보 복호화를 수행할 수 있도록 터보 복호화기를 설계하여 최소화된 메모리, 최소의 조합회로로 고속의 복호화가 가능한 터보 디코더 장치를 구현 가능하게 하였다.
도 1은 일반적인 터보 디코더의 전체 구성도
도 2는 일반적인 최대사후 방식 디코더의 하드웨어 구성도
도 3은 본 발명의 최대사후 방식 디코더의 하드웨어 구성도
도 4는 본 발명의 최대사후 방식 디코더 데이터의 타이밍도
도 5는 전체적인 1회 반복 복호화를 수행하는 터보 디코더의 하드웨
어 장치의 구성도
〈도면의 주요 부분에 대한 부호의 설명〉
10:디인터리버(Deinterleaver) 20:복호화기 30:인터리버
40:복호화기 50:하드리미터
60:알파메트릭 계산회로 70:알파 메모리
80:입력된 가지메트릭값 지정 메모리
90:베타메트릭 계산회로 100:LLR생성회로
110:알파메트릭 계산회로 120:알파메모리
130:가지메트릭값 저장메모리 140,150:베타메트릭 계산회로
160:멀티플렉서 170:LLR생성회로 180:후입선출메모리
190:콘트롤러 200:선입선출구조메모리블록
210:복호화기 220, 230:LLR메모리
240,250:멀티플렉서 260:뺄셈기 270:덧셈기
본 발명의 목적은 첫 번째로, 본 발명의 터보 디코더 장치에서 Max-log-MAP 알고리듬과 슬라이딩 윈도우 방식을 이용하여 최소화한 메모리 사이즈의 요소 복호화기를 구현하기 위한 방법을 제공하고 두 번째로는, 하나의 요소 복호화기와 두 개의 LLR 메모리, 선입선출FIFO(First In First Out)구조 등을 가지고 반복 복호화를 수행하는 터보 디코더의 하드웨어 구조로 된 터보코드 디코더장치를 제공함에목적이 있다.
다음은 잘 알려진 MAP방식의 연산량을 줄이는 알고리듬으로서 Max-log-MAP알고리듬의 절차가 (1)-(5)식에 나타나 있다.
1. 수신된 입력신호와 외부 정보(extrinsic information)로부터
가지 메트릭(branchmetrlc)을 구한다.
(1)
2. 순방향 상태 메트릭(forward state metric)을 구한다.
A_k (m) `=` E_{j=0}^{1} [ D_j ( R_k-1 , S_b^j (m) ) + A_{k-1} ( S_b^j (m) ) ] `(2)
3. 역방향 상태 메트릭(backward state metric)을 구한다.
B_k (m) `=` E_{j=0}^{1} [ ` B_{k+1} ( S_f^j (m) ) + D_j ( R_k , m ) ] ` (3)
4. LLR(Log-Likelihood Ratio)을 구한다.
L ( d_k ) `=` E_m^{M-1} [ A_k-1 (m) + B_k (S_f^1 (m) ) + D_1 (R_k-1, m) ] - E_m^{M-1} [ A_k^0 (m) + B_k^0 (m) + D_0 ( R_k-1 , m ) ] `
(4)
참고로 Max-log-MAP 알고리듬에서 min함수는 다음과 같이 정의된다.
(5)
수학식 1은 가지 메트릭을 구하기 위한 수식이고, 수학식 2는 순방향 상태 메트릭인 알파 메트릭을 구하기 위한 수식이며, 수학식 3은 역방향 상태 메트릭인 베타 메트릭을 구하기 위한 수식이며, 수학식 4는 LLR을 구하기 위한 수식에 해당한다. 수학식 2에 나타난 알파 메트릭의 계산식은 현재 상태의 값으로부터 다음 상태의 값을 알아내는 형태로 이루어져 있고, 수학식 3에서 보는 바와 같이 베타 메트릭을 구하는 식은 나중 상태의 값으로부터 현재 상태의 값을 알아내는 과정으로 되어있다. 또한 수학식 4에서 나타난 LLR을 구하기 위한 식은 알파 메트릭, 베타 메트릭, 그리고 가지 메트릭을 더한 값을 모든 상태에 해당하는 식을 구하여 LLR값을 구해내는 구조로 이루어져 있다. 알파 메트릭과 달리 베타 메트릭은 역방향부터 메트릭을 구하는 구조로 되어있기 때문에 LLR값을 구하려면 일반적으로 가지 메트릭과 계산된 알파 메트릭을 모두 저장한 뒤에 베타 메트릭을 구하며 LLR값을 구하는 구조로 되어있다. 따라서 MAP 디코더에서 복호화 과정의 순서는 가지 메트릭과 알파 메트릭을 동시에 구하여 저장하고, 이후 베타 메트릭을 구하여 곧바로 LLR을 구하는 순서로 데이터 경로(data path)가 구성된다.
도 2는 일반적인 최대사후 방식 디코더( MAP Decoder)의 하드웨어 구성도로서, 블록(60)은 알파 메트릭 계산회로로서 입력신호로부터 알파 메트릭을 계산하는 역할을 수행한다. 계산된 알파 메트릭은 블록(70)의 알파 메모리에 저장된다. 블록(80)은 입력된 가지 메트릭 값을 저장하기 메모리이고 블록(90)은 베타 메트릭 계산회로 블록으로서 수학식 3에서 보여지는 베타 메트릭의 반복적 계산을 수행하는 역할을 수행한다. 블록(100)은 LLR값을 구하기 위한 블록으로서 가지 메트릭, 베타 메트릭, 그리고 알파 메모리로부터 읽은 알파 메트릭값으로 부터 LLR값을 구하는 역할을 수행한다. 실제로 한 패킷의 데이터가 모두 들어왔을 경우에 베타 메트릭이 거꾸로 계산되기 시작하기 때문에 블록사이즈를 N으로 가정시에 일반적으로는 MAP디코더에서 N사이클의 시스템 지연이 발생하며 블록사이즈에 비례하여 가지 메트릭과 알파 메트릭을 저장하기 위한 메모리가 필요하다. 이는 블록사이즈가 큰 경우에 상당한 지연이 되는 동시에 메모리 사이즈를 크게 차지하므로 VLSI로 구현하는 데 있어서 부담으로 작용한다.
이를 해결하기 위하여 본 발명에서는 콘벌루션 코드의 특징을 이용하여 적은 지연시간과 최소화된 메모리를 갖는 복호화 방법을 제시한다.
일반적으로 콘벌루션 코드에서 구속장(constraint length)길이의 4-5배 정도 경로를 진행하는 경우에 대개 경로가 수렴하는 것으로 잘 알려져 있다. 실제 통신시스템에서 블록 사이즈는 작게는 구속장의 길이의 수십배에서 크게는 수백배에 달하므로 블록 사이즈만큼의 메모리를 두지 않고 구속장 길이의 적절한 배수만큼으로 선정할 때 성능에 큰 저하 없이 아주 작은 메모리 사이즈로 복호화기를 구성할 수 있다. 따라서 구속장의 크기를 고려하여 적절한 경로의 길이를 설정하는 경우에 적은 메모리 사이즈로 복호화기를 구현할 수 있다. 이때 역방향 메트릭인 베타 메트릭의 마지막을 정확하게 알지 못하는 상태에서 베타 메트릭을 구하게 되므로 베타 메트릭값이 수렴하는 구간을 설정한 후에 이 구간을 넘어서면 유효한 메트릭 값으로 사용한다. 이를 위하여 두 개의 베타 메트릭 계산회로를 사용하는데 하나의 베타 메트릭 회로(140)는 베타 메트릭값의 수렴을 위하여 사용하고 또 하나의 베타 메트릭 회로(150)는 LLR값을 얻어내기 위한 유효한 베타 메트릭값을 생성하기 위하여 사용한다. 그리고 베타 메트릭 회로(140)(150)의 후단에 멀티플렉서(multiplexer)(160)를 두어 두 개의 베타 메트릭 회로(140)(150)의 출력을 교대로 LLR 생성회로(170)의 입력으로 사용한다. LLR 생성회로(170)에서는 알파 메트릭, 베타 메트릭 그리고 가지 메트릭값을 받아서 수학식 4에 도시된 바와 같이 LLR값을 계산해낸다.
본 발명의 구성 및 작용을 도면에 의하여 상세하게 설명하면 다음과 같다.
도 1은 일반적인 터보 디코더 하드웨어의 전체 구성도로서 블록(20)과 블록(40)은 각각 요소 복호화기에 해당하여 정순서의 복호화와 흩뜨려진 순서의 복호화를 각각 수행하게 된다. 블록(30)은 데이터를 흐트리는 인터리버(Interleaver), 블록(10)은 흐트러진 데이터를 다시 정순서로 정렬하기 위한 디인터리버(Deinterleaver)에 각각 해당한다. 그리고 블록(50)은 하드리미터(HardLimiter)로써 최종 반복을 거친 LLR값을 임계치를 중심으로 잘라서 최종 복호화된 신호를 얻어낸다.
도 2는 일반적인 MAP복호화기의 구성도로서 블록(60)은 알파 메트릭 계산회로이고 블록(70)은 알파 메트릭 저장 메모리이며, 블록(80)은 가지 메트릭 저장 메모리, 블록 (90)은 베타 메트릭 계산회로, 블록 (100)은 LLR 생성회로를 각각 나타낸다. 이와 같은 방식으로 하드웨어를 구성할 경우에 가지 메트릭 저장 메모리는블록사이즈 크기의 두배의 메모리가, 알파 메트릭 저장 메모리는 블록사이즈 크기의 상태수 배만큼의 메모리가 필요하게 되어 메모리 면에서 비효율적이 된다.
따라서 전술한 문제점을 해결하기 위하여 본 발명에서는 도 3에 도시된 바와 같이 구조를 개선하여, 블록 (140)과 블록 (150)의 베타 메트릭을 수렴하기 위한 용도와 베타 메트릭을 실제로 계산하기 위한 용도의 두 개의 베타 메트릭 계산회로와 블록(160)의 멀티플렉서를 사용하여 실제 유효한 베타 메트릭이 나오는 블록을 선택하여 블록 (170)의 LLR 생성회로로 데이터를 전송하는 형태로 베타 메트릭 생성경로가 형성된다. 이때 블록사이즈에 비하여 아주 작은 크기의 크기를 갖는 가지 메트릭 저장 메모리와 알파메트릭 저장 메모리를 사용하여 시스템을 구성할 수 있다. 이를 도 4에 나타난 타이밍도에 의해서 설명하면 입력에 대해 정순서의 알파 메트릭은 계속 계산이 되며 적어도 두 개의 윈도우 블록만큼 수행되었을 때 첫 번째 베타 메트릭 계산회로가 역방향으로 수렴을 시작한다. 그리고 두 번째 베타 메트릭 계산회로는 세 번째 윈도우 블록부터 수렴을 시작한다. 이때 첫 번째 베타 메트릭 계산회로는 수렴을 모두 마치고 유효한 베타 메트릭을 계산해 내기 시작한다. 즉 두 개의 베타 메트릭 계산회로가 경로 수렴(path merging) 작용과 유효한 베타값 생성 작용을 교대로 반복하게 된다. LLR값이 계산되어 나오지만 이때 베타 메트릭을 기준으로 생성되었기 때문에 각 윈도우 블록에서 LLR값은 거꾸로 나오게 된다. 따라서 이를 정순서로 바꾸어주는 역할이 필요하다. 따라서 블록 (180)에서는 역순서로 나온 LLR값을 각 윈도우 블록에서 정순서로 바꾸어 주기 위한 후입선출구조의 LIFO(Last-in Firs-tout)회로가 사용된다. 이와 같이 교차적인 윈도우 방식으로 Max-Log-MAP 복호화기를 구성할 때 후입선출구조의 LIFO회로와 베타 메트릭 계산회로가 추가적으로 필요하기는 하지만 메모리의 사이즈가 줄어드는 것을 고려할 때 하드웨어 비용면에서 훨씬 효과적이다.
블록(60)의 알파 메트릭 생성회로에서 생성된 알파 메트릭 값은 계속해서 커지기 때문에 리스케일링(rescaling)을 통해서 값이 계속해서 커지지 않도록 해주어야 한다. 이때 메트릭의 최소값을 구해서 이 값을 빼주는 형태로 리스케일링을 하는데 메트릭을 구하고 메트릭의 최소값을 구하는 부분이 합쳐서 임계시간(critical time)을 증가시키고 결과적으로 회로의 동작속도를 늦추게 된다. 그러므로 임계시간을 감소시키기 위해서는 메트릭의 최소값을 구하는 부분과 알파메트릭을 구하는 부분을 따로 구성하는 것이 필요하다.
두 번째로는 본 발명에서 제안한 Max-Log-MAP 요소 디코더를 사용하여 최소화된 면적, 저소비 전력의 터보 복호화기의 하드웨어 구조를 제시한다.
일반적으로는 두 개의 요소 디코더를 사용하여 하드웨어를 구성하게 되지만 본 발명에서는 도 5 에서 보는 바와 같이 하나의 요소 복호화기만을 사용하여 터보 복호화기를 구성한다. 블록(190)은 터보 복호화기를 제어하기 위한 콘트롤러이며 블록(200)은 선입선출 구조를 갖는 메모리 블록이다. 블록(210)은 요소 복호화기이며 블록(220)과 (230)은 각각 LLR메모리에 해당하며 블록(240)과 (250)블록은 멀티플렉서이고 (260)은 뺄셈기, 블록(270)은 덧셈기이다. 입력값은 이전 복호화 단계의 외부정보와 더해진 뒤에 요소복호화기의 입력으로 들어간다. 이때 다음 단계의 외부 정보값(extrinsic information)을 생성하는데 사용하기 위하여 블록 (200)의선입선출 메모리 블록이 사용된다. 요소 복호화기(210)를 거쳐 복호화된 LLR값은 출력으로 바로 나가는 동시에 입력값을 감해서 다음 복호화 단계에서 사용되기 위한 외부 정보를 만들게 된다. 생성된 외부 정보값은 LLR 메모리에 저장되게 되는데 이때 현재 복호화 과정을 수행하는 데 사용되는 LLR 메모리(220)와 다음 복호화 단계에 사용하기 위한 LLR 메모리(230)를 구분하기 위하여 블록(220), (230)에서 보눈바와 같이 각각 두 개의 LLR 메모리(220)(230)가 사용된다. 따라서 LLR 메모리(220)(230)는 교대로 읽기와 쓰기 동작을 반복하게 된다. 그리고 이러한 복호화 과정의 제어 신호와 어드레스 신호는 모두 블록 (190)의 콘트롤러에서 생성되게 된다. 이와 같이 터보코드 복호화기를 구성하므로서 하나의 요소 복호화기(210)만을 사용하여 최소화된 사이즈의 터보코드 복호화기를 구현한다.
또한 이 회로를 구현하는데 있어서 각 기능 블록을 파이프 라인을 이용한 시분할 (Time sharing)구조로 설계 하고 회로내부에서 사용하는 클럭의 주파수는 실제 데이터 주파수 보다 2 의 자승배 만큼의 고속 주파수를 사용하고 이를 필요한 대로 분주하여 처리한다. 이는 공간적으로 병렬적으로 처리하는 블록을 직력화 하는 것이 가능하게 함으로서 터보 복호화기의 하드웨어적인 크기를 줄이고 결과적으로 저전력의 VLSI 구조를 만들 수 있게 된다.
이와 같이 본 발명의 터보 디코더 장치를 구현하기 위한 방법에서는 첫번째로, MAP방식의 복호화기를 구성함에 있어 콘벌루션 코드의 특성을 이용하여 구속장 길이의 정수 배만큼의 가지 메트릭과 알파 메트릭을 위한 메모리를 설정하고 경로수렴과 메트릭값 생성을 위한 두개의 베타 메트릭 생성회로를 가지고 역순으로 베타 메트릭을 생성하는 구조를 갖도록 복호화기를 구성함으로 지연시간을 줄여 실제로 복호화 속도를 높이는 동시에 가지 메트릭과 알파 메트릭을 위한 메모리 사이즈를 상당히 줄일 수 있다.
또한 반복적으로 LLR값을 읽고 쓰기 위한 두 개의 LLR메모리와 단일한 요소 복호화기를 사용하고 콘트롤러에서 모든 어드레스 신호와 제어신호를 발생시키는 구조로 터보코드 복호화기를 설계하여 하나만의 요소 복호화기로 터보 복호화를 수행시킬 수 있도록 하였다. 이러한 구조는 적은 게이트 사이즈로 저소비 전력 설계를 가능하게 하였으며 데이터 클럭의 상태수 만큼의 배수인 시스템 클럭을 사용하여 고속의 복호화를 가능하게 하였다.

Claims (8)

  1. 통신 시스템에서 터보 부호화된 신호를 고속으로 복호화 하는 터보 코드 디코더장치에 있어서,
    알파 메트릭 계산회로(110), 알파 메트릭 메모리(120), 가지 메트릭 메모리(130), 베타 메트릭 생성회로(140)(150), 멀티플렉서(160), LLR생성회로(170)를 구비하여 입력의 순서와 거꾸로 복호화 출력이 나오는 구조의 Max-Log-MAP 복호화기로 요소 복호화기(210)를 형성하고, 거꾸로 된 복호화 출력을 정순서로 바꾸는 후입선출 구조의 메모리(180), 상기한 하나의 요소 복호화기(210)와 두 개의 LLR메모리(220)(230), 선입선출 구조의 메모리(200), 덧셈기(270), 뺄셈기(260), 콘트롤러(190)로 구성되어 최소화된 크기로 저소비전력의 고속 복호화를 수행함을 특징으로 하는 터보코드 복호화 장치
  2. 제 1항에 있어서, 요소 복호화기(210)는 Max-Log-MAP 알고리듬을 적용하여 전단에 가지 메트릭 메모리(130)와 알파 메트릭 생성회로(110), 알파 메트릭 저장을 위한 메모리(120)를 형성시켜 입력 순서대로 처리하고 저장한 다음, 베타 메트릭 계산회로(150)와 LLR값 생성회로(170)를 후단에 형성하여 설정한 적절한 윈도우 사이즈 만큼의 입력이 수신된 시점부터 역방향으로 경로 수렴과 베타 메트릭을 생성하는 경로 구조로 형성되어 지연시간을 줄이고 메모리 사이즈를 줄여서 고속의 복호화를 수행하는 구성의 MAP 디코더 장치임을 특징으로 하는 터보코드 복호화 장치
  3. 제 2항에 있어서, 콘벌루션 코드의 특성을 이용하여 설정한 윈도우 크기의 네배 만큼의 가지 메트릭 메모리(130)와 알파 메트릭 메모리(120)를 전단에 형성하고, 후단으로 경로수렴을 위한 하나의 베타 메트릭 생성회로(140)와 유효한 베타 메트릭 값을 구하기 위하여 또 다른 하나의 베타 메트릭 생성회로(150)로 구성된 두 개의 베타 메트릭 생성회로로 형성되는 MAP디코더 장치임을 특징으로 하는 터보코드 복호화 장치
  4. 제 2항과 3항에 있어서, 각 윈도우에서 역순으로 생성된 베타 메트릭 값으로 인하여 역순으로 나온 LLR값을 정순서로 바꾸어 주기 위하여 후입선출 구조(LIFO)의메모리(180)를 형성하여 전체적인 복호화 지연이 윈도우의 네배만큼만 나타나는 구성의 MAP디코더 장치임을 특징으로 하는 터보코드 복호화 장치
  5. 제 2항에 있어서, 복호화 처리 속도를 높이기 위하여 알파 메트릭의 생성시에 리스케일링(rescaling)시 필요한 메트릭의 최소값을 구하기 위한 부분과 알파 메트릭을 구하는 부분을 따로 구성하여 알파 메트릭 생성의 임계경로(critical path)를 줄인 알파 메트릭 생성회로 구성되는 MAP 디코더 장치임을 특징으로 하는 터보코드 복호화 장치
  6. 제 1항에 있어서, 터보 복호화시 하나의 요소 복호화기만으로 터보 복호화를 수행하기 위하여 현재 입력을 생성하는 값을 읽기 위하여 사용하는 LLR메모리(220)와 현재 출력을 저장하기 위하여 사용하는 LLR메모리(230)로 된 두 개의 LLR메모리를 사용하여 읽기와 쓰기 동작을 교대로 수행하며, 생성된 LLR값으로부터 외부정보를 얻어내기 위하여 선입선출 구조의 메모리(200)를 형성하므로서 터보 복호화기의 메모리를 최소화시킴을 특징으로 하는 터보코드 복호화 장치
  7. 제 1 항과 2항에 있어서, 제어신호와 어드레스 신호는 모두 콘트롤러(190)에서 발생시키고 요소디코더(210)와 LLR메모리(220)(230), 선입선출 메모리 블록(270), 기타 회로는 콘트롤러(190)의 신호에 의하여 제어되게 함을 특징으로 하는 터보코드 복호화 방법
  8. 제 1항과 7항에 있어서, 터보 복호화기의 하드웨어 크기를 줄이기 위하여 각 기능 블록을 시분할 구조로 설계하여 실제 데이터 입력 클럭보다 2의 자승배만큼 빠른 클럭을 사용하여 이를 분주하여 처리하는 부분적 직렬화 방법으로 됨을 특징으로 하는 터보코드 복호화 방법
KR1020010006800A 2001-02-12 2001-02-12 터보 코드 복호화 장치 및 방법 KR20020066556A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010006800A KR20020066556A (ko) 2001-02-12 2001-02-12 터보 코드 복호화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010006800A KR20020066556A (ko) 2001-02-12 2001-02-12 터보 코드 복호화 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20020066556A true KR20020066556A (ko) 2002-08-19

Family

ID=27694074

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010006800A KR20020066556A (ko) 2001-02-12 2001-02-12 터보 코드 복호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20020066556A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703307B1 (ko) * 2002-08-06 2007-04-03 삼성전자주식회사 터보 복호화 장치 및 방법
KR100715536B1 (ko) * 2005-06-30 2007-05-08 삼성전자주식회사 이온 발생기와 그 제어방법 및 이온발생장치를 구비한세탁기

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983384A (en) * 1997-04-21 1999-11-09 General Electric Company Turbo-coding with staged data transmission and processing
KR19990081470A (ko) * 1998-04-30 1999-11-15 곽치영 터보복호기의 반복복호 종료 방법 및 그 복호기
KR19990080592A (ko) * 1998-04-18 1999-11-15 윤종용 통신시스템의 반복 복호 제어기를 이용한 채널 부호/복호 장치및 방법
KR20000001483A (ko) * 1998-06-11 2000-01-15 정명식 다중테일을 갖는 터보코드 및 그의 부호화/복호화방법 및 그를이용한 부호기/복호기
KR20000021055A (ko) * 1998-09-25 2000-04-15 윤덕용 터보코드의 가중치를 준 병렬형 복호화 방법및 그 장치
KR20010008096A (ko) * 2000-11-08 2001-02-05 안병엽 터보 코드용 인코더 및 디코더

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983384A (en) * 1997-04-21 1999-11-09 General Electric Company Turbo-coding with staged data transmission and processing
KR19990080592A (ko) * 1998-04-18 1999-11-15 윤종용 통신시스템의 반복 복호 제어기를 이용한 채널 부호/복호 장치및 방법
KR19990081470A (ko) * 1998-04-30 1999-11-15 곽치영 터보복호기의 반복복호 종료 방법 및 그 복호기
KR20000001483A (ko) * 1998-06-11 2000-01-15 정명식 다중테일을 갖는 터보코드 및 그의 부호화/복호화방법 및 그를이용한 부호기/복호기
KR20000021055A (ko) * 1998-09-25 2000-04-15 윤덕용 터보코드의 가중치를 준 병렬형 복호화 방법및 그 장치
KR20010008096A (ko) * 2000-11-08 2001-02-05 안병엽 터보 코드용 인코더 및 디코더

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703307B1 (ko) * 2002-08-06 2007-04-03 삼성전자주식회사 터보 복호화 장치 및 방법
KR100715536B1 (ko) * 2005-06-30 2007-05-08 삼성전자주식회사 이온 발생기와 그 제어방법 및 이온발생장치를 구비한세탁기

Similar Documents

Publication Publication Date Title
US7467347B2 (en) Method for decoding error correcting code, its program and its device
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
US20030097633A1 (en) High speed turbo codes decoder for 3G using pipelined SISO Log-Map decoders architecture
US7549113B2 (en) Turbo decoder, turbo decoding method, and operating program of same
KR20080098391A (ko) 양방향 슬라이딩 윈도우 아키텍처를 갖는 map 디코더
JP3246484B2 (ja) ターボデコーダ
US6799295B2 (en) High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture
KR20010072498A (ko) 맵 디코더용 분할 디인터리버 메모리
US6434203B1 (en) Memory architecture for map decoder
US7246298B2 (en) Unified viterbi/turbo decoder for mobile communication systems
US20090094505A1 (en) High speed turbo codes decoder for 3g using pipelined siso log-map decoders architecture
US7584389B2 (en) Turbo decoding apparatus and method
WO2002021701A1 (en) Soft output decoder for convolutional codes
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
KR100390416B1 (ko) 터보 디코딩 방법
Hong et al. VLSI design and implementation of low-complexity adaptive turbo-code encoder and decoder for wireless mobile communication applications
KR20030036845A (ko) 트렐리스에 기초한 채널 부호화를 위한 복호기
CA2340366C (en) Memory architecture for map decoder
US7178090B2 (en) Error correction code decoding device
US7584407B2 (en) Decoder and method for performing decoding operation using map algorithm in mobile communication system
JP3823731B2 (ja) 誤り訂正復号器
KR20020066556A (ko) 터보 코드 복호화 장치 및 방법
Suzuki et al. AK= 3, 2 Mbps low power turbo decoder for 3/sup rd/generation W-CDMA systems
Marín et al. Hardware architecture of MAP algorithm for turbo codes implemented in a FPGA
KR100305293B1 (ko) 터보 복호기에서 최소 메모리를 이용하여 대수 근사화 확률비를구하는 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application