KR20030005768A - 비터비 디코더의 상태 메트릭 연산 장치 - Google Patents
비터비 디코더의 상태 메트릭 연산 장치 Download PDFInfo
- Publication number
- KR20030005768A KR20030005768A KR1020010041215A KR20010041215A KR20030005768A KR 20030005768 A KR20030005768 A KR 20030005768A KR 1020010041215 A KR1020010041215 A KR 1020010041215A KR 20010041215 A KR20010041215 A KR 20010041215A KR 20030005768 A KR20030005768 A KR 20030005768A
- Authority
- KR
- South Korea
- Prior art keywords
- output
- state
- subtractor
- state metric
- msb
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- 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
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
-
- 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/27—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 using interleaving techniques
- H03M13/2703—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 using interleaving techniques the interleaver involving at least two directions
- H03M13/2707—Simple row-column interleaver, i.e. pure block interleaving
-
- 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
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4107—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
-
- 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
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4138—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
-
- 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/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6511—Support of multiple decoding rules, e.g. combined MAP and Viterbi decoding
-
- 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/6583—Normalization other than scaling, e.g. by subtraction
- H03M13/6586—Modulo/modular normalization, e.g. 2's complement modulo implementations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
터보 디코딩을 위한 비터비 디코더에 관한 것으로서 특히 상태 메트릭을 연산하는 ACS(Add, Compare and Select)에 관한 것이다.
본 발명에 따른 상태 메트릭 연산 장치는 비터비 디코딩에서 Ak,m = min*(Ak-1,b(o,m)+Dk-1,b(o,m), (Ak-1,b(1,m)+Dk-1,b(1,m), min*(A,B)=min(A,B) - loge(1 + e 1|A-B|)으로 결정되는 k번째 m-state의 상태 메트릭 Ak,m 을 연산하는 상태 메트릭 연산 장치에 있어서, 각각이 (Ak-1,b(o,m) + Dk-1,b(o,m)) 및 ((Ak-1,b(1,m)+ Dk-1,b(1,m))을 이진 보수 연산하는 두 개의 가산기; 상기 가산기들의 가산 결과들을 이진 보수 감산하는 감산기; 상기 감산기의 출력에 의존하여 상기 가산기들의 출력들 중에서 작은 것을 선택하여 출력하는 멀티플렉서; 상기 감산기의 출력의 절대값을 연산하는 절대값 연산기; 상기 절대값 연산기의 출력에 상응하여 loge(1 + e 1|A-B|)을 연산하여 출력하는 룩업테이블; 및 상기 멀티플렉서의 출력에서 상기 룩업 테이블의 출력을 감산하여 상태 메트릭 Ak,m으로서 출력하는 감산기를 포함하는 것을 특징으로 한다. 그리고 본 발명에 따른 상태 메트릭 연산 장치는 정규화를 위한 비교기, 멀티플렉서와 감산기를 거치지 않으므로 종래에 비해 높은 시스템 클럭을 사용할 수 있으므로 결과적으로 전체 처리량(throughput)을 높일 수 있고, 처리 지연(latency)을 줄일 수도 있다.
Description
본 발명은 터보 디코딩을 위한 비터비 디코더에 관한 것으로서 특히 상태 메트릭을 연산하는 상태 메트릭 연산 장치(Add, Compare and Select :ACS)에 관한 것이다.
일반적으로 무선 디지털 통싱에서 채널상의 에러를 보정하기 위해 송신단에서 에러 정정 모드를 부가하고 수신단에서 에러 정정 코드를 이용하여 에러를 보정하는 방법을 사용한다. 1993년에 터보 코드(Turbo code)가 만들어진 이후 미국형 CDMA 및 유럽형 W-CDMA의 High data rate 채널에 이 코드가 채택되었다.
이 터보 코드는 낮은 수신 전력에서도 반복 복호를 행함으로써 이론적 한계치인 Shannon limit에 매우 근접하는 것으로 알려지고 있다. 이 터보 코드의 복호방법에는 SOVA(Soft-Output Viterbi Algorithm)방식과 MAP(Maximum A Posterior)방식이 있는데, MAP방식이 SOVA방식보다 채널 환경이 좋은 AWIGN채널에서 0.3dB, 채널 환경이 좋지 않은 Rayleigh Fading 환경에서 3dB정도 더 높은 코딩 게인(coding gain)을 갖는 것으로 알려지고 있다.
MAP 방식의 복호기의 구성 요소 중의 가장 중요한 부분인 State metric의 ACS(Add, Compare and Select)의 구현을 위해서는 정규화(Normalization)가 필요하며 이에 따라 복호기의 구현 방식이 달라진다.
정보 시퀀스 dk는 첫번째 RSC(Recursive Systematic Convolutional) 인코더 블록에 입력되어 패리티 Y1k를 생성한다. 동시에 인터리버 블록에 입력되어 프레임 내의 정보 비트의 상관성을 없애기 위해 충분히 인터리빙된 후 두 번째 RSC 인코더 블록에 입력되어 패리티 Y2k를 생성한다. 인터리빙하는 데 걸리는 시간과 트렐리스(Trellis)를 종료시키는 데 필요한 비트들을 무시하면 한 프레임이 N-비트의 정보 시퀀스 dk(d1, d2,,,dk,,,dN)가 부호 시퀀스(X1Y11Y21, X2Y12Y22, ,,,XkY1kY2k,,,,XNY1NY2N)을 만들어내게 된다. 이때 code rate R=1/3이 된다.(물론 펑쳐링되는 경우도 있음) 이 부호 시퀀스를 BPSk(Binary Phase Shift Keying)로 변조한 뒤 채널상으로 전송하게 된다.
즉, 1과 0의 부호 시퀀스는 -1과 +1의 전송 심볼로 변하게 되어 채널상으로 송신된다.
채널을 거쳐 수신되는 전송 심벌에는 여러 가지 잡음이 더해진다. 이를 수식적으로 표현하면 다음과 같다.
여기서, pk와 qk는 서로 독립적인 잡음이라고 할 수 있다.
MAP 방식을 이용한 터보 디코더의 원리를 간단히 설명하면 다음과 같다. 수신된 한 프레임의 심볼 시퀀스를 RN 1이라고 하면
으로 표현된다.
여기서, Rk는 (xk, yk)이고, 시간 k일 때의 수신 심볼들이다. xk와 yk는 수학식 1과 2에 나타난 것과 같은 수신 심볼이다.
복호되는 dk와 관련된 Likelihood rate, λk를 수학식 4와 같이 정의한다.
여기서, P(dk= 1|RN 1), i=0, 1는 정보비트 dk의 APP(A Posteriori Probablity)이다. MAP방식이란 이 APP가 최대가 되게끔 정보비트 dk를 선택하는 방식이다.
첫번째 복호기(Dec1)는 정보 비트 dk의 사전확률비(A Priority Probability Ratio), La(dk)와 수신 정보 심볼에 대한 값, L(xk)와 첫번째 인코더(RSC1)에 의한 패리티의 수신 심볼에 대한 값, L(y1k)를 가지고 정보 비트 d의 외부정보(Extrinsic information0 를 만들어 낸다.
첫번째 반복에서 Dec1의 La(dk)는 0이 된다. 왜냐하면 dk의 값은 1 혹은 0으로 구성되는 데, 송신단에서 1의 사전확률과 0의 사전 확률이 똑같은 1/2로 가정할 수 있으므로 비율은 (1/2)/(1/2)이지만 log-domain에서 계산될 때는 log 1 = 0이 되게 된다. L(xk)와 L(y1k)는 xk와 y1k의 값에다 채널신뢰도(channel Reliability, Lc)를 곱한 값이 된다. 이러한 입력값을 가지고 Dec1의 출력 L1(dk)은 수학식 5와 같은 항의 조합으로 이루어진다.
여기서, La(dk)와 L(xk)항은 입력으로 받아들인 항들이며, 출력에서 이들을 빼면 Dec1이 생성해내는 외부 정보는 Le1(dk)가 되다. 이 항은 각 dk에 관계하는 항으로 두번째 복호기(Dec2)에서 정보비트의 사전확률비로 활용된다.
첫번째 반복의 Dec2의 입력을 살펴보면 정보비트 dk의 사전확률비(A Priori Probability Ratio) La(dk)는 Dec1에서 구한 Le1(dk)(수학식 5의 마지막항)가 되고, 수신 정보 심볼에 대한 값 L(xk)와 두번째 인코더(RSC2)에 의한 패리티의 수신 심볼에 대한 값 L(y2k)를 입력으로 하게 된다. 여기서 수신 패리티 심볼은 송신단에서 인터리빙된 상태에서 얻어진 값이므로 사전확률비값으로 활용되는 Dec1의 외부정보 Le1(dk)과 정보 심볼값 L(xk)는 인터리빙을 해서 복호화된다.
Dec2의 출력 L2(dk)는 수학식 6과 같이 표현된다.
반복적인 터보 복호를 위한 MAP 알고리즘(log 영역)을 구하는 데 필요한 수식을 다음과 같다.
여기서, 수학식 8, 9, 그리고 10에 있어서 min*(A, B) 는 다음과 같이 표현된다.
여기서 사용된 용어를 보면 시각 k, 상태 m, 정보비트 dk와 그에 상응하는 패리티 비트를 ck라 할 때
첫번째 b(dk,m)과 f(dk,m)은 역방향과 순방향 상태 메트릭이고,
두번째 Lc는 채널 신뢰도이고, 2/σ2(σ2은 AWGN에서 Noise Variance)이며,
세번째 Dk, Ak,m와 Bk,m은 branch, forward와 backword state metrics(Logdomain)이다.
상기 수학식 들 중에서 순방향 상태 메트릭을 계산하는 것은 수학식 8이고, 역방향 상태 메트릭을 계산하는 것은 수학식 9이다. 역방향 상태 메트릭 계산은 순방향 상태 메트릭 계산과 동일하므로, 여기서는 순방향 상태 메트릭 계산에 대해서만 언급한다.
도 1은 종래의 ACS의 구성을 보이는 블록도이다.
도 1에 도시된 장치는 두 개의 가산기(102, 104), 감산기(106, 112, 114) 멀티플렉서(108), 그리고 룩업 테이블(110)을 포함한다. 두 개의 가산기(102, 104)는 비트 0항 및 비트 1항에 대한 상태 메트릭 연산을 수행하는 일반적인 가산기 즉, 캐리(carry)를 가지는 가산기이다. 참조부호 116은 래치이다.
감산기(106및 멀티플렉서(108)는 가산기들(102, 104)의 가산 결과에서 적은 값을 선택하기 위한 비교기 역할을 수행한다. 감산기(102)는 가산기들(102), 104)의 가산 결과들 사이의 찻값 즉, 비트 0항에 대한 상태 메트릭과 비트 1항에 대한 상태 메트릭의 찻값을 연산하며, 찻값의 MSB에 의해 두 개의 상태 메트릭들 중에서 어떤 값이 작은 지를 판별할 수 있다. 멀티플렉서(108)는 가산기(102)에서 출력되는 찻값의 MSB에 의해 가산기들(102, 104)의 출력들 중의 하나를 선택하여 출력한다.
룩업 테이블(110)은 가산기(106)의 출력을 사용하여 수학식 11에서의 로그항(log term)을 연산한다.
감산기(112)는 수학식 11의 결과값을 산출하며, 멀티플렉서(108)의 출력에서룩업 테이블(110)의 출력을 감산한다.
감산기(114)는 정규화를 위한 것으로서 감산기(112)의 출력에서 모든 상태 메트릭들 중에서 최소값 MIN.State을 감산한다.
도 1에 도시된 장치의 동작을 상세히 설명하기로 한다.
k번째 m-state의 순향향 메트릭 Ak,m을 결정하기 위하여, 먼저 k-1번째의 순방향 메트릭 Ak-1,b(0,m), Ak-1,b(1,m) 과 브랜치 메트릭 Dk-1,b(0,m), Dk-1,b(1,m) 들이 사용된다.
양쪽항의 값들, Ak-1,b(0,m) + Dk-1,b(0,m) 와 Ak-1,b(1,m) + Dk-1,b(1,m)는 가산기(102, 104)를 통하여 구해지고, 감산기(106)의 출력에 의해 비교되어진다. 비교는 뺄셈을 통해서 이루질 수 있다. 코드체계가 2's complement라 할 때, 감산기(106)의 출력의 MSB의 값에 따라 가산기들(102, 104)의 출력들 중의 하나가 선택되어진다.
상태 메트릭의 값은 이전 상태 메트릭의 값이 누산되므로 지속적으로 증가하게 되어 언젠가는 오버플로우가 발생하게 된다. 따라서, 현재의 상태 메트릭에서 모든 상태 메트릭들 중에서 가작 작은 상태 메트릭을 감산해 줌에 의해 오버플로우를 방지한다. 이를 정규화라고 한다.
정규화를 위해서는 모든 상태 메트릭들 중에서 가장 작은 것을 선택하여야 한다. 예를 들어, 만약 constraint length 가 4 이어서 state가 8개인 시스템인 경우 7개의 comparator를 통해서 가장 작은 상태 메트릭을 가려낸다.
도 1에서 Min. State는 모든 스테이트에서 가작 작은 상태 메트릭을 의미한다. 그리고 상태 메트릭의 overflow(혹은 underflow)를 방지하기 위해 모든 상태 메트릭들은 Min. state를 뺌으로써 정규화 하게된다. 즉, 상태 메트릭의 값은 이전 상태 메트릭의 값이 누산되므로 지속적으로 증가하게 되어 언젠가는 오버플로우가 발생하게 되므로 상태 메트릭에서 모든 스테이트에서 가작 작은 상태 메트릭을 감산해 줌에 의해 오버플로우를 방지한다.
도 1에 도시된 ACS에 있어서는 상태 메트릭을 구하는데 필요한 가산기(102, 104) 이외에 전체 상태 메트릭들 중에서 가장 적은 상태 메트릭을 찾는데 필요한 비교기들(미도시)이 필요하고 다시 그 값을 뺌으로서 또 하나의 감산기(114)가 필요하게된다. 이는 전체 시스템 속도에 영향을 주는 시스템 클럭을 결정하는데 부정적인 영향을 미친다. 이로 인해 만약 레지스터를 삽입하여 시스템 클럭을 높이더라도 시스템 latency가 길어지는 결과를 낳게 된다.
이와 같이 도 1에 도시된 바와 같은 종래의 ACS는 상태 메트릭을 정규화하는 방식을 사용하고 있기 때문에 시스템의 throughput을 향상시킬 수 없고, 또 집적회로로 구현되었을 때 많은 면적을 차지하는 단점이 있다.
또한, 도 1에 도시된 바와 같은 종래의 ACS에서는 로그항을 연산하기 위한 룩업 테이블을 사용하고 있으나 입력값이 양수 및 음수이므로 룩업 테이블의 용량이 커야 한다는 문제점도 있다.
본 발명은 모든 상태 메트릭의 값들의 차는 Upper bound 된다는 사실을 이용해 별도의 정규화 과정을 거치지 않고 상태 메트릭을 계산해내는 ACS를 MAP turbodecoder에 응용하여 시스템 throughput을 높이고, 효율적인 ACS 및 Denormalization의 구현을 목적으로 한다.
도 1은 종래의 ACS의 구성을 보이는 블록도이다.
도 2는 본 발명에 따른 ACS의 구성을 보이는 블록도이다.
도 3은 본 발명에 따른 역정규화 장치의 구성을 보이는 블록도이다.
상기의 목적을 달성하는 본 발명에 따른 상태 메트릭 연산 장치는
비터비 디코딩에서 Ak,m = min*(Ak-1,b(o,m) + Dk-1,b(o,m), (Ak-1,b(1,m)+ Dk-1,b(1,m), min*(A,B) = min(A,B) - loge(1 + e 1|A-B|)으로 결정되는 k번째 m-state의 상태 메트릭 Ak,m 을 연산하는 상태 메트릭 연산 장치에 있어서,
각각이 (Ak-1,b(o,m) + Dk-1,b(o,m)) 및 ((Ak-1,b(1,m)+ Dk-1,b(1,m))을 이진 보수 연산하는 두 개의 가산기;
상기 가산기들의 가산 결과들을 이진 보수 감산하는 감산기;
상기 감산기의 출력에 의존하여 상기 가산기들의 출력들 중에서 작은 것을 선택하여 출력하는 멀티플렉서;
상기 감산기의 출력의 절대값을 연산하는 절대값 연산기;
상기 절대값 연산기의 출력에 상응하여 loge(1 + e 1|A-B|)을 연산하여 출력하는 룩업테이블; 및
상기 멀티플렉서의 출력에서 상기 룩업 테이블의 출력을 감산하여 상태 메트릭 Ak,m으로서 출력하는 감산기를 포함하는 것을 특징으로 한다.
또한, 모든 상태의 상태 메트릭의 오버플로우 발생 여부를 조사하고, 오버플로우 발생시 Lk = min*(Ak,m + Dk,f(o,m) min*(Ak,m + Dk,f(1,m) + Bk+1,f(1,m)로 주어지는 정보 비트를 구하기 위하여 모든 상태의 상태 메트릭의 MSB를 반전시켜주는 역정규화 장치를 더 구비하는 것이 바람직하다.
본 발명에 따른 ACS에서는 모듈로 연산을 사용하에 의해 종래의 ACS에서와 같은 정규화 과정이 생략된다. 즉, 각 상태별로 계산된 값들은 서로 비교되지 않고 또한 정규화를 위해 감산을 하지도 않는다.
단지 종래에는 2's complement code형태의 10비트 상태 메트릭인 경우, 전체 상태 메트릭이 +511에서 -512의 값을 벗어나지 않는 반면, 제안된 ACS에서는 modulus형태의 연산이 일어나기 때문에 overflow 및 underflow를 허용한다. 그리고 이러한 값들은 다음 단계의(k에서 k+1로) 상태 메트릭에서도 별도의 가공 없이 그대로 사용되어진다. 단지 k번째 LLR(Log-Likelihood Ratio),Lk,를 계산하기 위해서 Denormalization 이 필요하다.
이하 첨부된 도면을 참조하여 볼 발명의 구성 및 동작을 상세히 설명하기로 한다.
도 2는 본 발명에 따른 ACS의 구성을 보이는 블록도이다.
도 2에 도시된 장치는 각각이 비트 0에 관련된 상태 메트릭 및 비트 0에 관련된 상태 메트릭을 연산하는 두 개의 이진 보수 가산기(202, 204), 두 개의 이진 보수 가산기(202, 204)의 가산 결과들을 감산하여 찻값을 구하는 이진 보수 감산기(206), 두 개의 이진 보수 가산기(202, 204)의 가산 결과들 중에서 작은 값을 가지는 것을 선택하기 위한 멀티플렉서(208), 이진 보수 감산기(206)의 감산 결과의 절대값을 연산하기 위한 익스클루시브 오아 게이트(210), 익스클루시브 오아 게이트(210)에서 발생된 절대값을 사용하여 수학식 11의 로그항을 연산하기 위한룩업테이블(212), 그리고 멀티플렉서(208)의 출력으로부터 상기 룩업 테이블(212)의 연산 결과를 감산하여 상태 메트릭 Ak,m을 출력하는 감산기(214)를 포함한다. 참조부호 216은 래치이다.
도 2에 도시된 장치에 있어서, 이진 보수 가산기(202, 204), 이진 보수 감산기(206), 그리고 멀티플렉서(208)는 수학식 11에 있어서의 min(A,B)를 연산하기 위하여 제공된다.
또한, 이진 보수 감산기(206), 익스클루시브 오아 게이트(210), 룩업 테이블(212)는 수학식 11에 있어서의 로그항 즉, loge(1 + e 1|A-B|)를 연산하기 위하여 제공된다.
마지막으로 감산기(214)는 수학식 11의 결과를 연산하기 위하여 제공된다.
도 2에 도시된 본 발명에 따른 ACS의 동작을 상세히 설명하기로 한다.
k번째 m-state의 순방향 상태 메트릭, Ak,m 를 결정하기 위하여 Ak-1,b(0,m) + Dk-1,b(0,m) (이하 비트 0항)와 Ak-1,b(1,m) + Dk-1,b(1,m) (이하 비트 1항)의 덧셈 연산이 이루어진다.
비트 0항의 연산은 제1이진 보수 가산기(202)를 통하여 수행되고, 비트 1항의 연산은 제2이진 보수 가산기(204)를 통하여 수행된다.
도 2에 도시된 본 발명의 ACS에서는 도 1에 도시된 바와 같은 종래의 ACS에서와 달리 모듈로 연산(modulus)을 통하여 덧셈 연산을 수행한다. 여기서, 상태 메트릭은 10비트 2's complement code(+511 ~ -512), 브랜치 메트릭은 6비트 2's complement code(+31 ~ -32)라 가정하자.
즉, 예를 들어 비트 0항이 (-500 + -30)이고, 비트 1항이 (-490 + -10)이고, 모든 상태 메트릭 값들중에서 최대(소)값이 -485라고 한다. 그러면 종래 방식에서는 새로운 상태 메트릭 값이 -45(=-530 - (-485))되나 제안된 방식에서는 +496(= -530 + 512 + 512)이 된다. 비트 0항(-530)과 비트 1항(-500)의 비교 결과 비트 0항이 작으므로 이것이 선택된다. 또한, +496은 -530을 이진 보수로 나타낸 값이다.
이렇게 할 수 있는 배경에는 모든 상태 메트릭값들의 차가 512(여기서 M이라 하자)보다 커서는 안된다는 가정이 깔려있다. (만약 모든 상태 메트릭 값들의 차, M이 256을 넘지 않는다면 9 비트로 상태 메트릭을 구성할 수 있음). 그리고 각 상태 메트릭 값들 사이의 차가 M보다 크면 큰 값이 오히려 작은 값으로 인식해서 연산하면 된다.
이진 보수 감산기(206)는 두 개의 이진 보수 가산기(202, 204)의 가산 결과들을 감산하여 비트 0항과 비트 1항의 찻값을 구한다.
2's complement modulo code에서 차값은 다음과 같이 구할 수 있다.
뺄셈에서 피감수를 1's complement code로 두고 거기에다 두 값 차의 MSB를 반전해서 더하면 된다.
그리고 결과값의 MSB가 0인 경우에는 그 값이 바로 두값의 찻값이되고, 결과값의 MSB가 1인 경우 그 값의 2's complement 값이 된다.
이를 예를 들어 설명한다. 첫번째, +3 - +2인 경우,
+3(00000 00011) - +2(00000 00010) = +3(00000 00011) + -2(11111 11110) = +1(00000 00001) 이므로 결과값의 MSB가 0이므로 이 값은 바로 두 값의 차값이 된다. 두번째, +2 - +3인 경우, +2(00000 00010) - +3(00000 00011) = +2(00000 00010) + -3(11111 11101) = -1(11111 11111)이다. 고로 결과값의 MSB가 1이므로 결과값의 2's complement 값 +1(00000 00001)이 차값이 되는 것이다. 이의 구현은 그림 2의 중앙상단의 인버터(206b)에 의해 구현된다.
감산기의 감산 결과 중에서 MSB 즉 SMSB는 감산기(206)에 입력되는 두 개의 값들 중에서 어느 것이 작은 지를 나타낸다. 멀티플렉서(208)는 SMSB를 이용하여 가산기들(202, 204)의 출력들 중에서 작은 값을 선택하여 출력한다.
익스클루시브 오아 게이트(210)는 두 값의 찻값의 절대값을 구하기 위해 사용된다.
도 2에 상세히 도시되지는 않았지만 익스클루시브 오아 게이트(210)는 10개의 2입력 익클루시브 오아 게이트로 구성된다. (상태 메트릭은 10비트 2's complement code인 것으로 가정하였으므로)
감산기(206)의 감산 결과는 10비트이며 각각의 비트들은 각각의 익스클루시브 오아에 입력되고, 또한, SMSB가 모든 익스클루시브 오아에 입력된다.
익스클루시브 오아 게이트(210)의 동작에 의해 감산기(206)에서 출력되는 찻값의 절대값이 얻어진다.
룩업 테이블(212)는 익스클루시브 오아 게이트(210)에서 출력되는 절대값에 근거하여 수학식 11의 로그항을 연산한다. 로그 연산을 수행하는 장치를 개별 회로로 구성할 경우 회로가 매우 복잡해지지만 룩업 테이블(212)을 사용하면 간단하게 구성할 수 있다. 또한, 도 1에 도시된 바와 같은 종래의 ACS에서와 달리 입력값이양수에 한하므로 도 1에 도시된 룩업 테이블에 비해 용량을 절반으로 줄일 수 있다.
감산기(214)는 수학식 11의 결과 즉 Ak,m을 연산한다.
이와 같은 동작에 의하여 k번째 m-state의 상태 메트릭이 구해진다.
모듈로 연산에 의한 결과값은 일정한 범위 내에서 순환하는 특성을 가진다. 예를 들어 10비트 이진 보수 연산에 의한 값은 -512 ∼ +511사이에서 순환한다. 본 발명에 따른 ACS에서는 모듈로 연산의 이러한 특성을 이용하여 종래의 ACS에서와 같은 정규화 과정을 생략할 수 있다.
도 3은 본 발명에 다른 역정규화(Denormalization) 장치의 구성을 보이는 블록도이다.
도 3에 도시된 장치는 세 개의 앤드게이트(302, 304, 314), 세 개의 인버터(306, 308, 316)), 두 개의 오아 게이트(310, 312), 그리고 앤드게이트(314)의 출력에 의해 정상 혹은 반전된 값을 출력하는 멀티플렉서(318)를 포함한다.
수학식 10으로 보여지는 정보비트의 LLR(Log-Likelihood Ratio), Lk,를 구하기위해서는 도 3과 같은 Denormalization 회로가 필요하다. 즉, 많은 상태 메트릭의 MSB와 2'nd MSB를 살펴봄으로써 간단한 Denormalization을 행할 수 있다. 도 3은 상태 메트릭이 8개인 경우를 가정한다.
MAk,m 은 8개의 순방향 상태 메트릭의 MSB만을 묶어놓은 것이고, SAk,m 은 8개의 순방향 상태메트릭의 2'nd MSB만을 묶어놓은 것이다. 본원 발명에 있어서 상태 메트릭은 2's complement modulo 연산을 통하여 구해지기 때문에 본원 발명의ACS는 overflow를 허용한다.
이때 MSB와 2'nd MSB만을 보면 00,01,10,11이 존재하는데, 특정 싯점 k에서의 모든 상태 메트릭의 MSB와 2'nd MSB가 동시에 01과 10이 존재하면 overflow가 존재하는 상황이므로 전체 상태 메트릭의 MSB를 반전시킨다. 이는 M(여기서, M은 비트 0항의 상태 메트릭과 비트 1항의 상태 메트릭의 찻값)을 더하거나 빼는 효과를 나타내므로 더 이상의 overflow가 존재 하지않는 상황을 만들게 된다.
앤드 게이트들(302, 304, 314), 인버터들(306, 308), 그리고 오아 게이트들(310, 312)에 의해 특정 싯점 k에서의 모든 상태 메트릭의 MSB와 2'nd MSB가 동시에 01과 10이 존재하면 overflow가 존재하는 지 즉, 오버플로우 가 존재하는 지를 검출한다.
멀티플렉서(318)는 앤드 게이트(314)의 출력에 따라 선택적으로 원래의 MSB를 출력하거나 인버터(316)에 의해 반전된 MSB를 출력한다.
본 발명에 따른 ACS는 종래 방식의 ACS에비해 정규화를 위한 비교기, 멀티플렉서, 그리고 감산기와 같은 추가적인 회로가 필요 없으므로 순방향 상태 메트릭과 역방향 상태 메트릭을 병렬로 구현하는 시스템인 경우 H/W부담이 크게 줄여줄 수 있다.
그리고 본 발명에 따른 ACS는 정규화를 위한 비교기, 멀티플렉서와 감산기를 거치지 않으므로 종래에 비해 높은 시스템 클럭을 사용할 수 있으므로 결과적으로 전체 throughput을 높일 수 있고, latency를 줄일 수도 있다.
또한, 로그항을 계산하기 위한 룩업 테이블에 찻값의 절대값을 입력하게 됨으로써 종래의 ACS에 비해 룩업 테이블의 용량을 절반으로 줄일 수 있다.
Claims (3)
- 비터비 디코딩에서 Ak,m = min*(Ak-1,b(o,m) + Dk-1,b(o,m), (Ak-1,b(1,m)+ Dk-1,b(1,m), min*(A,B) = min(A,B) - loge(1 + e 1|A-B|)으로 결정되는 k번째 m-state의 상태 메트릭 Ak,m 을 연산하는 상태 메트릭 연산 장치에 있어서,각각이 (Ak-1,b(o,m) + Dk-1,b(o,m)) 및 ((Ak-1,b(1,m)+ Dk-1,b(1,m))을 이진 보수 연산하는 두 개의 가산기;상기 가산기들의 가산 결과들을 이진 보수 감산하는 감산기;상기 감산기의 출력에 의존하여 상기 가산기들의 출력들 중에서 작은 것을 선택하여 출력하는 멀티플렉서;상기 감산기의 출력의 절대값을 연산하는 절대값 연산기;상기 절대값 연산기의 출력에 상응하여 loge(1 + e 1|A-B|)을 연산하여 출력하는 룩업테이블; 및상기 멀티플렉서의 출력에서 상기 룩업 테이블의 출력을 감산하여 상태 메트릭 Ak,m으로서 출력하는 감산기를 포함하는 상태 메트릭 연산 장치.
- 제1항에 있어서, 모든 상태의 상태 메트릭의 오버플로우 발생 여부를 조사하고, 오버플로우 발생시 Lk = min*(Ak,m + Dk,f(o,m) min*(Ak,m + Dk,f(1,m) +Bk+1,f(1,m)로 주어지는 정보 비트를 구하기 위하여 모든 상태의 상태 메트릭의 MSB를 반전시켜주는 역정규화 장치를 더 구비하는 것을 특징으로 하는 상태 메트릭 연산 장치.
- 제2항에 있어서, 상기 역정규화 장치는모든 상태 메트릭의 MSB와 두 번째 MSB를 검사하여 오버 플로우 발생 여부를 검사하는 오버플로우 검출부;모든 상태 메트릭의 MSB를 반전시키는 인버터; 및상기 오버 플로우 검출부의 검출 결과에 상응하여 상기 모든 상태 메트릭의 MSB 혹은 상기 인버터에서 추력되는 모든 상태 메트릭의 반전된 MSB를 선택적으로 출력하는 멀티플렉서를 구비하는 것을 특징으로 하는 상태 메트릭 연산 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010041215A KR20030005768A (ko) | 2001-07-10 | 2001-07-10 | 비터비 디코더의 상태 메트릭 연산 장치 |
US10/189,762 US7143335B2 (en) | 2001-07-10 | 2002-07-08 | Add-compare-select arithmetic unit for Viterbi decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010041215A KR20030005768A (ko) | 2001-07-10 | 2001-07-10 | 비터비 디코더의 상태 메트릭 연산 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20030005768A true KR20030005768A (ko) | 2003-01-23 |
Family
ID=19711997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010041215A KR20030005768A (ko) | 2001-07-10 | 2001-07-10 | 비터비 디코더의 상태 메트릭 연산 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7143335B2 (ko) |
KR (1) | KR20030005768A (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002357739A1 (en) * | 2001-11-16 | 2003-06-10 | Morpho Technologies | Viterbi convolutional coding method and apparatus |
FR2835666A1 (fr) * | 2002-02-04 | 2003-08-08 | St Microelectronics Sa | Module acs dans un decodeur |
US7185268B2 (en) * | 2003-02-28 | 2007-02-27 | Maher Amer | Memory system and method for use in trellis-based decoding |
CN1954503A (zh) * | 2004-05-18 | 2007-04-25 | 皇家飞利浦电子股份有限公司 | Turbo解码器输入重新排序 |
KR100606023B1 (ko) * | 2004-05-24 | 2006-07-26 | 삼성전자주식회사 | 고속 터보 복호화 장치 |
US7895507B1 (en) * | 2007-02-16 | 2011-02-22 | Xilinx, Inc. | Add-compare-select structures using 6-input lookup table architectures |
US7716564B2 (en) * | 2007-09-04 | 2010-05-11 | Broadcom Corporation | Register exchange network for radix-4 SOVA (Soft-Output Viterbi Algorithm) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5075879A (en) * | 1989-10-13 | 1991-12-24 | Motorola, Inc. | Absolute value decoder |
KR0146065B1 (ko) * | 1994-10-18 | 1998-09-15 | 문정환 | 절대값 계산 회로 |
JPH1091395A (ja) * | 1996-09-13 | 1998-04-10 | Toshiba Corp | プロセッサ |
KR100300306B1 (ko) | 1999-05-28 | 2001-09-26 | 윤종용 | 무선통신 시스템에서 채널 적응형 맵 채널 복호 장치 및 방법 |
JP2000348345A (ja) * | 1999-06-07 | 2000-12-15 | Pioneer Electronic Corp | 情報記録再生方法及び情報記録再生システム並びに情報記録装置及び情報再生装置 |
DE19937506A1 (de) * | 1999-08-09 | 2001-04-19 | Infineon Technologies Ag | ACS-Einheit für einen Viterbi-Decodierer |
US6865710B2 (en) * | 2000-09-18 | 2005-03-08 | Lucent Technologies Inc. | Butterfly processor for telecommunications |
-
2001
- 2001-07-10 KR KR1020010041215A patent/KR20030005768A/ko not_active Application Discontinuation
-
2002
- 2002-07-08 US US10/189,762 patent/US7143335B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7143335B2 (en) | 2006-11-28 |
US20030039323A1 (en) | 2003-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100487183B1 (ko) | 터보 부호의 복호 장치 및 방법 | |
CA2273608C (en) | Reduced-complexity max-log app decoders and related turbo decoders | |
US7209527B2 (en) | Turbo decoder employing max and max* map decoding | |
JP4709119B2 (ja) | 復号装置及び復号方法 | |
EP1135877A1 (en) | Component decoder and method thereof in mobile communication system | |
EP1130789A2 (en) | Soft-decision decoding of convolutionally encoded codeword | |
US20100070819A1 (en) | Channel adaptive iterative turbo decoder system and method | |
US20120311398A1 (en) | Efficient soft value generation for coded bits in a turbo decoder | |
JP2002111519A (ja) | 繰り返し誤り訂正復号装置に用いられる軟入力軟出力復号器 | |
KR20030005768A (ko) | 비터비 디코더의 상태 메트릭 연산 장치 | |
JP3514217B2 (ja) | ターボ復号方法及び受信機 | |
KR20070065831A (ko) | 연산 회로 | |
US6973615B1 (en) | System of and method for decoding trellis codes | |
EP1565992A1 (en) | Erasure determination procedure for fec decoding | |
CN2884696Y (zh) | 用于Turbo码译码器中的归一化装置 | |
US8914716B2 (en) | Resource sharing in decoder architectures | |
Shim et al. | A novel metric representation for low-complexity log-MAP decoder | |
Ang et al. | SOVA based LTE turbo decoders | |
Verma et al. | An FPGA realization of simplified turbo decoder architecture | |
Han et al. | A power efficient reconfigurable max-log-MAP turbo decoder for wireless communication systems | |
Marín et al. | Hardware architecture of MAP algorithm for turbo codes implemented in a FPGA | |
Boutillon et al. | VLSI Architectures for the Forward-Backward algorithm | |
Jackuline et al. | A new architecture for the generation of picture based CAPTCHA: Double binary convolutional turbo decoder using low power memory reduced traceback MAP decoding | |
Ling et al. | Precision Bits Can Be Reduced by One in Max-Log-MAP-Based Decoder | |
Nithya et al. | High Throughput of Map Processor Using Pipeline Window Decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |