KR20030040884A - 터보 복호기의 복호 방법 - Google Patents
터보 복호기의 복호 방법 Download PDFInfo
- Publication number
- KR20030040884A KR20030040884A KR1020010071476A KR20010071476A KR20030040884A KR 20030040884 A KR20030040884 A KR 20030040884A KR 1020010071476 A KR1020010071476 A KR 1020010071476A KR 20010071476 A KR20010071476 A KR 20010071476A KR 20030040884 A KR20030040884 A KR 20030040884A
- Authority
- KR
- South Korea
- Prior art keywords
- decoding
- value
- decoding process
- metric
- operator
- Prior art date
Links
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/2975—Judging correct decoding, e.g. iteration stopping criteria
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 반복 복호를 수행하는 터보 복호기의 복호 지연을 단축하는 기술에 관한 것이다. 이러한 본 발명은 첫 번째 반복 복호과정에서는 역방향 연산기가부터까지 학습하여부터 0까지 계산된값을 메모리에 저장한 후 순방향 연산기가 동일 구간에 대해값을 구하고, 그,
Description
본 발명은 반복 복호를 수행하는 터보 복호기의 복호 지연을 단축하는 기술에 관한 것으로, 특히 이전 복호 단계에서 구해진 서브 블록들의 마지막 메트릭 값을 이용하여 학습구간을 거치지 않고 바로 복호과정을 수행할 수 있도록 한 터보 복호기의 복호 방법에 관한 것이다.
터보 복호기는 일반적으로 MAP 알고리즘을 사용하는데, 이 MAP 알고리즘은 계산량이 많고 실제 구현하는데 어려움이 많기 때문에 약간의 성능 저하를 감수하고, 이를 간략화 한 Log-MAP이나 Max-Log-MAP을 사용한다. 이 Log-MAP이나 Max-Log-MAP 방식에서는 순방향 메트릭()과 역방향 메트릭()을 구하는 연산을 필요로 한다.
이러한 메트릭(metric)을 구하기 위해서는 전체 블록을 모두 받을 때까지 기다려야 하며 마지막 스테이트를 알고 있어야 한다. 또한, 복호 처리를 위해 순방향 또는 역방향의 메트릭 전체를 저장하고 있어야 한다. 따라서, 블록 크기가 N, 부호기의 레지스터가 m, 메트릭 양자화 레벨이 q일 경우, 필요한 메모리 용량은이다. 3GPP 경우 최대 블록 크기가 5,114비트이고 레지스터 3, 메트릭 양자화를 7비트로 할 경우 286,384 비트 용량의 메모리를 필요로 한다.
비터비는 블록 크기에 관계없이 요구되는 메모리 용량을 줄일 수 있는 방식을 제안하였다. 이 방식은 임의의 스테이트에서부터메트릭을 구할 때 초기의스테이트 메트릭은 아무런 의미를 갖지 못하지만 일정한 구간 즉, 학습 구간만큼 진행하면 스테이트 메트릭이 전체 블록의 마지막 스테이트에서 시작할 때와 비슷한 신뢰도를 갖는 것을 이용하는 것이다.
비터비는 2개의 역방향 연산기를 사용하여 그 중에서 하나의 연산기가 학습 구간을 거쳐 유효한 메트릭을 생성할 때 또 다른 연산기가 학습을 수행하여 연속적인 복호가 이루어지도록 한다. 따라서, 전체적으로 학습구간 만큼은 2번의 역방향 연산을 수행하게 된다.
종래 기술에 의한 복호 방식은 상기 비터비 방식을 개선한 것으로, 하나의 역방향 연산기를 사용하고 두 번씩 계산되는 역방향 연산 구간을 줄인 것이다. 따라서, 회로의 복잡도와 연산량이 감소되었다. 하지만, 메트릭 저장을 위한 메모리 용량과 복호처리를 위한 지연시간이 증가되었다.
수신된 브랜치 심볼이 2L 브랜치 시간의 지연을 갖는다고 할 때, 도 1을 참조하여 비터비 복호 방식을 설명하면 다음과 같다.
순방향 연산기(Foward Processor)는 2L 브랜치 시간에서 연산을 시작하여 모든 스테이트 메트릭을 메모리에 저장한다. 첫 번째 역방향 연산기(1st Backward Processor)는 순방향 연산기와 동일 시간에 연산을 시작하지만 신뢰도가 형성되기 전까지 L만큼 학습구간을 거치게 되는데, 이때 계산된 메트릭 값은 저장하지 않고 2L번째인 브랜치 시간 3L부터 계산된 메트릭값을 저장한다.
상기 첫 번째 역방향 연산기에서 실선으로 표시된 부분이 실제 유효한 메트릭이 된다. 3L 브랜치 시간부터 순방향과 역방향 브랜치 메트릭 값이 존재하기 때문에 3L부터 4L 시간까지 첫 번째 복호 출력이 발생된다.
상기 두 번째 역방향 연산기는 첫 번째 역방향 연산기보다 L 브랜치 시간이 늦은 3L 브랜치 시간에 연산을 시작하고, 이와 마찬가지로 L만큼의 학습구간을 거친 후 4L 브랜치 시간부터 유효한 메트릭 값을 생성한다.
그러므로, 순방향 연산기의 메트릭 값과 함께 4L부터 5L 시간까지 복호를 수행한다. 따라서, 첫 번째 역방향 연산기와 두 번째 역방향 연산기를 이용하여 연속적인 복호가 이루어질 수 있다. 즉, 2개의 역방향 연산기를 이용하여 하나의 연산기가 유효한 메트릭을 발생하는 동안 다른 하나는 유효한 메트릭을 발생하기 위한 학습과정을 거치게 된다.
이 방식은 역방향 연산기의 마지막 노드의 메트릭 세트를 제외하고는 역방향 메트릭을 저장할 필요가 없고 단지 순방향 연산기의 2L 만큼만 저장하면 된다. 첫 번째 2L 동안 계산이 끝나면 이전에 계산된 값을 버리고 2L+1 번째 노드부터 계산되는 순방향 메트릭 값을 저장한다. 따라서, 6비트 레벨의 메트릭 값을 사용하고도 부호기의 레지스터가 4일 때 순방향 연산기에서 요구되는 메모리 용량은비트이다.
한편, 종래 기술에 의한 복호 방법의 기본 개념은 상기 비터비 방식과 동일한데, 도 2를 참조하여 이를 설명하면 다음과 같다.
연산기(역방향 연산기)는부터까지 학습을 하고부터 0까지 계산된값을 메모리에 저장한다. 이후연산기(순방향 연산기)가 동일 구간만큼 계산하여값을 구한 다음 그,값을 근거로 복호 연산을 수행하게 된다.이와 동시에는부터까지 학습을 진행하고,부터까지값을 계산하여메모리에 저장한다. 전체 복호 처리과정은 이러한 반복 과정으로 이루어진다.
연산의 시작점은로 W만큼씩 증가하고,연산의 끝점도 0(i=0) 또는로 역시 W만큼씩 증가한다.는 코드 블록 크기 N % W(modulo 연산)으로 결정한다. 만약 N % W = 0이면이다. 즉, N이 3,840 비트이고, W가 256이라면 3,840 % 256=0이므로는 W와 같이 256으로 결정되고 N이 3,481 비트라면는 1이 된다. 이렇게를 결정해 두면 두 번째부터 마지막까지 슬라이딩 윈도우의 크기는 모두 W가 된다.
W를 256비트로 결정했을 때 3,841 비트의 코드 블록을 윈도우별로 나누면, 맨 앞 윈도우에서 1 비트를 처리하거나, 맨 뒤의 윈도우에서 1 비트를 처리할 수 있다. 그러나, 초기에 1 비트를 복호처리하고 마지막 윈도우에서 256 비트를 복호처리하면 터미네이션(termunation) 특성을 이용할 수 있어 보다 나은 성능을 얻을 수 있다. 따라서 트렐리스 터미네이션을 사용하는 터보 코드의 성질을 최대한 보장할 수 있다.
도 3a,3b는 비터비 방식과 종래 복호 방식을 비교 설명하기 위한 복호기의 출력 타이밍을 나타낸 것이다. 여기서는 데이터 입력과 메트릭 연산기 그리고 복호기 출력에 대한 시간만을 고려하였다.
비터비 방식은 터보 복호기에 블록이 입력된 다음 2L 시간 이후연산기가 동작하고, 2L 이후에 터보 부호기에 입력되는 데이터 순서에 동기하여 출력된다. 따라서, 복호기 입력에 블록이 입력된 후 4L 이후에 복호기의 첫 번째 값이 출력되고 4L+N 이후에 복호처리를 완료함을 알 수 있다.
종래의 복호 방식은 복호기에 블록이 입력된 다음연산기가이후에 동작하고, 2() 이후에는 복호기 출력이 발생한다. 그리고, 복호 처리동작이 완료되기 까지는시간이 소요됨을 알 수 있다.
또한, 도 4a,4b는 비터비 방식과 종래 복호 방식에서 학습 구간과 디코딩 구간을 예시적으로 나타낸 것으로, 첫 번째 반복과정(1st iteration)부터 최종 반복과정까지 학습구간을 거친 후 디코딩이 이루어짐을 알 수 있다.
그러나, 이와 같은 종래의 복호 방법을 이용하는 경우 메모리의 용량을 많이 절약할 수 있지만, 전체 블록 크기에서 학습구간을 2번씩 계산하기 때문에 연산량 증가로 인해 전력 소모량이 많아지는 단점이 있었다. 즉, 블록 크기가 N일 때, 전체를 복호처리하기 위해서는개의 L 구간을 2번씩 역방향으로 연산해야 하고, 복호기의 출력이 역순이기 때문에 바른 순서로 변경하는 과정이 필요하다.
또한, 종래 기술에 의한 복호 방식은 비터비 방식에서 2번씩 계산되는 학습 구간을 줄이고 하나의 연산기를 사용하여 회로의 복잡도와 연산량을 줄일 수 있도록 하였지만, 비터비 방식에 비하여 복호 속도가 저하되는 단점이 있는데, 이는 하나의 연산기로 유효한 메트릭 값을 갖기 위해 필요로 하는 학습구간에 따른 지연시간이 발생하기 때문이다.
따라서, 본 발명의 목적은 이전의 복호 과정에서 구해진 서브 블록들의 마지막 메트릭 값을 이용하여 학습구간을 거치지 않고 바로 디코딩을 수행하는 터보 복호기의 복호 방법을 제공함에 있다.
도 1은 비터비 방식의 연산 과정을 보인 각 연산기의 출력 타이밍도.
도 2는 종래의 복호 방법에 따른 연산과정의 설명도.
도 3a는 비터비 방식에 따른 복호 출력 타이밍도.
도 3b는 종래의 복호 방법에 따른 복호 출력 타이밍도.
도 4a는 비터비 방식에 의한 복호 출력 타이밍의 예시도.
도 4b는 종래의 복호 방법에 의한 복호 출력 타이밍의 예시도.
도 5는 본 발명에 의한 연산과정의 설명도.
도 6은 본 발명에 의한 복호 출력 타이밍도.
도 7은 본 발명에 의한 복호 출력 타이밍의 예시도.
본 발명의 특징에 따르면, 반복 복호를 수행하는 터보 복호기와, 각 서브 블록의 메트릭 값을 저장하기 위한 메모리와, 반복 복호과정에서 이전 복호기의 서브 블록들의 마지막 메트릭 값을 저장하기 위한 메모리를 구비하여, 첫 번째 복호 이후부터는 학습 구간의 메트릭 연산 과정을 삭제 처리하고, 이전 블록에 대응하는 현재 서브 블록의 초기 메트릭 값으로 저장된 메트릭을 할당하면서 서브 블록 단위로 복호 연산을 수행한다.
본 발명에 의한 터보 복호기의 복호 방법은, 첫 번째 반복 복호과정에서는 역방향 연산기가부터까지 학습하여부터 0까지 계산된값을 메모리에 저장한 후 순방향 연산기가 동일 구간에 대해값을 구하고 그,값을 근거로 복호 연산을 수행하는 과정을 순차적으로 진행하며, 두 번째 반복 복호과정부터는 이전의 복호과정에서 구한 서브 블록들의 마지막 메트릭 값을 이용하여 학습 구간을 거치지 않고 곧바로 유효한 베타 메트릭 값을 구하여 복호 연산에 이용하는 것으로, 이와 같은 본 발명의 작용을 첨부한 도 5 내지 도 7을 참조하여 상세히 설명하면 다음과 같다.
일반적으로, 터보 복호기는 복호처리를 완료하기 위해 수회의 반복 복호과정을 처리하게 되는데, 통상의 비터비 복호와 종래의 복호 방식에서는 반복 복호시 마다 매 학습 구간을 통해 유효한 메트릭 값을 계산하게 되어 있었다. 하지만, 본 발명에서는 반복 복호시 이전의 복호과정에서 계산된 메트릭 값을 이용하므로, 별도의 학습 구간을 거치지 않고 바로 메트릭 값을 구할 수 있어 계산량이 줄어들고 복호 속도가 향상된다.
본 발명에 의한 기본적인 복호 동작을 도 5를 참조하여 설명하면 다음과 같다.
첫 번째 반복 복호과정(1st iteration)에서는 종래와 동일한 방식으로연산기가 동작한다. 그러나, 두 번째 복호과정부터는 이전의 복호과정에서 구한 서브 블록들의 마지막 메트릭 값을 이용하여 학습 구간을 거치지 않고 곧바로 유효한메트릭 값을 구한다. 즉, 도 5에서 두 번째 반복 복호과정(2nd iteration)에서 첫 번째 블록인부터 0의 초기 스테이트의 메트릭 값은 이전 복호과정의 두 번째 블록부터에서 계산된의 메트릭 값을 이용한다.
상기의 메트릭은 첫 번째 복호과정에서구간동안 누적되어 계산된 메트릭 값이기 때문에 아주 높은 신뢰도를 가지고 있다. 종래 방식의연산은 바로 이전 복호과정 결과로부터 얻어진 외부 정보(extrinsic information)를 이용할 수 있지만, 본 방식에서는 한 단계 더 이전의 복호과정 결과의 외부 정보를 이용하게 된다. 그러나, 이때 구해진 메트릭 값이 종래 방식에 비하여 신뢰도가 더 낮지 않기 때문에 터보 복호기의 성능 감소 없이 복호 속도를 향상시킬 수 있으며, 이방식은 비터비 방식에도 적용할 수 있다.
도 6은 본 발명에 의한 복호기 출력 타이밍을 나타낸 것이다. 첫 번째 복호과정에서 소요되는 시간은 도 3b에 도시한 종래의 복호 방식에 의한 소요시간과 동일하다. 하지만, 두 번째 반복 복호과정 이후부터는 복호처리에 소요되는 시간을 많이 단축할 수 있게 된다.
즉, 두 번째 반복 복호과정에서는연산기가에서 동작하고후에는 두 번째 복호 출력이 발생되며,에서 복호처리 동작이 완료된다.
반복 횟수 I를 고려한 최종 터보 복호기의 복호 처리를 위한 소요시간을 도 3a, 도 3b에 도시한 비터비 방식 및 종래 복호 방식과 비교해 보면, 비터비 방식의 경우이고, 종래의 복호 방식은이며, 본 발명에 의한 복호 방식은이다. 따라서, 종래의 방식에 비하여 복호 처리시간을만큼 단축시킬 수 있다. 여기서, W의 크기가 작을수록 복호 처리속도의 차가 커지게 된다.
블록 크기를 N, 부호기의 레지스터를 m, 메트릭 양자화 레벨을 q라 할 때, 상기 각 복호 방식에 따른 메모리의 용량을 살펴보면, 비터비 방식의 경우비트이고, 종래 복호 방식의 경우비트이다. 이에 비하여 본 발명에 의한 복호 방식의 경우비트이므로, 종래의 복호 방식에 비하여비트 만큼의 메모리 용량을 더 필요로 한다.
결국, 상기와 같이 메모리 용량을 약간 증가시켜야 하는 단점이 있지만, 전체적인 연산량을 줄이면서 복호처리를 위한 지연시간을 최소화 할 수 있는 이점에 비하여, 그 정도의 단점은 무시할만 하다.
한편, 도 7은 본 발명에 의한 학습 구간과 디코딩 구간을 예시적으로 나타낸 것으로, 도 4a,4b와 달리 첫 번째 반복과정에서만 학습 구간을 통해 디코딩이 이루어지고, 두 번째 반복과정부터는 학습 구간을 거치지 않고 바로 디코딩을 수행할 수 있다.
이상에서 상세히 설명한 바와 같이 본 발명은 이전의 복호과정에서 구해진 서브 블록들의 마지막 메트릭 값을 이용하여 학습구간을 거치지 않고 바로 디코딩을 수행함으로써, 기존에 복호구간마다 수행되던 학습구간 만큼의 베타 연산과정이 생략되어 복호처리시간이 그만큼 향상되는 효과가 있다.
Claims (4)
- 첫 번째 반복 복호과정에서는 역방향 연산기가부터까지 학습하여부터 0까지 계산된값을 메모리에 저장한 후 순방향 연산기가 동일 구간에 대해값을 구하고 그,값을 근거로 복호 연산을 수행하는 과정을 순차적으로 진행하며, 두 번째 반복 복호과정부터는 이전의 복호과정에서 구한 서브 블록들의 마지막 메트릭 값을 이용하여 학습 구간을 거치지 않고 유효한 베타 메트릭 값을 구하여 복호 연산에 이용하는 것을 특징으로 하는 터보 복호기의 복호 방법.
- 제1항에 있어서, 역방향 연산기의 연산 시작점과 끝점은 W만큼씩 증가하는 것을 특징으로 하는 터보 복호기의 복호 방법.
- 제1항에 있어서, 두 번째 반복 복호과정에서 첫 번째 블록인부터 0의 초기 스테이트의 메트릭 값은 이전 복호과정의 두 번째 블록부터에서 계산된의 메트릭 값을 이용하는 것을 특징으로 하는 터보 복호기의 복호 방법.
- 제1항에 있어서, 두 번째 반복 복호과정에서 역방향 연산기가에서 동작하고후에는 두 번째 복호 출력이 발생되며,에서 복호처리 동작이 완료되는 것을 특징으로 하는 터보 복호기의 복호 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0071476A KR100459414B1 (ko) | 2001-11-16 | 2001-11-16 | 터보 복호기의 복호 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0071476A KR100459414B1 (ko) | 2001-11-16 | 2001-11-16 | 터보 복호기의 복호 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030040884A true KR20030040884A (ko) | 2003-05-23 |
KR100459414B1 KR100459414B1 (ko) | 2004-12-03 |
Family
ID=29569867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0071476A KR100459414B1 (ko) | 2001-11-16 | 2001-11-16 | 터보 복호기의 복호 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100459414B1 (ko) |
-
2001
- 2001-11-16 KR KR10-2001-0071476A patent/KR100459414B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100459414B1 (ko) | 2004-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7191377B2 (en) | Combined turbo-code/convolutional code decoder, in particular for mobile radio systems | |
JP5479580B2 (ja) | Lteにおける並列turboデコーディングの方法及び装置 | |
EP1564893B1 (en) | Turbo decoder, turbo decoding method, and operating program of same | |
US7500169B2 (en) | Turbo decoder, turbo decoding method, and turbo decoding program | |
EP1122890A2 (en) | MAP decoding with parallelized sliding window processing | |
US8196006B2 (en) | Modified branch metric calculator to reduce interleaver memory and improve performance in a fixed-point turbo decoder | |
WO2002021701A1 (en) | Soft output decoder for convolutional codes | |
EP1471677A1 (en) | Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder | |
US20130007568A1 (en) | Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program | |
WO2004013975A1 (en) | Turbo decoding apparatus and method | |
KR101051933B1 (ko) | 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산 | |
KR100390416B1 (ko) | 터보 디코딩 방법 | |
EP1128560B1 (en) | Apparatus and method for performing SISO decoding | |
JP2005109771A (ja) | 最大事後確率復号方法及び装置 | |
US7178090B2 (en) | Error correction code decoding device | |
KR100459414B1 (ko) | 터보 복호기의 복호 방법 | |
KR100973097B1 (ko) | 이진 컨벌루션 코드를 사용하여 인코딩된 데이터 시퀀스를디코딩하기 위한 방법 | |
JP2006217042A (ja) | ターボ復号装置 | |
JP2008136006A (ja) | 誤り訂正復号器及びそれに用いる誤り訂正復号方法並びにそのプログラム | |
EP2362549A2 (en) | Low-latency viterbi survivor memory architecture and method using register exchange, trace-back, and trace-forward | |
EP2362548A1 (en) | Method and system for cyclic redundancy check | |
CN100490333C (zh) | 最大后验概率译码方法及译码装置 | |
JP2006115534A (ja) | 誤り訂正符号の復号方法、そのプログラム及びその装置 | |
KR100850744B1 (ko) | Llr 계산 장치 및 계산 방법 | |
KR100388780B1 (ko) | 이동통신 기지국의 디코더에서 메모리 용량 축소 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
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: 20080926 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |