KR20090091254A - 터보 디코더 장치 및 방법 - Google Patents

터보 디코더 장치 및 방법 Download PDF

Info

Publication number
KR20090091254A
KR20090091254A KR1020080016550A KR20080016550A KR20090091254A KR 20090091254 A KR20090091254 A KR 20090091254A KR 1020080016550 A KR1020080016550 A KR 1020080016550A KR 20080016550 A KR20080016550 A KR 20080016550A KR 20090091254 A KR20090091254 A KR 20090091254A
Authority
KR
South Korea
Prior art keywords
decoder
bit
signal
bits
memory
Prior art date
Application number
KR1020080016550A
Other languages
English (en)
Other versions
KR101442837B1 (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 KR1020080016550A priority Critical patent/KR101442837B1/ko
Priority to US12/262,844 priority patent/US8136006B2/en
Publication of KR20090091254A publication Critical patent/KR20090091254A/ko
Application granted granted Critical
Publication of KR101442837B1 publication Critical patent/KR101442837B1/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/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
    • H03M13/296Particular turbo code structure
    • H03M13/2969Non-binary turbo codes
    • 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/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/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • 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
    • H03M13/6588Compression or short representation of variables

Landscapes

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

Abstract

본 발명은 터보 복호화 장치 및 방법에 관한 것으로 수신된 신호와 디코더로부터 출력된 사전 부호화 정보를 입력받아 디코딩하여 로그 근사율을 출력하는 하나 이상의 디코더와, 상기 디코더로부터 출력된 로그 근사율 값을 소정 비트로 변환하여 출력하는 변환기와, 상기 변환기로부터 출력되는 소정 비트의 로그 근사율 값을 저장하는 메모리와, 상기 메모리에 저장된 소정 비트의 로그 근사율 신호를 원래 비트폭을 가지는 신호로 복원하여 상기 디코더로 출력하는 역변환기를 포함하여 구성된다.
Figure P1020080016550
Turbo codes, extrinsic information, extrinsic memory

Description

터보 디코더 장치 및 방법{APPARATUS AND METHOD FOR TURBO DECODING}
본 발명은 디코더 장치 및 방법에 관한 것으로, 특히 터보 디코더 장치 및 방법에 관한 것이다.
통신이 발달하고 이동 통신이 보편화될수록 통신 과정에서 발생하는 에러를 최소화하고자 하는 요구가 커지고 있다. 이러한 요구를 만족시키기 위하여 채널 부호를 연구하는 연구자들은 Shannon's Limit(샤논의 한계)에 접근하는 성능을 갖는 부호를 찾으려고 노력하여 왔다. 이를 위하여 여러 가지 복잡한 규칙에 따라 생성되는 성능이 좋은 부호들이 제시되어 왔으나, 이들 부호들을 효과적으로 복호하면서도 복잡도가 낮은 복호기를 찾아내는데 어려움이 있었다.
이러한 관점에서 최근 Berrou 등에 의해 제시된 터보코드는 AWGN 환경에서 복호 알고리즘이 비교적 간단하고, 18번의 반복 복호시에 0.7dB 의 낮은 신호대 잡음비에서 비트 에러율(Bit Error Rate : BER)이 10-5 가 되는 획기적인 성능 보임으로써 많은 관심을 불러 일으켰다.
또한, 이러한 터보 코드는 페이딩(Fading) 채널상에서도 신뢰성을 보장할 수 있는 강력한 코딩 기법으로 알려져 있다. 상기 터보 코드의 부호 방법은 기본적으로 길쌈 부호(convolutional code)를 병렬 연접하는 방식으로, 두 개 이상의 구성 부호화기(component code)에 같은 시퀀스의 서로 다른 배열을 적용하는 것이다. 즉, 이전 부호 방법에서는 직렬 연접 부호가 전송하고자 하는 시퀀스에 하나의 부호를 적용하여 부호화한 다음 이 부호화된 시퀀스에 다른 부호를 적용하여 다시 부호화하는 이중 부호화의 과정이었다던 것에 비해, 새로 제안된 터보 부호는 같은 시퀀스를 배열만 바꿔서 서로 다른 부호화기에 적용하는 방법이다.
다음으로, 터보 코드의 복호 방법으로 소프트 출력 반복복호(Soft output iterative decoding) 방법을 이용한다. 지금까지 길쌈 부호에서 일반적으로 사용되어 온 비터비 알고리즘은 시퀀스 오류를 최소화하는 데에는 최적의 방법이었지만, 비트 단위의 정보를 발생시킬 수는 없었다. 터보 부호 복호의 기본 개념이 복호화 기간 내에 각 비트에 대한 정보를 교환하여 이를 다음 복호에 이용함으로써 성능을 향상시키는 것이기 때문에 터보 부호의 복호화 과정에서는 소프트 출력을 얻는 것이 필요하다. 이를 위하여 터보 부호의 제안자들이 사용한 알고리즘은 1974년 Bahl 등이 제시한 알고리즘을 변형한 것으로 MAP(maximum A Posteriori) 알고리즘이라 불린다.
상술한 바에 따르면, 터보 부호는 연접 부호화 소프트 출력 반복 복호 알고리즘의 개념을 적절히 결합한 새로운 부호화 기법임을 알 수 있다.
상술한 바와 같이 통상적인 터보 코드를 이용한 부호화 장치 및 복호화 장치 를 도 1에 도시하였다.
도 1을 참조하면, 우선 터보 부호 장치(110)는 두 개의 부호화기(121, 123)와, 상기 부호화기들(121, 123)을 연결하는 인터리버(130)로 구성된다.
입력 정보 비트열(un)을 하나의 출력 비트열(vns)로 한다. 그리고, 상기 입력 정보 비트열(un)을 제 1 부호기(ENC 1)(121)로 입력하여 제 1 패리티 비트열을 얻는다. 상기 입력 정보 비트열(un)은 상기 입력 정보 비트열(un)의 길이와 동일한 크기를 갖는 인터리버(interleaver)로 입력되어 소정 패턴에 의해 인터리빙된다. 상기 인터리빙된 입력 정보 비트열은 제 2 부호기(ENC 2)(123)로 입력되어, 제 2 패리티 비트를 얻는다. 따라서, 상기 터보 부호 장치(110)의 출력은 제 1 부호기(121)의 출력 뿐만 아니라 인터리버(130)를 통해 변형된 출력으로 인해 이중의 패리티 정보를 가지게 된다. 상기 출력들은 터보 부호기에서 원하는 부호율을 얻기 위해 천공기(140)를 통해 천공이 이루어질 수 있다. 예를 들어, 부호율을 1/2로 하기 위해서는 상기 두 개의 부호기로부터의 출력을 번갈아 한번씩 출력하도록 천공하면 된다. 이와 같이 천공을 통해 최종적으로 얻은 패리티 비트 vnp 은 상기 출력 비트열(vns)과 함께 전송 채널을 통해 전송된다.
상기 터보 부호의 부호화 방법은 두 개의 부호화기가 비록 배열은 다르지만 같은 입력 시퀀스의 집합에 적용된다는 점 때문에, 병렬 연접 부호(parallel concatenated code)라 명명된다.
상술한 바와 같은 터보 부호 장치(110)에 의해 부호화된 부호어는 터보 코드 의 복호 장치(150)에 의해 복호화가 이루어진다. 일반적으로 이러한 복호 장치(150)는 각각의 비트에 대하여 정보를 발생시킬 수 있도록 상술한 바와 같은 MAP(m a Posteriori)알고리즘을 이용한 소프트 입/출력(soft input soft output : SISO)복호기를 사용한다. 또한, 복호의 성능을 향상시키기 위하여 반복 복호(Iteration)를 이용한다.
도 1을 참조하여, 터보 부호의 복호 장치(150)는 두 개의 복호기(DEC 1, DEC2)(161, 163)와, 인터리버들(162, 164, 165), 역천공기(170)로 구성된다.
도 1을 참조하면, 정보 비트(information bit) yns와 잉여 비트(parity bit) ynp을 터보 부호기의 부호어가 채널을 통과한 신호라 했을 때, yns 는 정보 비트가 채널을 통과한 신호이고, ynp 는 패리티 비트가 채널을 통과한 신호가 된다.
각 복호기들(161, 163)은 수신 신호(yns , ynp )와 이전 복호 과정에서 출력된 정보인 외부 비트(extrinsic bit)를 사전 정보를 입력받아, 복호를 수행하여 로그 근사율(Log likelihood Ratio : LLR) Le를 출력으로 발생시킨다.
그리고, LLR을 구성하고 있는 외부 정보(extrinsic information)는 다음 복호화단의 사전 정보(Priori Information)가 되어 복호의 신뢰도를 향상시키게 된다. 이를 MAP 알고리즘이라 한다.이러한 MAP 알고리즘의 일 예가 도 2에 도시되어 있다. 보통 8번의 반복(Iteration) 복호를 수행하여 비트 에러율(Bit error rate : BER)을 낮추어 복호 성능을 높이게 된다.
도 2에 도시된 i번째 반복(iteration)에서 복호화기에 대한 상세 구성도를 참조하면, 정보 비트(information bit) ys 와, 잉여 비트(parity bit) yp, i-1번째 반복(Iteration)시의 출력값인 외부 비트(extrinsic bit) Le를 입력으로 받아, 각 비트에 대한 로그 근사율(Log likelihood Ratio : LLR)을 출력으로 발생시킨다.
상기 LLR을 구성하고 있는 외부 정보(extrinsic information)는 다음 i+1번째 반복(Iteration)시 복호화기단의 사전 정보(Priori Information)가 되어 복호의 신뢰도를 향상시키게 된다. 그리고, 상기 외부 정보(extrinsic information)는 다음번 복호를 위해 메모리에 저장되어야 한다.
한편, 도 3은 다중 입력 터보 코드(Non-Binary Turbo Codes)에 대한 부호화 장치 및 복호화 장치의 구성을 도시하고 있다. 도 3을 참조하면, 상기 다중 입력 터보 코드는 부호화기(310)에서 부호화기 두 개(321, 323)와, 이 두 개의 부호화기(321, 323)를 연결하는 인터리버(330)로 이루어져 있다는 점에서 상기 도 1에 도시된 Binary Turbo Codes와 유사하나, 다중 입력이라는 점에서 차이점을 보인다. 도 3을 참조하면, Binary case와 같은 방식으로 진행되며 한 번에 입력되는 부호기 정보 심볼이 2개 비트의 un =(un 0, un 1 )로 표현되는 것이 차이점이다.
마찬가지로 도 4를 참조하면, 복호기에서 필요한 정보 심볼(information symbol) yn =( yns 0 , yns 1 )와 잉여 심볼(parity symbol) ynp, 외부 심볼 (extrinsic symbol) Le =( Le A Le B Le C )도 여러 비트가 한 번에 입력되게 된다.
이와 같이 부호기의 입력 비트수가 1 bit이 아닌 k개의 bit을 입력으로 받게 되므로 복호시 bit단위 계산이 아닌 2k-ary symbol 단위로 복호를 하게 된다. 동시 입력 비트 수 k가 2인 이중 입력 터보 코드를 예를 들면, (1,1),(1,-1),(-1,1),(-1,-1)인 4-ary symbol로 로그 근사율(Log likelihood Ratio) LLR값을 계산한다. 로그 근사율(Log likelihood Ratio) LLR 계산은 확률비 계산으로, 상기 네 가지의 조합 중 하나를 기준으로 삼기 때문에, 다음과 같이 총 2k-1개의 로그 근사율(Log likelihood Ratio) LLR값이 필요하게 되어, 위와 같이 이중 입력일 경우 3개의 로그 근사율(Log likelihood Ratio)값이 필요하게 된다.
따라서, k개의 입력 비트 수당 2k-1개의 외부 정보 값이 다중 입력 복호시 필요하게 되어 이중 터보 코드(binary turbo code)에 비해 (2k-1)/k 배만큼 메모리 사이즈(extrinsic memory size)가 더 커지게 된다.
k=2인 이중 입력 터보 코드시 binary 경우에 비해 1.5배 메모리가 증가하게 된다. 하기의 <표 1>을 참조하면, 외부 정보를 위한 메모리가 전체 복호기 면적에서 43%를 차지함을 확인할 수 있다.
Gate Counts Area Percentage
Decoder logic 22,867 17%
Forward / Backward Metric Memory 11,009 8%
Extrinsic Information Memory 59,310 43%
Memory for Received Signal 29,440 21%
Interleaver Memory 15,013 11%
Total 137,639 100%
따라서, 복호기 구현할 시 외부 정보를 저장하기 위한 메모리가 상당한 부분을 차지하기 때문에 이를 줄일 필요가 있다.
본 발명은 터보 복호기 구현 시 가장 큰 면적을 차지하는 외부 정보(extrinsic information)를 처리하여 저장 메모리를 줄이는 저메모리 복호 장치 및 방법을 제안한다.
본 발명은 터보 복호화 장치에서, 수신된 신호와 디코더로부터 출력된 사전 부호화 정보를 입력받아 디코딩하여 로그 근사율을 출력하는 하나 이상의 디코더와, 상기 디코더로부터 출력된 로그 근사율 값을 소정 비트로 변환하여 출력하는 변환기와, 상기 변환기로부터 출력되는 소정 비트의 로그 근사율 값을 저장하는 메모리와, 상기 메모리에 저장된 소정 비트의 로그 근사율 신호를 원래 비트폭을 가지는 신호로 복원하여 상기 디코더로 출력하는 역변환기를 포함하여 구성된다.
본 발명은 터보 복호 방법에 있어서, 수신된 신호와 디코더로부터 출력된 사전 부호화 정보를 입력받아 디코딩하여 로그 근사율을 생성하는 과정과, 상기 디코더로부터 출력된 로그 근사율 값을 소정 비트로 변환하는 과정과, 상기 소정 비트로 변환된 로그 근사율 값을 저장하는 과정과, 상기 저장된 소정 비트의 로그 근사율 신호를 원래 비트폭을 가지는 신호로 복원하는 과정으로 구성된다.
본 발명은 터보 복호시 필요한 외부 정보 저장 메모리를 줄이기 위해 외부 정보 저장시, 필요한 비트수를 줄이는 방법을 적용하여, 다른 동작의 성능을 저하시키지 않으면서 기존 방법에 비해 외부 정보 저장 메모리를 감소시킬 수 있고, 전체 터보 복호기 면적을 줄이는 효과가 있다.
따라서, 본 발명에서 제안된 기술을 실제 터보 코드를 칩으로 구현시 중요한 이슈인 면적과 전력 소모량을 개선하여, 다중 입력 터보 코드 칩화에 매우 효과적인 기법이 될 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 것으로서 이는 사용자 및 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명은 터보 복호시 사전정보로 사용되는 외부 정보(extrinsic information)를 저장하기 위한 메모리를 줄이는 방법을 제안한다. 이를 위한 본 발명은 터보 복호기로부터 출력된 외부 정보(extrinsic information)의 비트수를 줄이는 변환을 수행하여 메모리에 저장하고, 상기 메모리에서 저장된 외부 정 보(extrinsic information)를 터보 복호를 위한 사전 정보로 사용하기 전에 원래의 비트수로 복원하여 터보 코드로 출력되도록 하는 방안을 제안한다.
한편, 하기에서는 설명의 편의를 위해 부호화기의 입력값이 2개인 이중 입력 터보 코드(duo-binary turbo codes)에 본 발명의 방법 및 장치를 적용한 실시 예를 들어 설명하나. 본 발명은 다중 입력에서도 적용 가능함을 밝혀둔다.
또한, 본 발명은 반복(Iterative) 복호하여 다음 복호를 위해 쓰이는 외부 정보를 메모리에 저장하여야 하는 모든 방법에 적용될 수 있다. 즉, LDPC, Turbo Product Code 등에도 본 발명의 적용될 수 있다.
도 5는 본 발명의 실시 예에 따른 디코더 장치의 내부 블록 구성도이다.
도 5를 참조하면, 본 발명의 디코더 장치(500)는 두 개의 복호기(DEC 1, DEC2)(510, 520)와, 인터리버들(511, 521, 540), 역천공기(530)로 구성된다.
그리고, 상기 디코더 장치(500)은 상기 복호기(510, 520)의 출력단과 입력단 사이에 전송되는 신호인 외부 정보(extrinsic bit)를 처리하기 위한 변환기(transformer)(512, 522), 메모리(513, 523), 역변환기(522, 524)를 더 포함한다.
도 5을 참조하면, 정보 비트(information bit) yns와 잉여 비트(parity bit) ynp을 터보 부호기의 부호어가 채널을 통과한 신호라 했을 때, yns 는 정보 비트가 채널을 통과한 신호이고, ynp 는 패리티 비트가 채널을 통과한 신호가 된다.
각 복호기들(510, 520)은 수신 신호와 외부 비트(extrinsic bit)를 입력받아, 복호를 수행하여 각 비트에 대한 로그 근사율(Log likelihood Ratio : LLR) Le를 출력으로 발생시킨다.
상기 변환기(512, 522)는 상기 디코더로부터 출력된 LLR의 비트수를 소정 비트폭(transfer bit width)인 WLe 로 줄이는 변환을 수행한다.
이에 대해 도 6을 참조하여 예를 들어 설명하기로 한다.
도 6에는 디코더가 25, -12, 3 의 3개의 LLR을 signed 7 bit으로 출력하고, 전송 비트폭(transfer bit width) WLe를 4 bit로 설정할 경우를 예로 들어 도시하고 있다.
도 6을 참조하면, 25인
Figure 112008013464943-PAT00001
(610)는 '0011001'로, -12인
Figure 112008013464943-PAT00002
(620)는 '1110100'로, 4인
Figure 112008013464943-PAT00003
(620)는 '1110100'의 signed 7 bit로 LLR가 출력되면, 각각에서 사인 비트(sign bit)가 반복되는 마지막 위치의 비트 위치(bit position)인 SI를 구한다. 즉, 도 6에서는 SIA=1, SIB= 2, SIC=4 이 된다.
그러면, 상기 SI들 중 중 가장 작은 값(minimum) SImin을 선택한다. 도 6에서는 SIA의 값이 '1'(640)로 가장 작으므로, SImin=1 이 된다.
그러면, 변환기(512, 522)는 전송 비트폭(transfer bit width) WLe이 4 bit 로 설정되어 있으므로, 상기 7 비트의
Figure 112008013464943-PAT00004
,
Figure 112008013464943-PAT00005
,
Figure 112008013464943-PAT00006
들을 4비트로 줄여야 하는데, 상기 SImin이 1로 결정되었으므로, 도 6에 도시된 바와 같이, 상기 SImin의 위치로부터 4 비트만큼을 추출하여 전송 외부 정보(transferred extrinsic information)
Figure 112008013464943-PAT00007
를 생성한다. 그러면, 도 6에 도시된 바와 같이,
Figure 112008013464943-PAT00008
는 각각 4비트의 '0110'(615), '1101'(625), '0000'(635)이 된다.
그러면, 상기 변환기(512, 522)는 상기 검출된 총 12비트의 전송 외부 정보(extrinsic information) 비트와 SImin 를 메모리(513, 523)에 저장하게 된다.
여기서, 상기 SImin 에 할당되는 비트수는 상기
Figure 112008013464943-PAT00009
의 비트수에 의해서 결정되는데, 일 예가 하기의 <표 2>에 나타나 있다.
bit width per each Extrinsic info(
Figure 112008013464943-PAT00010
)
bit width of SImin(
Figure 112008013464943-PAT00011
)
Total bit width for
Figure 112008013464943-PAT00012
2 3 9
3 3 12
4 2 14
5 2 17
6 1 19
7 0 21
도 6에 도시된 예에서
Figure 112008013464943-PAT00013
는 '4'로 설정되었으므로, 상기 <표 2>를 참조하면, 상기 SImin 은 2 비트로 결정된다.
한편, 역변환기(514, 524)는 상기 메모리(513, 523)에 WLe의 비트로 저장되어 있는 외부 정보(extrinsic information)들을 원래의 비트수로 복원하여, 상기 디코더(510), 520)의 사전 정보로 입력하게 된다.
이에 대해 도 7을 참조하여 예를 들어 설명하기로 한다.
도 7은 상기 도 6에서 변환기에 의해 생성된
Figure 112008013464943-PAT00014
를 원래의 signed 7 bit의 형태로 역변환하는 경우를 예를 도시하고 있다. 도 7에서도 도 6에서와 같이 전송 비트폭(transfer bit width) WLe를 4 bit로 설정한 것으로 가정하고 있다.
역변환기(514, 524)는 상기 메모리(513, 523)에 저장된
Figure 112008013464943-PAT00015
, 즉 4비트의 "0110'(710), '1101'(720), '0000'(730)을 하기의 <수학식 1>에 의해 산출되는 비트만큼 레프트 쉬프트(740)시킨다.
left shifted bit = Le 의 비트수 - WLe - SImin
도 7의 예에서는 상기 Le 의 비트수는 7이고, WLe 는 4비트이고, SImin 는 1 비트로 설정되어 있으므로, 레프트 쉬프트되는 비트수는 2 비트가 된다. 따라서, 도 7에서는
Figure 112008013464943-PAT00016
가 2 비트만큼 레프트 쉬프트(740)되어 있다.
그런 후, 역변환기(514, 524)는 메모리에 저장되어 있는 SImin 을 참조로, 최상위 비트 방향으로 SImin만큼 사인 확장(sign extention)한다. 도 7의 예에서는 SImin 이 1이므로, 최상위 비트로 1비트만큼 사인 확장한다.
따라서, 역변환기(514, 524)는 상기 4 비트의
Figure 112008013464943-PAT00017
들(710, 720, 730)을 7 비 트의
Figure 112008013464943-PAT00018
(713),
Figure 112008013464943-PAT00019
(723),
Figure 112008013464943-PAT00020
(733)로 복원하게 된다.
상기 복원된
Figure 112008013464943-PAT00021
(713),
Figure 112008013464943-PAT00022
(723),
Figure 112008013464943-PAT00023
(733)는 원래의
Figure 112008013464943-PAT00024
(715),
Figure 112008013464943-PAT00025
(725),
Figure 112008013464943-PAT00026
(735)로 정확히 복원되지는 않지만, 근사값으로는 복원됨을 알 수 있다.
상술한 바와 같은 본 발명의 이해를 돕기 위해, 하기에서는 도 8a 및 도 8b를 참조하여 종래 기술의 디코더와 본 발명의 디코더에 대해 비교하여 설명하기로 한다. 그런데, 도 8a 및 도 8b에는 상기 도 5에서와는 달리 하나의 디코더로 구성된 형태로 도시되어 있으나, 이는 하드웨어의 크기를 줄이기 위해 하나의 디코더가 두 개 이상의 디코더에 상응하는 동작을 하는 것으로 그 동작 결과는 도 5에서와 동일하다. 여기서는 설명의 편의를 위해 하나로 구성된 형태로 도시하였다.
우선, 도 8a를 참조하면, 종래의 디코더(810)는 외부 정보로 7비트를 사용할 경우, 외부 정보가 3개가 출력되므로 총 21 비트를 메모리(820)에 저장하게 된다.
그런데, 도 8b를 참조하면, 본 발명에서는 디코더(840)와 메모리(860)의 사이에는 변환기(850) 및 역변환기(830)를 더 부가한다. 여기서, Wle 를 3 비트로 설정 비트로 설정할 경우, 상기 <표 2>에 의해 W SI 는 3 비트가 된다.
그러면, 상기 변환기(850)는 디코더(840)로부터 출력된 7비트의 외부 정보(extrinsic information)들을 3 비트로 변환하게 되고, 상기 3 비트로 변환된 세개의 외부 정보 9 비트와
Figure 112008013464943-PAT00027
에 해당하는 3비트를 더하여 총 12 비트의 정보를 메모리(860)에 저장하게 된다. 그러면, 역변환기(830)는 상기 메모리(860)에 저장된 정보를 검출하여, 원래 7 비트의 외부 정보로 복원하여 디코더(840)에 사전 정보로 입력한다.
상술한 바와 같이 종래에는 외부 정보(extrinsic information)가 7bit씩 3개로 총 21bit를 저장할 메모리가 필요하였는데, 본 발명에서는 3* Wle +WSI 는(W Le , W SI ) = (3,3) 일 경우, 12 bit를 저장할 메모리가 요구된다. 따라서, 본 발명에 따라 43%의 메모리 절감 효과를 낳는다.
그러면, 상술한 바와 같은 디코더 장치에서의 디코딩 방법에 대해 하기의 도 9 내지 도 11을 참조하여 살펴보기로 한다.
도 9를 참조하면, 디코더 장치는 910 단계에서 수신 신호와 외부 비트(extrinsic bit)를 입력받아, 복호를 수행하여 각 비트에 대한 로그 근사율(Log likelihood Ratio : LLR) Le를 생성한다.
그러면, 디코더 장치는 920 단계에서 상기 디코더로부터 출력된 LLR의 비트수를 소정 비트폭(transfer bit width)인 WLe로 줄인
Figure 112008013464943-PAT00028
로 생성하는 변환을 수행한다. 그리고, 930 단계에서 상기 변환된 값이 메모리에 저장된다.
그리고, 디코더 장치는 930 단계에서 상기 메모리에 WLe의 비트로 저장되어 있는
Figure 112008013464943-PAT00029
를 원래의 비트수를 가지는 Le로 복원하여, 950 단계에서 상기 복원된 Le 를 다음 디코딩 과정의 사전 정보로 입력하게 된다.
그러면, 상기 920 단계의 변환 과정의 상세 단계를 도 10을 참조하여 살펴보기로 한다.
도 10을 참조하면, 1010 단계에서 역변환기는 Le 의 전송 비트폭을 결정한다. 그러면, 1020 단계에서 역변환기는 각 외부 정보 별로 최상위 비트들, 즉 사인 비트(sign bit)가 반복되는 마지막 위치의 비트 위치(bit position)인 SI들을 구한다. 1030 단계에서 역변환기는 상기 SI들 중 중 가장 작은 값(minimum) SImin을 선택한다. 그리고, 역변환기는 1040 단계에서 상기 각 외부 정보들의 최상위 비트로부터 상기 SImin의 위치로부터 상기 Le 의 전송 비트폭 만큼을 추출하여 전송 외부 정보(transferred extrinsic information)
Figure 112008013464943-PAT00030
를 생성한다.
그러면, 상기 변환기는 1050 단계에서 상기 생성된
Figure 112008013464943-PAT00031
와 SImin 를 메모리에 저장하게 된다.
한편, 역변환기(514, 524)는 상기 메모리(513, 523)에 WLe의 비트로 저장되어 있는 외부 정보(extrinsic information)들을 원래의 비트수로 복원하여, 상기 디코더의 사전 정보로 입력하게 된다.
다음으로, 상기 940 단계의 역변환 과정의 상세 단계를 도 11을 참조하여 살펴보기로 한다.
도 11을 참조하면, 역변환기는 1110 단계에서 메모리에 저장된
Figure 112008013464943-PAT00032
를 최하 위 비트로부터 하기의 <수학식 2>에 의해 산출된 비트만큼 레프트 쉬프트시킨다.
left shifted bit = Le 의 비트수 - WLe - SImin
그런 후, 역변환기는 1120 단계에서 메모리에 저장되어 있는 SImin을 참조로, 최상위 비트 방향으로 SImin만큼 사인 확장(sign extention)한다.
도 1은 일반적인 터보 코드를 이용한 코더 및 디코더를 장치의 구성도.
도 2는 MAP 알고리즘의 일 예를 도시한 도면.
도 3은 다중 입력 터보 코드(Non-Binary Turbo Codes)의 구성을 도시한 도면.
도 4는 다중 입력 터보 코드(Non-Binary Turbo Codes)의 구성에서의 MAP 알고리즘의 일 예를 도시한 도면.
도 5는 본 발명의 실시 예에 따른 디코더 장치의 내부 블록 구성도.
도 6은 본 발명에 따른 변환기의 동작의 일 예를 설명하기 위한 도면.
도 7은 본 발명에 따른 역변환기의 동작의 일 예를 설명하기 위한 도면.
도 8a 및 도 8b는 종래 기술과 본 발명에 따른 디코딩 장치를 비교하기 위한 도면.
도 9는 본 발명의 실시 예에 따른 디코딩 방법을 설명하기 위한 순서도.
도 10은 상기 도 9의 변환 단계의 서브 루틴을 설명하기 위한 순서도.
도 11은 상기 도 9의 역변환 단계의 서브 루틴을 설명하기 위한 순서도.

