KR101051933B1 - 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산 - Google Patents

트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산 Download PDF

Info

Publication number
KR101051933B1
KR101051933B1 KR1020077022549A KR20077022549A KR101051933B1 KR 101051933 B1 KR101051933 B1 KR 101051933B1 KR 1020077022549 A KR1020077022549 A KR 1020077022549A KR 20077022549 A KR20077022549 A KR 20077022549A KR 101051933 B1 KR101051933 B1 KR 101051933B1
Authority
KR
South Korea
Prior art keywords
butterfly
metrics
trellis
state
metric
Prior art date
Application number
KR1020077022549A
Other languages
English (en)
Other versions
KR20070110407A (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 KR20070110407A publication Critical patent/KR20070110407A/ko
Application granted granted Critical
Publication of KR101051933B1 publication Critical patent/KR101051933B1/ko

Links

Images

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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • 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
    • 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/3961Arrangements of methods for branch or transition metric calculation

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)
  • Dc Digital Transmission (AREA)
  • Inorganic Insulating Materials (AREA)

Abstract

MAP-genre 디코딩 알고리즘의 트렐리스(trellis)에서 버터플라이(butterfly)에 대한 브랜치 메트릭들을 계산하는 방법에 있어서, 버터플라이에서의 트랜지션들(transitions)에 대한 초기화된 브랜치 메트릭을 제공하는 단계, 및 그 동작이 상기 트렐리스에 관련되는 인코딩 장치의 탭(tap) 위치를 나타내는 적어도 하나의 폴리노미얼(polynomial) 및 상기 버터플라이 인덱스로부터 유도되는 제어신호들에 따라 상기 트랜지션에 대응되는 데이터 값들의 그룹을 상기 브랜치 메트릭들에 증대(increment)시키는 단계를 포함하며, 상기 그룹은 구조적 비트(systematic bit) 및 패러티 비트(parity bit) 값들을 포함하는 방법이 개시된다.
버터플라이(butterfly), 상태 메트릭(state metric), 로그 우도비(log likelihood ratio)

Description

트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한 메트릭 계산 { METRIC CALCULATIONS FOR MAP DECODING USING THE BUTTERFLY STRUCTURE OF THE TRELLIS }
본 발명은 복원될 신호를 나타내는 트렐리스에 관련된 메트릭을 계산하기 위한 장치 및 방법에 관한 것이다.
디지털 통신 시스템에서, 전송 링크의 신뢰성을 향상시키기 위하여 FEC(Forward Error Correction) 코딩이 이용될 수 있다. 터보 코딩 방식[C. Berrou, A. Glavieux and P. Thitimajshima, Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes, ICC 1993, Geneva, Switzerland, pp. 1064-1070, May 1993]은 FEC(forward error correction) 코드 종류에 속하고, 현재 많은 통신 시스템에서 이용되고 있다. 예를 들어, 3GPP 표준은 수신기가 전송된 정보를 복원하는 것을 돕기 위해 터보 코드들(Turbo codes)을 이용한다.
터보 코드는 두 개(또는 그 이상)의 구성 코드들(3GPP 표준에 의해 정의되는 터보 코드를 나타내는 도 1 참고)의 병렬(또는 직렬) 결합으로부터 형성된다. 구성 코드들은 구조적적인 재귀적 컨벌루션 코드들(systematic recursive convolutional codes)이다. 3GPP 터보 코드에 있어서, 구성 코드들은 레이트가 1/2이고 구속 장(constraint length)이 4이다. 코딩을 위한 비트 시퀀스는 제1 구성 코드로 직접적으로 패스되지만, 제2 구성 코드의 입력시에 인터리빙된다. 양 구성 코드가 전송의 마지막에서 제로 상태로 끝나도록 하기 위해 특수 모드의 연산이 테일 비트에 이용된다. 이러한 연산 모드는 도 1에서 점선에 의해 도시된다.
터보 코드들을 수락가능한 복잡성을 갖도록 디코딩하기 위해서, 일반적으로 반복적인 디코딩 알고리즘이 선택된다. 도 2는 이러한 반복적 접근을 나타낸다. 구성 코드들은 두 개의 SISO(Soft-Input, Soft-Output) 디코더 10, 12를 이용하여 분리되어 디코딩된다. SISO 디코더 10에 의한 제1 구성 코드의 디코딩을 이용하여 획득된 정보는 SISO 디코더 12로 패스되고, 유사하게, SISO 디코더 12에 의한 제2 구성 코드의 디코딩으로부터 유도된 정보는 SISO 디코더 10에서 수행되는 디코딩 프로세스를 돕는데 이용된다.
첫번째 디코딩 이터레이션 동안, 구조적 비트(systematic bit)에 대응하는 연판정(soft decisions)과 첫번째 패러티 비트에 대응하는 연판정이 제1 구성 코드를 디코딩하기 위해 SISO 디코더 10에 의해 이용된다. 일반적으로 어떤 것도 최초 디코딩 이터레이션시에 이용가능하지 않기 때문에 어떠한 선험적 정보도 이러한 관점에서 이용되지 않는다. SISO 디코더 10는 전송된 비트의 LLRs(Log Likelihood Ratios)를 출력한다. LLRs는 전송된 0 또는 1이 얼마나 있는지를 나타낸다. 그들은 SISO 디코더 12에 의해 수행되는 디코딩을 돕는데 이용된다. 하지만, 그들은 직접적으로 이용될 수 없고, SISO 디코더 12에 입력되기에 적절한 포맷이 되도록 프로세싱될 필요가 있다. 어떠한 선험적 정보도 첫번째 디코딩 이터레이션에 대해 이용 가능하지 않다는 점을 새겨두어야만 하더라도, 우선, 선험적 정보가 LLR로부터 14에서 추출될 필요가 있다. LLRs와 선험적 정보 사이의 차이에 의해 형성된 이러한 퀀터티(quantity)는 외부(extrinsic) 정보라 불리우며, 전송된 비트 상에서 SISO 디코더 10에 의해 생성된 정보에 대응한다. 또한, 이러한 외부 값들은 코딩될 비트 시퀀스 상에서 송신기에 적용된 인터리빙을 되풀이하기 위하여 16에서 인터리빙될 필요가 있다. SISO 디코더 12에 의해 수행되는 디코딩은 구조적 비트(systematic bit)에 대응하는 연판정과 두번째 패러티 비트에 대응하는 연판정과 함께 SISO 디코더 10에서 생성된 외부 정보를 이용한다. SISO 디코더 12의 출력에서 LLRs의 새로운 시퀀스가 전송된 비트의 시퀀스에 대해 생성된다. LLRs는 SISO 디코더 12에 의해 생성된 외부 정보를 계산하는데 이용된다. 디인터리빙 후에, 이 외부 정보는 그 이후의 디코딩 이터레이션에서 선험적 정보로서 SISO 디코더 10에 의해 이용될 수 있다. 이러한 디코딩 프로세스는 SISO 디코더 10 및 12에 의해 생성된 LLRs가 점차 개선되도록 여러번 반복된다. 이러한 LLRs의 정화는, 전반적인 디코딩 알고리즘이 맵(MAP) 솔루션에 가까운 전송된 비트의 추정 시퀀스에 수렴하도록 하기 위해 다른 SISO 디코딩 단계들에 적용된다. NTCIterations 디코딩 이터레이션의 마지막에서, 추정된 전송 비트의 극성은 LLRs의 부호에 따라 설정된다.
SISO 디코더 10, 12 내에서 이용되는 알고리즘의 선택은 디코딩 성능과 수신기의 복잡성 모두에 영향을 주게 되기 때문에 매우 중요하다. Max-Log-MAP 알고리즘[W. Koch and A. Baier, Optimum and sub-optimum detection of coded data disturbed by time-varying intersymbol interference, GLOBECOM 90, pp.1679-1684, Dec. 1990]은 성능과 복잡성 사이의 적절한 트레이드 오프(trade-off)을 제공하는 하나의 가능한 알고리즘이다. SISO 디코더 10, 12가 Max-Log-MAP 알고리즘을 이용하는 경우에 대해서 이하에서 설명될 것이다.
도 3은 Max-Log-MAP 알고리즘에 기초한 SISO 디코더 10에 대한 다른 프로세스 단계들을 나타낸다. 또한, 프로세스 단계들의 다른 입력 및 출력 정보 샘플들이 도시된다.
도 4는 SISO 디코더 12에 대한 다른 프로세스 단계들을 나타낸다. ISO 디코더 12에 대한 대부분의 프로세스 단계들은 SISO 디코더 10에 대한 프로세스 단계들과 동일하다는 것을 알 수 있다. SISO 디코더 10 및 12의 유일한 차이점은 인터리빙/디인터리빙이 제2 패러티 샘플의 프로세싱에 요구된다는 점이다.
프로세싱(processing)이 "순방향 프로세싱(forward processing)" 및 "역방향 프로세싱(backward processing)"으로 라벨링되는 두 중요 단계로 나누어질 수 있다는 점을 도 3 및 도 4로부터 알 수 있다. 순방향 프로세싱 단계의 결과는 역방향 프로세싱 단계 동안 복원되고, LLRs를 유도하기 위해 결합된다. 순방향 계산 단계와 역방향 계산 단계 모두 '버터플라이 업데이트'(butterflies update) 단계를 포함한다는 점 또한 알 수 있다.
도 3 및 도 4에서 수신기 복잡성을 가능한 낮게 유지하기 위해서 모든 다른 수학적 계산들은 다른 수들의 고정 소숫점 표현(fixed point representation)을 이용하여 수행된다. 이러한 다른 수들의 워드 사이즈(word size)가 도 3 및 도 4에 도시된다. 예를 들어, 각 선험적 정보 샘플은 Bapp 비트를 이용하여 저장된다. 유사하게, 각 구조적 샘플 및 각 패러티 샘플은 Bsd 비트를 이용하여 저장된다.
LLRs를 계산하기 위하여, 순방향 프로세싱의 '버터플라이 업데이트' 단계 동안 계산된 패스 메트릭은 역방향 프로세싱 동안 생성된 패스 메트릭과 결합된다. 그러므로, 순방향 프로세싱 동안 생성된 패스 메트릭은 역방향 프로세싱 단계에서 이용될 때까지 버퍼에 저장된 필요가 있다. 수신기 실행 복잡성을 가능한 낮게 유지하기 위하여, 이러한 버퍼의 사이즈를 최소화하는 것이 중요하다. 순방향 프로세싱 동안 계산된 패스 메트릭을 저장하는데 요구되는 메모리의 개수는, (1) 코드 블럭 사이즈라고도 하는, 디코딩될 비트 개수, (2) 구성 코드를 나타내는 트렐리스에서의 상태 개수, (3) 각 패스 메트릭을 정확히 나타내기 위해 요구되는 비트 개수에 따라 선형적으로 증가한다. 트렐리스에서 상태 개수는 송신기에 의해 부과되는 코드의 구조에 의해 정의되고, 따라서 수신기 메모리 요구를 줄이기 위해 변경될 수 없다. 메모리 요구에 있어서의 코드 블럭 사이즈의 영향을 줄이기 위해서, 전체 시퀀스가 아닌 수신된 신호의 윈도우 상에 작용하는 디코딩 기술을 이용하는 것이 가능하다[Performance analysis of Turbo decoder for 3GPP standard using the sliding window algorithm, M. Marandian, J. Fridman, Z. Zvonar, M. Salehi, PIMRC 2001]. 마지막으로, 패스 메트릭 계산들의 결과를 정확히 나타내는데 요구되는 비트의 개수는 가능한 낮게 유지되어야 한다.
SISO 디코더 10의 동작은 이제부터 좀 더 상세히 설명될 것이다. 물론 패러티 샘플의 인터리빙이 설명될 필요는 있지만, SISO 디코더 12가 대부분 동일한 방 식으로 동작한다는 것이 명백해질 것이다.
송신기 측면에서, 각 정보 비트 xk는 xk를 따라 출력되는 패러티 샘플 zk를 생성하도록 코딩된다. 도 1 및 도 5는 비트 zk가 생성되는 방법을 나타낸다. 도 5에서 트렐리스 상태는 도 1에서 도시된 인코더에서 메모리 요소들의 상태에 대응된다(이 경우 가장 최근 메모리 요소의 컨텐츠는 도 5에서 바이너리 포맷으로 주어지는 상태 인덱스의 LSB에 대응된다). 코딩 후에 샘플의 N 집합
Figure 112007071063862-pct00001
이 전송된다(N은 코드 블럭의 길이).
수신기 측면에서, 전송된 코딩 샘플,
Figure 112007071063862-pct00002
의 추정값들이 먼저 생성된다. 터보 디코딩 아키텍쳐의 목적은 서로 다른 전송된 비트들의 LLRs를 생성하는 것이다. k번째 비트의 우도비(likelihood ratio)는 다음 수학식 1과 같이 표현될 수 있다.
Figure 112007071063862-pct00003
제안된 터보 디코딩 아키텍쳐는 우도비의 로그값의 스케일링된 추정값들을 생성한다.
Figure 112007071063862-pct00004
파라미터 값 Lc는 전송링크의 퀄러티에 의해 변하고, 수신된 코드 블럭 전체에 대해 고정되도록 가정될 수 있다.
다른 전송 비트들의 LLRs 추정값들은 도 3 및 도 4에 도시된 프로세싱 단계를 여러번 반복함으로써 생성된다. 서로 다른 단계들에서의 디코딩은 전송되는 비트들의 선험적 정보 LaI k를 업데이트함으로써 개선된다. 선험적 정보는 다음 수학식 3으로 주어진다.
Figure 112007071063862-pct00005
여기서, I는 반복 횟수이다.
도 3 및 도 4에서 도시된 서로 다른 프로세싱 단계들에 대해 수행되는 다양한 계산들이 이제부터 설명될 것이다.
정보 비트 xk에 대응하는 트렐리스들에서 서로 다른 상태들에 대한 M 개의 순방향 패스 메트릭
Figure 112007071063862-pct00006
은 수신된 샘플 {
Figure 112007071063862-pct00007
} 및 정보 비트 xk-1에 관련된 패스 메트릭을 이용하여 다음 수학식 4에 의해 계산된다.
Figure 112007071063862-pct00008
B(j,m)은 입력 j에 대응되는 이전 브랜치 상에서 상태 m으로부터 제시간에 역방향으로 진행하는 트렐리스 상태를 나타내고, cj,B(j,m)은 상태 B(j,m)로부터 상태 m으로 진행하는 트랜지션에 대응하는 패러티 비트를 나타낸다.
전 코드 블럭에 대한 서로 다른 패스 메트릭들(또는 윈도우 기술이 이용되고 있는 경우, 윈도우)은 k의 증가 순서로 수신된 샘플을 프로세싱함으로써 생성될 수 있다는 점을 수학식 4로부터 알 수 있다. 또한, 도 5로부터 프로세싱이 각 상태에 대해 독립적으로 수행될 필요가 없다는 점을 알 수 있다. 전 트렐리스에 걸쳐, 두개의 엔딩 상태(k+1 타임에서의 상태)는 항상 동일한 두개의 스타트 상태(k 타임에서의 상태)에 관련된다. 따라서, 프로세싱은 두개의 상태 대 두개의 상태 연결을 이용하여 수행된다. 이것이 이러한 프로세싱이 순방향 "버터플라이 업데이트"로 불리는 이유이다.
서로 다른 상태에 대한 서로 다른 메트릭들과 코드 블럭에서(또는 윈도우 기술이 이용되는 경우 윈도우에서) 모든 정보 비트들은 서로 다른 LLRs를 생성하기 위해 역방향 계산으로 합쳐지도록 저장될 필요가 있다. 역방향 '버터플라이 업데이트' 계산들은 순방향 '버터플라이 업데이트' 단계 동안 수행되는 계산들과 매우 유사하다. 정보 비트 xk에 대응하는 트렐리스에서 서로 다른 상태들에 대한 M 역방향 패스 메트릭들
Figure 112007071063862-pct00009
은 수신된 샘플들, {
Figure 112007071063862-pct00010
}을 이용하여 계산되고, 정보 비트 xk +1에 관련된 패스 메트릭들은 아래의 수학식 5를 이용하여 계산된다.
Figure 112007071063862-pct00011
F(j, m)은 입력 j에 대응되는 브랜치 상에서 상태 m으로부터 제시간에 순방향 진행하는 트렐리스 상태를 나타내고, cj,F(j,m)은 상태 F(j,m)로부터 상태 m으로의 트랜지션에 관련된 패러티 비트를 나타낸다.
역방향 패스 메트릭의 생성에서 나타나는 일부 중간값들은 순방향 계산 및 역방향 계산들이 LLRs를 생성하도록 합쳐지는데 이용될 수 있도록 유지된다. 이러한 중간값들,
Figure 112007071063862-pct00012
은 아래의 수학식 6을 이용하여 계산된다.
Figure 112007071063862-pct00013
Figure 112007071063862-pct00014
는 정보 비트 j에 대한 트렐리스 상태 m에서 끝나는 역방향 메트릭을 나타낸다.
역방향 "버터플라이 업데이트" 계산들은 중간값들을 이용하여 아래의 수학식 7에 의해 간단하게 표현될 수 있다.
Figure 112007071063862-pct00015
각 정보 비트 xk 에 대하여, 현재 역방향 '버터플라이 업데이트'의 결과들은 LLRs가 아래의 수학식 8을 이용하여 계산될 수 있도록 저장된 역방향 패스 메트릭들에 합쳐진다.
Figure 112007071063862-pct00016
다음 디코딩 이터레이션에 이용될 정보 비트 xk에 대한 선험적 정보는 LLRs, 구조적 샘플 및 아래의 수학식 9에 따른 현재의 선험적 정보를 이용하여 계산된다.
Figure 112007071063862-pct00017
마지막 디코딩 이터레이션에서 이러한 계산은 수행될 필요가 없다는 점을 알아두어야 한다. 전송된 비트에 대한 판정은 LLRs를 이용하여 직접적으로 수행될 수 있다.
일 실시 예에 따르면, 본 발명은 MAP-genre 디코딩 알고리즘의 트렐리스에서 버터플라이에 대한 브랜치 메트릭들을 계산하는 방법을 제공한다. 상기 방법은, 상기 버터플라이에서 트랜지션에 대한 초기화된 브랜치 메트릭을 제공하는 단계, 그 동작이 상기 트렐리스에 관련되는 인코딩 장치의 탭 위치를 나타내는 적어도 하나의 폴리노미얼 및 상기 버터플라이 인덱스로부터 유도되는 제어신호에 따라 상기 트랜지션에 대응되는 데이터 값들의 그룹을 상기 브랜치 메트릭들에 증대시키는 단계를 포함하며, 상기 그룹은 구조적 비트 및 패러티 비트 값을 포함한다.
또한, 본 발명은 MAP-genre 디코딩 알고리즘의 트렐리스에서 버터플라이에 대한 브랜치 메트릭들을 계산하는 장치로 구성된다. 상기 장치는, 상기 버터플라이에서 트랜지션에 대한 초기화된 브랜치 메트릭을 제공하는 수단, 및 그 동작이 상기 트렐리스에 관련되는 인코딩 장치의 탭 위치를 나타내는 적어도 하나의 폴리노미얼 및 상기 버터플라이 인덱스로부터 유도되는 제어신호에 따라 상기 트랜지션에 대응되는 데이터 값들의 그룹을 상기 브랜치 메트릭들에 증대시키는 수단을 포함하며, 상기 그룹은 구조적 비트 및 패러티 비트 값을 포함한다.
또한, 본 발명은 트렐리스에서 상태 메트릭을 업데이트하기 위한 방법 및 장치와 관련된다.
제안된 발명은 Max-Log-MAP 알고리즘을 이용하는 터보 디코딩 아키텍쳐에 관한 응용 분야에 한정되지 않는다. 본 발명은 MAP 알고리즘 또는 MAP 알고리즘의 변형에 기초한 터보 디코딩 아키텍쳐를 이용하는 수신기에 이용될 수 있다.
제안된 발명은 윈도우 기술을 이용하는 터보 디코딩 수신기 및 윈도우 기술을 이용하지 않는 터보 디코딩 수신기 양자에 이용될 수 있다.
본 발명은 하드웨어, 프로세서 상의 소프트웨어, 또는 그들의 결합으로 구현될 수 있다.
본 발명의 실시예들은 첨부된 도면들을 참조하여 이하와 같이 설명될 것이다.
도 1은 3GPP 표준에서의 터보 코딩 메카니즘을 나타낸다.
도 2는 반복적 터보 디코딩 알고리즘의 구성요소를 나타낸다.
도 3은 도 1의 제1 구성 코드를 디코딩하기 위한 디코딩 단계들을 나타낸다.
도 4는 도 1의 제2 구성 코드를 디코딩하기 위한 디코딩 단계들을 나타낸다.
도 5는 전송된 정보 비트와 3GPP에 의해 규정된 터보 코드에 대한 코딩된 비트 사이의 관계를 나타낸다.
도 6은 본 발명의 일 실시 예에 따른 터보 디코더에서 순방향 '버터플라이 업데이트' 프로세싱 동안 수행되는 계산들을 나타낸다.
도 7은 본 발명의 일 실시 예에 따른 터보 디코더에서 순방향 및 역방향 '버터플라이 업데이트' 프로세싱 동안 수행되는 계산들을 나타낸다.
도 8은 본 발명의 일 실시 예에 따른 터보 인코더에서 LLR 값들을 유도하기 위해 수행되는 계산들을 나타낸다.
도 9는 본 발명의 일 실시 예에 따른 터보 디코더에서 LLR 값들로부터 선험적 정보를 계산하기 위해 수행되는 계산들을 나타낸다.
제안된 발명의 부분들을 형성하는 다른 방법들의 설명은 3GPP 표준에서 정의되는 터보 디코딩에 대해 이루어질 것이다. 하지만, 제안된 기술들은 어떠한 터보 코드에도 적용될 수 있다는 점을 알아두어야 한다(예를 들어, 구성 코드의 개수는 2와 동일하도록 한정되지 않으며, 구속장은 4에 한정되지 않는다).
순방향 패스 메트릭
Figure 112007071063862-pct00018
, 역방향 패스 메트릭
Figure 112007071063862-pct00019
및 도 1의 터보 디코더의 SISO 디코더 10에 대한 LLRs의 계산에 관련된 본 발명의 일 실시 예가 이하에서 설명될 것이다. 후술되는 설명은 SISO 디코더 12의 동작을 설명하기 위한 터보 인코더의 구성 인코더들 사이에서 발생하는 인터리빙을 고려한 최소한의 조정을 통해 수정될 수 있다.
도 1의 구성 인코더들 중 어느 하나에 관련되는, 도 5에 도시된 트렐리스 구조 상에서 몇 가지 관찰(이는 다시 언급될 것이다)이 이루어질 수 있다. 도 5에 도시된 네개의 버터플라이들은 최상부에서 시작하여 0 부터 3까지 넘버링될 수 있다. 버터플라이의 넘버링은 종종 버터플라이 인덱스로 언급된다. 예를 들어, 세번째 버터플라이는 바이너리에서 10인 버터플라이 인덱스 2를 갖는다. 이러한 바이너리 수가 1이나 0으로 선기(先記)(prefix)된다면, 버터플라이의 스타트 상태들이 생성된다. 한편, 이러한 바이너리 숫자가 1이나 0으로 후기(後記)(suffix)된다면, 버터플라이의 엔딩 상태들이 생성된다. b를 버터플라이 인덱스라고 하자. 이 경우 각 버터플라이 b에 대해 스타트 상태들의 페어 {b, b+M/2}는 엔딩 상태들의 페어(pair) {(b×2),(b×2)+1}에 연결한다는 점을 도 5로부터 알 수 있다. 이는 프로세싱이 두 상태 페어들에서 그룹화될 수 있는 이유이다.
주어진 버터플라이에서 주어진 연결과 또다른 버터플라이에서 동일한 연결은 정보 비트 및 패러티 비트 값들의 동일한 페어의 전송에 관련되지 않는다. 도 5에서, 트랜지션에 의해 전송되는 패러티 비트들은 트랜지션 상에 위치한 박스 안에 도시된다. 또한, 점선으로 도시된 트랜지션 지시는 트랜지션이 0과 동일한 정보 비트의 전송에 대응한다는 점을 나타내고, 실선으로 도시된 트랜지션 지시는 트랜지션이 1과 동일한 정보 비트의 전송에 대응한다는 점을 나타낸다. 예를 들어, 처음 두 버터플라이들에서(b=0 또는 1), 스타트 상태 b로부터 엔딩 상태 b×2로의 연결은 0과 동일한 정보 비트에 해당한다. 한편, 트렐리스에서 마지막 두 버터플라이들에 대해서, 동일한 상태 연결은 1과 동일한 정보 비트에 해당한다. 상태 트랜지션들이 전 트렐리스에 걸쳐 동일한 정보 비트와 관련이 없다는 사실은 순환코드에 특수하고(비순환 컨벌루셔널 코드들은 동일한 버터플라이들을 갖는다), 버터플라이 프로세싱의 실행을 복잡하게 한다.
또한, 코드 구조가 코딩된 샘플들의 패러티 상에서 정보를 제공한다는 점을 도 5로부터 알 수 있다. 주어진 엔딩 상태에 대해 그러한 상태 쪽으로 진행하는 트랜지션의 패러티 비트들은 항상 다르다. 유사하게, 주어진 스타트 상태에 대해, 그러한 상태로부터 진행하는 트랜지션의 패러티 비트들도 항상 다르다.
도 5에서 각 버터플라이에서 상부 수평 트랜지션에 관련된 정보 비트
Figure 112007071063862-pct00020
는 도 1의 구성 인코더들의 배열에 의해 결정된다. 정보 비트
Figure 112007071063862-pct00021
는 아래의 수학식 10 을 적절히 만족할 것이다.
Figure 112007071063862-pct00022
여기서, b는 해당 버터플라이의 버터플라이 인덱스 값이다.
이 때, 순방향 메트릭 계산을 아래와 같은 수학식 11로 나타내는 것이 가능하고, 따라서, 순방향 메트릭 계산으로부터 함수 B를 계산할 필요가 없게 된다.
Figure 112007071063862-pct00023
버터플라이들 내의 시메트릭들(symmetries)은 아래의 수학식 12와 같이 각 버터플라이에서 다른 엔딩 상태에 대한 계산을 수행하기 위하여 이용될 수 있다.
Figure 112007071063862-pct00024
예를 들어, 버터플라이 b=0에 대해,
Figure 112007071063862-pct00025
에 대한 방정식에서
Figure 112007071063862-pct00026
=0,
Figure 112007071063862-pct00027
이고,
Figure 112007071063862-pct00028
에 대한 방정식에서
Figure 112007071063862-pct00029
=1,
Figure 112007071063862-pct00030
이다.
유사한 방식으로,
Figure 112007071063862-pct00031
Figure 112007071063862-pct00032
이다.
여기서,
Figure 112007071063862-pct00033
는 이번에는
Figure 112007071063862-pct00034
를 만족한다.
Figure 112007071063862-pct00035
에 대한 상기 방정식은 함수 F에 독립적이라는 점이 명백할 것이다.
Figure 112007071063862-pct00036
,
Figure 112007071063862-pct00037
,
Figure 112007071063862-pct00038
,
Figure 112007071063862-pct00039
에 대해 상기에서 주어진 방정식 구조에서의 공통성은 도 6 내지 도 9를 참조하여 이하에서 설명되는 것처럼 디코더 10의 실행에서 활용될 수 있다.
도 6은 순방향 '버터플라이 업데이트' 계산들이 수행되는 방법을 나타낸다. 도 6에서, 도 3 및 4에서와 같이, 서로 다른 입력 및 출력의 비트들에서 워드 사이즈가 나타난다. 또한, 바이너리 워드는 좌측에서 우측으로 증가하는 비트 중요도를 가지는 것으로 나타난다. 예를 들어, 버터플라이 인덱스의 비트 b0는 비트 b1보다 더 중요하다.
도 6은 순방향 메트릭들이 싱글 버터플라이에 대해 업데이트되는 방법을 도시한다. 도 6에서 도시된 동작들은 다른 버터플라이들 각각에 대해 간단히 반복된다는 점이 이해될 수 있을 것이다. 현재 프로세싱되고 있는 버터플라이의 버터플라이 인덱스 18은 복원된다. 버터플라이 인덱스 18은 두 개의 비트 b1, b0를 포함하고, 후자가 더 중요한 비트이다. 도 5에서 버터플라이 0의 경우에, b0, b1은 00이다. 버터플라이에 대한 스타트 상태들은 버터플라이 인덱스의 가장 중요한 마지막에 1 및 교번적으로 0을 가산함으로써 단계 20에서 재생성된다. 따라서, 생성된 스타트 상태들은, 22에서 일반적으로 나타나는 것처럼, 0, b0, b1 및 1, b0, b1이다. 유사한 방식으로, 버터플라이의 마지막 상태들은 버터플라이 인덱스의 가장 덜 중요한 마지막에 0 및 교번적으로, 1을 부착함으로써 버터플라이 인덱스 18로부터 연산 26에서 재생성된다. 따라서, 생성되는 엔딩 상태들은, 24에서 일반적으로 나타나는 것처럼, b0, b1, 0 및 b0, b1, 1이다. 이 때, 버터플라이 인덱스 18로부터 재생성되는 스타트 상태들은 변형을 위해 메모리로부터 순방향 패스 메트릭들을 복원하는데 이용되고, 엔드 상태들은 변형된 패스 메트릭들을 메모리 내에서 정확한 위치에 후기입하는데 이용된다. 스타트 상태들에 관련된 패스 메트릭들은 Bpm 비트의 싱글 메모리 요소에서 저장된다. Bpm 비트 각각에 대해 m 개의 워드를 이용하는 것이 아니라 모든 패스 메트릭들을 하나의 워드로 저장함으로써, 요구되는 메모리 접근의 개수가 줄어들게 된다. 패스 메트릭 워드 30이 복원되면, 버터플라 이 인덱스 18로부터 재생성되는 스타트 상태 24는 패스 메트릭 워드 30로부터 버터플라이의 상부 스타트 상태 32 및 하부 스타트 상태 34를 추출하는데 이용된다. 버터플라이의 인덱스가 0인 경우에 패스 메트릭 32는 상태 0의 것이고, 패스 메트릭 34는 상태 4의 것이다. 패스 메트릭 32 및 34와 수학적으로 합쳐지는 값들의 생성이 이제부터 설명될 것이다.
현재 프로세싱되고 있는 버터플라이에 대한 스타트 및 엔드 상태를 설명하는데 더하여, 버터플라이 인덱스 18은 연산 40, 42에서 각각 피드백 폴리노미얼(feedback polynomial) 36 및 순방향 폴리노미얼(forward polynomial) 38에 합쳐진다. 피드백 폴리노미얼 36은 현재 디코딩되고 있는 터보 인코딩 기술의 구성 인코더들에서 피드백 탭들의 위치를 나타낸다. 마찬가지로, 순방향 폴리노미얼은 구성 인코더들에서 피드-포워드(feed-forward) 탭들의 위치를 나타낸다. 도 1의 구성 인코더들은 양 인코더들을 나타내는 싱글 포워드 폴리노미얼 38 및 싱글 피드백 폴리노미얼 36과 동일한 구조를 갖는다. 이러한 폴리노미얼들 내에서 각 비트는 인접한 딜레이 요소들 D 사이에서 탭 위치에 대응하며, 활성탭을 1로, 불활성탭을 0으로 나타낸다(즉, 폴리노미얼들에 의해 설명되는 연결들은 딜레이 요소들 D의 라인들의 끝에서의 연결들을 포함하지 않는다). 따라서, 도 1에 도시된 인코더들에 대한 포워드 및 리버스 폴리노미얼들은 각각 10과 01이다.
연산 40, 42에서, 버터플라이 인덱스는 피드백 및 포워드 폴리노미얼들 36, 38 각각과 bit-wise XOR 연산에 의해 합쳐진다. 연산 40에서 생성되는 워드 비트들 r0, r1은 비트 i0를 생성하기 위해 또 다른 하나와 XOR된다. 유사하게, 연산 42에 서 생성되는 워드 비트들 f0, f1는 비트 i1을 생성하기 위해 또 다른 하나와 XOR된다. 비트 i0, i1은 프로세스 44에 대한 제어 입력으로 이용된다.
프로세스 44는 값
Figure 112007071063862-pct00040
및 값
Figure 112007071063862-pct00041
를 데이터 입력으로 받아들인다. 전자는 길이 Bsd 비트를 갖고, 후자는 길이 Bapp+1 비트를 갖는다. 프로세스 44는 패스 메트릭들 32, 24에 합쳐지기 위한 브랜치 메트릭 값들을 할당한다. 프로세스 44에서 두 파라미터 BM[0] 및 BM[1]은 초기 스텝으로서 모두 0으로 설정된다. 다음으로, BM[i0]는 값
Figure 112007071063862-pct00042
에 의해 증분된다. 마지막으로, 파라미터 BM[i1]은 값
Figure 112007071063862-pct00043
에 의해 증분된다. 프로세스 44에 의해 생성된 파라미터 값들 BM[0] 및 BM[1]은 복원된 순방향 패스 메트릭 32, 34와 합쳐지게 될 브랜치 메트릭을 나타낸다. 비트의 개수는 샘플 의 합을 저장하는 것을 필요로 하고, 선험적 정보는 패러티 샘플
Figure 112007071063862-pct00045
에 대해 이용되는 비트 수보다 크거나 동일하기 때문에(i.e. BappBsd), 브랜치 메트릭들은 Bapp+2bits의 길이가 된다.
프로세스 44에 의해 생성되는 브랜치 메트릭 BM[0]는 연산 46 및 48에서 각각 복원된 패스 메트릭 32, 34와 합쳐진다. 유사하게, 프로세스 44에 의해 생성된 브랜치 메트릭 BM[1]은 각각 오퍼레이션 50, 52에서 복원된 패스 메트릭 32, 34와 합쳐진다. 본질적으로, 각각의 연산들 46 내지 52 내에서 동일한 프로세스가 발생한다. 이러한 각각의 연산들 내에서, 복원된 패스 메트릭은 브랜치 메트릭에 더해지고, 더해진 결과가 Bpm 비트를 이용하여 달성가능한 최대값을 초과하는 경우, 그 결과는 포화의 원인이 되는 Bpm 비트의 길이로 제한된다. 연산 54는 프로세스 46 및 52에 의해 생성되는 값들 중 최대값을 선택하고, 연산 56은 프로세스 48 및 50에서 생성되는 값들 중 최대값을 선택한다. 연산 54에 의해 선택된 값은 현재 버터플라이의 상부 엔드 상태의 패스 메트릭 58이고, 연산 56에 의해 선택된 값은 현재 버터플라이의 하부 엔드 상태의 패스 메트릭 60이다. 예를 들어, 버터플라이 인덱스가 1이면, 패스 메트릭 58은 트렐리스 상태 2에 속하고, 패스 메트릭 60은 트렐리스 상태 3에 속한다. 패스 메트릭 58 및 60은 계산된 엔드 상태 24에 의해 나타나는 것처럼 정확한 지점들에서 타임 인덱스 k+1에 대해 패스 메트릭 워드 62로 기록된다. 타임 인덱스 k에 대한 모든 버터플라이들이 프로세스되면, 패스 메트릭 워드 62는 메모리로 기록된다. 패스 메트릭 워드 30과 같이, 패스 메트릭 워드 62는 Bpm×m 길이이고, 컨캣네이트 형상(concatenated configuration)의 타임 인덱스 k+1에서의 트렐리스의 상태에 대한 모든 순방향 패스 메트릭들을 포함한다.
도 7은 도 6에 도시된 구성이 순방향 패스 메트릭들에 더하여 역방향 패스 메트릭들을 계산하는데 적용될 수 있는 방법을 나타낸다. 도 7에서, 도 6에서 설명되었던 구성요소들은 동일한 참조부호를 유지한다.
도 7에서 버터플라이 인덱스 18로부터 재생성되는 상태 22 및 24의 페어들은 각각 역방향 패스 메트릭이 계산되고 있을 때 현재 버터플라이의 엔드 상태 및 스타트 상태를 나타내는데 간단히 이용된다. 다시 말하면, 상태 22의 페어는 순방향 메트릭 계산을 실행하기 위한 현재 버터플라이의 스타트 상태로서 다루어지고, 상태 24의 페어는 엔드 상태로서 다루어진다. 또한, 도 7에 도시된 구성이 역방향 메 트릭들을 계산하는데 이용될 때, 워드 30은 타임 인덱스 k+1에 대한 역방향 패스 메트릭들을 나타내고, 워드 62는 타임 인덱스 k에 대한 역방향 패스 메트릭들을 나타내고, 메트릭 32, 34는 현재 역방향 패스 메트릭 버터플라이의 상, 하부 스타트 상태 메트릭들을 나타내며, 메트릭 58, 60은 상기 버터플라이의 상, 하부 엔드 상태를 나타낸다. 또한, 연산 46 내지 52의 출력은 이전에 언급된 방정식
Figure 112007071063862-pct00046
에서 이용되는 값
Figure 112007071063862-pct00047
을 나타낸다. 이에 따라, 연산 46, 52, 50 및 48의 출력들은
Figure 112007071063862-pct00048
내지
Figure 112007071063862-pct00049
로 라벨링되었다.
도 8은 도 7에 도시된 순방향 및 역방향 메트릭 계산 기술이 LLRs를 계산하는데 이용될 수 있는 방법을 나타낸다. LLR 생성 프로세스에서 초기 스텝으로, 도 7의 구성이 현재 코드 블럭에서 모든 트렐리스 단계에 대한 순방향 패스 메트릭을 생성하고 메모리로 저장하는데 이용된다. 그 다음에, 코드 블럭은 역방향 패스 메트릭들을 생성하기 위하여 도 7에 도시된 기술을 이용하여 리프로세스된다. 주어진 트렐리스 단계에서 주어진 버터플라이의 엔드 상태들에 대한 역방향 패스 메트릭을 생성하는 프로세스 동안, 네 개의 값
Figure 112007071063862-pct00050
내지
Figure 112007071063862-pct00051
이 생성된다. 이러한
Figure 112007071063862-pct00052
값들은 LLRs 를 생성하기 위하여 현재 역방향 메트릭 계산 버터플라이의 엔드 상태의 순방향 메트릭들에 합쳐져야만 한다. 앞서 언급된 것처럼, LLRs는 아래의 수학식 15에 의해 제공된다.
Figure 112007071063862-pct00053
Figure 112007071063862-pct00054
값들이 플라이 상에서 LLRs를 생성하는데 이용되기 때문에, 그리고 트렐리스의 k+1 단계의 역방향 패스 메트릭은 트렐리스의 k 단계의 역방향 패스 메트릭을 생성하는데만 요구되기 때문에, 역방향 패스 메트릭들을 장기간 저장할 필요가 없다. 주어진 단계의 역방향 메트릭들은 단지 후속 단계의 역방향 메트릭의 계산을 완성하는데 충분한 기간만 유지될 필요가 있다. 따라서, 도 7에서 패스 메트릭 워드 62는, 완성되면, 역방향 패스 메트릭 워드 30가 복원된 메모리 위치로 다시 기록될 수 있다.
도 8에서 도 6 및 도 7에 걸쳐 도시되었던 구성요소들은 동일한 참조부호를 유지한다. 도 8에서 역방향 메트릭 계산에서 주어진 트렐리스 단계의 주어진 버터플라이에 대한
Figure 112007071063862-pct00055
내지
Figure 112007071063862-pct00056
값들을 생성하기 위한 도 7에 도시된 프로세스는 64로 표시된다. 프로세스 64는 트렐리스의 각 단계에서 프로세스되는 각 버터플라이에 대한
Figure 112007071063862-pct00057
내지
Figure 112007071063862-pct00058
들의 새로운 셋(set)을 출력한다.
현재 프로세스되고 있는 역방향 메트릭 버터플라이의 엔드 상태들의 트렐리스 단계에 대한 LLRs를 계산하기 위해서, 해당 단계 이전에 계산되었던 순방향 패스 메트릭 워드 66가 복원된다. 연산 68에서 두 순방향 패스 메트릭 70, 72는 역방향 패스 메트릭 워드 66으로부터 복원된다. 패스 메트릭 70, 72는 각각 현재 프로세스 64의 대상인 역방향 패스 메트릭 버터플라이의 상부 및 하부 상태들의 순방향 패스 메트릭들이다. 연산 68은 프로세스 64가 현재 버터플라이의 버터플라이 인덱스로부터 생성하는(도 7 참고) 상태 22의 페어를 이용하여 메트릭 70, 72를 선택한다.
순방향 패스 메트릭 70은 연산 74 및 76에서 이용되고, 순방향 패스 메트릭 72는 연산 78 및 80에서 이용된다. 본질적으로, 연산 74 내지 80 각각은 동일하고, 순방향 패스 메트릭 70, 72 중 하나에
Figure 112007071063862-pct00059
내지
Figure 112007071063862-pct00060
값 중 하나를 추가한 것을 포함한다. 연산 74 내지 80 각각에서, 추가 프로세스의 결과는 순방향 패스 메트릭 70 및 72에 대해 이용되는 것과 동일한 워드 길이 즉, Bpm 비트로 제한된다. 연산 74 내지 80 중 어느 하나에서 생성된 결과가 허락된 Bpm 비트를 초과한다면, 그 결과는 비트 Bpm 를 이용하여 이용가능한 최대값 결과로 포화된다.
Figure 112007071063862-pct00061
내지
Figure 112007071063862-pct00062
값들의 연산 74 내지 80로의 할당은 스위치 연산 82에 의해 제어된다. 스위치 연산 82는 버터플라이 인덱스 18 및 피드백 폴리노미얼 36의 현재 값들로부터 프로세스 64에서 생성되는 시그널 i0에 의해 제어된다(도 6 및 도 7 참고). 시그널 비트 i0가 0 값을 갖으면,
Figure 112007071063862-pct00063
내지
Figure 112007071063862-pct00064
값들은 각각 연산 74, 76, 80 및 78로 공급된다. 한편, 시그널 비트 i0가 1 값을 갖으면,
Figure 112007071063862-pct00065
내지
Figure 112007071063862-pct00066
값들은 각각 연산 74, 76, 78 및 80으로 공급된다. 프로세스 64에 의한 주어진 트렐리스 단계의 프로세싱 동안, 연산 74 내지 80 각각은 각 버터플라이에 대해 하나씩, 네 개의 결과를 생성하게 된다. 연산 84는 연산 74 및 78에 의해 생성된 M 값들의 최대값을 식별하고, 연산 86은 연산 76 및 80에 의해 생성된 M 값들 사이에서 최대값을 식별한다. 마지막으로, 연산 88에서, 연산 84 및 86에 의해 식별된 두 개의 최대값들 사이의 차가 현재 트렐리스 단계에 대한 LLR 값을 제공하도록 계산된다.
도 9는 LLRs가 디코딩 프로세스의 다음 이터레이션 I+1에서 이용될 선험적 정보를 업데이트하는데 이용될 수 있는 방법을 나타낸다. 도 9에 도시된 바와 같이, 현재 트렐리스 단계에 대한 LLR은 구조적 샘플
Figure 112007071063862-pct00067
의 합 및 현재 선험적 정보
Figure 112007071063862-pct00068
로부터 추출된다. 그리고, 추출 프로세스의 결과는 다음 이터레이션에 대한 선험적 정보,
Figure 112007071063862-pct00069
를 생성하기 위해 비선형적 스케일링된다.
앞서 언급한 실시 예들은 대부분 연산 및 프로세스의 기간 동안 설명되었다. 하지만, 이러한 연산 및 프로세스들은 예를 들어, ASIC와 같은 전용 하드웨어, 또는 적합한 소프트웨어를 구비한 범용 데이터 프로세서에 의해 실행될 수 있다. 도 10은 이전의 예시를 도시하고, 모바일 텔레폰(90)을 도시한다. 텔레폰 90의 안테나 92에 의해 수신된 신호는 RF 섹션에서 주파수 다운 컨버젼, 증폭, 및 아날로그/디지털 컨버젼된다. 신호는 또한 예를 들어, 등화기나 레이크 수신기의 형태로 구현되는 멀티패스 보상부 96에 의해 프로세스된다. 도 6 내지 9를 참고하여 기술된 연산 및 프로세스를 실행하기 위해 배열된 ASIC를 포함하는 FEC 섹션 98은 터보 디코딩을 수행하기 위한 신호 상에서 동작한다. FEC 섹션 98의 출력은 텔레폰 내에서 다른 경우에, 예를 들어, 사용자에게 프리젠테이션하기 위한 오디오 신호나 비디오 신호의 복구에 적합하게 이용된다. 도 10은 간략한 개관만을 제공하며, 텔레폰 90 의 많은 상세한 동작들은 예시된 환경에서 도 6 내지 9의 프로세싱 기술을 설정하는 간단한 목적을 위해 불필요하기 때문에 편의상 생략한다.

Claims (17)

  1. MAP-genre 디코딩 알고리즘의 트렐리스(trellis)에서 버터플라이(butterfly)에 대한 브랜치 메트릭 계산방법에 있어서,
    상기 버터플라이에서의 트랜지션들(transitions)에 대한 초기화된 브랜치 메트릭을 제공하는 단계; 및
    그 동작이 상기 트렐리스에 관련되는 인코딩 장치의 탭(tap) 위치를 나타내는 적어도 하나의 폴리노미얼(polynomial) 및 상기 버터플라이 인덱스로부터 유도되는 제어신호들에 따라 상기 트랜지션에 대응되는 데이터 값들의 그룹으로 상기 브랜치 메트릭들을 증대(increment)시키는 단계;를 포함하며, 상기 그룹은 구조적 비트(systematic bit) 및 패러티 비트(parity bit) 값들을 포함하며,
    상기 폴리노미얼은, 순방향 및 피드백 폴리노미얼을 포함하며,
    상기 순방향 및 피드백 폴리노미얼 각각은, 상기 버터플라이 인덱스와 논리 연산 되어 워드 비트들을 각각 생성하며,
    상기 제어신호들은, 상기 각각의 워드 비트들 간의 논리 연산에 의해 생성되는 복수의 제어신호들을 포함하는 것을 특징으로 하는 브랜치 메트릭 계산방법.
  2. 제1항에 있어서,
    상기 그룹은 선험적 정보 값을 포함하는, 브랜치 메트릭 계산방법.
  3. 삭제
  4. 트렐리스에 대한 상태 메트릭 계산방법에 있어서,
    상기 트렐리스에서 적어도 하나의 버터플라이 각각에 대해 제1항 또는 제2항에서 청구된 형태의 방법을 이용하여 상기 버터플라이에 대한 브랜치 메트릭들을 계산하는 단계를 포함하는 제1 상태 메트릭 업데이트 프로세스에 의해, 제1 방향으로 상기 트렐리스를 통하여 제1 상태 메트릭들을 계산하는 단계;를 포함하는, 상태 메트릭 계산방법.
  5. 제4항에 있어서,
    상기 제1 상태 메트릭 업데이트 프로세스는 상기 대응하는 버터플라이 인덱스 또는 인덱스들로부터 적어도 하나의 버터플라이에 대한 스타트 및 엔드 상태들을 재생성하는 단계;를 더 포함하는, 상태 메트릭 계산방법.
  6. 제5항에 있어서,
    상기 트렐리스에서 적어도 하나의 버터플라이 각각에 대해 제1항에서 청구된 형태의 방법을 이용하는 상기 버터플라이에 대한 브랜치 메트릭을 계산하는 단계를 포함하는 제2 상태 메트릭 업데이트 프로세스에 의해, 상기 제1 방향에 반대되는 제2 방향으로 상기 트렐리스를 통하여 제2 상태 메트릭들을 계산하는 단계;를 더 포함하는, 상태 메트릭 계산방법.
  7. 제6항에 있어서,
    상기 제2 상태 메트릭 업데이트 프로세스는, 상기 대응하는 버터플라이 인덱스 또는 인덱스들로부터 적어도 하나의 버터플라이에 대한 상기 스타트 및 엔드 상태들을 재생성하는 단계;를 더 포함하는, 상태 메트릭 계산방법.
  8. 제7항에 있어서,
    상기 제2 상태 메트릭 업데이트 프로세스는,
    적어도 하나의 버터플라이 각각에 대해, 상기 버터플라이의 상기 엔드 상태들의 상기 제2 상태 메트릭들에 대한 후보 메트릭들을 생성하기 위해 상기 버터플라이의 상기 스타트 상태들의 상기 제2 상태 메트릭들을 상기 버터플라이의 브랜치 메트릭에 합치는 단계; 및
    상기 버터플라이의 상기 엔드 상태들의 상기 제2 상태 메트릭들에 적당한 후보 메트릭들을 선택하는 단계;를 포함하며,
    상기 상태 메트릭 계산방법은,
    적어도 하나의 트렐리스 단계 각각에 대해, 상기 단계에 대한 로그 우도비를 생성하는데 있어 하나의 스텝으로서 상기 단계의 상기 후보 메트릭들을 상기 단계의 제1 상태 메트릭들에 합치는 단계;를 더 포함하는 것을 특징으로 하는, 상태 메트릭 계산방법.
  9. 삭제
  10. MAP-genre 디코딩 알고리즘의 트렐리스에서 버터플라이에 대한 브랜치 메트릭 계산장치에 있어서,
    상기 버터플라이에서 트랜지션들에 대한 초기화된 브랜치 메트릭들을 제공하는 수단; 및
    그 동작이 상기 트렐리스에 관련되는 인코딩 장치의 탭 위치를 나타내는 적어도 하나의 폴리노미얼 및 상기 버터플라이 인덱스로부터 유도되는 제어신호들에 따라 상기 트랜지션에 대응되는 데이터 값들의 그룹으로 상기 브랜치 메트릭들을 증대시키는 수단;을 포함하며, 상기 그룹은 구조적 비트 및 패러티 비트 값들을 포함하며,
    상기 폴리노미얼은, 순방향 및 피드백 폴리노미얼을 포함하며,
    상기 순방향 및 피드백 폴리노미얼 각각은, 상기 버터플라이 인덱스와 논리 연산 되어 워드 비트들을 각각 생성하며,
    상기 제어신호들은, 상기 각각의 워드 비트들 간의 논리 연산에 의해 생성되는 복수의 제어신호들을 포함하는 것을 특징으로 하는, 브랜치 메트릭 계산장치.
  11. 제10항에 있어서,
    상기 그룹은 선험적 정보 값을 포함하는, 브랜치 메트릭 계산장치.
  12. 삭제
  13. 트렐리스에 대한 상태 메트릭 계산장치에 있어서,
    제1 방향으로 상기 트렐리스를 통하여 제1 상태 메트릭들을 계산하는 수단; 및
    상기 제1 상태 메트릭 계산 수단에 대한 브랜치 메트릭들을 계산하기 위한 제10항 또는 제11항에 따른 장치;를 포함하는, 상태 메트릭 계산장치.
  14. 제13항에 있어서,
    상기 제1 상태 메트릭 계산 수단은 대응하는 버터플라이 인덱스 또는 인덱스들로부터 적어도 하나의 버터플라이에 대한 스타트 및 엔드 상태들을 재생성하도록 배열된 것인, 상태 메트릭 계산장치.
  15. 제14항에 있어서,
    상기 제1 방향에 반대되는 제2 방향으로 상기 트렐리스를 통하여 제2 상태 메트릭들을 계산하는 수단; 및
    상기 제2 상태 메트릭 계산 수단에 대해 브랜치 메트릭을 계산하기 위한 제10항에 따른 장치;를 포함하는, 상태 메트릭 계산장치.
  16. 제15항에 있어서,
    상기 제2 상태 메트릭 업데이트 계산 수단은, 상기 대응하는 버터플라이 인덱스 또는 인덱스들로부터 적어도 하나의 버터플라이에 대한 상기 스타트 및 엔드 상태를 재생성하도록 배열된 것인, 상태 메트릭 계산장치.
  17. 제16항에 있어서,
    상기 제2 상태 메트릭 업데이트 계산 수단은,
    적어도 하나의 버터플라이 각각에 대해, 상기 버터플라이의 브랜치 메트릭들을 상기 버터플라이의 엔드 상태들의 제2 상태 메트릭들에 대한 후보 메트릭들을 생성하기 위해 상기 버터플라이의 상기 스타트 상태들의 상기 제2 상태 메트릭들을 합치고, 상기 버터플라이의 상기 엔드 상태들의 상기 제2 상태 메트릭들에 적당한 후보 메트릭들을 선택하도록 배열되며,
    상기 상태 메트릭 계산장치는,
    상기 적어도 하나의 트렐리스 단계 각각에 대해, 상기 단계에 대한 로그 우도비를 생성하는데 있어 하나의 스텝으로서 상기 단계의 후보 메트릭들을 상기 단계의 제1 상태 메트릭들에 합치는 수단을 더 포함하는, 상태 메트릭 계산장치.
KR1020077022549A 2005-03-03 2006-02-24 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산 KR101051933B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0504483.9 2005-03-03
GBGB0504483.9A GB0504483D0 (en) 2005-03-03 2005-03-03 Trellis calculations
PCT/GB2006/000652 WO2006092564A1 (en) 2005-03-03 2006-02-24 Metric calculations for map decoding using the butterfly structure of the trellis

Publications (2)

Publication Number Publication Date
KR20070110407A KR20070110407A (ko) 2007-11-16
KR101051933B1 true KR101051933B1 (ko) 2011-07-26

Family

ID=34451797

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077022549A KR101051933B1 (ko) 2005-03-03 2006-02-24 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산

Country Status (10)

Country Link
US (1) US8230307B2 (ko)
EP (1) EP1859532B1 (ko)
JP (1) JP5075642B2 (ko)
KR (1) KR101051933B1 (ko)
CN (1) CN101147327B (ko)
AT (1) ATE508534T1 (ko)
DE (1) DE602006021716D1 (ko)
GB (1) GB0504483D0 (ko)
TW (1) TWI346463B (ko)
WO (1) WO2006092564A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0804206D0 (en) * 2008-03-06 2008-04-16 Altera Corp Resource sharing in decoder architectures
US8086940B2 (en) * 2008-04-28 2011-12-27 Newport Media, Inc. Iterative decoding between turbo and RS decoders for improving bit error rate and packet error rate
US8578255B1 (en) 2008-12-19 2013-11-05 Altera Corporation Priming of metrics used by convolutional decoders
EP2442451A1 (en) * 2009-08-18 2012-04-18 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Soft output Viterbi algorithm method and decoder
US8539325B2 (en) * 2009-12-18 2013-09-17 Electronics And Telecommunications Research Institute Parity generating apparatus and map apparatus for turbo decoding
US10333561B2 (en) * 2015-01-26 2019-06-25 Northrop Grumman Systems Corporation Iterative equalization using non-linear models in a soft-input soft-output trellis
GB2563419B (en) * 2017-06-15 2020-04-22 Accelercomm Ltd Polar decoder, communication unit, integrated circuit and method therefor

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905742A (en) * 1995-12-27 1999-05-18 Ericsson Inc. Method and apparauts for symbol decoding
US6128765A (en) * 1998-08-20 2000-10-03 General Electric Company Maximum A posterior estimator with fast sigma calculator
EP1024604A3 (en) 1999-01-29 2000-12-13 Texas Instruments Incorporated Flexible viterbi decoder for wireless applications
DE60007956T2 (de) * 2000-02-21 2004-07-15 Motorola, Inc., Schaumburg Vorrichtung und Verfahren zur SISO Dekodierung
US7242726B2 (en) * 2000-09-12 2007-07-10 Broadcom Corporation Parallel concatenated code with soft-in soft-out interactive turbo decoder
US6865710B2 (en) * 2000-09-18 2005-03-08 Lucent Technologies Inc. Butterfly processor for telecommunications
US7020214B2 (en) * 2000-09-18 2006-03-28 Lucent Technologies Inc. Method and apparatus for path metric processing in telecommunications systems
US7127664B2 (en) 2000-09-18 2006-10-24 Lucent Technologies Inc. Reconfigurable architecture for decoding telecommunications signals
US7234100B1 (en) 2000-09-28 2007-06-19 Intel Corporation Decoder for trellis-based channel encoding
ATE323341T1 (de) * 2001-06-21 2006-04-15 Cit Alcatel Log-map dekodierung
AUPR679301A0 (en) 2001-08-03 2001-08-30 Lucent Technologies Inc. Arrangement for low power turbo decoding
JP3888135B2 (ja) * 2001-11-15 2007-02-28 日本電気株式会社 誤り訂正符号復号装置
US7657822B2 (en) * 2002-05-31 2010-02-02 Broadcom Corporation True bit level decoding of TTCM (turbo trellis code modulation) of variable rates and signal constellations
US6718504B1 (en) 2002-06-05 2004-04-06 Arc International Method and apparatus for implementing a data processor adapted for turbo decoding
CN100477534C (zh) * 2002-08-14 2009-04-08 联发科技股份有限公司 维特比解码器的解码电路与方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
M. Chan et al. "IC design of an adaptive Viterbi decoder," IEEE Trans. on Consumer Electronics, Vol. 42, pp. 52-62, Feb. 1996.
T. Ngo et al. "Turbo codes on the fixed point DSP TMS320C55x," IEEE Workshop on Signal Processing Systems, pp. 255-264, 11-13 Oct 2000.

