KR20090091254A - 터보 디코더 장치 및 방법 - Google Patents
터보 디코더 장치 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2969—Non-binary turbo codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
- H03M13/6588—Compression 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
본 발명은 터보 복호화 장치 및 방법에 관한 것으로 수신된 신호와 디코더로부터 출력된 사전 부호화 정보를 입력받아 디코딩하여 로그 근사율을 출력하는 하나 이상의 디코더와, 상기 디코더로부터 출력된 로그 근사율 값을 소정 비트로 변환하여 출력하는 변환기와, 상기 변환기로부터 출력되는 소정 비트의 로그 근사율 값을 저장하는 메모리와, 상기 메모리에 저장된 소정 비트의 로그 근사율 신호를 원래 비트폭을 가지는 신호로 복원하여 상기 디코더로 출력하는 역변환기를 포함하여 구성된다.
Turbo codes, extrinsic information, extrinsic memory
Description
본 발명은 디코더 장치 및 방법에 관한 것으로, 특히 터보 디코더 장치 및 방법에 관한 것이다.
통신이 발달하고 이동 통신이 보편화될수록 통신 과정에서 발생하는 에러를 최소화하고자 하는 요구가 커지고 있다. 이러한 요구를 만족시키기 위하여 채널 부호를 연구하는 연구자들은 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인 (610)는 '0011001'로, -12인 (620)는 '1110100'로, 4인 (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 비트의 , , 들을 4비트로 줄여야 하는데, 상기 SImin이 1로 결정되었으므로, 도 6에 도시된 바와 같이, 상기 SImin의 위치로부터 4 비트만큼을 추출하여 전송 외부 정보(transferred extrinsic information) 를 생성한다. 그러면, 도 6에 도시된 바와 같이, 는 각각 4비트의 '0110'(615), '1101'(625), '0000'(635)이 된다.
그러면, 상기 변환기(512, 522)는 상기 검출된 총 12비트의 전송 외부 정보(extrinsic information) 비트와 SImin 를 메모리(513, 523)에 저장하게 된다.
bit width per each Extrinsic info() | bit width of SImin() | Total bit width for |
2 | 3 | 9 |
3 | 3 | 12 |
4 | 2 | 14 |
5 | 2 | 17 |
6 | 1 | 19 |
7 | 0 | 21 |
한편, 역변환기(514, 524)는 상기 메모리(513, 523)에 WLe의 비트로 저장되어 있는 외부 정보(extrinsic information)들을 원래의 비트수로 복원하여, 상기 디코더(510), 520)의 사전 정보로 입력하게 된다.
이에 대해 도 7을 참조하여 예를 들어 설명하기로 한다.
도 7은 상기 도 6에서 변환기에 의해 생성된 를 원래의 signed 7 bit의 형태로 역변환하는 경우를 예를 도시하고 있다. 도 7에서도 도 6에서와 같이 전송 비트폭(transfer bit width) WLe를 4 bit로 설정한 것으로 가정하고 있다.
역변환기(514, 524)는 상기 메모리(513, 523)에 저장된 , 즉 4비트의 "0110'(710), '1101'(720), '0000'(730)을 하기의 <수학식 1>에 의해 산출되는 비트만큼 레프트 쉬프트(740)시킨다.
도 7의 예에서는 상기 Le 의 비트수는 7이고, WLe 는 4비트이고, SImin 는 1 비트로 설정되어 있으므로, 레프트 쉬프트되는 비트수는 2 비트가 된다. 따라서, 도 7에서는 가 2 비트만큼 레프트 쉬프트(740)되어 있다.
그런 후, 역변환기(514, 524)는 메모리에 저장되어 있는 SImin 을 참조로, 최상위 비트 방향으로 SImin만큼 사인 확장(sign extention)한다. 도 7의 예에서는 SImin 이 1이므로, 최상위 비트로 1비트만큼 사인 확장한다.
상술한 바와 같은 본 발명의 이해를 돕기 위해, 하기에서는 도 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 비트와 에 해당하는 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로 줄인 로 생성하는 변환을 수행한다. 그리고, 930 단계에서 상기 변환된 값이 메모리에 저장된다.
그리고, 디코더 장치는 930 단계에서 상기 메모리에 WLe의 비트로 저장되어 있는 를 원래의 비트수를 가지는 Le로 복원하여, 950 단계에서 상기 복원된 Le 를 다음 디코딩 과정의 사전 정보로 입력하게 된다.
그러면, 상기 920 단계의 변환 과정의 상세 단계를 도 10을 참조하여 살펴보기로 한다.
도 10을 참조하면, 1010 단계에서 역변환기는 Le 의 전송 비트폭을 결정한다. 그러면, 1020 단계에서 역변환기는 각 외부 정보 별로 최상위 비트들, 즉 사인 비트(sign bit)가 반복되는 마지막 위치의 비트 위치(bit position)인 SI들을 구한다. 1030 단계에서 역변환기는 상기 SI들 중 중 가장 작은 값(minimum) SImin을 선택한다. 그리고, 역변환기는 1040 단계에서 상기 각 외부 정보들의 최상위 비트로부터 상기 SImin의 위치로부터 상기 Le 의 전송 비트폭 만큼을 추출하여 전송 외부 정보(transferred extrinsic information) 를 생성한다.
한편, 역변환기(514, 524)는 상기 메모리(513, 523)에 WLe의 비트로 저장되어 있는 외부 정보(extrinsic information)들을 원래의 비트수로 복원하여, 상기 디코더의 사전 정보로 입력하게 된다.
다음으로, 상기 940 단계의 역변환 과정의 상세 단계를 도 11을 참조하여 살펴보기로 한다.
그런 후, 역변환기는 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)
- 터보 복호 장치에서,수신된 신호와 구성 복호기로부터 출력된 사전 부호화 정보를 입력받아 디코딩하여 로그 근사율을 출력하는 하나 이상의 구성 복호기와,상기 구성 복호기로부터 출력된 로그 근사율 값을 소정 비트로 변환하여 출력하는 변환기와,상기 변환기로부터 출력되는 소정 비트의 로그 근사율 값을 저장하는 메모리와,상기 메모리에 저장된 소정 비트의 로그 근사율 신호를 원래 비트폭을 가지는 신호로 복원하여 상기 구성 복호기로 출력하는 역변환기를 포함함을 특징으로 하는 터보 복호 장치.
- 터보 복호 방법에 있어서,수신된 신호와 구성 복호기로부터 출력된 사전 부호화 정보를 입력받아 디코딩하여 로그 근사율을 생성하는 과정과,상기 구성 복호기로부터 출력된 로그 근사율 값을 소정 비트로 변환하는 과정과,상기 소정 비트로 변환된 로그 근사율 값을 저장하는 과정과,상기 저장된 소정 비트의 로그 근사율 신호를 원래 비트폭을 가지는 신호로 복원하는 과정을 포함함을 특징으로 하는 터보 복호 방법.
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)
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)
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 | ターボ復号装置及びその方法並びにその動作プログラム |
-
2008
- 2008-02-23 KR KR1020080016550A patent/KR101442837B1/ko not_active IP Right Cessation
- 2008-10-31 US US12/262,844 patent/US8136006B2/en not_active Expired - Fee Related
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 |