KR20010080950A - 격자 상태 메트릭 정규화 시스템 - Google Patents

격자 상태 메트릭 정규화 시스템 Download PDF

Info

Publication number
KR20010080950A
KR20010080950A KR1020017005722A KR20017005722A KR20010080950A KR 20010080950 A KR20010080950 A KR 20010080950A KR 1020017005722 A KR1020017005722 A KR 1020017005722A KR 20017005722 A KR20017005722 A KR 20017005722A KR 20010080950 A KR20010080950 A KR 20010080950A
Authority
KR
South Korea
Prior art keywords
state
metric
minimum value
decoder
value
Prior art date
Application number
KR1020017005722A
Other languages
English (en)
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22686167&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20010080950(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 러셀 비. 밀러, 콸콤 인코포레이티드 filed Critical 러셀 비. 밀러
Publication of KR20010080950A publication Critical patent/KR20010080950A/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
    • 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
    • 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/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence 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
    • 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/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4138Sequence 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
    • H03M13/4146Sequence 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 soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction

Landscapes

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

Abstract

본 발명은 격자를 사용하여 디코더(20)에서 다수의 상태 메트릭 레지스터(30, 32, 34)를 정규화하기 위한 방법 및 장치에 관한 것이다. 본 방법은 다수의 상태-메트릭 레지스터(30, 32, 34)에 저장된 각각의 상태-메트릭값에 대한 근사 최소값을 결정하는 단계와; 상기 상태-메트릭값으로부터 상기 근사 최소값을 감산하는 단계를 포함한다. 상기 근사 최소값 결정단계는 다수의 상태-메트릭 레지스터(30, 32, 34)에서 미리 결정된 수의 최상위 비트의 최소값을 결정하는 단계를 포함한다.

Description

격자 상태 메트릭 정규화 시스템{EFFICIENT TRELLIS STATE METRIC NORMALIZATION}
디지털 데이터의 전송은 전송된 데이터에 대해 에러를 발생시킬 수 있는 간섭에 의해 영향을 받기 쉽다. 에러 검출 방식은 에러가 전송된 데이터에 유입되었는지의 여부를 가능한 신뢰성 있게 검출하기 위하여 제안되었다.
전송된 데이터가 온라인으로 사용되지 않을때, 에러가 검출되면 에러 데이터의 재전송을 요구하는 것이 가능하다. 그러나, 전송이 전화선, 셀룰라 폰, 원격 비디오 시스템 등에서와 같이 온라인상에서 실행될때에는 데이터의 재전송을 요구하는 것이 거의 불가능하다.
컨벌루션 코드 및 다른 유사한 코드는 전송중에 에러가 발생할지라도 디지털 데이터의 수신기가 전송된 데이터를 정확하게 검출할 수 있도록 하기 위하여 도입되었다. 컨벌루션 코드는 전송된 데이터에서 데이터의 각 입력 비트를 하나 이상의 코딩된 비트로 나타냄으로서 전송된 데이터에 리던던시(redundancy)를 도입한다. 보통, 전송된 데이터의 코팅된 비트는 각 코딩된 비트의 값이 시퀀스에서 초기 비트를 따르는 패킷으로 압축된다. 따라서, 소수의 에러가 발생할때 수신기는 수신된 데이터의 시퀀스를 다시 추적함으로써 원래의 데이터를 계속해서 추론할 수 있다.
몇몇의 디코더에 있어서, 단일 전송된 코딩된 비트로부터 시작하는 수신된 신호가 0 또는 1인지의 여부를 즉시 결정하는 것보다 오히려, 수신기는 코딩된 비트가 1인 확률을 나타내는 멀티-레벨 스케일에 대한 값을 가지는 워드를 각각의 신호에 할당한다. LLR 확률로써 언급되는 전형적인 스케일은 범위 {-32, 31}내의 정수를 나타내는 6비트 워드로 각각의 전송된 코팅 비트를 나타낸다. 만일 다른 수의 비트로 이루어진 워드가 사용되면, 이에 따라서 상기 범위가 조절된다. 코딩된 비트의 LLR 확률은 비트가 1인 확률 대 비트가 0인 확률의 비의 대수 또는 상기 비율의 역수의 대수를 취함으로써 계산된다. 31의 값은 전송된 비트가 매우 높은 확률을 가진 0인 것을 의미하고, -32의 값은 전송된 비트가 매우 높은 확률을 가진 1인 것을 의미한다. 0의 값은 값이 미결정 상태라는 것을 지시한다.
각각의 코팅된 비트가 잡음 채널상에서 "1" 또는 "0"의 정수값을 가지는 비트의 코팅된 패킷을 송신기가 전송할때, 수신기는 각각의 비트가 채널에 의해 발생된 간섭으로 인해 LLR 확률로써 해석될 수 있는 가변 전압값을 가지는 패킷을 수신한다. 디코더는 수신된 패킷에 기초하여 전송된 패킷을 결정해야 한다. 단순한 방법은 수신된 패킷 및 모든 가능한 패킷사이의 "차이"를 결정하는 단계와, 가능한 패킷이 가장 작은 차이를 갖는지를 결정하는 단계를 포함한다. 그러나, 패킷의 많은 수의 다른 가능한 값으로 인하여, 이러한 방법은 일반적으로 비현실적이다.
종래의 코딩 방법 및 다른 관련 방법에 있어서, 코딩되지 않은 입력패킷은 다수의 가능한 상태를 가지는 인코더에 전송된다. 코딩되지 않은 패킷의 각 데이터 비트가 인코더에 전송될때, 각 데이터 비트는 인코더의 상태를 변화시키며 상태 및 입력의 함수인 하나 이상의 코딩된 출력 비트의 그룹을 제공한다. 코딩된 출력 비트의 그룹은 전송되는 코딩된 패킷을 형성한다. 각 그룹내의 비트의 수는 컨벌루션의 결과로써 코드에 의해 야기된 리던던시의 인자이다. 각 그룹이 예컨대 2 비트를 포함하는 코드는 1/2 코드율을 가지며, 1/2 코드율은 패킷의 실제 정보가 패킷의 코딩된 비트의 수의 절반이라는 것을 의미한다.
컨벌루션 코드는 일반적으로 MAP 디코딩(또는 APP 디코딩), SOVA 디코딩 및 비터비 디코딩과 같이 격자(trellis)를 사용하는 디코딩 방식에 따라 디코딩된다. 디코더는 코딩된 패킷에서 수신된 코딩 비트의 확률을 나타내는 워드(전송중에 발생된 잡음과 함께)를 수신하며, 인코더의 스텝을 재추적함으로써 코딩된 패킷을 디코딩한다. 디코더는 수신된 패킷 및 적절히 전송된 패킷을 나타내는 워드사이의 차이를 인코더의 각각의 가능한 상태와 관련하여 계산하며, 이는 인코더를 상기 상태로 되게 한다. 수신된 비트의 그룹을 나타내는 워드의 각 그룹에 대하여, 디코더는 수신된 비트의 확률값과 인코더의 특정 상태전이(격자 전이로써 언급됨)를 위해 요구되는 이상적인 추측값사이의 차이에 따라 각각의 가능한 상태의 상태 메트릭(state metric)을 업데이트한다. 비터비 디코딩에 있어서, 다른 상태로부터의 전이가 동일한 상태를 야기할때, 높은 확률을 가진 상태 메트릭을 발생시키는 전이가 우세하다. MAP 및 APP 디코딩에 있어서, 새로운 상태 메트릭의 값은 상태로 이르게하는 모든 전이의 함수, 예컨대 모든 전이의 합이다.
상태 메트릭은 처리되는 각각의 비트와 함께 그리고 15-20 비트 또는 그 이상 비트로 표현할 수 있는 수천개의 비트의 패킷과 함께 신속하게 증가한다. 디코딩이 예컨대 디지털 신호 프로세서에 의해 소프트웨어로 수행될때, 프로세서 그 자체의 크기는 많은 문제점을 유발하지 않는다. 그러나, 디코딩이 제한된 시간내에서 수행되어야 하기 때문에, 전용 하드웨어 프로세서가 적절히 사용된다. 이러한 프로세서에서는 과도한 하드웨어 비용없이 고속으로 디코딩을 수행하기 위하여 상태 메트릭을 표현하기 위하여 사용된 비트의 수를 제한하는 것이 필수적이다.
통상적인 해결방법은 8비트 레지스터를 사용하여 상태 메트릭을 저장하는 것이다. 포화를 방지하기 위하여, 최소 상태 메트릭을 포함하는 정규화 메트릭(NM)은 각각의 연속적인 격자 전이이후에 주기적으로 바람직하게 계산되며 NM은 모든 레지스터로부터 감산된다. 그러나, 최소 상태 메트릭의 계산은 시간을 소모한다. 일반적으로, NM은 디코더의 동작과 병렬로 계산되며, NM은 최소값이 결정될때 이후에 지연된 스테이지에서 감산된다. 반면에, 레지스터는 중요한 손실 데이터로 포화상태가 될 수 있다. 더욱이, 이러한 해결방법은 이후 스테이지에서 사용될 NM를 저장하고 지연동안 상태 메트릭 레지스터로부터 이미 감산된 NM의 이전 값을 다음 스테이지에서 NM으로부터 감산하기 위한 부가적인 하드웨어를 필요로한다.
여기에 참조에 의해 통합되는 A.P. Hekstra, "An Alternative to Metric Rescaling in Viterbi Decoders," IEEE Trans. Commun, Vol. 37, No. 11(Nov. 1989), pp.1220-1222에는 상태 메트릭의 포화를 방지하기 위한 모듈 계산방법을 사용하는 기술이 개시되어 있다. 포화를 방지하기 위하여, 모듈 계산결과와 함께 상태 메트릭을 나타내기 위하여 몇몇의 추가 비트가 사용된다. 예컨대, 6비트 데이터 워드를 가진 4상태, 1/2 율 코드에 대하여, 11비트 레지스터가 상태 메트릭을 저장하기 위하여 사용된다. 그러나, 레지스터의 모든 추가 비트는 많은 계산시간을 필요로하며 디코더의 비용을 증가시킨다.
본 발명은 일반적으로 디코딩 방법, 특히 격자(trellis)를 사용하여 코드를 고속으로 디코딩하는 방법에 관한 것이다.
도 1은 인코딩된 패킷을 발생시키는 인코더(10)의 개략적인 블록도,
도 2는 본 발명의 바람직한 실시예에 따른 APP 디코더의 개략적인 블록도.
도 3은 본 발명의 바람직한 실시예에 따른 도 2의 디코더의 순방향 상태-메트릭 계산유니트에 대한 개략적인 블록도.
도 4는 도 1의 인코더에서의 가능한 상태 전이를 도시한 그래프.
도 5는 본 발명의 바람직한 실시예에 따른 도 3의 상태-메트릭 계산 유니트의 순환 메트릭 결합기에 대한 블록도.
도 6은 본 발명의 바람직한 실시예에 따른 도 3의 상태-메트릭 계산 유니트의 최소 계산 유니트에 대한 블록도.
도 7은 본 발명의 바람직한 실시예에 따라 도 2의 디코더와 유사한 두 개의 디코딩을 포함하는 디코딩 프로세서의 블록도.
도 8은 본 발명의 다른 바람직한 실시예에 따른 최소 계산유니트의 블록도.
본 발명의 목적은 격자(trellis)를 사용하는 디코더에서 상태를 고속으로 정규화하기 위한 방법 및 장치를 제공하는데 있다.
본 발명의 다른 목적은 종래의 장치보다 덜 포화되는 상태 정규화를 위한 장치를 제공하는데 있다.
본 발명의 바람직한 실시예에서, 사후확률(APP)(또는 최대 사후(MAP)) 디코더, 비터비 디코더 또는 소프트-출력 비터비 알고리즘(SOVA) 디코더와 같이 격자를 사용하는 디코더는 정규화에 사용되는 최소 상태 메트릭을 대략적으로만 계산한다. 근사 계산으로 인한 손해는 근사 계산으로 인해 시간이 절약되기 때문에 무시해도 좋다. 바람직하게, 근사 최소값은 실제 최소값보다 작거나 또는 동일하여, 계산된 최소값이 부호없는 계산을 사용하여 모든 상태 메트릭 레지스터로부터 감산될 때 데이터가 손실되지 않는다.
바람직하게, 근사 최소값은 상태 메트릭의 몇몇 최상위 비트의 최소값을 결정함으로써 계산된다. 바람직하게, 근사 최소값을 계산하기 위하여 사용된 비트의 수는 상태 메트릭의 비트의 30% 내지 60% 이다. 본 발명의 바람직한 실시예에서,상태 메트릭 레지스터에 8비트가 존재하며, 4개의 최상위 비트(MSB)는 정규화를 위한 최소값을 계산할 때 사용된다.
본 발명의 바람직한 실시예에 따르면, 다수의 상태 메트릭 레지스터에 저장된 각각의 상태 메트릭값의 근사 최소값을 결정하는 단계와 근사값을 상기 값으로부터 감산하는 단계를 포함하며, 격자를 사용하는 디코더에서 다수의 상태 메트릭 레지스터를 정규화하는 방법이 제공된다.
바람직하게, 근사 최소값은 다수의 상태 레지스터의 값의 실제 최소값과 동일하거나 또는 작다.
바람직하게, 근사 최소값을 결정하는 단계는 다수의 상태 메트릭 레지스터에서 소정수의 최상위 비트의 최소값을 결정하는 단계를 포함한다.
바람직하게, 소정수의 최상위 비트는 레지스터의 비트의 수의 30% 내지 60%이다.
바람직하게, 본 발명의 방법은 레지스터에 대한 새로운 상태 메트릭값을 계산하는 단계를 포함하며, 근사 최소값을 감산하는 단계는 새로운 값을 계산하는 단계와 거의 동시에 수행된다.
바람직하게, 본 발명의 방법은 다수의 연속적인 클록 사이클동안 다수의 각각의 새로운 값을 상태 메트릭 레지스터에 저장하는 단계를 포함하며, 근사 최소값을 결정하는 단계는 거의 모든 사이클에서 새로운 값의 근사 최소값을 결정하는 단계를 포함한다.
바람직하게, 근사 최소값을 결정하는 단계는 다수의 클록 사이클중 제 1 사이클동안 근사 최소값을 결정하는 단계를 포함하며, 상기 근사 최소값을 감산하는 단계는 제 1 클록 사이클후에 다수의 클록 사이클의 제 1 클록 사이클동안 감산하는 단계를 포함한다.
바람직하게, 본 발명의 방법은 제 1 및 제 2 클록 사이클사이의 시간 갭에 응답하여 근사 최소값을 조절하는 단계를 포함한다.
바람직하게, 본 발명의 방법은 제 1 사이클동안 계산된 근사 최소값을 제 2 사이클동안 계산된 근사 최소값으로부터 감산하는 단계를 포함한다.
본 발명의 바람직한 실시예에 따르면, 각각의 상태 메트릭값을 저장하는 다수의 상태 메트릭 레지스터, 다수의 레지스터의 근사 최소값을 결정하는 최소 계산 유니트, 및 다수의 레지스터의 값으로부터 근사 최소값을 감산하는 다수의 감산기를 포함하며, 격자를 사용하여 디코딩하는 디코더에 사용하기 위한 상태 계산 유니트가 제공된다.
바람직하게, 최소 계산 유니트는 레지스터의 소정 수의 최상위 비트의 최소값을 계산하며, 감산기는 레지스터의 소정수의 최상위 비트로부터 근사 최소값을 감산한다.
바람직하게, 최소 계산유니트는 레지스터의 다음 상태 메트릭을 각각의 레지스터에 대하여 계산하는 다수의 순환 결합기를 포함하며, 각각의 순환 결합기는 감산기들의 각각의 감산기를 포함한다.
바람직하게, 디코더는 비터비 디코더, APP 디코더, MAP 디코더, 격자 디코더, 및/또는 소프트 출력 비터비 디코더이다.
본 발명의 바람직한 실시예에 따르면, 전술한 다수의 계산 유니트를 포함하며, 멀티-요소 코딩 방식에 따라 코딩된 신호 패킷의 시퀀스를 반복적으로 디코딩하는 반복 디코딩 프로세서가 제공된다.
이하에서는 도면을 참조로하여 본 발명을 더 상세히 설명할 것이다.
도 1은 인코딩된 패킷을 발생시키는 인코더(10)의 개략적인 블록도이다. 인코더(10)에 의해 발생된 코드는 식(1)으로 주어진 발생기 메트릭스(G[D])를 가진다.
G[D]=[1,(1+D+D2)/(1+D)] (1)
여기서 D는 지연 엘리먼트(12)를 나타낸다.
도 2는 본 발명의 바람직한 실시예에 따른 APP 디코더(20)의 개략적인 블록도. 디코더(20)는 인코더(10)에 의해 발생된 코드를 디코딩하기 위하여 격자를 사용한다.
디코더(20)는 입력 패킷이 디코더에 제공된 단일 입력라인을 포함한다. 선택 디-펀처부(de-puncturer)(24)는 디코더(20)에 의하여 디코딩된 코드가 종래에 공지된 바와같이 펀처링하는 경우에 필요에 따라 널(null) 또는 0 값과 LLR 확률 워드를 더한다. 널 또는 0값은 LLR 워드에 의해 표현된 코드 비트가 "1" 또는 "0"인 동일한 확률을 가진다는 것을 지시한다. 입력 패킷에서 LLR 워드의 각 그룹에 대하여, 브랜치 메트릭(BM) 계산 유니트(26)는 공지된 바와같이 그룹에서 LLR 워드에 의해 표현된 코드 비트의 각각의 가능한 추측값에 대한 BM을 계산한다. 인코더(10)에 의해 발생된 코드와 같은 1/2 율 코드에 대하여, 각각의 그룹은 코딩된 2비트에 대응하며, 이에 따라 4개의 가능한 추측값을 가진다.
바람직하게, 이하에서 더 기술되는 바와같이, 유니트(26)는 입력에 있어서의 LLR 워드의 각 새로운 그룹에 대하여 4개의 8비트 BM을 출력한다. 각각의 BM은 비트의 그룹이 대응하는 추측값을 가지는 확률을 나타낸다. BM 유니트(26)는 예컨대 Steven S. Pietrobon, International Journal of Satellite Communications,Vol. 16(1998), pp.23-46에 개시된 "터보/MAP 디코더의 실행 및 성능"에 기술되어 있다.
하나 이상, 바람직하게 3개의 상태-메트릭(SM) 계산 유니트(30, 32, 34)는 이하에 더 기술된 바와같이 BM을 수신하고 각 코드상태의 상태-메트릭을 계산한다.
바람직하게, SM 계산 유니트(30, 32, 34)는 브랜치-메트릭이 저장되는 하나 이상의 메모리 유니트(28)로부터 BM을 수신한다. 게다가, 바람람직하게 각각의 SM 계산 유니트는 SM 계산 유니트가 서로 간섭하지 않고 병렬로 동작할 수 있도록 그 자체의 BM 메모리 유니트(28)를 가진다. 바람직하게, SM 유니트(30, 32, 34)는 패킷을 처리하는 방향이 다르다. 유니트(30)는 시작에서 끝까지 제 1 방향(순방향)으로 패킷을 처리하는 반면에, 유니트(32, 34)는 끝에서 시작까지 반대방향(역방향)으로 패킷을 처리한다.
두 개의 역방향 유니트(42, 34)는 전체 패킷을 전환시키는 대신에 입력 패킷의 역방향 세그먼트에 기초한 근사 방법을 이용할 수 있도록 하기 위하여 사용된다. 이러한 근사는 전환될 전체 패킷을 기다리는 것 보다 오히려 패킷의 각 데이터 세그먼트가 수신된후에 역방향 디코딩을 직접 수행할 수 있도록 한다. 이러한 방법은 Andrew J. Viterbi, IEEE Journal on Selected Areas in Communicatios, Vol. 16, No. 2, pp. 260-264(2월, 1998)에 개시된 종래의 코드를 위한 디코더의 직관적인 자리맞춤 및 단순화된 실행에 기술되어 있으며, 이 문헌은 여기에 참조에 의하여 통합된다. 각각의 유니트(32, 34)는 그들이 전체 패킷에 대하여 신뢰성 있는 SM을 제공하도록 동작시간의 절반동안 신뢰성 있는 SM을 제공한다.멀티플렉서(35)는 근사 방법에 따라 적정 결과를 선택한다. 메모리 유니트(36)는 적절한 순방향 순서로 처리된 패킷 또는 세그먼트의 순서를 다시 전환시키기 위하여 사용되며, 이에 따라 메모리 유니트(36)는 유니트(30)로부터의 결과값과 함께 사용될 수 있다.
LLR 계산 유니트(40)는 유니트(30, 32, 34)로부터의 SM과 유니트(26)로부터의 BM에 기초하여 각각의 LLR 워드에 대한 출력 확률값을 계산한다. LLR 유니트(40)는 Steven S. Pietrobon에 의한 전술한 문헌 또는 Andrew J. Viterbi에 의한 전술한 문헌에 개시된 바와같이 바람직하다. 유니트(40)로부터의 결과값은 출력 라인(42)에 출력될 수 있으며 및/또는 추가 처리를 위한 펀처부(44)를 통과될 수 있다.
도 3은 본 발명의 바람직한 실시예에 따른 순방향 SM 계산 유니트(30)의 개략적인 블록도이다. 역방향 SM 유니트(32, 34)는 공지된 바와같이 수정된 유니트(30)를 가진 구조와 유사하다. 유니트(30)는 인코더의 각 가능한 4개의 상태에 대응하는 4개의 순환 메트릭 결합기(50)를 반복적으로 계산한다. 패킷의 각 비트 그룹(n+1)에 대하여, 결합기(50)는 이하에 기술된 바와같이 이전 비트 그룹(n)의 SM 및 대응하는 BM에 기초하여 그들의 SM을 업데이트한다. 계산된 SM은 패킷의 다음 비트-그룹에 대한 다음 계산 반복동안 피드백 라인(52)을 통해 다시 통과된다. 바람직하게, 다수의 출력 라인(54)은 LLR 계산 유니트(40)에 SM을 제공한다. 더욱이, 최소 계산 유니트(56)는 결합기(50)의 모든 하나 이상의 순환 반복후에 SM의 최상위 비트의 최소값을 결정한다. 계산된 최소값은 정규화 메트릭(NM)으로써 사용되며, 정규화를 위하여 결합기(50)에 다시 전송된다.
본 발명의 바람직한 실시예에서, 유니트(30)는 16 상태에 대응하는 4개 이상의 결합기, 바람직하게 16개의 결합기를 포함한다. 그러나, 명확화를 위하여 도 2-4는 4상태 실시예를 기술한다. 16개 또는 그이상의 상태로 동작하기 위하여 여기에 기술된 개념의 확장은 당업자에 명백할 것이다.
도 4는 디코더(20)에 의해 디코딩된 코드의 가능한 상태 전이를 도시한 그래프이며, 여기서 코드는 전술한 식(1)에 따라 발생된다. 노드(60)는 2비트의 비트 그룹(n)에 대한 인코더의 가능한 상태를 나타낸다. 노드(62)는 다음 비트-그룹(n+1)에 대한 인코더의 가능한 상태를 나타낸다. 코드에 따르면, 인코더는 다수의 브랜치(64)중 한 브랜치에 따라 비트 그룹(n)의 노드(60)중 한 노드로부터 비트 그룹(n+1)의 노드(62)중 임의의 노드로의 전이를 만들 수 있다. 이러한 전이를 만들기 위하여, 비트-그룹(n)은 대응 브랜치(64)에 의해 지시된 값을 가져야 한다.
따라서, 도 3을 다시 참조하면, 각각의 결합기(50)는 결합기(50)의 노드(62)에 의해 표현되고 특정 결합기와 연관된 상태를 야기할 수 있는 노드(60)의 SM인 두 개의 SM을 수신한다. 더욱이, 각각의 결합기(50)는 두 개의 노드(60)로부터 특정 결합기에 대응하는 노드(62)로 안내되는 브랜치(64)의 BM에 대응하는 두 개의 BM을 수신한다. 예컨대, 도 2의 상부 결합기(50)는 상태 "00"에 대응한다. 따라서, 상부 결합기(50)는 상태 "00"의 노드(60)로부터 상태 "00"의 노드(62)로 안내되는 브랜치(64)의 비트 그룹인 BM '00' 및 상태 '00'의 SM을 수신한다. 더욱이,상부 결합기(50)는 상태 '01'의 노드(60)로부터 상태 '00'의 노드(62)로 안내되는 브랜치(64)의 비트 그룹인 BM '01' 및 상태 '01'의 SM을 수신한다.
도 5는 본 발명의 바람직한 실시예에 따른 순환 결합기(50)의 개략적인 블록도이다. 두 개의 가산기(70)는 적절한 노드(60)의 SM을 대응하는 브랜치(64)의 각 BM에 가산함으로써 특정 결합기(50)에 의해 표현된 상태의 두 개의 가능한 다음 스테이지(n+1) 상태 메트릭을 각각 계산한다. 감산기(72)는 서로로부터 두 개의 가능한 다음 스테이지 상태 메트릭을 감산하며, 감산에 의한 부호에 기초하여 하부 상태 메트릭은 MUX(74)에 의해 선택된다. MUX(74)로부터의 상태 메트릭은 바람직하게 9개의 비트 폭이다. 유니트(56)에서 계산된 정규화 메트릭(NM)은 감산기(78)에서 선택된 SM의 최상위 5비트로부터 감산된다. 상태 메트릭의 최하위 4비트는 감산기(78)를 바이패스하는 라인(80)을 통해 완전히 전송된다.
바람직하게, 룩-업 테이블(82)은 감산기(72)에 의해 계산된 두 개의 가능한 다음 스테이지 상태-메트릭(a,b)사이의 차이에 기초하여 오프셋을 계산한다. 바람직하게, 룩-업 테이블(82)의 출력은 식(2)로 기술된 바와같다.
LUT=Const*(In2-In(1+e-┃a-b┃)) (2)
여기서, Const는 SM을 나타내는 비트의 수 또는 SM의 양자화 스텝을 따르는 스케일링 변수이다. 식(2)은 APP 디코더에 대하여 당업계에 알려져 있다. 비터비 디코더는 결합기(50)와 유사하나 LUT(82) 없는 결합기를 포함한다.
오프셋은 가산기(84)에서 정규화된 상태-메트릭에 가산되어 수정된 상태-메트릭을 제공한다. 바람직하게, 수정된 상태-메트릭은 클램프(86)에서 8비트로 포화되며 그 다음에 순환 결합기(50)로부터 출력을 위하여 8비트 레지스터(88)에 저장된다.
도 6은 본 발명의 바람직한 실시예에 따른 최소 계산 유니트(56)의 블록도이다. 유니트(56)는 바람직하게 각각의 순환 결합기(50)로부터 SM의 최상위 4비트(MSB)를 수신한다. 선택 유니트(90)는 정규화 메트릭(NM)으로써 출력되는 가장 낮은 값을 가지는 4개의 MSB를 선택한다.
도 7은 본 발명의 바람직한 실시예에 따라 디코더(20)와 유사한 두 개의 디코더를 사용하는 디코딩 프로세서(100)의 블록도이다. 프로세서(100)는 본 발명의 양수인에게 양도되고 여기에 참조에 의해 통합되며 "효율적인 병렬 반복 디코딩"이라는 명칭을 가진 공동 출원된 출원에 개시된 바와같이 터보 디코딩 및 터보형 디코딩에 유용하다. 프로세서(100)는 제 1 코드를 디코딩하는 디코더(20)와 유사한 제 1 디코더(102)와, 제 2 코드를 디코딩하는 디코더(20)와 유사한 제 2 디코더(106)를 포함하며, 이들 디코더는 입력 데이터를 인코딩하기 위하여 적용된다. 바람직하게, 제 1 및 제 2 코드는 다르다. 제어 유니트(104)는 바람직하게 디코더의 동작을 제어한다. 바람직하게, 인코딩된 패킷은 패킷이 충분히 디코딩될때까지 디코더(102, 106)사이에서 순방향 및 역방향으로 반복적으로 이동된다.
디코더(20)와 유사한 디코더는 프로세서(100)가 바람직한 한 형태의 프로세서인 다양한 디코딩 프로세서에서 사용될 수 있다.
도 8은 본 발명의 바람직한 실시예에 따라 유니트(56) 대신에 사용될 수 있는 최소 계산 유니트(108)의 블록도이다. 다수의 선택 유니트(90)는 도 6에서 유니트(56)를 참조로하여 앞서 기술된 바와같이 NM을 계산한다. 그러나, 최소값을 계산하는데 걸리는 시간은 결합기(50)에 의하여 새로운 상태-메트릭을 계산하기 위하여 필요한 클록 사이클의 시간을 초과할 수 있다. 따라서, 클록 사이클이 연장되지 않고 디코더(20)의 동작 속도가 떨어지지 않도록, 최소값은 단일 클록 사이클에서 유니트(108)에 의해 계산되나 동일한 사이클에서 결합기(50)에 의해 사용되지 않는다. 오히려, 결합기(50)는 바람직하게 이전 클록 사이클에서 계산된 NM을 사용한다.
바람직하게, 계산된 NM은 레지스터(114)에 저장된다. 다음 사이클에서, 레지스터(114)의 내용은 정규화시 사용되는 결합기(50)에 전송된다. 반면에, 선행 클록 사이클로부터의 최소값은 결합기(50)에서 상태 메트릭으로부터 감산된다. 따라서, 레지스터(114)는 감산기(112)에 의해 현재의 클록 사이클의 최소값으로부터 감산되는 선행 클록 사이클의 최소값을 저장한다. 레지스터(114)에서의 차이는 결합기(50)에 전송된다. 최소값을 저장하는 하나 이상의 레지스터의 다른 셋업은 대안적으로 사용될 수 있다.
비록 전술한 상세한 설명이 각 그룹에서 두 개의 코드 비트만을 갖는 특정 코드의 APP 디코더를 포함할지라도, 본 발명의 원리가 SOVA 및 MAP 디코더를 포함하는 반복 디코더의 넓은 범위 그리고 각 그룹에서 임의의 수의 코드 비트를 가진 디코더에 적용될 수 있다는 것은 당업자에게 의해 인식될 것이다.
전술한 바람직한 실시예는 예로써 인용되며 본 발명의 권리범위는 청구범위에 의해서만 제한된다.

Claims (18)

  1. 격자를 사용하는 디코더에서 다수의 상태 메트릭 레지스터를 정규화하기 위한 방법으로서,
    다수의 상태-메트릭 레지스터에 저장된 각각의 상태-메트릭값에 대한 근사 최소값을 결정하는 단계와;
    상기 상태-메트릭값으로부터 상기 근사 최소값을 감산하는 단계를 포함하는 방법.
  2. 제 1항에 있어서, 상기 근사 최소값은 상기 다수의 상태-메트릭 레지스터의 실제 최소값과 동일하거나 또는 작은 것을 특징으로 하는 방법.
  3. 제 1항에 있어서, 상기 근사 최소값 결정 단계는 상기 다수의 상태-메트릭 레지스터에서 미리 결정된 수의 최상위 비트에 대한 최소값을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 1항 내지 제 3항중 어느 한 항에 있어서, 상기 미리 결정된 수의 최상위 비트는 레지스터의 비트의 수의 30% 내지 60%인 것을 특징으로 하는 방법.
  5. 제 1항에 있어서, 상기 레지스터에 대한 새로운 상태-메트릭값을 계산하는단계를 더 포함하며, 상기 근사 최소값 감산 단계는 상기 새로운 값을 감산하는 단계와 거의 동시에 수행되는 것을 특징으로 하는 방법.
  6. 제 1항에 있어서, 다수의 연속 클록사이클동안 다수의 각각의 새로운 값을 상기 상태-메트릭 레지스터에 저장하는 단계를 더 포함하며, 상기 근사 최소값 결정단계는 거의 모든 사이클에서 새로운 값의 근사 최소값을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제 6항에 있어서, 상기 근사 최소값 결정단계는 상기 다수의 클록사이클중 제 1 클록 사이클동안 근사 최소값을 결정하는 단계를 포함하며, 상기 근사 최소값 감산단계는 제 1 클록 사이클후에 상기 다수의 클록 사이클중 제 2 클록 사이클동안 감산하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제 7항에 있어서, 상기 제 1 및 제 2 클록 사이클사이의 시간 갭에 응답하여 상기 근사 최소값을 조절하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제 8항에 있어서, 상기 근사 최소값 조절단계는 상기 제 1사이클동안 계산된 상기 근사 최소값을 상기 제 2사이클동안 계산된 근사 최소값으로부터 감산하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 격자를 사용하여 디코딩하는 디코더에서 사용하기 위한 상태-메트릭 계산 유니트로서,
    각각의 상태-메트릭값을 저장하는 다수의 상태-메트릭 레지스터와;
    상기 다수의 레지스터의 근사 최소값을 결정하는 최소 계산 유니트와;
    상기 다수의 레지스터의 값으로부터 상기 근사 최소값을 감산하는 다수의 감산기를 포함하는 상태-메트릭 계산 유니트.
  11. 제 10항에 있어서, 상기 최소 계산유니트는 상기 레지스터에서 미리 결정된 수의 최상위 비트에 대한 최소값을 계산하며, 상기 감산기는 상기 레지스터의 미리 결정된 수의 최상위 비트로부터 상기 근사 최소값을 감산하는 것을 특징으로 하는 상태-메트릭 계산 유니트.
  12. 제 10항 또는 제 11항에 있어서, 상기 각 레지스터에 대하여 상기 레지스터의 다음 상태-메트릭을 계산하는 다수의 순환 결합기를 더 포함하며, 상기 각각의 순환 레지스터는 상기 감산기들의 각 감산기를 포함하는 것을 특징으로 하는 상태-메트릭 계산 유니트.
  13. 제 10항에 있어서, 상기 디코더는 비터비 디코더인 것을 특징으로 하는 상태-메트릭 계산 유니트.
  14. 제 10항에 있어서, 상기 디코더는 APP 디코더인 것을 특징으로 하는 상태-메트릭 계산 유니트.
  15. 제 10항에 있어서, 상기 디코더는 MAP 디코더인 것을 특징으로 하는 상태-메트릭 계산 유니트.
  16. 제 10항에 있어서, 상기 디코더는 격자 디코더인 것을 특징으로 하는 상태-메트릭 계산 유니트.
  17. 제 10항에 있어서, 상기 디코더는 소프트 출력 비터비 디코더인 것을 특징으로 하는 상태-메트릭 계산 유니트.
  18. 멀티-요소 코딩방식에 따라 코딩된 신호 패킷의 시퀀스를 반복적으로 디코딩하며, 제 10항에 기술된 다수의 계산 유니트를 포함하는 반복 디코딩 프로세서.
KR1020017005722A 1998-11-05 1999-11-04 격자 상태 메트릭 정규화 시스템 KR20010080950A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/186,753 1998-11-05
US09/186,753 US6189126B1 (en) 1998-11-05 1998-11-05 Efficient trellis state metric normalization
PCT/US1999/026102 WO2000027034A1 (en) 1998-11-05 1999-11-04 Efficient trellis state metric normalization

Publications (1)

Publication Number Publication Date
KR20010080950A true KR20010080950A (ko) 2001-08-25

Family

ID=22686167

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017005722A KR20010080950A (ko) 1998-11-05 1999-11-04 격자 상태 메트릭 정규화 시스템

Country Status (9)

Country Link
US (1) US6189126B1 (ko)
EP (1) EP1127411B1 (ko)
JP (1) JP2002529951A (ko)
KR (1) KR20010080950A (ko)
CN (1) CN1227816C (ko)
AU (1) AU1908900A (ko)
DE (1) DE69925151T2 (ko)
HK (1) HK1054632B (ko)
WO (1) WO2000027034A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434203B1 (en) * 1999-02-26 2002-08-13 Qualcomm, Incorporated Memory architecture for map decoder
US6587519B1 (en) * 1999-05-28 2003-07-01 Koninklijke Philips Electronics N.V. Efficient apparatus and method for generating a trellis code from a shared state counter
US6758435B2 (en) * 1999-12-09 2004-07-06 Rheinmetall W & M Gmbh Guide assembly for a missile
US6487694B1 (en) * 1999-12-20 2002-11-26 Hitachi America, Ltd. Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA
GB0004765D0 (en) * 2000-03-01 2000-04-19 Mitel Corp Soft-decision decoding of convolutionally encoded codeword
KR100390416B1 (ko) * 2000-10-16 2003-07-07 엘지전자 주식회사 터보 디코딩 방법
WO2003023949A1 (en) * 2001-09-08 2003-03-20 Bermai, Inc. State metric rescaling for viterbi decoding
US7131054B2 (en) * 2001-09-17 2006-10-31 Digeo, Inc. Apparatus and method for efficient decoder normalization
US7073118B2 (en) 2001-09-17 2006-07-04 Digeo, Inc. Apparatus and method for saturating decoder values
US7251294B2 (en) * 2001-09-17 2007-07-31 Digeo, Inc. System and method for concurrently demodulating and decoding multiple data streams
US7161994B2 (en) * 2001-09-17 2007-01-09 Digeo, Inc. System and method for shared decoding
US7382838B2 (en) * 2001-09-17 2008-06-03 Digeo, Inc. Frequency drift compensation across multiple broadband signals in a digital receiver system
US7069284B2 (en) 2001-09-17 2006-06-27 Digeo, Inc. Apparatus and method for correcting signal imbalances using complex multiplication
US7167531B2 (en) 2001-09-17 2007-01-23 Digeo, Inc. System and method for shared decoding using a data replay scheme
US6871316B1 (en) * 2002-01-30 2005-03-22 Lsi Logic Corporation Delay reduction of hardware implementation of the maximum a posteriori (MAP) method
US7111226B1 (en) * 2002-05-31 2006-09-19 Broadcom Corporation Communication decoder employing single trellis to support multiple code rates and/or multiple modulations
US7154965B2 (en) 2002-10-08 2006-12-26 President And Fellows Of Harvard College Soft detection of data symbols in the presence of intersymbol interference and timing error
US7623585B2 (en) * 2003-02-28 2009-11-24 Maher Amer Systems and modules for use with trellis-based decoding
US7515601B2 (en) * 2005-05-31 2009-04-07 Broadcom Corporation Turbo decoding module supporting state n metric value normalization operations
US7441174B2 (en) * 2005-09-07 2008-10-21 The University Of Hong Kong Embedded state metric storage for MAP decoder of turbo codes
US20070234189A1 (en) * 2006-03-31 2007-10-04 Sharon Levy System and method for reducing false alarm in the presence of random signals
EP2158682A1 (en) * 2007-06-14 2010-03-03 Intel Corporation Unified decoder for convolutional, turbo, and ldpc codes
GB0804206D0 (en) * 2008-03-06 2008-04-16 Altera Corp Resource sharing in decoder architectures
US8578255B1 (en) 2008-12-19 2013-11-05 Altera Corporation Priming of metrics used by convolutional decoders
EP2614594A1 (en) * 2010-09-08 2013-07-17 Agence Spatiale Européenne Flexible channel decoder.

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1602818A (ko) 1968-12-17 1971-02-01
US5295142A (en) * 1989-07-18 1994-03-15 Sony Corporation Viterbi decoder
US5418795A (en) 1991-09-13 1995-05-23 Sony Corporation Viterbi decoder with path metric comparisons for increased decoding rate and with normalization timing calculation
JP3259387B2 (ja) 1992-12-28 2002-02-25 ソニー株式会社 ビタビ復号器
US5349608A (en) * 1993-03-29 1994-09-20 Stanford Telecommunications, Inc. Viterbi ACS unit with renormalization
US5859861A (en) * 1995-06-21 1999-01-12 Hyundai Electronics Ind. Co., Ltd. High speed viterbi decoder

Also Published As

Publication number Publication date
HK1054632A1 (en) 2003-12-05
EP1127411A1 (en) 2001-08-29
AU1908900A (en) 2000-05-22
CN1426630A (zh) 2003-06-25
DE69925151T2 (de) 2006-02-16
US6189126B1 (en) 2001-02-13
WO2000027034A1 (en) 2000-05-11
EP1127411B1 (en) 2005-05-04
HK1054632B (zh) 2006-08-04
DE69925151D1 (de) 2005-06-09
WO2000027034A9 (en) 2002-03-07
JP2002529951A (ja) 2002-09-10
CN1227816C (zh) 2005-11-16

Similar Documents

Publication Publication Date Title
KR20010080950A (ko) 격자 상태 메트릭 정규화 시스템
US5761248A (en) Method and arrangement for determining an adaptive abort criterion in iterative decoding of multi-dimensionally coded information
US6477680B2 (en) Area-efficient convolutional decoder
US6725409B1 (en) DSP instruction for turbo decoding
US7929646B2 (en) Map decoder with bidirectional sliding window architecture
US7107509B2 (en) Higher radix Log MAP processor
JP3246484B2 (ja) ターボデコーダ
EP0800280A1 (en) Soft decision viterbi decoding in two passes with reliability information derived from a path-metrics difference
AU7690900A (en) Component decoder and method thereof in mobile communication system
JP3549519B2 (ja) 軟出力復号器
EP0945989A1 (en) Viterbi decoding
US6327316B1 (en) Data receiver using approximated bit metrics
KR20030036845A (ko) 트렐리스에 기초한 채널 부호화를 위한 복호기
US7046747B2 (en) Viterbi decoder and decoding method using rescaled branch metrics in add-compare-select operations
US20030091129A1 (en) Look-up table index value generation in a turbo decoder
US6560749B1 (en) Apparatus and method for implementing a decoder for convolutionally encoded symbols
CN107707333B (zh) 一种基于码字估计值的极化码早期迭代停止方法及装置
US20020094038A1 (en) Error-correcting code decoding method and error-correcting code decoding apparatus
EP1280280A1 (en) Method and apparatus for reducing the average number of iterations in iterative decoding
JP2002344330A (ja) ターボ復号装置およびターボ復号における復号の繰返し回数の制御方法
US20030093753A1 (en) Error correction code decoding device
US7991082B2 (en) Maximum a posteriori probability decoder
CN101411071A (zh) 具有双向滑动窗口体系结构的map译码器
US7020223B2 (en) Viterbi decoder and method using sequential two-way add-compare-select operations
JP2001352256A (ja) 復号装置及び復号方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application