Claims (2)

  1. 터보 복호 장치에서,
    수신된 신호와 구성 복호기로부터 출력된 사전 부호화 정보를 입력받아 디코딩하여 로그 근사율을 출력하는 하나 이상의 구성 복호기와,
    상기 구성 복호기로부터 출력된 로그 근사율 값을 소정 비트로 변환하여 출력하는 변환기와,
    상기 변환기로부터 출력되는 소정 비트의 로그 근사율 값을 저장하는 메모리와,
    상기 메모리에 저장된 소정 비트의 로그 근사율 신호를 원래 비트폭을 가지는 신호로 복원하여 상기 구성 복호기로 출력하는 역변환기를 포함함을 특징으로 하는 터보 복호 장치.
  2. 터보 복호 방법에 있어서,
    수신된 신호와 구성 복호기로부터 출력된 사전 부호화 정보를 입력받아 디코딩하여 로그 근사율을 생성하는 과정과,
    상기 구성 복호기로부터 출력된 로그 근사율 값을 소정 비트로 변환하는 과정과,
    상기 소정 비트로 변환된 로그 근사율 값을 저장하는 과정과,
    상기 저장된 소정 비트의 로그 근사율 신호를 원래 비트폭을 가지는 신호로 복원하는 과정을 포함함을 특징으로 하는 터보 복호 방법.