Also Published As

Publication number Publication date
US8230307B2 (en) 2012-07-24
GB0504483D0 (en) 2005-04-13
EP1859532B1 (en) 2011-05-04
CN101147327A (zh) 2008-03-19
DE602006021716D1 (de) 2011-06-16
WO2006092564A1 (en) 2006-09-08
ATE508534T1 (de) 2011-05-15
US20090132896A1 (en) 2009-05-21
TWI346463B (en) 2011-08-01
TW200707921A (en) 2007-02-16
JP2008532402A (ja) 2008-08-14
WO2006092564A8 (en) 2007-10-25
KR20070110407A (ko) 2007-11-16
JP5075642B2 (ja) 2012-11-21
CN101147327B (zh) 2010-07-14
EP1859532A1 (en) 2007-11-28

Similar Documents

Publication Publication Date Title
US8751907B2 (en) Joint encoding and decoding methods for improving the error rate performance
JP4282192B2 (ja) 反復式ターボ符号復号装置及び該装置の性能を最適化する方法
US7657819B2 (en) Method and apparatus for termination of iterative turbo decoding
KR101051933B1 (ko) 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산
CZ407397A3 (cs) Paralelní zřetězené konvoluční kódy s koncovými bity a jejich dekodéry
EP1122890A2 (en) MAP decoding with parallelized sliding window processing
JP2001127646A (ja) チャンネル・デコータ及びチャンネル復号化方法
KR20020059529A (ko) 펑쳐링된 패리티심벌을 복원하는 터보디코더용 프리디코더 및 터보코드의 복원방법
US20010021233A1 (en) Soft-decision decoding of convolutionally encoded codeword
US6487694B1 (en) Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA
Johansson et al. A simple one-sweep algorithm for optimal APP symbol decoding of linear block codes
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
EP1471677A1 (en) Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder
JP2005210238A (ja) ターボ復号装置及びその方法並びにその動作プログラム
EP2174422B1 (en) Decoding of recursive convolutional codes by means of a decoder for non-recursive convolutional codes
JP2002535910A (ja) 畳み込みコードのデコーディング方法およびデコーディング装置
US20020094038A1 (en) Error-correcting code decoding method and error-correcting code decoding apparatus
JP3888135B2 (ja) 誤り訂正符号復号装置
US7096410B2 (en) Turbo-code decoding using variably set learning interval and sliding window
JP2008136006A (ja) 誤り訂正復号器及びそれに用いる誤り訂正復号方法並びにそのプログラム
WO2011048997A1 (ja) 軟出力復号器
Bahirgonde et al. BER analysis of turbo decoding algorithms
KR100317377B1 (ko) 변복조 시스템의 부호화 및 복호화 장치
JP4991481B2 (ja) 反復復号装置及び反復復号方法
Devi et al. An Energy-Efficient Lut-Log-Bcjr Architecture Using Constant Log Bcjr Algorithm

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 8