KR20010111023A - 디코더 및 디코딩 방법 - Google Patents

디코더 및 디코딩 방법 Download PDF

Info

Publication number
KR20010111023A
KR20010111023A KR1020010031761A KR20010031761A KR20010111023A KR 20010111023 A KR20010111023 A KR 20010111023A KR 1020010031761 A KR1020010031761 A KR 1020010031761A KR 20010031761 A KR20010031761 A KR 20010031761A KR 20010111023 A KR20010111023 A KR 20010111023A
Authority
KR
South Korea
Prior art keywords
value
log
log likelihood
likelihood
probability
Prior art date
Application number
KR1020010031761A
Other languages
English (en)
Other versions
KR100838907B1 (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 이데이 노부유끼
Publication of KR20010111023A publication Critical patent/KR20010111023A/ko
Application granted granted Critical
Publication of KR100838907B1 publication Critical patent/KR100838907B1/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum 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
    • H03M13/3911Correction factor, e.g. approximations of the exp(1+x) function
    • 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
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum 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
    • H03M13/3922Add-Compare-Select [ACS] operation in forward or backward recursions
    • 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
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum 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
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs

Landscapes

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

Abstract

본 발명은 회로의 디코딩 실행에 나쁜 영향을 미치지 않고, 회로 규모가 감소된 디코더를 제공한다. 디코더는, 로그 우도를 부여하기 위해 추가되고, 변수에 관련되는 1차원 함수로 표기되는 보정항을 산출하기 위해 채택되며, 로그 우도의 플러스 마이너스 식별을 위한 통일된 코드를 제공하기 위해 보정항에 소정값을 가산하고, 로그 우도를 산출하기 위한 것으로 가산/비교/선택 회로(60)를 포함한다. 가산/비교/선택 회로(60)는 함수의 변수인 절대값 데이터 |P-Q|와, 보정항과 소정값을 가산하여 얻어진 값과의 관계를 ROM(66)에 테이블의 형태로 기억하고, 절대값 산출 회로(65)로부터 공급된 절대값 데이터 |P-Q|를 어드레스 신호로 변환시켜, 절대값 데이터 |P-Q|에 대응하는 값이 데이터 Z로서 차분기(67)로부터 판독된다.

Description

디코더 및 디코딩 방법{DECODER AND DECODING METHOD}
본 발명은, 연 출력 디코딩(soft-output decoding)을 행하는 디코더 및 디코딩 방법에 관한 것이다.
최근, 연쇄 코드(concatenated codes)에 있어서의 내부 코드(inner codes)의 디코딩 출력이나, 혹은 반복 디코딩(recursive decoding method)을 사용하는 반복 디코딩 동작의 출력을 연 출력으로 하는 것에 의해, 심볼 오류율을 최소화하는 많은 연구가 행해져 오고 있다. 또한, 연 출력을 제공하는 디코딩에 관한 연구도 행해지고 있다. 예를 들면, 「발(Bahl), 콕(Cocke), 제리넥(Jelinek) 및 라비브 (Raviv)의 "Optimal decoding of linear codes for minimizing symbol error rate", IEEE Trans. Inf. Theory, vo1.It-20, PP. 284-287, Mar.1974」에, 컨볼루션 코드 등의 소정의 코드를 디코딩했을 때의 심볼 오류율을 최소로 하는 알고리즘이 개시되어 있다. 이 알고리즘을 이하, BCJR 알고리즘으로 칭하기로 한다. 이 BCJR 알고리즘에 있어서는, 디코딩 결과로서 각 심볼을 출력하는 것이 아니라, 각 심볼의 우도를 출력한다. 이러한 출력은 연 출력(soft-output)으로 칭해진다. 이하, 이 BCJR 알고리즘의 내용에 대하여 도 1을 참조하여 설명한다. 또, 이하의 설명에서는, 도 12에 도시한 바와 같이, 디지털 정보를 송신 장치(도시하지 않음)가구비한 인코더(201)에 의해 컨볼루션 코딩하여, 그 출력을 노이즈를 갖는 무기억(memoryless) 채널(202)을 통해 수신 장치(도시하지 않음)에 입력하여, 이 수신 장치가 구비하는 디코더(203)에 의해 디코딩하여, 관찰하는 것으로 가정한다.
인코더(201)가 구비하는 시프트 레지스터의 내용을 나타내는 M 개의 상태(천이 상태)를 정수 m(m=0, 1,…, M-1)으로 나타내고, 시각 t의 상태를 St로 나타낸다. 1 타임 슬롯에 k 비트의 정보가 입력되는 것으로 하면, 시각 t에서의 입력을 it=(it1, it2, …, itk)로 나타내고, 입력 시스템을 I1 T=(i1, i2, …, iT)로 나타낸다. 상태 m'로부터 상태 m으로의 천이가 있는 경우에는, 그 천이에 대응하는 정보 비트를 i(m', m)=(i1(m', m), i2(m', m), …, ik(m', m))로 나타낸다. 또한, 1타임 슬롯에 n비트의 코드가 출력되면, 시각 t에서의 출력을 xt=(xt1, xt2, …, xtn)로 나타내고, 출력 시스템을 X1 T=(x1, x2, …, xT)로 나타낸다. 상태 m'로부터 상태 m으로의 천이가 있는 경우에는, 그 천이에 대응하는 코드 비트를 x(m', m)=(x1(m', m), x2(m', m), …, xk(m', m))로 나타낸다.
인코더(201)에 의한 컨볼루션 코딩은, 상태 SO= 0에서 시작하고, X1 T을 출력한 후에 ST= O에서 종료하는 것으로 한다. 전술한 인코더의 상태들 간의 천이 확률 Pt(m|m')을 이하의 수학식 1로 정의한다.
여기서, 우변에 나타내는 Pr{A|B}는, B가 생긴 조건하에서, A가 생기는 조건부 확률을 나타낸다. 이 천이 확률 Pt(m|m')은 다음의 수학식 2에 나타내는 바와 같이, 입력 i에서 상태 m' 로부터 상태 m으로 천이할 때에, 시각 t에서의 입력 it가 i인 확률 Pr{it=i}와 동일한 것이다.
잡음이 있는 무기억 채널(202)은 X1 T을 입력으로 하여, Y1 T를 출력한다. 1타임 슬롯에 n비트의 수신값이 출력될 경우, 시각 t에서의 출력을 yt=(yt1, yt2, …, ytk)로 나타내고, 출력 시스템을 Y1 T=(y1, y2, …, yT)로 나타낸다. 잡음이 있는 무기억 채널(202)의 천이 확률은, 모든 t(1≤t≤T)에 대하여, 각 심볼의 천이 확률, 혹은 Pr{yj|xj}을 이용하여 정의할 수 있다.
다음의 수학식 4에 의해 λtj를, Y1 T을 수신했을 때의 시각 t에서의 입력 정보의 우도로서 정의하며, 얻어질 연출력이다.
BCJR 알고리즘에 있어서는, 다음의 수학식 5 내지 수학식 7에 나타낸 바와 같은 확률 αt, βt및 γt를 정의한다. Pr{A;B}는 A와 B 둘 모두 생기는 확률을 나타낸다.
이하, 이들의 확률 αt, βt및 γt의 내용에 대하여, 인코더(201)에 있어서의 격자구조도, 또는 상태 천이도인 도 2를 이용하여 설명한다. 도 2를 참조하면, αt-1는 코딩 개시 상태 S0=O에서 수신값을 근거로 시계열순으로 산출한 시각 t-1에있어서의 각 상태의 통과 확률에 대응하며, βt는 코딩 종료 상태 ST= O에서 수신값을 근거로 시계열의 역순으로 산출한 시각 t에서의 각 상태의 통과 확률에 대응하며, γt은 시각 t에서의 수신값 및 입력 확률을 근거로 산출한 시각 t에서의 상태 사이를 천이하는 각 브랜치의 출력의 수신 확률에 대응한다.
그러면, 확률 αt, βt및 γt을 이용하면, 연 출력 λtj는 다음의 수학식 8과 같다.
그런데, t=1, 2, …, T에 대하여, 다음의 수학식 9가 성립한다.
마찬가지로, t=1, 2, …, T에 대하여, 수학식 10이 성립한다.
최종적으로, γt에 대하여 수학식 11이 성립한다.
:*1...입력 i일 경우 m'로부터 m으로 천이할 때
:*2...입력 i일 경우 m'로부터 m으로 천이가 발생하지 않을 때
따라서, 디코더(203)는 BCJR 알고리즘을 적용하여 연 출력 디코딩을 행하는 경우에는, 이들의 관계에 기초하여 도 3에 나타내는 일련의 단계에 의해 연 출력 λt를 구한다.
보다 구체적으로는, 디코더(203)는 단계 S201에 있어서, yt를 수신할 때마다, 상기 수학식 9 및 수학식 11을 이용하여 확률 αt(m) 및 γt(m', m)을 산출한다.
그 후, 디코더(203)는 단계 S202에 있어서, 시스템 Y1 T의 모두를 수신한 후에상기 수학식 10을 이용하여 모든 시각 t에서의 상태 m에 대하여, 확률βt(m)을 산출한다.
그 후, 디코더(203)는 단계 S203에 있어서, 단계 S201 및 단계 S202에 있어서 산출한 확률 αt, βt및 γt를 상기 수학식 8에 대입하여, 각 시각 t에서의 연 출력 λt을 산출한다.
디코더(203)는 이러한 일련의 단계를 거치는 것에 의해서, BCJR 알고리즘을 적용한 연 출력 디코딩을 행할 수 있다.
그런데, 이러한 BCJR 알고리즘에 있어서는, 확률을 직접 값으로서 보유하여 연산을 행할 필요가 있어서, 곱 연산을 포함하기 위해서는 연산량이 크다는 문제가 있었다. 연산량을 삭감하는 방법으로서, 「로버슨(Robertson), 빌브런(Villebrun) 및 호어(Hoeher)의, "A comparison of optimal and sub-optimal MAP decoding algorithms operating in the doInain", IEEE Int. Conf. on Communications, pp.1009-1013, June 1995」에 기재되어 있는 Max-Log-MAP 알고리즘 및 Log-MAP 알고리즘(이하, Max-Log-BCJR 알고리즘 및 Log-BCJR 알고리즘이라 각각 칭함)이 있다.
우선, Max-Log-BCJR 알고리즘에 대하여 설명한다. Max-Log-BCJR 알고리즘은 확률 αt, βt및 γt을 자연로그를 이용하여 표기하여, 다음 수학식 12에 의해 확률의 곱 연산을 로그의 합 연산으로 치환함과 동시에, 다음 수학식 13에 나타낸 바와 같이, 확률의 합 연산을 로그의 최대값 연산으로 근사하는 것이다. 다음 수학식13에 나타내는 max(x, y)는, x, y 중 큰 값을 갖는 것을 선택하는 함수이다.
기재를 간략화하기 위해, 자연로그를 I로 나타내고, αt, βt, γt및 λt의 자연 로그 값 각각을, 다음 수학식 14에 나타낸 바와 같이 Iαt, Iβt, Iγt, Iλt로 나타내는 것으로 한다.
Max-Log-BCJR 알고리즘에 있어서, 이들의 로그 우도(log likelihoods) Iαt, Iβt, Iγt각각을, 다음 수학식 15 내지 수학식 17에 나타낸 바와 같이 근사한다. 여기서, 수학식 15에 있어서의 우변의 상태 m'의 최대값 max는, 상태 m 으로의 천이가 존재하는 상태 m'의 중에서 구한다. 마찬가지로, 다음 수학식 16에 있어서의 우변의 상태 m'에 있어서의 최대값 max는 상태 m으로의 천이가 존재하는 상태 m'의중에서 구하는 것으로 한다.
Max-Log-BCJR 알고리즘에 있어서, 로그 연 출력 Iλt에 대해서도 마찬가지로 다음 수학식 18에 나타낸 바와 같이 근사한다. 여기서, 수학식 18에 있어서의 우변 제1항의 최대값 max는 입력이 "1"일 때에 상태 m으로의 천이가 존재하는 상태 m' 중에서 구하고, 제2항의 최대값 max는 입력이 "0" 일 때에 상태 m으로의 천이가 존재하는 상태 m' 중에서 구하는 것으로 한다.
따라서, 디코더(203)는 Max-Log-BCJR 알고리즘을 적용하여 연 출력 디코딩을행하는 경우에는, 이들의 관계에 기초하여 도 4에 나타내는 일련의 처리에 의해 연 출력 λt를 구한다.
보다 구체적으로, 디코더(203)는 단계 S211에 있어서, yt를 수신할 때마다, 상기 수학식 15 및 수학식 17을 이용하여, 로그 우도 Iαt(m) 및 Iγt(m', m)을 산출한다.
계속해서, 디코더(203)는 단계 S212에 있어서, 시스템 Y1 T의 모두를 수신한 후에, 상기 수학식 16을 이용하여, 모든 시각 t에서의 각 상태 m에 대하여 로그 우도 Iβt(m)를 산출한다.
그 후, 디코더(203)는 단계 S213에 있어서, 단계 S211 및 단계 S212에 있어서 산출한 로그 우도 Iαt, Iβt및 Iγt을 상기 수학식 18에 대입하여, 각 시각 t에서의 로그 연 출력 Iλt을 산출한다.
디코더(203)는 이러한 일련의 단계를 거치는 것에 의해서, Max-Log-BCJR 알고리즘을 적용한 연 출력 디코딩을 행할 수 있다.
이와 같이, Max-Log-BCJR 알고리즘은, 곱 연산이 포함되지 않기 때문에, BCJR 알고리즘에 비하여 연산량을 대폭 삭감할 수 있다.
이하, Log-BCJR 알고리즘에 대하여 설명한다. Log-BCJR 알고리즘은 Max-Log-BCJR 알고리즘에 의한 근사의 정밀도를 보다 향상시킨 것이다. 보다 구체적으로, Log-BCJR 알고리즘은 상기 수학식 13에 나타낸 확률의 합 연산을 다음 수학식 19에 나타낸 바와 같이 보정항을 추가함으로써 변형하여, 합 연산이 정확한 로그 값을 구하는 것이다. 이하, 이러한 보정을 log-sum 보정으로 칭하는 것으로 한다.
수학식 19에 있어서의 좌변에 나타내는 연산을 log-sum 연산으로 칭하고, 이 log-sum 연산의 연산자를 「S.S.Pietrobon, "Implementation and performance of a turbo/MAP decoder", Int. J. Satellite Commun., vo1.16, pp.23-46, Jan.-Feb. 1998」에 기재되어 있는 기수법을 따르고, 다음 수학식 20에 나타내는 바와 같이, 편의상 "#"(단, 동 논문속에서는, "E"로 표시)으로 나타내는 것으로 한다. 그리고, 누적 가산 연산의 연산자를 다음 수학식 21에 나타내는 바와 같이, "#Σ"(단, 동 논문속에서는, "E"로 표시)으로 나타내는 것으로 한다.
이들의 연산자를 이용하면, 로그 우도 Iαt, Iβt및 로그 연 출력 Iλt은 다음 수학식 22 내지 수학식 24에 나타낸 바와 같이 나타낼 수 있다. 로그 우도 Iγt는 상기 수학식 17로 나타내기 때문에, 여기서는 더 이상 기술하지 않기로 한다.
상기 수학식 22에 있어서의 우변의 상태 m'에 있어서의 log-sum 연산의 누적 가산 연산은 상태 m으로의 천이가 존재하는 상태 m' 중에서 구하는 것으로 한다. 마찬가지로, 상기 수학식 23에 있어서의 우변의 상태 m' 에 있어서의 log-sum 연산의 누적 가산 연산은 상태 m으로의 천이가 존재하는 상태 m' 중에서 구하는 것으로 한다. 수학식 24에 있어서의 우변 제1항의 log-sum 연산의 누적 가산 연산은 입력이 "1"일 때에 상태 m으로의 천이가 존재하는 상태 m' 중에서 구하고, 제2항의 log-sum 연산의 누적 가산 연산은 입력이 "0"일 때에 상태 m으로의 천이가 존재하는 상태 m' 중에서 구하는 것으로 한다.
따라서, 디코더(203)는 Log-BCJR 알고리즘을 적용하여 연 출력 디코딩을 행하는 경우에, 이들의 관계에 기초하여 도 4에 나타낸 일련의 단계를 거치는 것에 의해 연 출력 λt을 구할 수 있다.
보다 구체적으로, 디코더(203)는 단계 S211에 있어서, yt를 수신할 때마다, 상기 수학식 22 및 상기 수학식 17을 이용하여, 로그 우도 Iαt(m) 및 Iγt(m', m)을 산출한다.
계속해서, 디코더(203)는 단계 S212에 있어서, 시스템 Y1 T의 모두를 수신한 후에, 상기 수학식 23을 이용하여 모든 시각 t에서의 각 상태 m에 대하여 로그 우도 Iβt(m)를 산출한다.
그 후, 디코더(203)는 단계 S213에 있어서, 단계 S211 및 단계 S212에 있어서 산출한 로그 우도 Iαt, Iβt및 Iγt을 상기 수학식 24에 대입하여, 각 시각 t에서의 로그 연 출력 Iλt을 산출한다.
디코더(203)는 이러한 일련의 단계를 거치는 것에 의해서, Log-BCJR 알고리즘을 적용한 연 출력 디코딩을 행할 수 있다. 상기 수학식 19에 있어서, 우변 제2항에 나타내는 보정항은 변수 |x-y|에 대한 1차원 함수를 나타내기 때문에, 디코더(203)는 이 값을 ROM(Read 0nly Memory) 등에 테이블로서 미리 기억시켜 두는 것에 의해서, 정확한 확률 계산을 행할 수 있다.
이러한 Log-BCJR 알고리즘은 Max-Log-BCJR 알고리즘과 비교하면 연산량은 증가하지만 곱 연산을 포함하는 것이 아니며, 그 출력은 양자화 오차를 제외하면, BCJR 알고리즘의 연 출력의 로그 값이 간단하게 된다.
그런데, 상술한 log-sum 보정의 방법으로서는 상술한 바와 같이 보정항의 값을 테이블화해 두는 방법 외에, 변수 |x-y|와의 관계를 소위 2차 근사에 의해 근사하는 2차 근사법, 변수 |x-y|를 임의의 구간으로 분할하여 각 구간마다 소정의 값을 제공하는 구간 분할법 등이 있다. 이들 log-sum 보정 방법은 보정항의 값을 정확하게 구하기 위해 알고리즘의 수행에 역점을 둠으로써 개선된다. 그러나, 이들의 방법은 회로 규모의 증대 및 속도의 지연을 초래한다고 한 문제가 있었다.
따라서, log-sum 보정의 방법으로서, 속도를 중시한 방법이 검토되고 있다. 이 방법으로는, 변수 |x-y|와의 관계를 소위 선형 근사에 의해 근사하는 선형 근사법, 변수 |x-y| 에서의 소정의 구간의 값을 소정의 임계값으로 결정하는 임계값 근사법이 있다.
선형 근사법은 도 5a에 도시한 바와 같이, 곡선 C에 나타내는 함수 F= log{1+ e^(-|x-y|)}를 직선 L로 나타내는 선형 함수로 근사하는 것이다. 도 5a에 있어서, 직선 L은 F=-0.3(|x-y|)+ log2에 의해 표기되고, 이 경우 보정항은 약 0.1dB 정도의 열화를 나타난다.
한편, 임계값 근사법은 도 5b에 도시한 바와 같이 곡선 C로 나타낸 함수F=log{1+ e^(-|x-y|)}를 곡선 T로 나타내는 계단 함수로 근사하는 것이다. 도 5b의 곡선 T는 0≤|x-y|<1의 구간에서는 log2를 제공하고, |x-yl≥1의 구간에서는 0을 제공하는 함수에 의해 표기된다. 이 경우, 보정항은 약 0.2dB 정도의 열화를 나타낸다.
한편, log-sum 보정을 행하는 경우에 있어서, 상술한 방법 중 어느 방법을 이용한 경우에도, 산출되는 로그 우도 Iαt, Iβt의 값이, 예를 들면 도 6에 도시한 바와 같이, 0에 걸쳐 플러스에서 마이너스, 혹은 마이너스에서 플러스로 시프트할 수 있다.
따라서, 로그 우도 Iαt, Iβt를 산출하는 회로로서는, 예를 들면 2의 보수 표기 등을 이용하여, 플러스 및 마이너스의 값의 표기를 커버하는 비트 수를 필요로 한다. 이에 따라, 회로 규모가 불가피하게 증대하고 있었다.
본 발명은, 이러한 실정을 감안하여 이루어진 것으로, 디코딩 결과에 영향을 미치는 일없이, 회로 규모를 삭감하여 log-sum 보정을 행할 수 있는 디코더 및 디코딩 방법을 제공하는 것을 목적으로 한다.
도 1은 통신 모델의 개략적인 블럭도,
도 2는 확률 αt, βt및 γt의 내용을 나타내는 컨볼루션 인코더의 격자 구조도의 개략도,
도 3은 BCJR 알고리즘을 적용하여 연 출력을 디코딩하기 위한 컨볼루션 디코더의 처리 단계를 예시하는 순서도,
도 4는 Max-Log-BCJR 알고리즘을 적용하여 연 출력을 디코딩하기 위한 컨볼루션 디코더의 처리 단계를 예시한 순서도,
도 5a는 선형 근사법을 이용하여 보정항 및 근사 기능을 갖는 함수를 예시한 그래프,
도 5b는 임계값 근사법을 이용하여 보정항 및 근사 기능을 갖는 함수를 예시한 그래프,
도 6은 산출된 로그 우도를 개략적으로 예시한 그래프,
도 7은 본 발명의 실시예를 포함하는 데이터 송수신 시스템이 적용된 통신 모델의 개략적인 블럭도,
도 8은 데이터 송수신 시스템에 있어서의 인코더의 구성을 설명하는 블럭도,
도 9는 도 7의 인코더의 격자 구조를 예시한 개략적인 도면,
도 10은 도 7의 데이터 송수신 시스템의 디코더의 개략적인 블럭도,
도 11은 도 9의 디코더의 Iα연산/기억 회로의 개략적인 블럭도로서, 회로 구성을 나타낸 도면,
도 12는 도 11의 Iα연산/기억 회로의 Iα연산 회로의 개략적인 블럭도로서, 회로 구성을 나타낸 도면,
도 13은 도 10의 디코더의 Iβ연산/기억 회로의 개략적인 블럭도로서, 회로 구성을 나타낸 도면,
도 14는 도 13의 Iβ연산/기억 회로의 Iβ연산 회로의 개략적인 블럭도로서, 회로 구성을 나타낸 도면,
도 15는 Iα연산 회로 또는 Iβ연산 회로의 가산/비교/선택 회로의 개략적인 블럭도,
도 16은 산출된 로그 우도를 개략적으로 나타낸 그래프,
도 17은 도 15와 다른 가산/비교/선택 회로의 개략적인 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
1 : 인코더
3 : 디코더
32 : Iγ산출/기억 회로
33 : Iα산출/기억 회로
34 : Iβ산출/기억 회로
35 : 연 출력 산출 회로
43 : Iα산출 회로
상술한 목적을 달성하기 위한 본 발명에 따른 디코더는, 연 입력으로서 간주되는 수신값에 기초하여 임의의 상태를 통과하는 확률을 대수적으로 표기한 로그 우도를 구하여, 이 로그 우도를 이용하여 디코딩을 행하는 디코더로서, 로그 우도를 제공하기 위해서 추가되어, 변수에 대한 1차원 함수로 나타내는 보정항을 구함과 동시에, 로그 우도의 플러스 및 마이너스 식별 코드를 통일하도록 보정항에 대하여 소정값을 가산하여, 로그 우도를 산출하는 처리 수단을 포함하는 것을 특징으로 한다.
이러한 본 발명에 따른 디코더는, 처리 수단에 의해서, 보정항에 대하여 소정값을 가산하여, 산출되는 로그 우도의 플러스 또는 마이너스의 식별 코드를 통일한다.
또한, 본 발명의 다른 특징에 따른 디코딩 방법은, 연 입력으로서 간주되는 수신값에 기초하여 임의의 상태를 통과하는 확률을 대수적으로 표기한 로그 우도를 구하고, 이 로그 우도를 이용하여 디코딩을 행하는 디코딩 방법으로서, 로그 우도를 제공하기 위해서 추가되어, 변수에 대한 1차원 함수로 나타내는 보정항을 구함과 동시에, 로그 우도의 플러스 또는 마이너스 식별 코드를 통일하도록 보정항에 대하여 소정값을 가산하여, 로그 우도를 산출하는 처리 단계를 포함하는 것을 특징으로 한다.
따라서, 이러한 본 발명에 따른 디코딩 방법은, 처리 단계에서, 보정항에 대하여 소정값을 가산하여, 산출되는 로그 우도를 얻도록 하여, 보정된 로그 우도가 플러스값 또는 마이너스값을 균일하게 가지도록 한다.
전술한 바와 같이, 본 발명에 따른 디코더는, 연 출력으로서 간주되는 수신값에 기초하여 임의의 상태를 통과하는 확률을 로그로 나타낸 로그 우도를 구하고, 이 로그 우도를 사용하여 입력을 디코딩하는 장치로서, 이 로그 우도에 보정항 및 소정값을 추가하여 보정된 로그 우도를 얻는 처리 수단을 포함하며, 상기 보정항은변수에 대해 1차원으로 표기되어서, 보정된 로그 우도가 플러스값 또는 마이너스값을 균일하게 가지도록 한다.
따라서, 본 발명에 따르면, 상기 처리 수단은 보정항 및 소정값을 로그 우도에 가산하여 보정된 로그 우도를 얻어서, 보정된 로그 우도가 플러스값 또는 마이너스값을 균일하게 가지도록 하며, 이로 인해 회로의 디코딩 수행에 악영향을 끼치지 않고 회로의 규모를 감소시킬 수 있게 된다.
마찬가지로, 본 발명의 디코딩 방법은, 연 출력으로서 간주된 수신값에 기초하여 임의의 상태를 통과하는 확률을 로그로 나타낸 로그 우도를 구하고, 이 로그 우도를 이용하여 입력을 디코딩하는 방법으로서, 로그 우도에 보정항 및 소정값을 가산하여 보정된 로그 우도를 얻기 위한 처리 단계를 포함하며, 보정항은 변수에 대해 1차원 함수로 표기되어 보정된 로그 우도가 플러스값 또는 마이너스값을 균일하게 갖도록 한다.
따라서, 본 발명의 디코딩 방법에 따르면, 상기 처리 단계에서는 로그 우도에 보정항 및 소정값을 가산하여 보정된 로그 우도를 얻어서, 보정된 로그 우도가 플러스값 또는 마이너스값을 균일하게 갖도록 하는데, 이에 따라 회로의 디코딩 수행에 악영향을 끼치지 않으면서 회로의 규모를 감소시킬 수 있게 된다.
이하, 본 발명을 적용한 구체적인 실시 형태에 대하여 도면을 참조하면서 상세히 설명한다.
도 7은 본 발명의 실시예를 포함하는 데이터 송수신 시스템이 적용되는 통신 모델의 개략적인 블럭도이다. 보다 구체적으로는, 데이터 송수신 시스템은, 디지털 정보를 송신 장치(도시하지 않음)가 구비하는 인코더(1)에 의해 컨볼루션 코딩하여, 그 출력을 잡음이 있는 무기억 채널(2)을 통해 수신 장치(도시하지 않음)에 입력하여, 이 수신 장치가 구비하는 디코더(3)에 의해 디코딩하는 통신 모델에 적용한 데이터 송수신 시스템이다.
이 데이터 송수신 시스템에 있어서, 디코더(3)는, 인코더(1)에 의해 컨볼루션 코딩이 이루어진 코드의 디코딩을 행하는 것으로서, 「로버슨(Robertson), 빌브런(Villebrun) 및 호어(Hoeher)의 "A Comparison of Optimal and Sub-optimal MAP decoding algorithms operating in the domain", IEEE Int. Conf. on Communications, pp.1009-1013, June 1995」에 기재되어 있는 Log-MAP 알고리즘(이하, Log-BCJR 알고리즘이라 칭함)에 기초하는 최대 사후 확률(Maximum a posteriori probability; 이하, MAP라고 칭함) 디코딩을 행하는 것으로 구성된다. 보다 구체적으로는, 확률 αt, βt, γt, 및 연 출력 λt을 자연 로그를 이용하여 대수적으로 표기한 로그 우도(log likelihood) Iαt, Iβt, Iγt, 및 로그 연 출력 Iλt을 log-sum 보정을 행하도록 한 것이다.
이하에서는, 인코더(1)의 시프트 레지스터의 내용을 나타내는 M개의 상태(천이 상태)를 m(m=0, 1, …, M-1)으로 나타내고, 시각 t의 상태를 St로 나타낸다. 또한, 1타임 슬롯에 k비트의 정보가 입력되는 것으로 하면, 시각 t에서의 입력을 it=(it1, it2, …, itk)로 나타내고, 입력 시스템을 I1 T=(i1, i2, …, iT)로 나타낸다.상태 m'로부터 상태 m으로의 천이가 있는 경우에는, 그 천이에 대응하는 정보 비트를 i(m', m) = (i1(m', m), i2(m', m), …, ik(m', m))로 나타낸다. 또한, 1타임 슬롯에 n 비트의 코드가 출력되는 경우, 시각 t에서의 출력을 xt=(xt1, xt2, …, xtn)로 나타내고, 출력 시스템을 X1 T=(x1, x2, …, xT)로 나타낸다. 상태 m'로부터 상태 m으로의 천이가 있는 경우에는, 그 천이에 대응하는 코드 비트를 x(m', m)=(x1(m', m), x2(m', m), …, xn(m', m))로 나타낸다. 무기억 채널(2)은 X1 T을 입력으로 하여 Y1 T를 출력하는 것으로 한다. 1타임 슬롯에 n 비트의 수신값이 출력될 경우, 시각 t에 있어서의 출력을 yt=(yt1, yt2, …, ytn)로 나타내고, 출력 시스템을 Y1 T=(y1, y2, …, yT)로 나타낸다.
인코더(1)는, 도 8에 도시한 바와 같이, 3개의 배타적 논리합 회로(11, 13, 15)와, 두 개의 시프트 레지스터(12, 14)를 가지며, 구속 길이가, "3"인 컨볼루션 연산을 행하는 것으로 한다.
배타적 논리합 회로(11)는, 1 비트의 입력 데이터 it1와, 배타적 논리합 회로(13)로부터 공급되는 데이터를 이용하여 배타적 논리합 연산을 행하여, 연산 결과를 시프트 레지스터(12) 및 배타적 논리합 회로(15)에 공급한다.
시프트 레지스터(12)는, 유지하고 있는 1 비트의 데이터를 배타적 논리합 회로(13) 및 시프트 레지스터(14)에 공급하기를 계속한다. 그 후, 시프트 레지스터(12)는 클럭에 동기되어, 배타적 논리합 회로(11)로부터 공급되는 1 비트의 데이터를 유지하여, 이 데이터를 배타적 논리합 회로(13) 및 시프트 레지스터(14)에 공급한다.
배타적 논리합 회로(13)는, 시프트 레지스터(12, 14)로부터 공급되는 데이터를 이용하여 배타적 논리합 연산을 행하여, 연산 결과를 배타적 논리합 회로(11)에 공급한다.
시프트 레지스터(14)는, 유지하고 있는 1 비트의 데이터를 배타적 논리합 회로(13, 15)에 공급하기를 계속한다. 그 후, 시프트 레지스터(14)는, 클럭에 동기하여, 시프트 레지스터(12)로부터 공급되는 1 비트의 데이터를 유지하여, 이 데이터를 배타적 논리합 회로(13, 15)에 공급한다.
배타적 논리합 회로(15)는, 배타적 논리합 회로(11)로부터 공급되는 데이터와, 시프트 레지스터(14)로부터 공급되는 데이터를 이용하여 배타적 논리합 연산을 행하여, 연산 결과를 2 비트의 출력 데이터 xt중의 1 비트의 출력 데이터 xt2로서 외부에 출력한다.
이에 따라, 이러한 인코더(1)는, 1 비트의 입력 데이터 it1를 수신하면, 이 입력 데이터 it1를, 2 비트의 출력 데이터 xt중의 조직 성분인 1 비트의 출력 데이터 xt1로서, 출력하고, 입력 데이터 it1에 대하여 재귀적 컨볼루션 연산을 행한다.그 후, 연산 결과를 2 비트의 출력 데이터 xt중의 다른 1 비트의 출력 데이터 xt2로서 외부에 출력한다. 즉, 인코더(1)는, 코딩 레이트가 "1/2"인 재귀적 조직 컨볼루션 연산을 행하여, 출력 데이터 xt를 외부에 출력한다.
도 9는 인코더(1)의 격자 구조를 예시한 도면이다. 도 9에 있어서, 파선으로 나타낸 경로(path)는, 입력 데이터 it1가 "0"'인 경우를 나타내고, 실선으로 나타낸 경로는, 입력 데이터 it1이 "1"인 경우를 나타내고 있다. 각 경로에 부여되어 있는 라벨은, 2 비트의 출력 데이터 xt를 나타내는 각 경로에 적용된다. 여기서는, 상태는, 시프트 레지스터(12)의 내용과 시프트 레지스터(14)의 내용을 순차 배열한 것이며, "00", "10", "01", "11"의 상태 번호를, 각각, "0", "1", "2", "3"으로 나타내고 있다. 이와 같이, 인코더(1)에 있어서의 상태 수 M은 4로 되고, 격자 구조는, 각 상태로부터 다음 시각에서의 상태로 2개의 경로가 도달하는 구조를 갖는다. 이하의 설명에서는, 각 상태 번호에 대응하는 상태를 지시하는 경우에는, 각각, 상태 0, 상태 1, 상태 2, 상태 3으로 칭하는 것으로 한다.
이러한 인코더(1)에 의해 인코딩된 출력 데이터 xt는, 무기억 채널(2)을 통해 수신 장치에 출력된다.
한편, 디코더(3)는, 도 10에 도시한 바와 같이, 각 부분을 제어하는 컨트롤러(31)와, 제1 로그 우도인 로그 우도 Iγ를 산출하여 기억하는 제1 확률 산출 수단인 Iγ 산출/기억 회로(32)와, 제2 로그 우도인 로그 우도 Iα를 산출하여 기억하는 제2 확률 산출 수단인 Iα산출/기억 회로(33)와, 제3 로그 우도인 로그 우도 Iβ를 산출하여 기억하는 제3 확률 산출 수단인 Iβ 산출/기억 회로(34)와, 로그 연 출력 Iλt을 산출하는 연 출력 산출 수단인 연 출력 산출 회로(35)를 구비한다. 이 디코더(3)는, 무기억 채널(2) 상에서 발생한 노이즈의 영향 하에서 아날로그 값을 취하여 연 입력(soft-input)으로서 간주되는 수신값 yt에서 로그 연 출력 Iλt을 구하는 것에 의해서, 인코더(1)에 있어서의 입력 데이터 it1를 추정하는 것이다.
컨트롤러(31)는, Iγ산출/기억 회로(32), Iα산출/기억 회로(33) 및 Iβ산출/기억 회로(34)에 대하여, 각각, 컨트롤 신호 SCγ, SCα 및 SCβ를 공급하여, 각 부분의 동작을 제어한다.
Iγ산출/기억 회로(32)는, 컨트롤러(31)로부터 공급된 컨트롤 신호 SCγ에 의한 제어 하에서, 수신값 yt와, 사전 확률 정보(a priori probability information) Prt를 이용하여, 수신값 yt마다, 다음 수학식 25에 나타내는 연산을 행하여, 각 시각 t에서의 로그 우도 Iγt를 산출하여 기억한다. 즉, Iγ산출/기억 회로(32)는, 수신값 yt마다, 코드의 출력 패턴과 수신값에 의해 결정되는 확률 γ을 대수적으로 표기한 로그 우도 Iγ를 산출한다.
사전 확률 정보 Prt는, 다음 수학식 26에 나타낸 바와 같이, 입력 데이터 it1가 "1"인 확률 Pr{it1= 1} 또는 입력 데이터 it1가 "O"인 확률 Pr{it1= O}로서 주어진다. 또한, 사전 확률 정보 Prt는, 확률 Pr{it1=1}와 확률 Pr{it1= O}과의 레이트의 자연 로그 값인 로그 우도비(log like1ihood ratio)를 입력하여, 확률 Pr{it1=1}와 확률 Pr{it1= O}과의 합이 "1"인 것을 고려하여, 확률 Pr{it1= 1}또는 확률 Pr{it1= O} 로서 구할 수도 있다.
Iγ산출/기억 회로(32)는, 기억한 로그 우도 Iγt를 Iα산출/기억 회로(33), Iβ산출/기억 회로(34) 및 연 출력 산출 회로(35)에 공급한다. 보다 구체적으로는, Iγ산출/기억 회로(32)는, Iα산출/기억 회로(33), Iβ산출/기억 회로(34) 및 연 출력 산출 회로(35)의 각각의 처리에 적합한 순서로 로그 우도 Iγt를 공급한다. 이하의 설명에서는, Iγ산출/기억 회로(32)로부터 Iα산출/기억 회로(33)에 공급되는 로그 우도 Iγt를 Iγ(α)으로 나타내고, Iγ산출/기억 회로(32)로부터 Iβ산출/기억 회로(34)에 공급되는 로그 우도 Iγt를 Iγ(β1), Iγ(β2)로 나타내고, Iγ산출/기억 회로(32)로부터 연 출력 산출 회로(35)에 공급되는 로그 우도 Iγt를 Iγ(λ)로 나타내는 것으로 한다.
Iα산출/기억 회로(33)는, 컨트롤러(31)로부터 공급된 컨트롤 신호 SCα에 의한 제어하에, Iγ산출/기억 회로(32)로부터 공급된 로그 우도 Iγ(α)을 이용하여, 다음 수학식 27에 나타내는 연산을 행하여, 각 시각 t에서의 로그 우도 Iαt를 산출하여 기억한다. 수학식 27에 있어서의 연산자 "#"는, log-sum 연산을 나타내는 것이며, 입력 "O"으로 상태 m'로부터 상태 m으로 천이할 때에 있어서의 로그 우도와, 입력 "1"로 상태 m''로부터 상태 m으로 천이할 때에 있어서의 로그 우도와의 log-sum 연산을 나타내는 것이다. 보다 구체적으로는, Iα산출/기억 회로(33)는, 다음 수학식 28에 나타내는 연산을 행함으로써, 각 시각 t에서의 로그 우도 Iαt를 산출한다. 즉, Iα산출/기억 회로(33)는, 로그 우도 Iγ에 기초하여, 수신값 yt마다, 코딩 개시 상태로부터 시계열순으로 각 상태에 이르는 확률 α를 대수적으로 표기한 로그 우도 Iα를 산출한다. 그 후, Iα산출/기억 회로(33)는, 기억한 로그 우도 Iαt를 연 출력 산출 회로(35)에 공급한다. 이 때, Iα산출/기억 회로(33)는, 연 출력 산출 회로(35)에 있어서의 처리에 적합한 순서로 로그 우도 Iαt를 공급한다. 이하의 설명에서는, Iα산출/기억 회로(33)로부터 연 출력 산출 회로(35)에 공급되는 로그 우도 Iαt를 Iα(λ)으로 나타내는 것으로 한다. 수학식 27 및 수학식 28에 있어서의 상수 δ에 대해서는, 후에 상술한다.
Iβ 산출/기억 회로(34)는 컨트롤러(31)로부터 공급된 컨트롤 신호 SCβ의 제어 하에, Iγ 산출/기억 회로(32)로부터 공급된 로그 우도 Iγ(β1) 및 Iγ(β2)를 이용하여, 다음 수학식 29의 연산을 수행하여 각 시각 t에서 두 개 시스템의 로그 우도 Iβt를 산출하여 얻은 로그 우도를 기억한다. 수학식 29에 있어서, 연산자 “#"는 입력이 “O"이고 상태 m'에서 상태 m으로 천이할 때의 로그 우도와, 입력이 “1"이고 상태 m''에서 상태 m으로 천이할 때의 로그 우도에 대한 소위 로그 섬(log sum) 연산을 나타내는 것이다. 보다 구체적으로는, Iβ 산출/기억 회로(34)는 수학식 30의 연산을 수행함으로써, 시각 t에서의 로그 우도 Iβt를 산출한다. 즉, Iβ 산출/기억 회로(34)는 각각의 수신된 값 yt에 대해, 코딩 종결 상태에서 시계열 기준으로 결정된 것과 같은 각 상태로의 역 천이(inverse transition) 확률 β를 로그 도메인에서 표기하는 로그 우도 Iβ를 산출한다. 그 때, Iβ 산출/기억 회로(34)는 기억한 로그 우도 Iβt중 하나의 시스템의 로그 우도 Iβt를연 출력(soft-output) 산출 회로(35)에 공급한다. 이 때, Iβ 산출/기억 회로(34)는 연 출력 산출 회로(35)에 있어서, 회로(35)의 처리 연산에 적합한 순서로 로그 우도 Iβt를 공급한다. 이하의 설명에서는, Iβ 산출/기억 회로(34)로부터 연 출력 산출 회로(35)에 공급되는 로그 우도 Iβt를 Iβ(λ)로 나타낸다. 또한, 다음 수학식 29 및 수학식 30에 있어서의 상수 δ는 상기 수학식 27 및 상기 수학식 28에 있어서의 상수와 동일하며, 이하 기술할 것이다.
연 출력 산출 회로(35)는, Iγ 산출/기억 회로(32)로부터 공급된 로그 우도 Iγ(λ)와, Iα 산출/기억 회로(33)로부터 공급된 로그 우도 Iα(λ)를 이용하여, 다음 수학식 31의 연산을 수행하여, 시각 t에서 로그 연 출력 Iλt를 산출하고 얻은 로그 연 출력을 기억한다. 연 출력 산출 회로(35)는, 기억한 로그 연 출력 Iλt를 재배열한 이후에, 그것을 외부에 출력한다. 수학식 31에 있어서, 연산자 “#Σ"는 상술한 연산자 “#"를 사용하는 소위 log-sum 연산의 누적 가산을 나타낸다.
상술한 구성을 갖는 디코더(3)는, 수신 장치에 의해 수신된 연 입력의 수신값 yt를 입력으로서 수신하면, Iγ 산출/기억 회로(32)에 의해 수신값 yt를 수신 할 때마다, 로그 우도 Iγt(m', m)를 산출하고, Iα 산출/기억 회로(33)에 의해 로그 우도 Iαt(m)를 산출한다. 모든 수신값 yt를 수신하면, 디코더(3)는 Iβ 산출/기억 회로(34)에 의해 모든 시각 t에서의 각 상태 m에 대하여 로그 우도 Iβt를 산출한다. 그 때, 디코더(3)는 얻은 로그 우도 Iαt, Iβt및 Iγt를 이용하여, 연 출력 산출 회로(35)에 의해 각 시각 t에서의 로그 연 출력 Iλt를 산출한다. 이와 같이, 디코더(3)는 Log-BCJR 알고리즘을 적용한 연 출력 디코딩을 행할 수 있다.
이제, 디코더(3)는 Iα 산출/기억 회로(33) 및 Iβ 산출/기억 회로(34)에 의해, 로그 우도 Iαt및 Iβt를 산출할 때, 회로 규모가 삭감된 것이다. 이하에서는 Iα 산출/기억 회로(33) 및 Iβ 산출/기억 회로(34)에 대하여 보다 구체적으로 상술할 것이다.
우선, Iα 산출/기억 회로(33)에 대하여 설명한다. Iα 산출/기억 회로(33)는, 도 11에 도시한 바와 같이, 산출된 로그 우도 Iα 또는 로그 우도의 초기값 IαO중 어느 한 쪽을 선택하는 셀렉터(41), 로그 우도의 초기값 IαO또는 로그 우도 Iα중 어느 한 쪽을 보유하는 레지스터(42), 각 상태에 있어서 로그 우도 Iα를 산출하는 Iα 산출 회로(43), 다른 상태의 로그 우도 Iα를 순차적으로 보유하는 RAM (Random Access Memory; 44, 45), 및 RAM(44, 45)으로부터 판독한 로그 우도 Iα를 선택적으로 추출하는 선택 회로(46)를 포함한다.
셀렉터(41)는 컨트롤러(31)로부터 공급된 컨트롤 신호 SCα의 제어 하에, 초기화시를 제외한 임의의 시간에, 초기화시에서 로그 우도의 초기값 Iα0또는 Iα 산출 회로(43)로부터 공급된 로그 우도 Iα를 선택한다. 초기화는 Iγ 산출/기억 회로(32)가 로그 우도 Iγ(α) 출력을 개시하기 직전에 시각 슬롯에서 행해진다. 디코더(3)가 인코더(1)에 의한 코딩 연산 개시 시점을 파악하고 있는 경우에는, 초기값 Iα0로서 상태 0에 있어서 log 1 = 0이 주어지고, 그 밖의 상태에 있어서 초기값으로서 log O ≒ -∞가 주어진다. 한편, 디코더(3)가 인코더(1)에 의한 코딩 연산 개시 시점을 파악하지 않은 경우에는, 모든 상태에 대하여 log (1/M) 또는 log (1/4)이 주어진다. 그러나, 모든 상태에 대하여 필수적으로 동일한 값이 주어지는 것으로, 모든 상태에 대하여 0이 주어져도 된다. 셀렉터(41)는 초기값 IαO또는 로그 우도 Iα 중의 선택한 한 쪽을 레지스터(42)에 공급한다.
레지스터(42)는 셀렉터(41)로부터 공급되는 초기값 IαO또는 로그 우도 Iα를 보유한다. 그 때, 레지스터(42)는 다음 시각 슬롯에서, 보유하고 있는 초기값Iα0또는 로그 우도 Iα를 Iα 산출 회로(43) 및 RAM(44, 45)에 공급한다.
이제 도 12를 참조하면, Iα 산출 회로(43)는 각 상태수에 대응하는 수로, 가산/비교/선택 회로를 포함한다. 상기 예에서, Iα는 많은 처리 수단으로서, 네 개의 가산/비교/선택 회로(470, 471, 472, 및 473)를 포함한다.
가산/비교/선택 회로(47O, 471, 472, 및 473) 각각에는 격자 구조 상의 천이에 기초하여 Iγ 산출/기억 회로(32)에 의해 산출된 격자 구조 상의 출력 “00", “10", “O1", 및 “11" 각각에 대응하는 브랜치의 로그 우도 Iγt[00], Iγt[10], Iγt[01], 및 Iγt[11]과, 각 상태에 있어서 직전 시각의 로그 우도 슬롯 Iαt-1(0), Iαt-1(1), Iαt-1(2), 및 Iαt-1(3)가 공급된다. 그 때, 가산/비교/선택 회로(47O, 471, 472, 및 473)) 각각은, 다음 시각의 상태 0, 상태 1, 상태 2, 및 상태 3에 있어서의 로그 우도 Iα를 결정한다.
보다 구체적으로, 가산/비교/선택 회로(47O)는 로그 우도 Iγt[00], Iγt[11]과 로그 우도 Iαt-1(0), Iαt-1(2)를 입력으로서 수신하고, 상태 0에 있어서의 로그 우도 Iαt(0)을 결정한다.
유사하게, 가산/비교/선택 회로(471)는 로그 우도 Iγt[11], Iγt[00]과, 로그 우도 Iαt-1(0), Iαt-1(2)를 입력으로서 수신하고, 상태 1에 있어서의 로그 우도Iαt(1)을 결정한다.
그 때, 가산/비교/선택 회로(472)는 로그 우도 Iγt[10], Iγt[01]과 로그 우도 Iαt-1(1), Iαt-1(3)를 입력으로서 수신하고, 상태 2에 있어서의 로그 우도 Iαt(2)를 결정한다.
또한, 가산/비교/선택 회로(473)는 로그 우도 Iγt[01], Iγt[10]과 로그 우도 Iαt-1(1), Iαt-1(3)을 입력으로서 수신하고, 상태 3에 있어서의 로그 우도 Iαt(3)을 결정한다.
이러한 식으로, Iα 산출 회로(43)는 Iγ 산출/기억 회로(32)로부터 공급된 로그 우도 Iγ(α)와, 레지스터(42)에 보유되어 있던 직전 시각의 초기값 IαO또는 로그 우도 Iα을 이용하여, 상기 수학식 27의 연산, 즉, 상기 수학식 28의 연산을 수행하여, 다음 시각 슬롯의 각 상태에 있어서의 로그 우도 Iα를 결정한다. 그 때, Iα 산출 회로(43)는 산출한 로그 우도 Iα를 셀렉터(41)에 공급한다. 가산/비교/선택 회로(47O, 471, 472, 및 473)에 대해서는 이후에 상술한다.
RAM(44, 45) 각각은 컨트롤러(31)로부터 공급된 컨트롤 신호 SCα의 제어 하에, 레지스터(42)로부터 공급된 로그 우도 Iα(0), Iα(1), Iα(2), 및 Iα(3)을 순차적으로 기억한다. 로그 우도 Iα(0), Iα(1), Iα(2), 및 Iα(3) 각각이 8비트로 표기되면, RAM(44, 45)은 32 비트를 1 워드로서 로그 우도 Iα(0), Iα(1), Iα(2), 및 Iα(3)를 기억한다. 이들의 RAM(44, 45)에 기억된 로그 우도 Iα(0), Iα(1), Iα(2), 및 Iα(3)은 선택 회로(46)에 의해 소정의 순서로 판독된다.
선택 회로(46)는 컨트롤러(31)로부터 공급된 컨트롤 신호 SCα의 제어 하에, RAM(44, 45)으로부터 판독한 로그 우도 Iα(0), Iα(1), Iα(2), 및 Iα(3)을 선택적으로 추출하여, 로그 우도 Iα(λ)로서 연 출력 산출 회로(35)에 공급한다.
따라서, Iα 산출/기억 회로(33)는 Iγ 산출/기억 회로(32)가 로그 우도 Iγ(α)의 출력을 개시하기 직전 시각 슬롯에 초기화를 행하여, 셀렉터(41)에 의해 선택된 초기값 IαO을 레지스터(42)에 보유시킨다. 그 때, Iα 산출/기억 회로(33)는 이후의 클럭 주기에 있어서, Iγ 산출/기억 회로(32)로부터 공급된 로그 우도 Iγ(α)와, 레지스터(42)로부터 공급된 직전 시각 슬롯의 로그 우도 Iα를 이용하여, Iα 산출 회로(43)가 다음 시각 슬롯에서의 로그 우도 Iα를 순차적으로 산출하도록 하고, 그 로그 우도 Iα를 레지스터(42)가 기억하도록 한다. 또한, Iα 산출/기억 회로(33)는 레지스터(42)에 보유된 각 상태에 있어서의 로그 우도 Iα(0), Iα(1), Iα(2), 및 Iα(3)을 순차적으로 RAM(44, 45)에 기억시키고, 선택 회로(46)에 의해 소정의 순서로 판독하여, 로그 우도 Iα(λ)로서 연 출력 산출 회로(35)에 공급한다.
이제, Iβ 산출/기억 회로(34)에 대하여 설명한다. Iβ 산출/기억 회로(34)는, 도 13에 도시한 바와 같이, 각 상태에 있어서의 로그 우도 Iβ를 산출하는 Iβ 산출 회로(511, 512), 산출된 로그 우도 Iβ와 로그 우도의 초기값 Iβa, Iβb 중어느 한 쪽을 선택하는 셀렉터(521, 522), 초기값 Iβa, Iβb 또는 로그 우도 Iβ을 보유하는 레지스터(531, 532), 및 레지스터(531, 532)로부터 공급된 로그 우도 Iβ을 선택적으로 추출하는 선택 회로(54)를 포함한다.
이제 도 14를 참조하면, Iβ 산출 회로(511, 512) 각각은 각 상태수에 대응하는 수로, 가산/비교/선택 회로를 포함한다. 상기 예에서는, 많은 처리 수단으로서 네 개의 가산/비교/선택 회로(55O, 551, 552, 553)를 포함한다.
가산/비교/선택 회로(550, 551, 552, 553) 각각에는 격자 구조 상의 천이에 기초하여 Iγ 산출/기억 회로(32)에 의해 산출된 격자 구조 상의 출력 “00", “10", “01", “11"에 대응하는 브랜치의 로그 우도 Iγt[00], Iγt[10], Iγt[01], Iγt[11], 및 직전 시각 슬롯에서 모든 상태에 있어서의 로그 우도 Iβt(0), Iβt(1), Iβt(2), Iβt(3)가 공급된다. 그 때, 가산/비교/선택 회로(550, 551, 552, 553)각각은 직전 시각 슬롯의 상태 0, 상태 1, 상태 2, 상태 3에 있어서의 로그 우도 Iβ를 결정한다.
보다 구체적으로는, 가산/비교/선택 회로(55O)는 로그 우도 Iγt[00], Iγt[11], 및 로그 우도 Iβt(0), Iβt(1)를 입력으로서 수신하고, 상태 0에 있어서의 로그 우도 Iβt-1(0)를 결정한다.
유사하게, 가산/비교/선택 회로(551)는 로그 우도 Iγt[10], Iγt[01], 및 로그 우도 Iβt(2), Iβt(3)를 입력으로서 수신하고, 상태 1에 있어서의 로그 우도 Iβt-1(1)를 결정한다.
그 때, 가산/비교/선택 회로(552)는 로그 우도 Iγt[11], Iγt[00], 및 로그 우도 Iβt(0), Iβt(1)를 입력으로서 수신하고, 상태 2에 있어서의 로그 우도 Iβt-1(2)를 결정한다.
또한, 가산/비교/선택 회로(553)는 로그 우도 Iγt[01], Iγt[10], 및 로그 우도 Iβt(2), Iβt(3)를 입력으로서 수신하고, 상태 3에 있어서의 로그 우도 Iβt-1(3)를 결정한다.
이런 식으로, Iβ 산출 회로(511, 512) 각각은 Iγ 산출/기억 회로(32)로부터 공급된 로그 우도 Iγ(β1), Iγ(β2)와, 레지스터(531, 532)에 보유되어 있던 초기값 Iβa, Iβb 또는 로그 우도 Iβ을 이용하여, 수학식 29의 연산, 즉 수학식 30의 연산을 수행하여, 직전 시각 슬롯의 각 상태에 있어서의 로그 우도 Iβ를 결정한다. 로그 우도 Iβ(0), Iβ(1), Iβ(2), Iβ(3) 각각은 전형적으로 8비트로 표기되어, 총 비트 수는 32 비트가 된다. Iβ 산출 회로(511, 512) 각각은 산출한 로그 우도 Iβ를 셀렉터(521, 522)에 공급한다. 또, 가산/비교/선택 회로(550, 551, 552,553)에 대해서는 이후에 상술한다.
셀렉터(521, 522) 각각은 컨트롤러(31)로부터 공급된 컨트롤 신호 SCβ의 제어 하에, 초기화 시간에는 로그 우도의 초기값 Iβa, Iβb를 선택하고, 초기화 시간 이외의 임의의 시간에는 Iβ 산출 회로(511, 512) 각각으로부터 공급되는 로그 우도 Iβ를 선택한다. 초기화는 Iγ 산출/기억 회로(32)가 로그 우도 Iγ(β1), Iγ(β2)의 출력을 개시하기 직전의 시각 슬롯에서 실시되고, 이후 구속 길이(terminating length)의 2배 길이의 주기마다 반복된다. 여기서, 초기값 Iβa, Iβb로서는, 통상, 모든 상태에 대하여 예를 들면 O이나 log(1/M), 또는 log(1/4)과 같은 동일한 값이 주어지지만, 종결된 코드를 디코딩할 때에는 종결하는 상태에 있어서의 값으로서 log 1 = 0이 주어지며, 그 밖의 다른 상태에 있어서는 log 0 = -∞가 주어진다. 셀렉터(521, 522) 각각은 초기값 Iβa, Iβb 또는 로그 우도 Iβ 중의 선택한 한 쪽을 레지스터(531, 532)에 공급한다.
레지스터(531, 532)는 셀렉터(521, 522)로부터 공급되는 초기값 Iβa, Iβb 또는 로그 우도 Iβ를 보유한다. 그 때, 레지스터(531, 532)는 다음 시각 슬롯에서, 보유하고 있는 초기값 Iβa, Iβb 또는 로그 우도 Iβ를 Iβ산출 회로(511, 512) 및 선택 회로(54)에 공급한다.
선택 회로(54)는 컨트롤러(31)로부터 공급된 컨트롤 신호 SCβ의 제어 하에,레지스터(531, 532)로부터 공급된 로그 우도 Iβ(0), Iβ(1), Iβ(2), Iβ(3)을 선택적으로 추출하여, 로그 우도 Iβ(λ)로서 연 출력 산출 회로(35)에 공급한다.
따라서, Iβ 산출/기억 회로(34)는 Iγ 산출/기억 회로(32)가 로그 우도 Iγ(β1)의 출력을 개시하기 직전의 시각 슬롯, 및 이후 구속 길이의 2배의 길이의 주기마다 초기화를 행하고, 셀렉터(521)에 의해 선택된 초기값 Iβa를 레지스터(531)에 보유시킨다. 그 때, Iβ 산출/기억 회로(34)는 이후의 클럭 주기에 있어서, Iβ 산출 회로(511)에 의해서, Iγ 산출/기억 회로(32)로부터 공급된 로그 우도 Iγ(β1)와 레지스터(521)로부터 공급된 로그 우도 Iβ를 이용하여, 직전 시각 슬롯에서 로그 우도 Iβ를 순차적으로 산출하고, 그 로그 우도 Iβ를 레지스터(531)에 기억시킨다.
또한, Iβ 산출/기억 회로(34)는 Iγ 산출/기억 회로(32)가 로그 우도 Iγ(β2)의 출력을 개시하기 직전의 시각 슬롯, 및 이후 구속 길이의 2배의 길이의 주기마다 초기화를 행하고, 셀렉터(522)에 의해 선택된 초기값 Iβb를 레지스터(532)에 보유시킨다. 그 때, Iβ 산출/기억 회로(34)는 이후의 클럭 주기에 있어서, Iβ 산출 회로(512)에 의해서, Iγ 산출/기억 회로(32)로부터 공급된 로그 우도 Iγ(β2)와 레지스터(522)로부터 공급된 로그 우도 Iβ을 이용하여, 직전 시각 슬롯에서 로그 우도 Iβ를 순차적으로 산출하고, 그 로그 우도 Iβ를 레지스터(532)에 기억시킨다. 그 때, Iβ 산출/기억 회로(34)는 레지스터(53l, 532)에 보유된 각 상태에 있어서의 로그 우도 Iβ(0), Iβ(1), Iβ(2), Iβ(3)를 선택 회로(54)에 의해 소정의 순서로 판독하여, 로그 우도 Iβ(λ)로서 연 출력 산출 회로(35)에 공급한다.
이하, Iα 산출/기억 회로(33)가 포함하는 가산/비교/선택 회로(47O, 471, 472, 473)와, Iβ 산출/기억 회로(34)가 포함하는 가산/비교/선택 회로(55O, 551, 552, 553)에 대하여 기술할 것이다. 그러나, 가산/비교/선택 회로(470, 471, 472, 4 73, 55O, 551, 552, 553)는 그들이 수신한 입력과 그들이 발송한 출력의 견지에 있어서 서로 다르지만 동일한 구성으로 이루어진다. 따라서, 이하에서는 가산/비교/선택 회로(47O, 471, 472, 473, 55O, 551, 552, 553)를 가산/비교/선택 회로(60)로서 총괄적으로 칭할 것이다. 또한, 이하에서는 가산/비교/선택 회로(47O, 471, 472, 473) 각각에 입력되는 두 개의 로그 우도 Iγ 및 가산/비교/선택 회로(55O, 551, 552, 553) 각각에 입력되는 두 개의 로그 우도 Iγ를 IA와 IB로 총칭하고, 가산/비교/선택 회로(47O, 471, 472, 473) 각각에 입력되는 두 개의 로그 우도 Iα 및 가산/비교/선택 회로(550, 551, 552, 553) 각각에 입력되는 두 개의 로그 우도 Iβ를 IC와 ID로 총칭할 것이다. 또한, 가산/비교/선택 회로(47O, 471, 472, 473) 각각으로부터 출력되는 로그 우도 Iα 및 가산/비교/선택 회로(550, 551, 552, 553) 각각으로부터 출력되는 로그 우도 Iβ를 IE로 총칭하여 설명한다.
우선, 가산/비교/선택 회로(60)는 Log-BCJR 알고리즘에 있어서의 보정항에 대하여 소정값을 가산함으로써 산출되는 로그 우도 Iαt, Iβt를 시프트하고, 플러스 또는 마이너스(negative or positive) 식별 코드를 통일한다. 즉, 가산/비교/선택 회로(60)는 산출되는 로그 우도 Iαt, Iβt를 단지 플러스값 또는 마이너스값으로 출력하는 것이다. 이하의 설명에서는, 본 발명에 따른 디코더가 하드웨어로서 실장되는 상태를 취함으로써, 임의의 확률은 0보다 큰 값으로 표기되며 보다 낮은 확률이 보다 큰 값으로 표기된다.
도 15에 도시한 바와 같이, 가산/비교/선택 회로(60)는 두 개의 데이터를 가산하는 가산기(61, 62), 이들의 가산기(61, 62)로부터의 출력의 대소를 비교하는 비교 회로(63), 가산기(61, 62) 각각으로부터의 출력 중 어느 한 쪽을 선택하는 셀렉터(64), 가산기(61)로부터 공급된 데이터 P와 가산기(62)로부터 공급된 데이터 Q와의 차분값의 절대값을 산출하는 절대값 산출 회로(65), 보정항의 값을 기억하는 기억 수단인 ROM(Read Only Memory; 66), 두 개의 데이터의 차분을 취하는 차분기(67)를 포함한다.
가산기(61)는 로그 우도 IA, IC를 수신하여 가산하도록 한다. 가산/비교/선택 회로(60)가 가산/비교/선택 회로(47O)인 경우에는 가산기(61)가 로그 우도 Iγt[00]와 로그 우도 Iαt-1(0)을 입력으로서 수신하여, 로그 우도 Iγt[00]와 로그 우도 Iαt-1(0)를 가산한다. 가산기(61)는 가산하여 얻어진 데이터를 비교 회로(63), 셀렉터(64) 및 절대값 산출 회로(65)에 공급한다. 이하에서는, 가산기(61)로부터 출력되는 데이터를 P로서 설명한다.
가산기(62)는 로그 우도 IB, ID를 수신하여 가산하도록 한다. 가산/비교/선택 회로(60)가 가산/비교/선택 회로(47O)인 경우에, 가산기(62)는 로그 우도 Iγt[11]와 로그 우도 Iαt-1(2)를 입력으로서 수신하여, 로그 우도 Iγt[11]와 로그 우도 Iαt-l(2)를 가산한다. 그 때, 가산기(62)는 가산하여 얻어진 데이터를 비교 회로(63), 셀렉터(64) 및 절대값 산출 회로(65)에 공급한다. 이하에서는, 가산기(62)로부터 출력되는 데이터를 Q로서 설명한다.
비교 회로(63)는 가산기(61)로부터 공급된 데이터 P의 값과, 가산기(62)로부터 공급된 데이터 Q의 값과의 대소를 비교한다. 그 때, 비교 회로(63)는 비교 결과를 나타내는 비교 결과 정보를 셀렉터(64)에 공급한다.
셀렉터(64)는 비교 회로(63)로부터 공급된 비교 결과 정보에 기초하여, 가산기(61)로부터 공급된 데이터 P와, 가산기(62)로부터 공급된 데이터 Q 중에서 보다 작은 값과 그로 인해 보다 높은 확률로 보이는 것을 선택한다. 그 때, 셀렉터(64)는 선택한 데이터를 차분기(67)에 공급한다. 셀렉터(64)에 의해 선택된 데이터는 수학식 28 또는 수학식 30에 있어서의 우변 제 1항과 동일하다.
절대값 산출 회로(65)는 가산기(61)로부터 공급된 데이터 P와, 가산기(62)로부터 공급된 데이터 Q와의 차분값의 절대값을 산출한다. 그 때, 절대값 산출회로(65)는 산출한 절대값을 나타내는 절대값 데이터 |P-Q|를 ROM(66)에 공급한다.
ROM(66)은 함수의 변수인 절대값 데이터 |P-Q|와, 수학식 28 또는 수학식 30에 있어서의 우변 제 2항 및 제 3항을 가산한 값과의 관계를 테이블화하고 기억하는 것이다. ROM(66)은 절대값 산출 회로(65)로부터 공급되는 절대값 데이터 |P-Q|를 판독 어드레스 신호로 하여, 절대값 데이터 |P-Q|에 대한 값이 데이터 Z로서 차분기(67)에 의해 판독된다.
차분기(67)는 셀렉터(64)에 의해 선택된 데이터와 ROM(66)으로부터 판독된 데이터 Z와의 차분값을 구하여, 이 차분값을 로그 우도 IE로서 출력한다. 가산/비교/선택 회로(60)가 가산/비교/선택 회로(47O)인 경우에, 차분기(67)는 로그 우도 Iαt(0)을 출력한다.
가산/비교/선택 회로(60)는 로그 우도 IA, IB, IC, ID를 입력으로서 수신하면, 수학식 28 또는 수학식 30의 연산을 수행하여 로그 우도 IE를 결정하고, 얻은 로그 우도 IE를 출력한다. 보다 구체적으로, 가산/비교/선택 회로(60)는 절대값 데이터 |P-Q|에 대한 보정항에 상수 δ를 가산한 값을 ROM(66)에 미리 기억해 두는 것에 의해서, 통상의 Log-BCJR 알고리즘에 의해 산출되는 로그 우도의 값을 상수 δ만큼 시프트한 로그 우도 IE를 산출한다. 상수 δ는 P = Q의 경우에 수학식 28 또는 수학식 30의 제 2항의 값, 즉, δ = log2 (2의 자연대수 값) 또는 δ > log2 에 의해 정의되는 값이다.
통상의 Log-BCJR 알고리즘에 의해 산출되는 로그 대수 또는 수학식 28 또는 수학식 30에 있어서 제 3항을 제거하여 얻어지는 로그 우도는, 도 16에서 파선부에 도시한 바와 같이, -log 2를 최저값으로서 플러스측 및 마이너스측에 걸친 소정의 범위의 값을 취하여 얻어진다. 따라서, 가산/비교/선택 회로(60)는 보정항에 대하여, δ = log 2 또는 δ > log 2의 상수 δ를 가산함으로써, 도 16에 있어서 실선부에 도시한 바와 같이 플러스 방향에 시프트하여 플러스 값만을 취하는 로그 우도 IE를 산출할 수 있다. 도 16에 있어서, Max는 로그 우도 IE의 최대값을 나타내고, 이는 셀렉터(64)로부터 출력되는 max (IA+IC, IB+ID)로 표기된다.
상술한 바와 같이, 산출된 로그 우도 IE를 시프트하여 항상 플러스값을 취하는 로그 우도 IE를 얻기 위해, 가산/비교/선택 회로(60)는 보정항의 값에 상수 δ를 가산한다. 따라서, 가산/비교/선택 회로(60)는 max (IA+IC, IB+ID) 이하의 플러스값을 취급하도록 요구되어, 디코드된 출력에 어떠한 문제도 발생시키지 않고, 디코더에 있어서 일련의 산출 연산 결과를 표기하는 필수 비트 수를 줄일 수 있다.
따라서, 이상 설명한 바와 같은 인코더(1)와 디코더(3)를 포함하는 데이터 송/수신 시스템에 있어서, 디코더(3)는 log-sum 보정을 수행하는 연산에 있어서, 보정항의 값에 대하여 소정값을 가산함으로써 일련이 산출 연산 결과를 표기하는 비트 수를 줄일 수가 있어, 성능을 열화되지 않고 회로 규모를 줄일 수 있게 된다.
따라서, 상술한 방식으로 실시되고 인코더(1)와 디코더(3)를 포함하는 데이터 송/수신 시스템은 고성능으로 작은 회로 규모에서의 컨볼루션 코드의 디코딩을 실현할 수 있고, 사용자에게 높은 신뢰성 및 편리성을 제공할 수 있다.
본 발명은 상술한 실시예에 제한되는 것은 아니다. 예를 들면, 인코더가 컨볼루션 연산을 행하지 않을 수 있고, 임의의 코딩 레이트로 인코딩을 행하는 것일 수도 있다.
예를 들면, 인코더가 코딩 레이트가 “2/n"로 표기되는 컨볼루션 연산을 행하는 것인 경우, 인코더에서의 격자 구조는 각 상태로부터 다음 시각 슬롯에서의 상태로 4개의 경로가 도달하는 구조를 나타낸다. 그 때, 디코더는 로그 우도 Iαt, Iβt을 산출할 때에, 상술한 log-sum 연산을 적어도 2회 수행하도록 요구되지만, 각 log-sum 연산에 상수 δ를 보정항에 대하여 가산할 필요가 있다.
따라서, 본 발명은 어떠한 코딩 레이트로 실시되는 인코더도 적용될 수 있다.
상술한 실시예에 있어서, 산출되는 모든 로그 우도가 플러스 값을 취하도록 되어 있다. 본 발명에 따르면, 로그 우도를 마이너스 값으로서 산출하여, 보다 작은 값에서 보다 낮은 확률을 표기하도록 할 수도 있다. 그러한 경우에 있어서, 보정항에 대하여 가산하는 상수 δ는 δ = -log 2 또는 δ < -log 2일 것이다. 따라서, 본 발명은 산출되는 로그 우도를 마이너스 방향으로 시프트하여 마이너스 값만을 취하는 경우에 적용 가능하다. 일반적으로는 δ ≥|log 2|로 표기되는 값을 보정항에 대해 가산할 필요가 있다.
또한, 상술한 실시예에서는 보정항에 대한 소정값의 가산 처리를 ROM에 기억된 테이블을 참조하여 수행하였지만, 본 발명은 선형 근사법이나 임계값 근사법에의해 산출된 보정항에 소정값이 가산되는 경우에도 적용할 수 있다. 예를 들어, 선형 근사법에 의해 보정을 행하는 경우의 가산/비교/선택 회로는 도 17을 참조하여 설명한다. 도 17에 있어서, 가산/비교/선택 회로(60)와 동일한 구성에 대해서는 각각 동일한 참조 번호를 붙이고 그 설명을 생략하는 것으로 한다.
도 17에 도시된 가산/비교/선택 회로(70)는 상술한 가산/비교/선택 회로(60)에 있어서의 가산기(61, 62)에 대응하는 두 개의 가산기(71, 72), 상술한 비교 회로(63)에 대응하는 비교 회로(73), 상술한 셀렉터(64)에 대응하는 셀렉터(74), 상술한 절대값 산출 회로(65)에 대응하는 절대값 산출 회로(75), 선형 근사에 의한 보정항의 값을 산출하는 선형 근사 수단인 선형 근사 회로(76), 상술한 차분기(67)에 대응하는 차분기(77)를 포함한다.
선형 근사 회로(76)는 절대값 산출 회로(75)에 의해 산출된 절대값을 이용하여 보정항을 선형 근사에 의해 산출하고, 보정항에 소정값을 가산한다. 보다 구체적으로는, 선형 근사 회로(76)는 보정항을 변수 |P-Q|에 대한 1차원 함수로 나타내고, 함수의 기울기를 나타내는 계수인 -a(a> O)과, 함수의 세그먼트를 나타내는 계수 b를 이용하여 함수 -a|P-Q|+ b에 의해 선형 근사하고, 보정항에 대하여 상수 δ를 가산하여 얻어지는 -a|P-Q|+ b + δ = -a|P-Q| + ε의 값을 최종적으로 산출한다. 그 때, 선형 근사 회로(76)는 산출하여 얻어진 데이터 Z를 차분기(77)에 공급한다.
따라서, 가산/비교/선택 회로(70)는 가산/비교/선택 회로(60)와 마찬가지로, 로그 우도 IA, IB, IC, ID를 입력으로서 수신하면, 수학식 28 또는 수학식 30의 연산을 수행하여 로그 우도 IE를 구하여 출력한다. 즉, 절대값 데이터 |P-Q|에 대한 보정항을 산출할 때, 가산/비교/선택 회로(70)는 보정항에 대해 상수 δ를 가산함으로써, 통상의 Log-BCJR 알고리즘에 있어서 산출되는 로그 우도의 값을 상수 δ만큼 시프트함으로써 얻어지는 값을 나타내는 로그 우도 IE를 결정할 수 있다.
이와 같이, 본 발명은 보정항에 대한 소정값의 가산 처리를 ROM에 기억된 테이블을 참조하여 행하는 경우에 한하지 않고, 선형 근사법 등의 각종 방법에 의해 보정항을 산출하는 경우에도 적용할 수 있다.
또한, 본 발명은 소위 병렬 재귀적 컨볼루션 코드, 직렬 재귀적 컨볼루션 코드, 터보 코딩 변조 시스템에 의한 코드 또는 직렬 연쇄된 코딩 변조 시스템에 의한 코드와 같은, 복수의 요소 코드를 연쇄시켜 구성되는 코드의 디코딩을 행하는 경우에도 적용할 수 있다.
상술한 실시예에서는, 인코더 및 디코더를 데이터 송수신 시스템에 있어서의 송신 장치 및 수신 장치에 각각 적용하여 설명하였지만, 본 발명은 플로피 디스크, CD-ROM 또는 MO(magneto-optical) 디스크인 자기, 광 또는 광 자기 디스크 등의 기록 매체로부터 기록 및/또는 재생을 행하는 기록 및/또는 재생 디바이스에 적용할 수도 있다. 이 경우, 인코더에 의해 인코딩되는 데이터는 무기억 통신 채널에 등가인 기록 매체에 기록되어, 디코더에 의해 디코드되어 재생된다.
따라서, 본 발명은 그 취지를 일탈하지 않은 범위에서 적절하게 변경이 가능한 것은 물론이다.
이상 상세히 설명한 바와 같이, 본 발명에 따른 디코더는 연 입력인 수신값에 기초하여 임의의 상태를 통과하는 확률을 대수적으로 표기한 로그 우도를 구하고, 이 로그 우도를 이용하여 디코딩을 행하는 디코더에 있어서, 로그 우도를 구하기 위해 추가되고 변수에 대한 1차원 함수로 표기되는 보정항을 구함과 동시에, 로그 우도의 플러스 마이너스 식별 코드를 통일하도록 보정항에 대하여 소정값을 가산하여, 로그 우도를 산출하는 처리 수단을 포함한다.
따라서, 본 발명에 따른 디코더는 처리 수단에 의해 보정항에 대하여 소정값을 가산하여, 산출되는 로그 우도의 플러스 마이너스 식별 코드를 통일함으로써, 디코딩 결과에 대해 문제를 야기하지 않고, 회로 규모를 줄일 수 있다.
또한, 본 발명에 따른 디코딩 방법은 연 입력인 수신값에 기초하여 임의의 상태를 통과하는 확률을 대수적으로 표기한 로그 우도를 구하고, 이 로그 우도를 이용하여 디코딩을 행하는 디코딩 방법에 있어서, 로그 우도를 제공하기 위해서 추가되고 변수에 대한 1차원 함수로 표기되는 보정항을 구함과 동시에, 로그 우도의 플러스 마이너스 식별 코드를 통일하도록 보정항에 대하여 소정값을 가산하여, 로그 우도를 산출하는 처리 단계를 포함한다.
따라서, 본 발명에 따른 디코딩 방법은 처리 단계에서 보정항에 대하여 소정값을 가산하여 산출되는 로그 우도의 플러스 마이너스 식별 코드를 통일함으로써, 디코딩 결과에 대해 문제를 야기하지 않고, 회로 규모를 줄 일 수 있다.

Claims (22)

  1. 연 입력으로 간주되는 수신값에 기초하여 주어진 상태를 통과하는 확률을 대수적으로 표기한 로그 우도를 결정하고, 상기 로그 우도를 이용하여 상기 입력을 디코딩하는 디코더에 있어서,
    보정된 로그 우도를 구하기 위해 상기 로그 우도에 변수에 대한 1차원 함수로 표기되는 보정항 및 소정값을 가산하여, 상기 보정된 로그 우도가 플러스 값 또는 마이너스 값을 균등하게 갖도록 하는 처리 수단
    을 포함하는 디코더.
  2. 제1항에 있어서, 상기 처리 수단은 상기 변수와, 상기 보정항 및 상기 소정값을 가산함으로써 얻어진 상기 값과의 관계를 기억하는 기억 수단을 포함하고, 상기 보정항 및 상기 소정값을 가산함으로써 얻어진 상기 값은 상기 변수를 판독하는 어드레스 신호로서 상기 기억 수단으로부터 판독되는 디코더.
  3. 제1항에 있어서, 상기 처리 수단은 상기 보정항을 선형 근사하고, 상기 보정항에 대하여 상기 소정값을 가산하는 선형 근사 수단을 포함하는 디코더.
  4. 제1항에 있어서, 상기 소정값은 2의 자연 대수값에 의해 표기되는 디코더.
  5. 제1항에 있어서, 상기 로그 우도는 자연 대수에 의해 상기 확률을 대수적으로 표기하는 디코더.
  6. 제1항에 있어서,
    상기 수신된 값 각각에 대해, 코드 출력 패턴과 상기 수신값에 의해 결정되는 제1 확률을 대수적으로 표기하는 제1 로그 우도를 산출하는 제1 확률 산출 수단;
    상기 수신값 각각에 대해, 코딩 개시 상태로부터 시계열순으로 각 상태에 이르는 제2 확률을 대수적으로 표기하는 제2 로그 우도를 산출하는 제2 확률 산출 수단; 및
    상기 수신값 각각에 대해, 코딩 종결 상태로부터 시계열의 역순으로 각 상태에 이르는 제3 확률을 대수적으로 표기하는 제3 로그 우도를 산출하는 제3 확률 산출 수단
    을 더 포함하되,
    상기 제2 확률 산출 수단 및 상기 제3 확률 산출 수단 각각은 청구항 1에 정의된 것과 동일한 처리 수단을 포함하는 디코더.
  7. 제6항에 있어서, 상기 제1 로그 우도, 상기 제2 로그 우도, 및 상기 제3 로그 우도를 이용하여, 각 시각 슬롯에서 상기 연 출력을 대수적으로 표기하는 로그 연 출력을 결정하는 연 출력 결정 수단을 더 포함하는 디코더.
  8. 제7항에 있어서, 상기 로그 연 출력은 자연 대수를 이용하여 상기 연 출력을 대수적으로 표기하는 디코더.
  9. 제1항에 있어서, 상기 로그 우도는 상기 확률의 곱 연산을 대수의 합 연산으로 치환하는 연산에 의해 결정되고, 상기 확률의 합 연산은 대수의 최대값 연산과 상기 함수의 연산에 의해 결정되는 디코더.
  10. 제9항에 있어서, 최대 사후(posteriori) 확률 디코딩 연산은 Log-BCJR 알고리즘에 기초하여 수행되는 디코더.
  11. 제1항에 있어서, 컨볼루션 코드가 디코드되는 디코더.
  12. 연 입력으로서 간주되는 수신된 값에 기초하여 주어진 상태를 통과하는 확률을 대수적으로 표기하는 로그 우도를 결정하고, 상기 로그 우도를 이용하여 상기 입력을 디코딩하는 디코딩 방법에 있어서,
    보정된 로그 우도를 얻기 위해 상기 로그 우도에 변수에 대한 1차원 함수로 표기되는 보정항 및 소정값을 가산하여, 상기 보정된 로그 우도가 플러스 값 또는 마이너스 값을 균일하게 갖도록 하는 처리 단계
    를 포함하는 디코딩 방법.
  13. 제12항에 있어서, 상기 처리 단계는 상기 변수와, 상기 보정항 및 상기 소정값을 가산함으로써 얻어진 값과의 관계를 기억하는 단계를 포함하고, 상기 보정항 및 상기 소정값을 가산함으로써 얻어진 상기 값은 상기 변수를 판독하는 어드레스 신호로서 판독되는 디코딩 방법.
  14. 제12항에 있어서, 상기 처리 단계는 상기 보정항을 선형 근사하고, 상기 보정항에 대하여 상기 소정값을 가산하는 단계를 포함하는 디코딩 방법.
  15. 제12항에 있어서, 상기 소정값은 2의 자연 대수 값에 의해 표기되는 디코딩 방법.
  16. 제12항에 있어서, 상기 로그 우도는 자연 대수에 의해 상기 확률을 표기하는 디코딩 방법.
  17. 제12항에 있어서, 상기 수신된 값 각각에 대해, 코드 출력 패턴과 상기 수신된 값에 의해 결정되는 제1 확률을 대수적으로 표기한 제1 로그 우도를 산출하는 제1 확률 산출 단계;
    상기 수신된 값 각각에 대해, 코딩 개시 상태로부터 시계열순으로 각 상태에 이르는 제2 확률을 대수적으로 표기한 제2 로그 우도를 산출하는 제2 확률 산출 단계; 및
    상기 수신된 값 각각에 대해, 종결 상태로부터 시계열의 역순으로 각 상태에 이르는 제3 확률을 대수적으로 표기한 제3 로그 우도를 산출하는 제3 확률 산출 단계
    를 포함하되,
    상기 제2 확률 산출 단계 및 상기 제3 확률 산출 단계 각각은 청구항 12에서 정의된 것과 동일한 처리 단계를 포함하는 디코딩 방법.
  18. 제17항에 있어서, 상기 제1 로그 우도, 상기 제2 로그 우도, 및 상기 제3 로그 우도를 이용하여, 각 시각 슬롯에서의 상기 연 출력을 대수적으로 표기한 대수 연 출력을 결정하는 연 출력 산출 단계를 포함하는 디코딩 방법.
  19. 제18항에 있어서, 상기 로그 우도는 상기 자연 대수에 이해 상기 연 출력을 대수적으로 표기하는 디코딩 방법.
  20. 제12항에 있어서, 상기 로그 우도는 상기 확률의 곱 연산을 대수의 합 연산으로 치환하는 계산에 의해 결정되고, 상기 확률의 합 연산은 대수의 최대값 연산과 상기 함수의 연산을 행함으로써 결정되는 디코딩 방법.
  21. 제20항에 있어서, 최대 사후 확률 디코딩 연산은 상기 Log-BCJR 알고리즘에기초하여 수행되는 디코딩 방법.
  22. 제12항에 있어서, 컨볼루션 코드가 디코드되는 디코딩 방법.
KR1020010031761A 2000-06-08 2001-06-07 디코더 및 디코딩 방법 KR100838907B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000172677A JP2001352256A (ja) 2000-06-08 2000-06-08 復号装置及び復号方法
JP2000-172677 2000-06-08

Publications (2)

Publication Number Publication Date
KR20010111023A true KR20010111023A (ko) 2001-12-15
KR100838907B1 KR100838907B1 (ko) 2008-06-16

Family

ID=18675036

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010031761A KR100838907B1 (ko) 2000-06-08 2001-06-07 디코더 및 디코딩 방법

Country Status (3)

Country Link
US (1) US6525680B2 (ko)
JP (1) JP2001352256A (ko)
KR (1) KR100838907B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859563B2 (en) * 2001-03-30 2005-02-22 Ricoh Co., Ltd. Method and apparatus for decoding information using late contexts
EP1456893A1 (en) * 2001-12-20 2004-09-15 Add-Vision, Inc. Screen printable electrode for organic light emitting device
US7137059B2 (en) * 2002-11-20 2006-11-14 Broadcom Corporation Single stage implementation of min*, max*, min and /or max to perform state metric calculation in SISO decoder
US7073114B2 (en) * 2002-06-24 2006-07-04 Massey Peter C Method of decoding utilizing a recursive table-lookup decoding method
KR20050042869A (ko) * 2003-11-04 2005-05-11 삼성전자주식회사 구현이 간단한 map디코더 및 그의 디코딩 방법
US7502983B2 (en) * 2004-06-28 2009-03-10 Massey Peter C Binary error-correction coding method and decoding method for trellis with permuted and sequential symbols

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2458179A1 (fr) * 1979-05-31 1980-12-26 Thomson Csf Dispositif de decodage binaire et systemes de transmission comportant un tel dispositif
US4742533A (en) * 1987-01-02 1988-05-03 Motorola, Inc. Soft decision digital communication apparatus
DE4437984A1 (de) * 1994-10-25 1996-08-14 Philips Patentverwaltung Übertragungssystem mit Soft-Output-Dekodierung
US6028899A (en) * 1995-10-24 2000-02-22 U.S. Philips Corporation Soft-output decoding transmission system with reduced memory requirement
US5862190A (en) * 1995-12-29 1999-01-19 Motorola, Inc. Method and apparatus for decoding an encoded signal
US5933462A (en) * 1996-11-06 1999-08-03 Qualcomm Incorporated Soft decision output decoder for decoding convolutionally encoded codewords
US5930272A (en) * 1997-06-10 1999-07-27 Efficient Channel Coding, Inc. Block decoding with soft output information
US6167552A (en) * 1997-10-02 2000-12-26 Harris Corporation Apparatus for convolutional self-doubly orthogonal encoding and decoding
KR100280863B1 (ko) * 1998-09-25 2001-02-01 윤덕용 터보코드의 가중치를 준 병렬형 복호화 방법및 그 장치

Also Published As

Publication number Publication date
US6525680B2 (en) 2003-02-25
US20020035716A1 (en) 2002-03-21
JP2001352256A (ja) 2001-12-21
KR100838907B1 (ko) 2008-06-16

Similar Documents

Publication Publication Date Title
EP1162750B1 (en) MAP decoder with correction function in LOG-MAX approximation
US6477680B2 (en) Area-efficient convolutional decoder
EP1398881A1 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
JP4520122B2 (ja) 高次基数のlogmapプロセッサ
EP1564893A1 (en) Turbo decoder, turbo decoding method, and operating program of same
EP1130789A2 (en) Soft-decision decoding of convolutionally encoded codeword
EP1315302A1 (en) Soft-output decoder
EP1471677A1 (en) Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder
KR20010022310A (ko) 길쌈 부호의 연출력 복호 장치 및 연출력 복호 방법
US7200798B2 (en) Unified serial/parallel concatenated convolutional code decoder architecture and method
US6807239B2 (en) Soft-in soft-out decoder used for an iterative error correction decoder
KR100838907B1 (ko) 디코더 및 디코딩 방법
JP2001352254A (ja) 復号装置及び復号方法
JP2002076925A (ja) 軟出力復号装置及び軟出力復号方法、並びに、復号装置及び復号方法
US20020094038A1 (en) Error-correcting code decoding method and error-correcting code decoding apparatus
JP3820583B2 (ja) 軟出力復号装置及び軟出力復号方法、並びに復号装置及び復号方法
JP2002198829A (ja) 復号装置及び復号方法
JP2008182442A (ja) 復号装置
JP2002043954A (ja) 復号装置及び復号方法
JP2002171174A (ja) インターリーブ装置及びインターリーブ方法、並びに、復号装置及び復号方法
JP2002076940A (ja) 軟出力復号装置及び軟出力復号方法、並びに、復号装置及び復号方法
JP2002043955A (ja) 復号装置及び復号方法
JP2002076917A (ja) インターリーブ装置及びインターリーブ方法、並びに、復号装置及び復号方法
JP2002076912A (ja) 復号装置及び復号方法
KR20070050716A (ko) 복호기의 상태 메트릭 정규화 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
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
LAPS Lapse due to unpaid annual fee