KR1020080016550A 2008-02-23 2008-02-23 터보 디코더 장치 및 방법 KR101442837B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080016550A KR101442837B1 (ko) 2008-02-23 2008-02-23 터보 디코더 장치 및 방법
US12/262,844 US8136006B2 (en) 2008-02-23 2008-10-31 Turbo decoding apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080016550A KR101442837B1 (ko) 2008-02-23 2008-02-23 터보 디코더 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20090091254A true KR20090091254A (ko) 2009-08-27
KR101442837B1 KR101442837B1 (ko) 2014-09-23

Family

ID=40999554

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080016550A KR101442837B1 (ko) 2008-02-23 2008-02-23 터보 디코더 장치 및 방법

Country Status (2)

Country Link
US (1) US8136006B2 (ko)
KR (1) KR101442837B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516347B1 (en) * 2010-05-25 2013-08-20 Marvell International Ltd. Non-binary LDPC extrinsic calculation unit (LECU) for iterative decoding
JP2013236236A (ja) * 2012-05-08 2013-11-21 Fujitsu Ltd 量子化装置
WO2015036008A1 (en) * 2013-09-10 2015-03-19 Huawei Technologies Co.,Ltd. A turbo decoder for decoding an input signal
US9425922B2 (en) * 2014-08-15 2016-08-23 Nxp B.V. Reduced memory iterative baseband processing

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100628201B1 (ko) * 2000-10-16 2006-09-26 엘지전자 주식회사 터보 디코딩 방법
US6518892B2 (en) * 2000-11-06 2003-02-11 Broadcom Corporation Stopping criteria for iterative decoding
US7200799B2 (en) * 2001-04-30 2007-04-03 Regents Of The University Of Minnesota Area efficient parallel turbo decoding
US6996767B2 (en) * 2001-08-03 2006-02-07 Combasis Technology, Inc. Memory configuration scheme enabling parallel decoding of turbo codes
JP2005210238A (ja) * 2004-01-21 2005-08-04 Nec Corp ターボ復号装置及びその方法並びにその動作プログラム

Also Published As

Publication number Publication date
US20090217127A1 (en) 2009-08-27
US8136006B2 (en) 2012-03-13
KR101442837B1 (ko) 2014-09-23

Similar Documents

Publication Publication Date Title
Bauer et al. On variable length codes for iterative source/channel decoding
JP3857320B2 (ja) 並列連結のテイルバイティング・コンボルーション・コード及びその復号器
Ping et al. Low-rate turbo-Hadamard codes
US20040139378A1 (en) Method and apparatus for error control coding in communication systems using an outer interleaver
JP2008219892A (ja) データを符号化および復号化する方法および装置
CN108199723B (zh) 一种基于双递归的分组马尔可夫叠加编码方法
KR100651847B1 (ko) 다중 순환 부호화를 이용한 터보 부호의 부호화/복호 장치및 방법
KR101442837B1 (ko) 터보 디코더 장치 및 방법
US7573962B1 (en) Diversity code combining scheme for turbo coded systems
US7236591B2 (en) Method for performing turbo decoding in mobile communication system
KR20040033597A (ko) 채널 부호화, 복호화 방법 및 이를 수행하는 다중 안테나무선통신 시스템
EP2174422B1 (en) Decoding of recursive convolutional codes by means of a decoder for non-recursive convolutional codes
KR19990081470A (ko) 터보복호기의 반복복호 종료 방법 및 그 복호기
Zhan et al. An efficient decoder scheme for double binary circular turbo codes
He et al. On the application of turbo codes to the robust transmission of compressed images
CN108880569B (zh) 一种基于反馈分组马尔科夫叠加编码的速率兼容编码方法
KR20050079986A (ko) Llr의 부호 비교를 이용한 터보 복호기의 반복복호제어장치 및 방법
Alcoforado et al. Iterative decoding of turbo convolutional codes over noisy two-user binary adder channel
Mohammed et al. Turbo polar codes: A review paper
Thobaben et al. An efficient variable-length code construction for iterative source-channel decoding
Synthia et al. Performance study of turbo code with interleaver design
Fowdur et al. Joint source channel decoding and iterative symbol combining with turbo trellis-coded modulation
US20070283230A1 (en) System and method for decreasing decoder complexity
CN113437981B (zh) 一种基于多维编码的空间耦合串行级联码编码方法
Wu et al. Joint source channel VL coding/decoding for deep space communication networks based on a space trellis

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee