KR100928861B1 - 무선 통신을 위한 터보 디코딩 방법 및 장치 - Google Patents

무선 통신을 위한 터보 디코딩 방법 및 장치 Download PDF

Info

Publication number
KR100928861B1
KR100928861B1 KR1020047004394A KR20047004394A KR100928861B1 KR 100928861 B1 KR100928861 B1 KR 100928861B1 KR 1020047004394 A KR1020047004394 A KR 1020047004394A KR 20047004394 A KR20047004394 A KR 20047004394A KR 100928861 B1 KR100928861 B1 KR 100928861B1
Authority
KR
South Korea
Prior art keywords
node
nodes
symbol
communication
state
Prior art date
Application number
KR1020047004394A
Other languages
English (en)
Other versions
KR20040039418A (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 KR20040039418A publication Critical patent/KR20040039418A/ko
Application granted granted Critical
Publication of KR100928861B1 publication Critical patent/KR100928861B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • 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/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • 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/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1191Codes on graphs other than LDPC 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/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0055MAP-decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

통신 시스템 (10) 에서, 방법 및 장치가 터보 인코딩된 데이터 심볼들의 시퀀스의 디코딩을 제공한다. 채널 노드들 Rx,Ry, 및 Rz는 수신된 채널 출력에 기초하여 갱신되며, 심볼 노드들 (701, 707, 708) 로부터의 발신 메시지들은 초기화된다. 이 심볼 노드들 (701, 707, 708) 은 채널 노드들 Rx,Ry, 및 Rz와 통신한다. 서로 다른 시간 인스턴스들에서의 계산 노드들 C (704) 및 D (706) 의 갱신은 트리거링 스케줄에 따라 수행된다.
Figure R1020047004394
터보 인코딩된 데이터 심볼, 채널 노드, 발신 메시지, 시간 인스턴스.

Description

무선 통신을 위한 터보 디코딩 방법 및 장치 {TURBO DECODING METHOD AND APPARATUS FOR WIRELESS COMMUNICATIONS}
분야
본 발명은 통신 분야에 관한 것으로, 더 상세하게는 무선 통신에 관한 것이다.
배경
에러 제어 코드들은 데이터 심볼들의 시퀀스의 통신에서 리던던시 (redundancy) 를 제공하는 것으로서, 노이즈 및 간섭의 존재시에 원본 데이터 심볼들의 시퀀스를 복원하기 위해 수신단에서 이용된다. CDMA 무선 통신 시스템에서 파워가 제한된 채널들 및 간섭이 제한된 채널들을 통해 신뢰할 만한 통신을 달성하는데, 비터비 (Viterbi) 디코더와 함께 콘볼류션 코드 (convolutional code) 들이 광범위하게 사용되어 왔다. 터보 코드 (turbo code) 라 불리는 새로운 클래스의 에러 정정 코드들은 종래의 코드들보다 훨씬 더 성능의 증가를 제공한다. 수신기에서 터보 코드에 대한 디코딩 프로세스는 반복적인 알고리즘을 포함하며, 복잡하며, 수신기에 대해 집중적으로 계산이 요구된다.
따라서, 당해 기술분야에서는, 터보 코드가 사용되는 통신 시스템에서의 개량된 디코더가 요청되고 있다.
요약
통신 시스템에서, 터보 인코딩된 데이터 심볼들의 시퀀스를 디코딩하는 방법 및 장치가 제공된다. 본 발명의 다양한 태양은 다양한 노드들 및 연결 브랜치들로 구성되는 그래프로 표현된다. 노드들은 채널 노드, 심볼 노드, 상태 노드, 및 계산 노드를 포함하는 상이한 타입들로 이루어진다. 노드들을 연결하는 브랜치들은 한 노드에서 또 다른 노드로의 메시지 흐름을 허용한다. 이 노드들 및 브랜치들은 소프트웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 노드는 착신 메시지의 값들에 기초하는 값을 가진 발신 메시지를 전송함으로서 갱신될 수 있다. 일 실시형태에서, 채널 노드들 (Rx, Ry, 및 Rz) 은 수신된 채널 출력에 기초하여 갱신되며 심볼 노드들로부터의 발신 메시지들이 초기화 된다. 심볼 노드들은 채널 노드들 (Rx, Ry, 및 Rz) 과 통신하고 있다. 계산 노드들 (C 및 D) 의 갱신은 트리거링 스케줄에 따라 수행된다. 일 실시형태에서, 계산 노드들 (C 및 D) 의 갱신은 모든 가능한 시간 인스턴스에서 동시에 트리거링된다. 이 트리거링 스케줄은 한 번 이상의 디코딩 프로세스의 반복을 획득하기 위해 되풀이될 수도 있다. 한 번 이상의 반복 후에, 심볼 노드들은 그 디코딩된 심볼들에 대한 값을 보유한다. 그 결과, 디코딩 프로세스는 효율적으로, 정확히, 그리고 신속하게 수행된다.
도면의 간단한 설명
본 발명의 특징들, 목적들, 및 이점들은 동일 참조 부호가 전반에 걸쳐 상응하게 식별되는 도면과 연관하여 고려할 때 아래에서 설명되는 상세한 설명으로부터 더욱 분명해 질 것이다.
도 1 은 본 발명의 다양한 실시형태들에 따라 동작할 수 있는 통신 시스템을 도시한다.
도 2 는 인코더의 블록도를 도시한다.
도 3 은 트렐리스 다이어그램 (trellis diagram) 을 도시한다.
도 4 는 터보 인코더의 블록도를 도시한다.
도 5 는 디코더의 블록도이다.
도 6 은 본 발명의 다양한 실시형태들에 따라 인코딩된 데이터 심볼들의 시퀀스를 디코딩하는 다양한 타입의 노드들 사이에서의 정보 흐름의 그래프를 도시한다.
도 7 은 본 발명의 다양한 실시형태들에 따라 인코딩된 데이터 심볼들의 시퀀스를 디코딩하는 다양한 타입의 노드들 사이에서의 정보 흐름의 일반화된 그래프를 도시한다.
바람직한 실시형태들의 상세한 설명
본 발명의 다양한 실시형태들은 Telecommunication Industry Association (TIA), Third Generation Partnership Project (3GPP) 및 Third Generation Partnership Project 2 (3GPP2) 에 의해 공표된 여러 표준들에서 설명되고 개시된 코드 분할 다중 접속 (CDMA) 기술에 따라 동작하는 무선 통신 시스템에서 통합될 수 있다. 그러한 표준들은 TIA/EIA-95 표준, TIA/EIA-IS-856 표준, IMT-2000 표준들 (cdma 표준들 및 WCDMA 표준들을 포함하는) 을 포함한다. 표준들의 복사본은 http://www.3gpp2.org에 접속하거나, 2500 Wilson Boulevard, Arlington, VA 22201, United States of America에 소재하는 TIA의 표준 및 기술부에 의뢰하여 얻을 수 있다. 여기서 참조되어 병합되는, WCDMA 표준으로 주로 구분되는 표준들은 650 Route des Lucioles-Sophia Antipolis, Valbonne-France에 소재하는 3GPP 지원 사무소에 연락하여 얻을 수 있다.
일반적으로, 신규하고 개량된 방법 및 이에 수반하는 장치는 통신 시스템에서 인코딩된 데이터 심볼들의 시퀀스의 효율적 디코딩을 제공한다. 여기서 설명되는 하나 이상의 예시적인 실시형태들은 디지털 무선 데이터 통신 시스템의 상황에서 개시되어 있다. 이런 상황에서의 사용이 바람직하지만, 본 발명의 다른 실시형태들은 다른 환경 및 구성들에 통합될 수 있다. 일반적으로, 여기서 설명되는 다양한 시스템들은 소프트웨어로 제어되는 프로세서들, 집적 회로, 또는 별개의 로직을 사용하여 형성될 수 있다. 애플리케이션 전반에 걸쳐 언급되는 데이터, 지시들, 명령들, 정보들, 신호들, 심볼들, 및 칩들은 전압, 전류, 전자기파, 자기장 또는 자기 입자, 광학 장 또는 광학 입자, 또는 이들의 조합에 의해 유리하게 표현될 수도 있다. 또한, 각 블록도에서 도시된 블록은 하드웨어 또는 방법 단계들을 표현할 수 있다.
도 1 은 채널을 통해 동작하기 위한 송신기 및 수신기를 포함하는 통신 시스템 (10) 의 블록도이다. 송신단에서, 시스템 (10) 은 인코딩 동작을 위해 입력 데이터 시퀀스를 수신하는 인코더 (12)를 포함한다. 인코더 (12) 는 인코딩된 데이터 시퀀스를 변조기 (14) 로 출력한다. 변조기 (14) 는 반송 신호를 통해 인코딩된 데이터 시퀀스를 변조한다. 변조기 (14) 는 변조한 신호를 송신기 (16) 로 제공한다. 송신기 (16) 는 부가적인 백색 가우시안 노이즈 (additive white Gaussian noise : AWGN) 채널 (17)을 통해 신호를 송신하는데 필요한 파워 증폭기 및 안테나를 포함할 수 있다. 수신기 (18) 은 이 신호를 수신한다. 수신된 신호는 복조기 (19) 에 의해 복조되어 디코더 (20) 로 전송된다. 디코더 (20) 는 입력 데이터 시퀀스의 예측값을 출력한다. 변조기 (14), 송신기 (16), 수신기 (18) 및 복조기 (19) 의 동작은 연관 기술분야에서 알려진 기술에 따를 수 있다.
인코더 (12) 는 다수의 입력 데이터 비트들 (k) 에 대해 생성된 코드워드의 코딩된 심볼들의 수 (n) 에 대응하는 코딩 레이트 (k/n) 로 인코딩하는 콘볼류션 인코더를 포함할 수 있다. 또한, 구속 (constraint) 길이 (K) 는 데이터의 콘볼류션 인코딩에서 사용되는 시프트 레지스터의 길이로 정의된다. 콘볼류션 인코더는 이진 계수 및 길이 K-1을 갖는 유한 임펄스 응답 필터(Finite impulse Respond filter) 로서 동작할 수 있다. 인코더는 2의 (K-1) 제곱 상태를 가질수 있다.
도 2를 참조하면, 시스템 (10) 용의 콘볼류션 인코더 (100) 의 블록도가 도시된다. 인코더 (100) 는 데이더 심볼들 (Xi) 을 입력받아 인코딩된 심볼들 (Xi 및 Yi) 로 구성되는 코드워드를 출력한다. 따라서, 이 인코딩은 코딩 레이트 1/2 로 이루어진다. 첨자 "i"는 시간 인스턴스를 표시하는 인덱스이다. 인코더 (110) 는 데이터 심볼 (Yi) 을 생성하기 위해 다항식 (polynomial) 에 따라 입력 데이터 심볼 (Xi) 를 인코딩한다. 다항식은 콘볼류션 코드에 의할 수도 있다. 그러한 다항식의 구현은 이진 플립-플롭들 (111, 112) 을 포함할 수 있다. 이진 플립-플롭 (111 및 112) 는 각각 상태 ("D0" 및 "D1") 에 있을 수 있다. 상태 (D0 및 D1) 은 어느 시간 인스턴스에서 상태 "0" 또는 "1"중의 하나일 수 있다. 시스템 (10) 에서, 인코딩된 데이터 심볼들 (Xi 및 Yi) 는 AWGN 채널 (17) 을 통해 수신기 (18) 로 송신된다.
필요하지는 않지만, 최적의 디코더의 성능 중의 어느 하나를 이해하는 데도 코드 특성들 또는 트렐리스 다이어그램상에서 코드를 표시하는 것은 유용하다. 트렐리스 다이어그램은 인코더에 대한 상태 다이어그램의 무한 복제이다. 이 트렐리스의 한 레벨에서의 노드들 (상태들) 은 상태 다이어그램에 의해 결정되는 바와 같이, 하나의 입력 비트에 대응하여, 하나의 브랜치를 통한 전이에 의해 이전 레벨의 노드들 (상태들) 로부터 도달된다. 디코딩 프로세스에, 상태 메트릭들 (metric), 경로 메트릭들 및 브랜치 메트릭들과 같은 몇몇 타입의 메트릭들이 사용될 수도 있다. 가장 가능성있는 경로는 가장 높은 확실성으로 선택된다. 선택된 경로의 각 브랜치의 심볼들에 대응하는 코드워드들은 송신된 가장 가능성있는 세트의 코드워드이다.
도 3을 참조하면, 디코더 (20)에서 수신된 인코딩된 데이터 심볼들 (Xi 및 Yi) 를 디코딩하기 위한 트렐리스 (200) 가 도시되어 있다. 시간 인스턴스 "i-1", "i" 및 "i+1"에서, 트렐리스 (200) 는 플립-플롭들 (111 및 112) 의 상태에 대해 각각 상태 스페이스들 (201, 202, 및 203) 을 나타낸다. 4 개의 가능한 상태들 (211, 212, 213 및 214) 은 예시적인 실시형태에서 도시되는 것처럼 각 상태 스페이스와 연관된다. 예를 들어, 상태 (211, 212, 213 및 214) 는 개별적으로 가능한 상태들 "00", "10", "01" 및 "11"에 있는 플립-플롭들 (111 및 112) 의 상태를 나타낸다. 한 상태 스페이스의 한 상태로부터 다른 상태 스페이스의 다른 상태로의 전이는 다른 가능한 코드워드 브랜치들에 의해 도시된다. 각 브랜치는 인코딩된 심볼들 (Xi 및 Yi) 에 대한 구체적 선택을 나타낸다. 예를 들어, 코드워드 브랜치 "01"은 데이터 심볼 (Xi) 에 대한 값 "0" 및 데이터 심볼 (Yi) 에 대한 값 "1"을 표시한다. 코드워드 브랜치 "01"은 한 시간 인스턴스에서의 한 상태 스페이스의 상태 (213) 로부터 다음 시간 인스턴스에서의 다른 상태 스페이스의 상태 (211) 로, 그리고 한 시간 인스턴스에서의 한 상태 스페이스의 상태 (214) 로부터 다음 시간 인스턴스에서의 다른 상태 스페이스의 상태 (214) 로의 플립-플롭들 (111 및 112) 의 전이를 나타낼 수도 있다. 레이트 1/2에 대해서는, 각 상태 스페이스의 각 상태는 2 이상의 가능한 코드워드 브랜치들에 의해 도달될 수 있다.
다양한 실시형태에 따르면, 복조기 (19) 의 상관기 (correlator) 는 채널 출 력에 기초하여 각각 인코딩된 데이터 심볼의 수신 확률을 결정할 수 있다. 각각 인코딩된 데이터 심볼과 연관되는 수신 확률은 기억 엘리먼트에 저장될 수 있다. 각 데이터 (Xi 및 Yi) 에 대해 결정된 확률은 브랜치 메트릭 (채널 메트릭) 을 결정하는데 사용된다.
통상적으로 MAP 알고리즘으로 알려진 알고리즘이 디코딩 프로세스에서 사용될 수 있다. 트렐리스 (200) 에서의 디코딩 프로세스는 순방향 및 역방향 방식으로 동시에 초기 상태 스페이스 및 최종 상태 스페이스로부터 상태 메트릭들 및 경로 메트릭들을 결정하는 것을 포함한다. 소프트 결정은 트렐리스에서의 상태 스페이스에 대응하는 시간 인스턴스에서 브랜치들로 표시된 바에 따라 인코딩된 데이터 심볼들 (Xi 및 Yi) 의 값들을 결정한다. 인코딩된 데이터 심볼들 (Xi 및 Yi) 의 값들에 대한 소프트 결정을 하기 위해, 각 브랜치의 듀얼 메트릭 (DM) 이 결정된다. 한 브랜치의 DM은 순방향 상태 메트릭 (FSM), 역방향 상태 메트릭 (BSM) 및 브랜치 메트릭 (BM) 에 기초한다. 이 DM은 FSM, BSM 및 BM의 합이 될 수 있다. 한 브랜치의 BM은 채널 출력에 기초하여 결정될 수 있다.
한 상태의 FSM은 순방향 경로 메트릭 (FPM) 에 기초할 수 있다. 한 브랜치의 종단에서의 FPM은 이 브랜치의 시작점에서의 상태의 FSM 및 이 브랜치의 BM의 합에 일치할 수 있다. 트렐리스의 초기 상태 스페이스에서의 상태들의 FSM은 알려져 있거나 미리 결정된다. 트렐리스의 초기 상태 스페이스에서의 상태들과 다른, 한 상태의 FSM은 초기 상태 스페이스로부터 시작하여 이 상태에서 종결하는 경로들의 일반화된 최소의 FPM과 같을 수도 있다. 한 상태의 BSM은 역방향 경로 메트릭들 (BPM) 에 기초할 수 있다. 한 브랜치의 종단에서의 BPM은 이 브랜치의 시작점에서의 상태의 BSM 및 브랜치의 BM과 같을 수도 있다. 트렐리스의 최종 상태 스페이스에서의 상태들의 BSM은 알려져 있거나 미리 결정될 수 있다. 트렐리스의 최종 상태 스페이스에서의 상태들과 다른, 한 상태의 BSM은 이 상태에서 시작하여 최종 상태 스페이스의 상태들에서 종결하는 경로들의 일반화된 최소의 BPM과 같을 수도 있다. 이런 방식으로, 초기 상태 및 최종 상태로부터의 상태 스페이스들의 FSM, BSM, BM은 양 방향으로부터의 경로들이 반대 종단에 이르러 모든 브랜치들에 대한 DM을 결정할 때까지, 순차적인 방식으로 결정될 수 있다. 한 브랜치의 DM은 순 방향으로부터의 브랜치의 종단에서의 상태의 FSM, 역방향으로부터의 브랜치의 종단에서의 상태의 BSM 및 이 브랜치의 BM에 기초할 수 있다.
두 개의 연속된 상태 스페이스들 사이에서의 브랜치들의 DM은 두 그룹으로 그룹핑될 수 있다. (Xi) 심볼을 갖는 코드워드들을 가지는 브랜치들로 구성된 제 1 그룹은 "0"이다. (Xi) 심볼을 갖는 코드워드들을 가지는 브랜치들로 구성된 제 2 그룹은 "1"와 동일하다. 일반화된 최소의 제 1 그룹 (GMB0) 및 일반화된 최소의 제 2 그룹 (GMB1) 이 결정된다. (Xi) 심볼들에 대한 소프트 결정은 GMB0 와 GMB1 간의 차이와 동일할 수 있다. 코드워드의 다른 데이터 심볼들에 대한 소프트 결정은 브랜치들을 두 그룹으로 그룹핑함으로써 유사하게 결정될 수 있다. 제 1 그룹은 "0"인 데이터 심볼을, 제 2 그룹은 "1"인 데이터 심볼을 가지고 있을 수 있다. 데이터 심볼에 대한 소프트 결정은 GMB0 과 GMB1 간의 차이와 같을 수도 있다.
트렐리스의 각 브랜치는 많은 데이터 심볼들로 구성되는 코드워드를 표시한다. 예를 들어, 인코딩 레이트 1/2에 대하여, 트렐리스 (200) 에 도시된 각 브랜치에서의 코드워드는 데이터 심볼들 (Xi 및 Yi) 에 대한 값을 지시한다. 송신기에서의 인코더가 인코딩 레이트 1/3로 인코딩된 데이터 심볼들을 송신하는 경우, 입력 데이터 심볼마다 3 개의 데이터 심볼들이 생성될 수 있다. 이러한 예에서, 각 브랜치에서의 코드워드는 3 개의 데이터 심볼들을 표시한다.
도 4를 참조하면, 종래 레이트 1/3 터보 인코더 (400) 의 일반 블록도가 도시된다. 일반적으로, 레이트 1/3 터보 인코더는 2 이상의 병렬 인코더들을 포함한다. 터보 인코더 (400) 는 제 1 구성 (constituent) 코드 (401), 제 2 구성 코드 (402) 및 코드 인터리버 (403) 를 포함한다. 입력 (410) 에서, 데이터 심볼들 (Xi) 은 터보 인코더 (400) 로 입력된다. 제 1 구성 코드 (401) 는 데이터 심볼들 (Xi) 를 입력받아 인코딩된 데이터 심볼들 (Yi) 을 생성한다. 코드 인터리버 (403) 는 데이터 심볼들 (Xi) 을 인터리빙하기 위한 데이터 심볼들 (Xi) 을 수신하여 데이터 심볼들 (Xk) 을 생성한다. 데이터 심볼들 (Xk) 은 재 배열된 데이터 심볼들 (Xi) 로 구성될 수 있다. 제 2 구성 코드 (402) 는 데이터 심볼들 (Xk) 를 인코딩하여 데이터 심볼들 (Zk) 를 출력한다. 제 1 및 제 2 구성 코드 (401 및 402) 에서 데이터 심볼들을 인코딩하는데 사용되는 다항식은 동일하거나 다를 수 있다. 제 1 및 제 2 구성 코드들 (401 및 402) 은 도 2에서 도시되는 종래의 코드 (110) 에 따른다.
데이터 심볼들 (Xi, Yi 및 Zk) 는 송신을 위한 데이터 심볼들을 선택하기 위한 펑쳐링 (puncturing) 블록으로 패싱될 수 있다. 이 선택은 펑쳐링 패턴에 따른다. 선택된 데이터 심볼들은 데이터 심볼들 (Xi, Yi 및 Zk) 과는 배타적이다. 시스템 (10) 에서, 선택된 데이터 심볼들은 변조 및 수신기 (18) 로의 송신을 위해 변조기 (14) 로 패싱된다. 디코더 (20) 은 데이터 심볼들 (Xi, Yi 및 Zk) 의 잡음 버전을 수신한다.
도 5를 참조하면, 데이터 심볼들 (Xi, Yi 및 Zk) 의 잡음 버전을 디코딩하여 데이터 심볼들 (Xi) 의 예측값을 생성하기 위한 디코더 (500) 의 블록도가 도시된다. 디코더 (500) 가 시스템 (10) 의 디코더 (20) 에 사용될 수 있다. 인코딩된 데이터 심볼들 (Xi, Yi 및 Zk) 의 잡음 버전은 입력 (542) 에서 디코더 블록 (501) 로 라우팅하기 위한 데이터 심볼들 (Xi 및 Yi) 의 잡음 버전을 선택하도록 동작하는 데이터 심볼 선택기 블록 (520) 을 통과한다. 잡음 버전의 데이터 심볼들 (Xi) 은 내부적으로 인터리버 (599) 를 통과하여 국지적으로 잡음 버전의 데이터 심볼들 (Xk) 을 재생성한다. 입력 (540) 에서, 국지적으로 생성된 잡음 버전의 데이터 심볼들 (Xk 및 Zk) 는 디코더 블록 (502) 으로 패싱된다. 디코더 (501) 는 설명되고 도시된 바와 같이 MAP와 같은 디코딩 프로세스에 따라 잡음 버전의 데이터 심볼들 (Xi 및 Yi) 을 디코딩할 수 있다. 출력 (550) 에서, 디코더 (501) 는 데이터 심볼 (Xi) 의 예측값을 생성한다. 디코더 (502) 는 설명되고 도시된 MAP와 같은 디코딩 프로세스에 따라 데이터 심볼들 (Zk 및 Xk) 의 잡음 버전을 디코딩한다. 출력 (560) 에서, 디코더 (502) 는 데이터 심볼들 (Xk) 의 예측값을 생성한다. 디코더 (501 및 502) 에서의 디코딩 프로세스들은 순차적으로 실행될 수 있다. 정보는 각각의 반복을 완결한 후에 디코더 (501) 로부터 디코더 (502) 로 패싱된다. 당업자는 설명하고 도시한 바와 같은 다양한 실시형태에서 디코더들이 잡음 버전의 인코딩된 데이터 심볼들에 영향을 미친다는 것을 알수 있다.
데이터 심볼들 (Xi) 의 예측값이 실제 값을 보유하도록 신뢰도를 증가시키기 위해, 출력 (550) 의 데이터 심볼들 (Xi) 의 예측값은 인터리버 (530) 를 통과하여 디코더 (502) 의 입력 (532) 에서의 데이터 심볼들 (Xk) 의 예측값을 생성한다. 디코더 (502) 는 입력 (540) 에서의 데이터 심볼들의 예측값과 함께 입력 (532) 의 데이터 심볼들 (Xk) 의 예측값을 이용하여 출력 (560) 에서 데이터 심볼들의 새로운 예측값을 생성한다. 출력 (560) 에서의 데이터 심볼들 (Xk) 의 예측값들은 디-인터리버 (531) 을 통해 패싱되어, 터보 코드 (400) 에서 인터리버 (430) 의 함수를 인터리빙하는 프로세스가 역으로 이루어져 입력 (541) 에서 데이터 심볼들 (Xi) 의 새로운 예측값이 생성된다. 입력 (541) 에서의 데이터 심볼들 (Xi) 의 예측값은 입력 (542) 의 데이터 심볼들의 예측값과 함께 이용되어, 출력 (550) 에서 데이터 심볼들 (Xi) 의 새로운 예측값이 생성된다. 이 프로세스는 데이터 심볼들 (Xi) 의 예측값에 대한 신뢰도가 적당한 레벨에 이를 때까지 반복될 수 있다. 이와 같이, 데이터 심볼들 (Xi) 을 디코딩하는 프로세스는 시간을 낭비하며 데이터 심볼들 (Xi) 의 정확한 예측값을 통신 시스템 (10) 의 애플리케이션에 적절한 방법으로 생성할 수 없다.
도 6을 참조하면, 그래프 (600) 는 통신 시스템 (10) 에서 사용될 수 있는 본 발명의 다양한 실시형태에 따른 디코더에서의 신호 및 정보의 흐름을 나타낸다. 그래프 (600) 에 설명된 디코딩 동작은 터보 코드에 따라 송신기에서 인코딩된 데이터 심볼들의 시퀀스를 디코딩하는데 적당한다. 도 4에서 도시되는 터보 인코더 (400) 는 터보 코드에 따라 데이터 심볼들의 시퀀스를 인코딩하는 예시적인 실시형태이다. 본 발명의 실시형태를 통합하는, 디코더 (20) 와 같은 디코더는 본 발명의 여러 태양에서 이점이 있다. 본 발명의 실시형태는 높은 신뢰도로 데이터 심볼들 (Xi) 의 정확한 예측값을 결정하는 빠른 디코딩 동작을 제공한다. 본 발명의 다양한 실시형태에 따라 그래프 (600) 에서의 다양한 측면의 신호 및 정보 흐름을 추종하기 위해, 몇몇 표기가 정의될 수 있다. 데이터 심볼들 (Xi) 에 의해 형성된 데이터 심볼들의 시퀀스는 길이 N인 이진 심볼일 수 있다. 값 N 은 임의의 유한 수일 수 있다. 제 1 구성 코드 (401) 에 대한 시간 인덱스는 "i"일 수 있으며, "i"는 1과 N 사이의 값을 갖는다. 또한, 데이터 심볼들 (Yi 및 Zk) 는 길이 N 인 이진 심볼들일 수 있다. 제 2 구성 코드 (402) 에 대한 시간 인덱스는 "k"일 수 있으며, "k"는 1과 N 사이의 값을 갖는다. 값 "k"는 코드 인터리버 (403) 에서 인터리빙한 후에 시간 인덱스 "i"의 이미지이다.
도 6을 참조하면, 시간 "i"에서, 심볼 노드 (Xi;601) 은 제 1 구성 코드 (401) 에서의 데이터 심볼들과 연관된 심볼 노드일 수 있다. 시간 "i"에서, 심볼 노드 (Yi;602) 는 제 1 구성 코드 (401) 의 출력에서의 데이터 심볼들과 연관된 심볼 노드일 수 있다. 시간 "k"에서, 심볼 노드 (Zk;603) 는 제 2 구성 코드 (402) 의 출력에서의 데이터 심볼들과 연관된 심볼 노드일 수 있다. 시간 "i-1" 및 "i"에서 제 1 구성 코드 (401) 와 연관된 트렐리스의 상태 노드들은 상태 Si-1 노드 (604) 및 상태 Si 노드 (605) 로 각각 표시될 수 있다. 시간 "k-1" 및 "k"에서, 제 2 구성 코드 (402) 와 연관된 트렐리스의 상태 노드들은 상태 σk-1 노드 (606) 및 상태 σk 노드 (607) 로 각각 표시될 수 있다. 시간 "i-1" , "i" 및 "i+1" 에서, 제 1 구성 코드 (401) 와 연관된 계산 노드들은 Ci-1 노드 (608), Ci 노드 (609) 및 Ci+1 노드 (610) 로 각각 표시될 수 있다. 시간 "k-1" , "k" 및 "k+1" 에서 제 2 구성 코드 (402) 와 연관된 계산 노드들은 Dk-1 노드 (611), Dk 노드 (612) 및 Dk+1 노드 (613) 로 각각 표시될 수 있다. 채널 Rx 노드 (614) 는 수신된 데이터 심볼들 (Xi) 와 연관된다. 채널 Ry 노드 (615) 는 수신된 데이터 심볼들 (Yi) 와 연관된다. 채널 Rz 노드 (616) 는 수신된 데이터 심볼들 (Zk) 연관된다.
그래프 (600)에서, 한 브랜치는 2 개의 노드들을 연결한다. 한 브랜치는 소스 노드로부터 목적지 노드로 메시지를 운반한다. 일반적으로, α 및 β 가 어떤 두 노드들인 경우, 표기 M(α,β) 는 노드 α로부터 노드 β로의 메시지를 의미한다. 예를 들어, 브랜치 (651) 은 노드 (Xi;601) 과 같은 심볼 노드를 노드 (Ci;609) 와 같은 계산 노드로 연결한다. 이 브랜치 (651) 는 소스 노드 (Xi;601) 로부터 목적지 노드 (Ci;609) 로 메시지를 운반한다. 따라서, 이 브랜치 (651) 에 의해 운반된 메시지는 M(Xi, Ci) 로서 표시된다. 심볼 노드 (601, 602 및 603) 에 연결된 브랜치들은 싱글 넘버로 구성된 메시지를 운반한다. 심볼 노드로 연결된 브랜치는 하드웨어, 펌웨어 또는 소프트웨어, 또는 이들의 조합에서, 레지스터 또는 변수, 또는 이들의 조합으로 실현된다. 레지스터 또는 변수에 의해 보유되는 값은 이 브랜치에 의해 운반되는 메시지를 표시할 수 있다.
상태 Si 노드 (605),상태 Si-1 노드 (604), 상태 σk-1 노드 (606), 상태 σk 노드 (607) 에 결합된 브랜치들은 어레이 넘버로 구성되는 메시지를 운반한다. 어레이 넘버들은 연결 상태 노드와 연관된 트렐리스에서 상태들의 수와 일치하는 길이를 가질 수 있다. 대응하는 구성 코드와 연관된 인코더는 상태들의 수를 설정할 수 있다. 예를 들어, 구성 코드 (401) 은 각 시간 인스턴스에서 각 상태 스페이스마다 4 개의 상태를 가진다. 따라서, 어레이 넘버들은 4 개의 넘버, 즉, 상태 스페이스에서 각 상태마다 하나의 넘버로 구성된다. 상태 노드로 연결된 브랜치는 하드웨어, 펌웨어 또는 소프트웨어, 또는 이들의 조합에서, 어레이 레지스터들 또는 변수들, 또는 이들의 조합으로 실현될 수도 있다. 레지스터들 또는 변수들에 의해 보유되는 값은 브랜치에 의해 운반되는 메시지를 표시할 수 있다.
일반적으로, 노드는 하드웨어에서 다수의 입력과 출력을 갖는 논리 회로의 형태로 실현된다. 또한, 이 노드는 소프트웨어/펌웨어에서 함수 또는 서브루틴의 형태로 실현된다. 노드는 항상 어떠한 정보라도 반드시 저장 또는 보유하고 있을 필요는 없다. 노드는 착신 메시지에 의해 갱신될 수 있다. 노드가 갱신될 때, 이 노드는 착신 브랜치들에서의 메시지의 현재 값에 기초한 발신 브랜치들을 통해 메시지를 출력한다. 또한, 노드의 발신 브랜치들을 통한 메시지들의 타입은 노드의 타입에 의존한다. 채널 노드들 (614-16) 은 대응하는 데이터 심볼들과 연관된 채널 출력을 수신하여 갱신된다. 복조기 (19) 의 상관기는 데이터 심볼마다 채널 출력을 출력한다. 예를 들어, 데이터 심볼들 (Xi, Yi 및 Zk) 와 연관된 채널 출력은 개별적으로 채널 노드들 (614, 615 및 616) 을 갱신한다. 채널 노드가 갱신될 때, 메시지는 채널 노드로부터 연관 심볼 노드로 패싱된다. 예를 들어, 데이터 심볼 (Xi) 의 경우, 데이터 심볼 (Xi) 와 연관된 채널 노드 (614) 에서의 (Xi) 채널 출력을 수신한 후, 채널 노드 (614)는 채널 노드 (614) 로부터 심볼 노드 (601) 로 메시지를 패싱함으로써 갱신된다.
채널 노드 (614) 로부터 심볼 노드 (601) 로 패싱된 메시지는 심볼 (Xi) 채널 출력의 로그-라이클리후드 비율 (log-likelihood ratio : LLR)
Figure 112007068899629-pct00001
와 동일할 수 있다. 예를 들어, 심볼 (Xi)가 1 은 양 전압으로 송신되고, 0 은 음 전압으로 송신되도록 BPSK 변조되어, AWGN 채널을 통해 , 실수 ri로 표시되는 전압으로 수신되는 경우, 그 후, 이 메시지는
Figure 112007068899629-pct00002
와 동일할 수 있으며, Es/No는 채널의 심볼 SNR을 표시한다. 어떤 시간 인스턴스에서의 데이터 심볼에 대해, 이 채널 노드는 단지 한번만 갱신될 필요가 있다. 이 채널 노드는 채널 출력을 수신함으로써 갱신될 수 있다.
심볼 노드는 연결 브랜치를 통해 메시지를 수신함으로써 갱신될 수 있다. 심볼 노드는 많은 노드들에 연결될 수 있다. 예를 들어, 심볼 노드 (Xi;601) 은 채널 노드 (614), 노드 Ci (609) 및 노드 (Dk;612) 에 연결된다. 심볼 노드가 갱신될 때, 발신 메시지는 착신 메시지의 합으로 결정된다. 다음의 표기가 도움이 될 것이다. 심볼 노드 α가 갱신될 때, 심볼 노드 α로부터의 발신 메시지들은 :
Figure 112007068899629-pct00003
과 같이 구해진다. 이 합은 노드 α에 연결된 다른 노드들 (β') 로 부터의 모든 착신 메시지들 이상이다. 노드 α의 갱신을 트리거링한 노드 β로부터의 착신 메시지 M(β,α) 는 노드 α로부터 노드 β로의 발신 메시지 M(α,β) 를 결정하는데 사용되지 않는다. 심볼 노드 Xi (601) 의 경우에, 이 노드는 메시지들이 착신 메시지 (650, 653 및 659) 를 통해 수신될 때 갱신된다. 브랜치 (650) 는 노드 Ci (609) 로부터의 메시지 M(Ci, Xi) 를 운반한다. 브랜치 (653) 은 노드 Dk (612) 로 부터의 메시지 M(Dk, Xi) 를 운반한다. 브랜치 (659) 는 채널 노드 (614) 로 부터의 메시지 M(R, Xi) 를 운반한다. 노드 Ci (609) 로의 발신 메시지는 브랜치 (651) 를 통해 운반된다. 노드 Dk (612) 로의 발신 메시지는 브랜치 (652) 를 통해 운반된다. 갱신이 브랜치 (650) 를 통해 메시지 M(Ci, Xi) 를 수신하는 것에 기인하는 경우, 발신 메시지 M(Xi, Ci) 는 브랜치 (651) 를 통해 전송되지 않으며, 따라서, 단지 브랜치 (652) 를 통한 발신 메시지 M(Xi, Dk) 만이 전송된다. 심볼 노드들로부터 채널 노드들로의 발신 메시지는 없다. 갱신이 브랜치 (659) 를 통해 메시지 M(R, Xi) 를 수신하는 것에 기인하는 경우, 브랜치 (652) 를 통해 Dk 노드 (612) 로 전송되는 메시지는 채널 노드 Rx (614) 로 부터의 메시지 M(R, Xi) 및 Ci 노드 (609) 로부터의 메시지 M(Ci, Xi) 로부터의 기여를 갖는다. 유사하게, 갱신이 브랜치 (659) 를 통해 메시지 M(R, Xi) 를 수신하는 것에 기인하는 경우, 브랜치 (651) 를 통해 Ci 노드 (609) 로 전송되는 메시지는 채널 노드 Rx (614) 로 부터의 메시지 M(R, Xi) 및 Dk 노드 (612) 로부터의 메시지 M(Dk, Xi) 로부터의 기여를 갖는다.
일 실시형태에서, 공통의 시간 인스턴스와 연관된 착신 메시지들은 본질적으로 한 노드에 동시에 도착된다. 따라서, 발신 메시지는 공통의 시간 인스턴스와 연관된 모든 착신 메시지들을 소유함으로써 트리거링된다. 한 시간 인스턴스와 연관된 착신 메시지는 이 메시지들이 본질적으로 동시에 각 노드에 도착하지 않으면 서로 다른 시간 인스턴스와 연관된 발신 메시지를 트리거링하지 않는다.
또한, 상태 노드는 연결된 브랜치들을 통해 메시지를 수신함으로서 갱신될 수 있다. 상태 노드를 갱신하기 위해, 상태 노드는 착신 브랜치를 통해 연결 계산 노드로부터 수신된 메시지를 발신 브랜치를 통해 다른 연결 계산 노드로 넘긴다. 상태 노드들은 단지 계산 노드들에만 연결된다. 상태 노드들은 기본적으로 계산 노드로부터 다른 계산 노드로 착신 메시지를 넘긴다. 상태 Si 노드 (605) 는 계산 Ci 노드 (609 ) 및 계산 Ci+1 노드 (610) 에 연결된다. 상태 Si-1 노드 (604) 는 Ci-1 노드 (608) 및 Ci 노드 (609) 에 연결된다. 상태 Si 노드 (605) 가 Ci 노드 (609) 로부터 착신 브랜치 (665) 를 통해 메시지 M(Ci, Si) 를 수신함으로써 갱신될 때, 메시지 M(Ci, Si) 는 메시지 M(Si, Ci+1) 로서 발신 브랜치 (667) 을 통해 노드 Ci+1 (610) 로 넘겨진다. 상태 Si 노드 (605) 가 착신 브랜치 (668) 를 통해 메시지 M(Ci+1, Si) 를 수신하여 갱신될 때, 메시지 M(Ci+1, Si) 는 메시지 M(Si, Ci) 로서 발신 브랜치 (666) 을 통해 노드 Ci (609) 로 넘겨진다. 유사 동작들이 상태 Si-1 노드 (604), 상태 σk 노드 (607) 및 상태 σk-1 노드 (606) 을 갱신할 때 수행된다.
계산 노드에서의 발신 메시지 값을 설명하기 위하여, 구성 코드들과 연관하여 트렐리스와 연관된 몇몇 표기들이 설명된다. 이 트렐리스의 각 브랜치는 상태 s를 상태 t로 연결하며, 제 1 및 제 2 구성 코드들 (401 및 402) 의 경우에 두 개의 이진 심볼로 라벨이 붙는다. 단지 특정 쌍들의 상태들만이 트렐리스에서 연결된다. 제 1 구성 코드 (401) 과 연관된 트렐리스에서의 각 브랜치는 (f[s,t], g[s,t]) 로 표시된다. 유사하게, 상태 s를 상태 t로 연결하는 제 2 구성 코드 (402) 와 연관된 트렐리스에서의 각 브랜치는 (f'[s,t], g'[s,t]) 로 표시된다. f[s,t] 는 시스템의 심볼 (즉 Xi) 를 표시하고 g[s,t] 는 제 1 구성 코드 (401) 와 연관된 패리티 심볼들 (즉, Yi 및 Zk) 을 표시한다. f'[s,t] 는 시스템의 심볼 (즉 Xi)를 표시하고 g'[s,t] (즉, Yi 및 Zk) 는 제 2 구성 코드 (402) 와 연관된 패리티 심볼들을 표시한다. 당업자는 데이터 심볼들 (Xi) 은 시스템의 심볼들이고 Yi 및 Zk 는 터보 코드와 연관된 패리티 심볼들임을 알 수 있다.
계산 노드들로부터 상태 노드들로의 발신 메시지들은 어레이 넘버들의 형태이다. 설명한 바와 같이, 상태 노드들은 한 계산 노드로부터 다른 계산 노드로 메시지들을 패싱한다. 따라서, 상태 노드들로부터의 메시지들도 어레이 넘버들의 형태이다. 어레이의 길이는 트렐리스의 각 상태 스페이스에서의 상태들의 수와 일치한다. 예를 들어, 계산 Ci 노드 (609) 로부터 상태 Si 노드 (605) 로의 메시지 M(Ci, Si)의 경우에, M(Ci, Si)[s] 는 메시지 M(Ci, Si) 에서의 어레이 넘버들의 s번째의 콤포넌트를 표기한다. 유사하게, M(Si, Ci)[s] 는 상태 노드로부터 계산 노드로의 메시지 M(Si, Ci) 의 s번째의 콤포넌트를 표시한다. 계산 Ci 노드 (609) 로부터의 발신 메시지는 다음과 같이 계산된다:
Figure 112004012332032-pct00004
Figure 112004012332032-pct00005
여기서, 합은 상태 s로부터 상태 t로의 트렐리스에서의 브랜치가 있도록 상태 s 및 t 로 제한된다. 계산 Ci노드 (609) 로부터 심볼 Yi 노드 (602) 로의 발신 메시지는 비록 (점선으로된) 브랜치 (657) 가 도시될지라도 존재하지 않을 수 있다. 심볼 Yi 노드 (602) 는 메시지를 단지 Ci 노드 (609) 로 전송하기 때문에, Yi 노드 (602) 는 Ci 노드 (609) 로부터 메시지를 수신하지 않는다. 유사하게, 계산 Dk 노드 (612) 로부터의 메시지는 다음과 같이 계산된다.
Figure 112004012332032-pct00006
계산 Dk 노드 (612) 로부터 심볼 노드 (Zk) 로의 발신 메시지는 비록 (점선으로된) 브랜치 (654) 가 도시될지라도 존재하지 않을 수 있다. 심볼 Zk 노드 (603) 는 메시지를 단지 Dk 노드 (612) 로 전송하기 때문에, Zk 노드 (603) 는 Dk 노드 (603) 로부터 메시지를 수신하지 않는다.
상기 계산은 다음과 같이 공통으로 정의되는 기초 수학 연산을 사용한다.
Figure 112004012332032-pct00007
상기 n-어레이 연산은 이진 연산의 연속으로 실현될 수 있음을 알 수 있다.
Figure 112004012332032-pct00008
또한, 이진 연산은 다음과 같이 실현될 수 있다.
Figure 112004012332032-pct00009
실제로, 함수
Figure 112004012332032-pct00010
는 작은 룩업 테이블을 사용하여 근사값이 구해진다. 계산 노드가 "트리거링"될 때, 다음 단계들이 순차적으로 발생할 수 있다: (1) 계산 노드들에 연결된 모든 상태 노드들 및 심볼 노드들이 갱신되고, (2) 계산 노드 자체도 갱신된다.
메시지가 다양한 실시형태에 따른 디코딩 알고리즘을 통과하는 것은 모든 채널 노드들을 한번 갱신하고, 그 후, 트리거링 스케줄에 따라 계산 노드들을 트리거링하는 것으로 구성된다. 통상적으로, 계산 노드들은 디코딩 프로세스동안 스케줄에 따라 몇 번 트리거링된다. 계산 노드들로부터의 발신 메시지들은 초기화되고 갱신 트리거들은 스케줄링된다.
초기화 프로세스에서, 모든 계산 노드들로부터 심볼 노드들로의 메시지들은 0으로 초기화된다. 모든 계산 노드들로부터 상태 노드들로의 발신 메시지들의 각 콤포넌트는
Figure 112009031352333-pct00011
로 초기화 되며, 여기서 M은 트렐리스의 각 상태 스페이스에서의 상태들의 수이다. 구성 인코더들이 인코딩 전에 0 상태에 있다고 알려진 경우, 프로세스는, 시간 "0"에서, 트렐리스 섹션에서의 모든 0 아닌 상태 s에 대해, M(C0, S0)[0]=M(D00)[0]=0 및 M(C0, S0)[s]=M(D00)[s]=-∞ 로 초기화한다. 유사하게, 구성 인코더들이 인코딩의 종단에서 0 상태에 있다고 알려진 경우, 이 프로세스는 모든 0 아닌 상태 s에 대해, M(CN+1, SN)[0]=M(DN+1N)[0]=0 및 M(CN+1, SN)[s]=M(DN+1N)[s]=-∞ 로 초기화한다.
도 7을 참조하면, 그래프 (700) 는 본 발명의 다양한 실시형태와 연관된 서로 다른 시간 인스턴스들에 대응하는 상이한 노드들 사이에서 메시지들의 흐름을 도시한다. 인코딩된 데이터 심볼들 (Xi, Yi 및 Zk) 과 연관된 채널 출력은 복조기 (19)의 기억 요소에 저장될 수 있다. 이와 같이, 서로 다른 시간 인스턴스들에 대한 인코딩된 데이터 심볼들 (Xi, Yi 및 Zk) 과 연관된 채널 출력은 디코딩 프로세스에 대해서 동시에 사용될 수 있다. 시간 인스턴스들 "i-1", "i" 및 "i+1"에 대응하는 데이터 심볼들 (Xi-1, Xi 및 Xi+1) 과 연관된 채널 출력들은 심볼 노드들 (701) 로 패싱된다. 또한, 상태 Si-2 노드, 상태 Si-1 노드, 상태 Si 노드 및 상태 Si+1 노드 (702) 는 계산 Ci-2 노드, 계산 Ci-1 노드, 계산 Ci 노드, 계산 Ci+1 노드 및 계산 Ci+2 노드 (704) 를 연결하도록 형성된다. 또한, 상태 σk-2 노드, 상태 σk-1 노드, 상태 σk 노드 및 상태 σk+1 노드 (705) 는 계산 Dk-2 노드, 계산 Dk-1 노드, 계산 Dk 노드, 계산 Dk+1 노드 및 계산 Dk+2 노드 (706) 을 연결하도록 형성될 수도 있다. 시간 인스턴스 "i-1", "i" 및 "i+1" 에 대응하는 데이터 심볼들 (Yi-1, Yi 및 Yi+1) 과 연관된 채널 출력들은 심볼 노드 (707) 로 패싱된다. 시간 인스턴스 "k-1", "k" 및 "k+1" 에 대응하는 데이터 심볼들 (Zk-1, Zk 및 Zk+1) 과 연관된 채널 출력들은 심볼 노드 (708) 로 패싱된다. 그래프 (700) 가 세 개의 시간 인스턴스에 대응하는 메시지 패싱 흐름을 도시하지만, 당업자는 그래프 (700) 가 1부터 N까지의 모든 시간 인스턴스들을 포함하는 것까지 확장될 수 있음을 알수 있다. 일 실시형태에 따르면, 모든 계산 노드들 (704 및 706) 은 본질적으로 동시에 트리거링될 수 있다. 이와 같이, 한 단계에서 모든 계산 노드들이 한번 갱신된다. 모든 계산 노드들이 갱신될 때마다, 디코딩 프로세스는 디코딩 반복을 통해 완결된다. 계산 노드들 (704 및 706) 의 동시 트리거는 디코딩 프로세스의 한번 이상의 반복을 달성하도록 되풀이 될 수 있다.
다른 실시형태에서, 계산 노드들은 완전한 MAP 디코딩을 갖는 전통적인 터보 디코딩 알고리즘의 단일 반복을 획득하도록 C0, C1, C2, ..., CN, CN-1, CN-2, CN-3, ...C2, C1, C0, D0, D1, D2, ..., DN, DN-1, DN-2, DN-3, ... D2, D1, D0의 시퀀스로 트리거링될 수 있다. 계산 노드들의 시퀀스 (C0, C1, C2,..., CN) 는 몇몇 중첩하는 서브-블록들로 나누어질 수 있으며, 이 노드들은 각 서브-블록내에서, 순차적으로 그러나 동시에 모든 서브-블록을 가로질러 트리거링될 수 있다. 제 1 구성 코드의 슬라이딩 블록 MAP 디코딩의 정밀한 근사값이 얻어질 수 있다. 노드들 (D0, D1, D2,..., DN) 은 슬라이딩 블록 MAP 디코딩을 갖는 표준 터보 디코딩 알고리즘의 근사값을 얻는 것과 동일한 방식으로 트리거링될 수 있다.
일반적으로, 계산 노드들의 (중첩하는) 서브세트들의 임의의 집합이 정의될 수 있으며, 또한, 서브세트들이 트리거링되는 시퀀스가 정의될 수 있다. 각 서브세트 내에서, 이 노드들은 임의의 순서로, 또는 동시에 트리거링될 수 있다. 대안적으로, 한 시퀀스는 서브세트에서 각 계산 노드의 트리거를 부여하도록 지정될 수 있다. 다른 서브세트들도 임의의 순서로, 또는 동시에 트리거링될 수 있다. 모든 계산 노드들이 한번 트리거링될 때, 디코딩 반복이 발생하는 것으로 정의될 수 있다. 완전한 디코딩 프로세스는 몇 번의 반복을 포함할 수 있다. 제 1 구성 코드의 계산 노드들의 트리거링을 몇 번 반복 후에, 제 2 구성 코드의 계산 노드들은 유사하게 트리거링될 수 있다. 또한, 이 프로세스는 실시형태에 따라 미리 정의된 수의 반복 후에 완결된다. 또한, 이 프로세스는 실시형태에 따라 동적 방식으로 많은 반복 후에 완결될 수 있다. 이 프로세스는 바람직한 세트의 데이터 심볼들 (Xi) 이 바람직한 수준의 레벨에서 생성될 때 완결된다. 심볼 노드 (Xi;601) 에서의 데이터 심볼들 (Xi) 의 값은 매 반복 후에 주기적 리던던시 체크 (CRC) 를 통과한다. CRC 를 통과하는 경우, 디코딩 연산은 완결될 수 있으며, 어떠한 부가적인 반복도 필요없다.
또한, 당업자들은 여기서 개시된 실시형태와 연관하여 설명된 다양한 예시적 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들 둘의 조합으로 구현될 수 있음을 알 수 있다. 상기에서, 이 런 하드웨어와 소프트웨어 사이의 상호교환성을 명백히 설명하기 위해, 다양한 예시적 콤포넌트들, 블럭들, 모듈들, 회로들, 및 단계들이 이 기능적 관점에서 주로 설명되어 왔다. 그러한 기능성이 하드웨어 또는 소프트웨어로 구현되는지 여부는 전반적인 시스템에 부가된 특정 애플리케이션 및 설계 제한에 의존한다. 당업자들은 각 특정의 애플리케이션마다 설명된 기능성을 다양한 방법으로 구현할 수 있지만 그런 구현 결정이 본 발명의 범위에서 벗어나는 것으로 해석되어서는 안된다.
여기서 개시된 실시형태와 연관되어 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서 (digital signal processor : DSP), 주문형 반도체 (ASIC), 필드 프로그램가능 게이트 어레이 ( FPGA) 또는 다른 프로그램가능 논리 장치, 별개의 게이트 (discrete gate) 또는 트랜지스터 논리, 별개의 하드웨어 콤포넌트, 또는 여기서 설명된 기능을 수행하도록 설계된 이들의 조합으로 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있으나, 다른 방법으로, 이 프로세서는 종래의 프로세서, 제어기, 마이크로 제어기, 또는 상태 기계 (state machine) 일 수도 있다. 또한, 프로세서는 콤퓨팅 장치의 조합, 예를 들어, DSP 및 마이크로프로세서, 복수의 마이크로프로세서, DSP 코어와 연관된 하나 이상의 마이크로프로세서의 조합 또는 어떤 다른 그러한 구성으로도 구현될 수 있다.
여기서 개시된 실시형태와 연관되어 설명된 방법 및 알고리즘의 단계는 직접 하드웨어, 프로세서에 의해 실행되는 소프트웨어, 또는 조합으로 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래쉬 메모리, ROM 메모리, EPROM 메모리, 레지스터, 하드디스크, 이동형 디스크 (removable disk), CD-ROM, 또는 당업자에게 알려진 어떠한 다른 형태의 기억 매체에 상주할 수 있다. 예시적인 기억 매체는 프로세서에 결합되어 프로세서는 기억 매체로부터 정보를 읽고, 기억 매체에 정보를 기록할 수 있다. 다른 방법으로, 기억 매체가 프로세서에 통합될 수 있다. 프로세서 및 기억 매체는 ASIC에 상주할 수 있다. ASIC는 사용자 터미널에 상주할 수 있다. 다른 방법으로, 프로세서 및 기억 매체는 사용자 터미널에서 별개의 콤포넌트로서 존재할 수 있다.
당업자가 본 발명을 실시하거나 이용할 수 있도록 바람직한 실시형태의 상기 설명이 제공되었다. 이 실시형태의 다양한 변형들은 당업자들에게 매우 명백할 것이며, 발명적 능력의 사용없이도 다른 실시형태에 적용될 수도 있다. 따라서, 본 발명을 여기서 나타낸 실시형태에 한정하려는 것이 아니라 여기서 개시된 원리 및 신규한 특징과 일치하는 광범위한 범위에 부여하려는 것이다.

Claims (25)

  1. 통신 시스템에서, 채널을 통해 송신된 터보 인코딩된 데이터 심볼들의 시퀀스를 디코딩하는 방법으로서,
    수신된 채널 출력에 기초하여 채널 노드 (Rx, Ry, Rz) 를 갱신하는 단계;
    상기 채널 노드 (Rx, Ry, Rz) 과 통신하는 심볼 노드 (Xi, Yi 및 Zk) 로부터의 발신 메시지를 초기화하는 단계; 및
    트리거링 스케줄에 따라, 서로 다른 시간 인스턴스들과 연관되는 계산 노드들 (C 및 D) 의 갱신을 트리거링하는 단계로서, 계산 노드 (Ci) 는 상기 심볼 노드 (Xi 및 Yi) 와 통신하고 있으며 계산 노드 (Dk) 는 상기 심볼 노드 (Xi 및 Zk) 와 통신하고 있는, 상기 트리거링하는 단계를 포함하고,
    상기 트리거링 스케줄은 서로 다른 시간 인스턴스들에서 본질적으로 동시에 상기 계산 노드들 (C 및 D) 을 트리거링하는 것을 포함하며,
    상기 첨자 "i" 및 "k"는 디코딩 프로세스에서의 시간 인스턴스들을 지칭하는, 디코딩 방법.
  2. 제 1 항에 있어서,
    상기 계산 노드 (Ci) 는 제 1 구성 코드와 연관된 상태 노드들 (Si 및 Si-1) 과 통신하고, 상기 계산 노드 (Dk) 는 제 2 구성 코드와 연관된 상태 노드들 (σk 및 σk-1) 과 통신하며, 상기 제 1 및 제 2 구성 코드는 상기 인코딩된 데이터 심볼들의 시퀀스를 인코딩하는데 사용되는 상기 통신 시스템에서의 터보 코드와 연관되 는, 디코딩 방법.
  3. 제 1 항에 있어서,
    상기 계산 노드들 (C 및 D) 의 갱신을 트리거링하는 단계를 한 번 이상 반복한 후에, 상기 심볼 노드 (Xi) 에서 심볼 (Xi) 의 값을 심볼 (Xi) 의 디코딩된 값으로 받아들이는 단계를 더 포함하는, 디코딩 방법.
  4. 삭제
  5. 삭제
  6. 통신 시스템에서, 채널을 통해 송신된 터보 인코딩된 데이터 심볼들의 시퀀스를 디코딩하는 방법으로서,
    수신된 채널 출력에 기초하여 채널 노드 (Rx, Ry, Rz) 를 갱신하는 단계;
    상기 채널 노드 (Rx, Ry, Rz) 과 통신하는 심볼 노드 (Xi, Yi 및 Zk) 로부터의 발신 메시지를 초기화하는 단계; 및
    트리거링 스케줄에 따라, 서로 다른 시간 인스턴스들과 연관되는 계산 노드들 (C 및 D) 의 갱신을 트리거링하는 단계로서, 계산 노드 (Ci) 는 상기 심볼 노드 (Xi 및 Yi) 와 통신하고 있으며 계산 노드 (Dk) 는 상기 심볼 노드 (Xi 및 Zk) 와 통신하고 있는, 상기 트리거링하는 단계를 포함하고,
    시간 인스턴스들에서의 상기 계산 노드 (C; C0, C1, C2, ..., CN) 를 2 이상의 서브세트로 파티션닝하는 단계를 더 포함하며,
    상기 트리거링 스케줄은 각 서브세트마다 서로 다른 시간 인스턴스들에서의 시퀀스로 계산 노드들 (C) 의 갱신을 트리거링하는 것을 포함하며,
    서로 다른 시간 인스턴스들에서의 계산 노드 (C) 의 상기 2 이상의 서브세트들의 상기 트리거링은 동시에 발생하고,
    상기 첨자 "i" 및 "k"는 디코딩 프로세스에서의 시간 인스턴스들을 지칭하는, 디코딩 방법.
  7. 제 6 항에 있어서,
    상기 갱신을 트리거링하는 것을 위해 각 서브세트마다 서로 다른 시간 인스턴스들에서의 상기 시퀀스를 결정하는 단계를 더 포함하는, 디코딩 방법.
  8. 삭제
  9. 제 6 항에 있어서,
    서로 다른 시간 인스턴스에서의 계산 노드 (C; C0, C1, C2, ..., CN) 의 상기 2 이상의 서브세트들은 하나 이상의 공통 계산 노드 시간 인스턴스를 가지는, 디코딩 방법.
  10. 제 6 항에 있어서,
    서로 다른 시간 인스턴스에서의 계산 노드 (D; D0, D1, D2, ..., DN) 를 2 이상의 서브세트들로 파티션닝하는 단계를 더 포함하며,
    상기 트리거링 스케줄은 각 서브세트마다 서로 다른 시간 인스턴스들에서 계산 노드들 (D) 을 시퀀스로 트리거링하는 것을 포함하는, 디코딩 방법.
  11. 제 10 항에 있어서,
    상기 갱신을 트리거링하는 것을 위해 각 서브세트마다 서로 다른 시간 인스턴스들에서의 상기 시퀀스를 결정하는 단계를 더 포함하는, 디코딩 방법.
  12. 제 10 항에 있어서,
    서로 다른 시간 인스턴스들에서의 계산 노드 (D) 의 상기 2 이상의 서브세트들의 상기 트리거링은 동시에 발생하는, 디코딩 방법.
  13. 제 10 항에 있어서,
    시간 인스턴스들에서의 계산 노드 (D; D0, D1, D2, ..., DN) 의 상기 서브세트들은 하나 이상의 공통 계산 노드 시간 인스턴스를 가지는, 디코딩 방법.
  14. 제 1 항에 있어서,
    상기 갱신하는 단계는 출력 메시지를 생성하도록 착신 메시지를 합하는 단계 및 갱신을 위해 상기 출력 메시지를 출력하는 단계를 포함하는, 디코딩 방법.
  15. 제 1 항에 있어서,
    상기 수신된 채널 출력에 기초하여 상기 채널 노드 (Rx, Ry, Rz) 를 갱신하는 단계는,
    상기 채널 노드 (Rx) 에서, 심볼 (Xi) 과 연관된 상기 채널 출력을 수신하는 단계;
    상기 채널 노드 (Ry) 에서, 심볼 (Yi) 과 연관된 상기 채널 출력을 수신하는 단계;
    상기 채널 노드 (Rz) 에서, 심볼 (Zk) 과 연관된 상기 채널 출력을 수신하는 단계;
    상기 채널 노드 (Rx) 로부터 상기 심볼 노드 (Xi) 로, 상기 수신된 채널 출력에 기초하여 상기 심볼 (Xi) 의 가능성 (likelihood) 을 패싱하는 단계;
    상기 채널 노드 (Ry) 로부터 상기 심볼 노드 (Yi) 로, 상기 수신된 채널 출력에 기초하여 상기 심볼 (Yi) 의 가능성을 패싱하는 단계; 및
    상기 채널 노드 (Rz) 로부터 상기 심볼 노드 (Zk) 로, 상기 수신된 채널 출력에 기초하여 상기 심볼 (Zk) 의 가능성을 패싱하는 단계를 포함하는, 디코딩 방법.
  16. 제 1 항에 있어서,
    상기 심볼 노드들 (Xi, Yi, Zk) 로부터의 발신 메시지들을 초기화하는 단계는,
    상기 심볼 노드 (Xi) 에서의 착신 메시지들의 합에 기초하는 메시지를, 상기 심볼 노드 (Xi) 로부터 상기 계산 노드 (C) 의 상기 계산 노드 (Ci) 로 패싱하는 단계;
    상기 심볼 노드 (Xi) 에서의 착신 메시지들의 합에 기초하는 메시지를, 상기 심볼 노드 (Xi) 로부터 상기 계산 노드 (D) 의 상기 계산 노드 (Dk) 로 패싱하는 단계;
    상기 데이터 심볼 (Yi) 의 가능성에 기초하는 메시지를, 상기 심볼 노드 (Yi) 로부터 상기 계산 노드 (Ci) 로 패싱하는 단계; 및
    상기 데이터 심볼 (Zk) 의 가능성에 기초하는 메시지를 상기 심볼 노드 (Zk) 로부터 상기 계산 노드 (Dk) 로 패싱하는 단계를 포함하는, 디코딩 방법.
  17. 제 1 항에 있어서,
    상기 데이터의 시퀀스는 "N"개의 심볼들을 포함하고, 상기 시퀀스에서의 각 심볼은 상기 첨자 "i" 또는 "k" 중 어느 하나에 의해 식별되는, 디코딩 방법.
  18. 채널을 통해 통신되는 터보 인코딩된 데이터 심볼들의 시퀀스를 디코딩하는 장치로서,
    채널 출력을 수신하기 위한 채널 노드들 (Rx, Ry, Rz);
    상기 채널 노드들 (Rx, Ry, Rz) 과 통신하는 심볼 노드들 (Xi, Yi, Zk);
    터보 코드에서 제 1 구성 코드와 연관된 상태 노드들 (Si 및 Si-1);
    상기 터보 코드에서 제 2 구성 코드와 연관된 상태 노드들 (σk 및 σk-1);
    상기 심볼 노드들 (Xi 및 Yi) 과 통신하는 계산 노드 (Ci);
    상기 심볼 노드들 (Xi 및 Zk) 과 통신하는 계산 노드 (Dk) 로서, 상기 계산 노드 (Ci) 는 상기 상태 노드들 (Si 및 Si-1) 와 통신하고 상기 계산 노드 (Dk) 는 상기 상태 노드들 (σk 및 σk-1) 와 통신하는, 상기 계산 노드 (Dk);
    상기 상태 노드 (Si) 와 통신하는 계산 노드 (Ci+1);
    상기 상태 노드 (Si-1) 와 통신하는 계산 노드 (Ci-1);
    상기 상태 노드 (σk) 와 통신하는 계산 노드 (Dk+1); 및
    상기 상태 노드 (σk+1) 와 통신하는 계산 노드 (Dk-1) 를 포함하며,
    서로 다른 시간 인스턴스들에서 계산 노드들 (C 및 D) 은 갱신 트리거링 스케줄에 따른 갱신을 위해 구성되고,
    상기 갱신 트리거링 스케줄은 서로 다른 시간 인스턴스들에서 본질적으로 동시에 상기 계산 노드들 (C 및 D) 을 트리거링하는 것을 포함하며,
    상기 첨자 "i" 및 "k"는 디코딩 프로세스에서의 시간 인스턴스들을 지칭하는, 디코딩 장치.
  19. 삭제
  20. 채널을 통해 통신되는 터보 인코딩된 데이터 심볼들의 시퀀스를 디코딩하는 장치로서,
    채널 출력을 수신하기 위한 채널 노드들 (Rx, Ry, Rz);
    상기 채널 노드들 (Rx, Ry, Rz) 과 통신하는 심볼 노드들 (Xi, Yi, Zk);
    터보 코드에서 제 1 구성 코드와 연관된 상태 노드들 (Si 및 Si-1);
    상기 터보 코드에서 제 2 구성 코드와 연관된 상태 노드들 (σk 및 σk-1);
    상기 심볼 노드들 (Xi 및 Yi) 과 통신하는 계산 노드 (Ci);
    상기 심볼 노드들 (Xi 및 Zk) 과 통신하는 계산 노드 (Dk) 로서, 상기 계산 노드 (Ci) 는 상기 상태 노드들 (Si 및 Si-1) 와 통신하고 상기 계산 노드 (Dk) 는 상기 상태 노드들 (σk 및 σk-1) 와 통신하는, 상기 계산 노드 (Dk);
    상기 상태 노드 (Si) 와 통신하는 계산 노드 (Ci+1);
    상기 상태 노드 (Si-1) 와 통신하는 계산 노드 (Ci-1);
    상기 상태 노드 (σk) 와 통신하는 계산 노드 (Dk+1); 및
    상기 상태 노드 (σk+1) 와 통신하는 계산 노드 (Dk-1) 를 포함하며,
    서로 다른 시간 인스턴스들에서 계산 노드들 (C 및 D) 은 갱신 트리거링 스케줄에 따른 갱신을 위해 구성되고,
    상기 갱신 트리거링 스케줄은 2 이상의 서브세트들의 파티션닝된 계산 노드들 (C0, C1, C2, ..., CN ) 에서 시퀀스로, 그리고 2 이상의 서브세트들의 파티션닝된 계산 노드들 (D0, D1, D2, ..., DN) 에서 시퀀스로 갱신을 트리거링하는 것을 포함하며,
    서로 다른 시간 인스턴스들에서의 계산 노드 (C) 의 상기 2 이상의 서브세트들의 상기 트리거링은 동시에 발생하고, 서로 다른 시간 인스턴스들에서의 계산 노드 (D) 의 상기 2 이상의 서브세트들의 상기 트리거링은 동시에 발생하며,
    상기 첨자 "i" 및 "k"는 디코딩 프로세스에서의 시간 인스턴스들을 지칭하는, 디코딩 장치.
  21. 제 18 항에 있어서,
    상기 데이터의 시퀀스는 "N"개의 심볼들을 포함하고, 상기 시퀀스에서의 각 심볼은 상기 상태 노드들 및 상기 계산 노드들에 사용되는 첨자에 대응하는 상기 첨자 "i" 또는 "k" 중 어느 하나에 의해 식별되는, 디코딩 장치.
  22. 채널을 통해 통신하기 위한 터보 인코딩된 데이터 심볼들의 시퀀스를 디코딩하도록 구성된 프로세서로서,
    채널 출력을 수신하기 위한 채널 노드들 (Rx, Ry, Rz);
    상기 채널 노드들 (Rx, Ry, Rz) 와 통신하는 심볼 노드들 (Xi, Yi, Zk);
    터보 코드에서 제 1 구성 코드와 연관된 상태 노드들 (Si 및 Si-1);
    상기 터보 코드에서 제 2 구성 코드와 연관된 상태 노드들 (σk 및 σk-1);
    상기 심볼 노드들 (Xi 및 Yi) 와 통신하는 계산 노드 (Ci);
    상기 심볼 노드들 (Xi 및 Zk) 와 통신하는 계산 노드 (Dk) 로서, 상기 계산 노드 (Ci) 는 상기 상태 노드들 (Si 및 Si-1) 와 통신하고 상기 계산 노드 (Dk) 는 상기 상태 노드들 (σk 및 σk-1) 와 통신하는, 상기 계산 노드 (Dk);
    상기 상태 노드 (Si) 와 통신하는 계산 노드 (Ci+1);
    상기 상태 노드 (Si-1) 와 통신하는 계산 노드 (Ci-1);
    상기 상태 노드 (σk) 와 통신하는 계산 노드 (Dk+1); 및
    상기 상태 노드 (σk+1) 와 통신하는 계산 노드 (Dk-1) 를 포함하며,
    서로 다른 시간 인스턴스들에서 계산 노드들 (C 및 D) 은 갱신 트리거링 스케줄에 따른 갱신을 위해 구성되고,
    상기 트리거링 스케줄은 서로 다른 시간 인스턴스들에서 본질적으로 동시에 상기 계산 노드들 (C 및 D) 을 트리거링하는 것을 포함하며,
    상기 첨자 "i" 및 "k"는 디코딩 프로세스에서의 시간 인스턴스들을 지칭하는, 프로세서.
  23. 삭제
  24. 제 22 항에 있어서,
    데이터 상기 시퀀스는 "N"개의 심볼들을 포함하고, 상기 시퀀스에서의 각 심볼은 상기 상태 노드들 및 상기 계산 노드들에 사용되는 첨자에 대응하는 상기 첨자 "i" 또는 "k" 중 어느 하나에 의해 식별되는, 프로세서.
  25. 채널을 통해 통신하는 터보 인코딩된 데이터 심볼들의 시퀀스를 디코딩하는 장치로서,
    채널 출력을 수신하는 채널 노드들 (Rx, Ry, Rz) 을 위한 수단;
    상기 채널 노드들 (Rx, Ry, Rz) 과 통신하는 심볼 노드들 (Xi, Yi, Zk) 을 위한 수단;
    터보 코드에서 제 1 구성 코드와 연관되는 상태 노드들 (Si 및 Si-1) 을 위한 수단;
    상기 터보 코드에서 제 2 구성 코드와 연관되는 상태 노드들 (σk 및 σk-1) 을 위한 수단;
    상기 심볼 노드들 (Xi 및 Yi) 과 통신하는 계산 노드 (Ci) 를 위한 수단;
    상기 심볼 노드들 (Xi 및 Zk) 과 통신하는 계산 노드 (Dk) 를 위한 수단으로서, 상기 계산 노드 (Ci) 는 상기 상태 노드들 (Si 및 Si-1) 과 통신하고 상기 계산 노드 (Dk) 는 상기 상태 노드들 (σk 및 σk-1) 과 통신하는, 상기 계산 노드 (Dk) 를 위한 수단;
    상기 상태 노드 (Si) 와 통신하는 계산 노드 (Ci+1) 를 위한 수단;
    상기 상태 노드 (Si-1) 와 통신하는 계산 노드 (Ci-1) 를 위한 수단;
    상기 상태 노드 (σk) 와 통신하는 계산 노드 (Dk+1) 를 위한 수단; 및
    상기 상태 노드 (σk+1) 와 통신하는 계산 노드 (Dk-1) 를 위한 수단을 포함하며,
    서로 다른 시간 인스턴스들에서 계산 노드들 (C 및 D) 은 갱신 트리거링 스케줄에 따른 갱신을 위해 구성되고,
    상기 갱신 트리거링 스케줄은 서로 다른 시간 인스턴스들에서 본질적으로 동시에 상기 계산 노드들 (C 및 D) 을 트리거링하는 것을 포함하며,
    상기 첨자 "i" 및 "k"는 디코딩 프로세스에서의 시간 인스턴스들을 지칭하는, 디코딩 장치.
KR1020047004394A 2001-09-25 2002-09-24 무선 통신을 위한 터보 디코딩 방법 및 장치 KR100928861B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/965,518 2001-09-25
US09/965,518 US7489744B2 (en) 2001-09-25 2001-09-25 Turbo decoding method and apparatus for wireless communications
PCT/US2002/030384 WO2003028222A2 (en) 2001-09-25 2002-09-24 Turbo decoding method and apparatus for wireless communications

Publications (2)

Publication Number Publication Date
KR20040039418A KR20040039418A (ko) 2004-05-10
KR100928861B1 true KR100928861B1 (ko) 2009-11-30

Family

ID=25510087

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047004394A KR100928861B1 (ko) 2001-09-25 2002-09-24 무선 통신을 위한 터보 디코딩 방법 및 장치

Country Status (9)

Country Link
US (1) US7489744B2 (ko)
EP (1) EP1433262A2 (ko)
JP (1) JP4116554B2 (ko)
KR (1) KR100928861B1 (ko)
CN (1) CN1602589B (ko)
AU (1) AU2002334666A1 (ko)
BR (1) BR0212766A (ko)
TW (1) TW577211B (ko)
WO (1) WO2003028222A2 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634710B2 (en) * 2005-03-25 2009-12-15 Teranetics, Inc. Efficient decoding
US8098774B1 (en) * 2007-06-15 2012-01-17 Marvell International Ltd. Methods and apparatus for providing a ML decoding pipeline for QPSK MIMO OFDM receivers
US11018795B2 (en) * 2014-09-29 2021-05-25 The Regents Of The University Of California Methods and apparatus for coding for interference network
CN117336128A (zh) * 2023-10-12 2024-01-02 青岛柯锐思德电子科技有限公司 一种bpm-bpsk接收机位置解调软判决方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2675971B1 (fr) * 1991-04-23 1993-08-06 France Telecom Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants.
US5442627A (en) 1993-06-24 1995-08-15 Qualcomm Incorporated Noncoherent receiver employing a dual-maxima metric generation process
DE19526416A1 (de) * 1995-07-19 1997-01-23 Siemens Ag Verfahren und Anordnung zur Bestimmung eines adaptiven Abbruchkriteriums beim iterativen Decodieren multidimensional codierter Infomation
US6023783A (en) * 1996-05-15 2000-02-08 California Institute Of Technology Hybrid concatenated codes and iterative decoding
US5933462A (en) 1996-11-06 1999-08-03 Qualcomm Incorporated Soft decision output decoder for decoding convolutionally encoded codewords
US6292918B1 (en) 1998-11-05 2001-09-18 Qualcomm Incorporated Efficient iterative decoding
US6304996B1 (en) * 1999-03-08 2001-10-16 General Electric Company High-speed turbo decoder
US6754290B1 (en) * 1999-03-31 2004-06-22 Qualcomm Incorporated Highly parallel map decoder
US6307901B1 (en) * 2000-04-24 2001-10-23 Motorola, Inc. Turbo decoder with decision feedback equalization
US6829313B1 (en) * 2000-07-17 2004-12-07 Motorola, Inc. Sliding window turbo decoder
US7415079B2 (en) * 2000-09-12 2008-08-19 Broadcom Corporation Decoder design adaptable to decode coded signals using min* or max* processing
US6393076B1 (en) * 2000-10-11 2002-05-21 Motorola, Inc. Decoding of turbo codes using data scaling
US20030123563A1 (en) * 2001-07-11 2003-07-03 Guangming Lu Method and apparatus for turbo encoding and decoding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A High-Speed MAP Architecture with Optimized Memory Size and Power Consumption, IEEE, 2000-10, Pages 265~274.
Implementation and performance of a turbo/map decoder, SATELLITE COMMUNICATION, 1998.

Also Published As

Publication number Publication date
EP1433262A2 (en) 2004-06-30
AU2002334666A1 (en) 2003-04-07
US7489744B2 (en) 2009-02-10
WO2003028222A2 (en) 2003-04-03
US20030058969A1 (en) 2003-03-27
JP2005528811A (ja) 2005-09-22
CN1602589A (zh) 2005-03-30
BR0212766A (pt) 2006-05-23
JP4116554B2 (ja) 2008-07-09
TW577211B (en) 2004-02-21
CN1602589B (zh) 2011-04-20
KR20040039418A (ko) 2004-05-10
WO2003028222A3 (en) 2003-12-11

Similar Documents

Publication Publication Date Title
JP3998723B2 (ja) 畳み込み符号化された符号語を復号化するためのソフト判定出力
US6484285B1 (en) Tailbiting decoder and method
US5537444A (en) Extended list output and soft symbol output viterbi algorithms
EP0907256B1 (en) Apparatus for convolutional self-doubly orthogonal encoding and decoding
KR20000067966A (ko) 비동일 에러 보호를 갖는 통신 신호를 검출하는 방법 및 장치
US8358713B2 (en) High throughput and low latency map decoder
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
KR100928861B1 (ko) 무선 통신을 위한 터보 디코딩 방법 및 장치
CA2404348A1 (en) Slotted mode decoder state metric initialization
US6507619B1 (en) Decoding system and method for digital communications
CN114430279B (zh) 一种列表维特比译码方法、装置、译码器和存储介质
JP3823731B2 (ja) 誤り訂正復号器
US7170946B2 (en) System and method for reviving catastrophic codes
RU2301492C2 (ru) Способ передачи голосовых данных в цифровой системе радиосвязи и устройство для его осуществления
EP1565992A1 (en) Erasure determination procedure for fec decoding
US7225392B2 (en) Error correction trellis coding with periodically inserted known symbols
US20110202819A1 (en) Configurable Error Correction Encoding and Decoding
KR100317377B1 (ko) 변복조 시스템의 부호화 및 복호화 장치
JP4991481B2 (ja) 反復復号装置及び反復復号方法
Pukkila Source and Channel Encoder and Decoder Modeling
JP2001326577A (ja) 直接連接畳込み符号器、及び、直接連接畳込み符号化方法

Legal Events

Date Code Title Description
A201 Request for examination
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: 20121030

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131030

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141030

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 11