KR101429786B1 - 데이터를 인코딩 및 디코딩하는 방법 및 장치 - Google Patents

데이터를 인코딩 및 디코딩하는 방법 및 장치 Download PDF

Info

Publication number
KR101429786B1
KR101429786B1 KR1020097006933A KR20097006933A KR101429786B1 KR 101429786 B1 KR101429786 B1 KR 101429786B1 KR 1020097006933 A KR1020097006933 A KR 1020097006933A KR 20097006933 A KR20097006933 A KR 20097006933A KR 101429786 B1 KR101429786 B1 KR 101429786B1
Authority
KR
South Korea
Prior art keywords
fec
segments
size
bits
block
Prior art date
Application number
KR1020097006933A
Other languages
English (en)
Other versions
KR20090074183A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=39269076&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101429786(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US11/539,404 external-priority patent/US8356232B2/en
Application filed by 모토로라 모빌리티 엘엘씨 filed Critical 모토로라 모빌리티 엘엘씨
Publication of KR20090074183A publication Critical patent/KR20090074183A/ko
Application granted granted Critical
Publication of KR101429786B1 publication Critical patent/KR101429786B1/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/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
    • 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
    • H03M13/2996Tail biting
    • 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/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Communication Control (AREA)

Abstract

터보 코딩 및 디코딩을 위한 방법 및 장치가 본 명세서에 제공된다. 동작 동안, 길이 X의 CTB(concatenated transport block)가 수신되고 FEC(forward error correction) 블록 사이즈 KI는 Kmin와 Kmax 사이의 이용가능한 비-연속 FEC 블록 사이즈의 그룹으로부터 결정되고, Kmin<=KI<Kmax이고 KI는 부가적으로 X에 기초한다. 길이 X의 CTB는, 각각이 실질적으로 KI와 같은 사이즈인 C개의 세그먼트로 분할된다. C개의 세그먼트의 각각에 대한 FEC 코드워드는 FEC 블록 사이즈 KI를 이용하여 결정되고; C FEC 코드워드는 채널을 통해서 송신된다.
Figure R1020097006933
FEC 블록, 터보 코더, 코드 블록 분할 회로, 필러 비트, 인터리버

Description

데이터를 인코딩 및 디코딩하는 방법 및 장치{METHOD AND APPARATUS FOR ENCODING AND DECODING DATA}
본 발명은 일반적으로 데이터를 인코딩 및 디코딩하는 것에 관한 것이고, 특히, 데이터를 터보 코딩 및 디코딩하는 방법 및 장치에 관한 것이다.
유선 및 무선 링크를 통한 디지털 데이터 송신은 때때로, 이를 테면, 링크 혹은 채널에서의 잡음, 다른 송신들로부터의 간섭, 또는 다른 환경적 요인에 의해 오류가 생길 수 있다. 채널에 의해 유발되는 에러를 제거하기 위해, 많은 통신 시스템들은 통신을 돕기 위해 에러-정정 기술을 채용한다.
에러 정정을 위해 사용되는 하나의 기술로서 송신될 정보 블록의 터보 디코딩이 있다. 그러한 기술을 사용하는 경우, 통신 시스템의 송신기 내에 있는 인코더는 길이가 K 비트인 입력 블록 u을 N 비트인 코드워드 블록 x로 인코드할 것이다. 그 다음, 코드워드 블록 x은, 가능한 한 IEEE 802.16e 표준에서 정의되는 채널 인터리빙과 같은 추가(further) 처리 후에, 채널을 통해 송신된다. 수신기에서, 터보 디코더는 길이 N인 수신된 신호 벡터 y를 입력으로 취하고, 벡터 u의 추정치
Figure 112009020272242-pct00001
를 생성한다.
통상적으로, 터보 인코더는 두 개의 구성 컨볼루션 인코더(two constituent convolutional encoders)로 이루어진다. 제1 구성 인코더는 원래 순서대로(in its original order) 입력 블록 u를 입력으로서 취하고, 제2 구성 인코더는 u를 터보 인터리버 π에 통과시킨 후 인터리브된 순서로 입력 블록 u를 취한다. 터보 인코더 출력 x는 구조적 비트들(systematic bits)(입력 블록 u와 동일함), 제1 구성 인코더로부터의 패리티 비트들, 및 제2 구성 인코더로부터의 패리티 비트들로 이루어진다.
그에 상응하여, 통신 시스템의 수신기 내에 있는 터보 디코더는, 각각의 구성 코드에 대한 것으로, 두 개의 구성 컨볼루션 디코더(constituent convolutional decoder)로 이루어진다. 구성 디코더들은 인터리버 π 및 대응 디인터리버 π-1에 의해 분리된다. LLRs(log-likelihood ratios)의 포맷인 메시지들은 구성 디코더들 사이에서 반복적으로 통과된다. 여러 번의 반복 후에 결정
Figure 112009020272242-pct00002
이 만들어진다.
터보 인터리버 π는 터보 코드 디자인에서 주요 구성요소(key component)이다. 의사-난수 방식(pseudo-random fashion)으로 입력 블록 u을 스크램블하여, 양호한 중량 배분(weight distribution)의 코드워드 x를 제공하고, 따라서 양호한 에러-정정 능력을 제공할 책임이 있다. 디코딩 성능 이외에, 터보 인터리버 π는 수신기 내에 있는 터보 디코더의 구현에도 상당한 영향을 미친다. 보통, 터보 코드 성능은 인터리버 길이의 증가로 향상된다. 그러나, 인터리버 사이즈의 증가 대신 감소가 존재한다. 실제로, 터보 코드의 최대 FEC(Forward Error Correction) 블록 사이즈(즉, 인터리버 사이즈)는 복잡성 및 지연 이유로 인해 어떠한 값으로 한정된다. 따라서, 입력 블록(CTB(concatenated transport block))의 사이즈가 터보 코드에 의해 지원된 최대 FEC 블록 사이즈보다 큰 경우, CTB는 여러 개의 작은 세그먼트들로 분할(예컨대, 코드 블록 분할 규칙을 사용하여)되고, 그들 각각은 송신기에서의 터보 인코더에 의해 개별적으로 처리되고, 그에 상응하여 수신기에서의 터보 디코더에 의해 개별적으로 처리된다.
일부 시스템에서, 터보 코드는 다양한 이유(예컨대, 고속 디코딩, 감소된 스토리지 등)로 적은 수의 FEC 블록 사이즈들만을 지원하도록 디자인될 수도 있다. 따라서, 이용가능한 FEC 블록 사이즈들에 CTB를 적절하게 매치하는 터보 코딩 및 디코딩 방법 및 장치에 대한 필요성이 존재한다.
도 1은 송신기의 블록도.
도 2는 수신기의 블록도.
도 3은 도 1의 터보 인코더의 블록도.
도 4는 송신기 측의 운송 블록 형성자(transport block former)의 블록도.
도 5는 수신기 측의 운송 블록 어셈블러(transport block assembler)의 블록도.
도 6은 도 1의 송신기의 동작을 도시하는 플로우차트.
도 7은 도 2의 수신기의 동작을 도시하는 플로우차트.
위에서 언급한 필요성을 다루기 위해, 여기에서는 터보 코딩 및 디코딩 방법 및 장치가 제공된다. 동작하는 동안, 길이 X인 CTB(concatenated transport block)가 수신되고, Kmin와 Kmax 사이의 이용가능한 비-연속 FEC 블록 사이즈로 이루어진 그룹으로부터 블록 사이즈 KI인 FEC(forward error correction)가 결정되는데, 여기서, Kmin <= KI< Kmax 이고, KI는 추가적으로 X에 기초한다. 길이 X인 CTB는 각각의 사이즈가 사실상 KI와 동일한 C개의 세그먼트들로 분할된다. C개의 세그먼트들 각각에 대한 FEC 코드워드는 FEC 블록 사이즈 KI를 사용하여 결정되고, C개의 FEC 코드워드들은 채널을 통해 송신된다.
대안적인 실시예에서, 길이 X인 CTB(concatenated transport block)가 수신되고 두 개의 FEC 블록 사이즈 KI -1 및 KI가 비-연속 FEC 블록 사이즈들로 이루어진 그룹으로부터 결정되는데, 여기서, Kmin<=KI -1<Kmax, Kmin<=KI<=Kmax이고, KI -1 및 KI는 추가적으로 X에 기초한다. 길이 X인 CTB는 각각의 사이즈가 사실상 KI -1 혹은 KI과 동일한 C개의 세그먼트로 분할된다. C개의 세그먼트 각각에 대한 FEC 코드워드는 FEC 블록 사이즈 KI 혹은 KI -1을 사용하여 결정되고, C FEC 코드워드는 채널을 통해 송신된다.
상기 방법의 이점은, CTB를 인코딩하는데 요구되는 필러 비트들의 패딩을 줄이는 한편, 이용가능한 비-연속 FEC 블록 사이즈들에 의해 가장 적은 수의 세그먼 트 사용이 허용된다는 것이다. 특히, 제2 방법은 2개의 서로 다른 (그러나 인접한) FEC 블록 사이즈를 사용하여 필터 비트들의 수를 최소화하는 한편 이용가능한 비-연속 FEC 블록 사이즈들에 의해 가장 적은 수의 세그먼트 사용이 허용된다. 게다가, 2개의 실시예에 대한 세그먼트들의 수 및 세그먼트 사이즈들에 대한 FEC 블록 사이즈들이 단순한 논리 회로를 사용하여 결정될 수 있다.
데이터 인코딩 및 디코딩을 설명하기에 앞서, 필요한 배경적 정보를 설정하기 위해 다음과 같은 정의가 제공된다.
Figure 112009020272242-pct00003
표기를 용이하게 하기 위해, CTB(concatenated transport block)는 각각의 운송 블록에 CRC 비트와 같은 오버헤드를 추가한 후에, 하나 이상의 운송 블록들을 연관시킨(concatenating) 결과물을 칭한다.
Figure 112009020272242-pct00004
X는 CTB 사이즈(예컨대, 비트에 있어서의 CTB의 길이)를 나타낸다.
Figure 112009020272242-pct00005
Y는 CTB에 추가된 필러 비트들의 총 수를 나타낸다.
Figure 112009020272242-pct00006
C는 CTB가 분할되어 얻어진 세그먼트의 수를 나타낸다.
Figure 112009020272242-pct00007
CBSSi는 CTB의 i번째 세그먼트의 사이즈를 나타내고(i=1, ... C), 여기서 C는 세그먼트 사이즈이다. CBSS는 코드 블록 세그먼트 사이즈를 의미한다.
Figure 112009020272242-pct00008
KI -1 및 KI는 CTB의 세그먼트를 FEC 인코딩하는데 사용될 수 있는 FEC 블록 사이즈(예컨대, 터보 코드 내부 인터리버가 정의되는 사이즈들)를 나타낸다.
Figure 112009020272242-pct00009
Ktable는 이용가능한 비-연속 FEC 블록 사이즈(터보 코드 내부 인터리버가 정의되는 사이즈들) 세트를 나타낸다.
Figure 112009020272242-pct00010
Kfiller는 세그먼트에 추가된 필러 비트들의 수를 나타낸다.
Figure 112009020272242-pct00011
R은 터보 코더의 마더 코드 레이트(mother code rate)를 나타낸다(예컨대, 3GPP 터보 코드에 대해 R=1/3).
Figure 112009020272242-pct00012
R-1은 터보 코더의 마더 코드 레이트의 역(inverse)이다(예컨대, 3GPP 터보 코드에 대해 R-1=3).
Figure 112009020272242-pct00013
Ntb는 FEC 인코더의 출력에서 FEC 코드워드에서의 테일 비트들의(tail bits) 수이다.
Figure 112009020272242-pct00014
테일 비트들을 갖는 3GPP 터보 코드에 대해 Ntb=12
Figure 112009020272242-pct00015
테일-바이팅(tail-biting)을 갖는 3GPP 터보 코드에 대해 Ntb=0
Figure 112009020272242-pct00016
π는 터보 코드 내부 인터리버를 나타낸다.
Figure 112009020272242-pct00017
플로링 연산(flooring operation)
Figure 112009020272242-pct00018
은 x 이하에서 가장 큰 정수를 나타내고, 실링 연산(ceiling operation)
Figure 112009020272242-pct00019
은 x 이상에서 가장 작은 정수를 나타낸다.
이제, 도면으로 돌아가면, 동일한 참조 번호는 동일한 구성 요소를 나타내고, 도 1은 송신기(100)의 블록도이다. 도시된 바와 같이, 송신기(100)는 코드 블록 분할 회로(code block segmentation circuitry; 102), 필러 회로(filler circuitry; 103), 터보 인코더(104), 필러 폐기 회로(filler discard circuitry; 105), 송신기(108), 논리 회로(106), 및 테이블/스토리지(107)를 포함한다. 송신기(100)는 길이 X인 CTB(concatenated transport block)를 수신하는 수신 회로(도 1에 도시되지 않음)를 추가로 포함한다. 논리 회로(106)는 비-연속 FEC 블록 사이즈들로 이루어진 그룹(107)으로부터 이용가능한 FEC 블록 사이즈 KI를 결정하는데, 여기서, 이용가능한 비-연속 FEC 블록 사이즈들은 Kmin과 Kmax 사이에 있고, Kmin<=KI<Kmax이고, KI는 추가로 X에 기초한다. 코드 블록 분할 회로(102)는 길이 X인 CTB를 사실상 KI와 동일한 사이즈의 C개의 세그먼트들로 분할하고; 인코딩 회로(104)는 FEC 블록 사이즈 KI를 사용하여 C개의 세그먼트 각각에 대한 FEC 코드워드를 결정한다. 끝으로, 송신 회로(108)는 채널을 통해 C개의 FEC 코드워드를 송신한다.
또 다른 실시예에서, 송신기(100)는 길이 X인 CTB를 수신하는 수신 회로(도 1에 도시되지 않음), 및 비-연속 FEC 블록 사이즈들로 이루어진 그룹(107)으로부터 2개의 이용가능한 FEC 블록 사이즈 KI -1 및 KI를 결정하는 논리 회로(106)를 포함하는데, 여기서, 이용가능한 비-연속 FEC 블록 사이즈들은 Kmin과 Kmax 사이에 있고, Kmin<=KI-1<Kmax, Kmin<=KI<=Kmax이고, KI -1 및 KI는 추가로 X에 기초한다. 송신기(100)는 길이 X인 CTB를 사실상 KI -1 혹은 KI와 동일한 사이즈의 C개의 세그먼트들로 분할하는 코드 블록 분할 회로(102), 및 FEC 블록 사이즈 KI 혹은 KI - 1를 사용하여 C개의 세그먼트 각각에 대한 FEC 코드워드를 결정하는 인코딩 회로(104)를 포함한다. 끝으로, 송신 회로(108)가 제공되어 채널을 통해 C FEC 코드워드를 송신한다.
인코딩 회로(104)는 FEC 입력 블록을 형성하기 위해 상기 세그먼트들에 필러 비트들을 삽입하는 필러 회로(103)의 앞에 위치한다. FEC 인코더(104)는 FEC 입력 블록을 인코드하고, 필러 폐기 회로(105)는 필러 비트들에 관련된 비트들을 폐기한다.
송신기(100)의 동작 동안, CTB 형식의 데이터가 회로(102)에 의해 수신된다. 회로(102)는 FEC(Forward Error Correction) 인코딩 전에 CTB를 준비한다.
일반적으로, CTB 사이즈(즉, X)의 범위는 통신 시스템을 위한 물리 계층에서 기본적인 FEC 방식(underlying FEC scheme)에 의해 지원된 FEC 블록 사이즈들의 범위와는 다를 수도 있다. 따라서, FEC에 의해 효율적으로 처리될 수 있는 세그먼트들로 CTB를 나누는 규칙을 정의할 필요가 있다. 특히, CTB 사이즈(즉, X)는 종종 FEC 인코더(104)가 처리할 수 있는 최대 FEC 블록 사이즈보다 훨씬 더 크다. 따라서, CTB는 회로(102)에 의해 보다 작은 사이즈의 다수의 세그먼트들로 분할될 필요가 있고, 각각의 세그먼트는 FEC 인코더(104)에 의해 개별 FEC 코드워드로 인코드될 필요가 있다.
회로(102)는 기본적인 FEC로 양호한 성능(즉, 소정의(given) CTB에 대한 세그먼트들의 군집 성능(aggregate performance))을 달성하도록 디자인되는 코드 블록 분할 규칙을 사용한다. 임의의 주어진 CTB 사이즈에 대해 후술하는 양상들을 수반한다:
Figure 112009020272242-pct00020
세그먼트들의 수 C를 선택하고;
Figure 112009020272242-pct00021
각 세그먼트들의 사이즈를 선택하고;
Figure 112009020272242-pct00022
세그먼트 사이즈가 FEC에 의해 직접 처리될 수 없다면, FEC 인코딩 전에 필러 비트를 삽입하고 FEC 인코딩 후에 필러 비트를 제거한다.
상기 제안된 분할 규칙은, 터보 코더가 한정된 FEC 블록 사이즈(인터리버 사이즈) 세트에 대해서만 정의될 수 있는 EUTRA(Evolved-UMTS Terrestrial Radio Access) 시스템에서 특히 유용하다. 인접하는 사이즈의 5075개 인터리버들을 정의하는 릴리즈 6 3GPP 터보 코더와 달리, 40 비트와 5114 비트 사이에 있는 각 인터리버 사이즈 KI에 대한 것으로, EUTRA 터보 코더는 상당한 수의 세그먼트 사이즈(예컨대, 6144-128+1=6017 사이즈)를 커버하기 위해 한정된 수의 FEC 블록 사이즈 Ktable(예컨대, 128 비트 ~ 6144 비트 범위에 있는 비-연속 사이즈를 갖는 40~50개의 인터리버들)를 정의할 수도 있다. 세그먼트 사이즈가 이용가능한 FEC 블록 사이즈와 동일할 때, 세그먼트가 FEC 입력 블록으로서 직접 취해질 수 있다(따라서 필러 비트 삽입이 불필요함). 그러나, 세그먼트 사이즈가 임의의 이용가능한 FEC 블록 사이즈와 동일하지 않다면, 필러 비트 패딩이 적용될 수도 있고, Ktable(107)로부터 선택된 그 다음으로 큰 이용가능한 FEC 블록 사이즈(즉, 인터리버 사이즈)가 사용될 수도 있다.
세그먼트의 수( Number of segments ):
분할 규칙은 다음과 같은 터보 코딩의 속성을 고려한다.
(a) 터보 코드 성능은 FEC 블록 사이즈가 증가함에 따라 향상한다.
(b) FEC 블록 사이즈의 증가로 인한 터보 코드 성능의 향상은 수천 비트를 넘어가면 다시 감소한다.
(c) CTB는 모든 세그먼트가 정확하게 수신되는 경우에만 정확하게 수신된다.
속성 (a) 및 (c)는 전체 성능이 최악의 성능을 갖는 세그먼트에 의해 좌우될 가능성이 있음을 나타낸다. 따라서, 대체로 동일한 사이즈의 세그먼트들을 가짐으로써, 대체로 동일한 FEC 블록 사이즈로 FEC 인코드되는 것(그리고 FEC 관점(perspective)에서 대체로 동일한 에러 보호가 허용되는 것)이 바람직하다.
속성 (b)는 테이블 (Ktable)에서 매우 큰 사이즈들에 대해서는 인터리버를 포함할 필요가 없음을 제안한다. 그러나, Ktable에서 정의된 FEC 블록 사이즈들은 다른 인자들에 의존할 수도 있다. 예를 들어, ⅰ) 스토리지/복잡성의 감소를 위해서는, Ktable에서 적은 수의 인터리버가 바람직할 수 있고, ⅱ) Ktable에서 정의된 최대 인터리버 사이즈가 CTB 당 세그먼트의 수를 한정하도록 선택될 수 있어, CTB의 분할 페널티를 한정한다. 분할 페널티는 전체 CTB를 하나의 FEC 코드워드로 인코딩하는 대신 CTB를 여러 개의 세그먼트로 나눔으로 인해 야기되는 성능 저하(performance loss)이다.
속성 (c)는 분할 페널티를 줄이기 위해 최소 수의 세그먼트가 사용되어야 함을 제안한다.
상기 전체를 고려하면, 세그먼트의 수는
Figure 112009020272242-pct00023
이고, 여기서, Kmax는 Ktable에서 정의된 최대 FEC 블록 사이즈이다. CBSSi가 CTB의 i번째 세그먼트(i=1, ...C)의 세그먼트 사이즈를 나타내는 것으로 가정하면, 모든 세그먼트의 총합은 CTB 사이즈 X와 동일, 즉, 세그먼트 사이즈들이 다음의 수학식에 의해 제한된다.
Figure 112009020272242-pct00024
다음 단락은 C개의 세그먼트 사이즈 각각에 대한 것으로, FEC 인코딩을 위해 사용된 FEC 블록 사이즈의 결정에 대해 기술한다.
FEC 블록 사이즈 결정( FEC block size determination )
길이 X인 CTB가 코드 블록 분할 함수에 입력으로 주어지는 경우, 3GPP 표준의 릴리즈 6에 기술된 바와 같은, 터보 코더를 위한 FEC 블록 사이즈(인터리버 사이즈) 결정 규칙은 다음과 같다.
Figure 112009020272242-pct00025
여기서, Kmax=5114는 Rel 6 터보 코드를 위한 최대 인터리버 사이즈이고, C는 세그먼트(혹은 코드 블록)의 수이고, KI는 인터리버 사이즈, Y는 사이즈 KI인 C개의 FEC 입력 블록들이 사용될 때 사이즈 X인 CTB에 대해 삽입된 필러 비트의 총 수이 다. 본질적으로, 사이즈 X인 CTB는 대체로 동일한 사이즈인 C개의 세그먼트로 분할되고, 각 세그먼트는 KI-비트 인터리버로 터보 코드를 사용하여 인코드된다. Y>0 이면, 인코딩 전에 제1 세그먼트의 처음(beginning)에 Y 기지 비트(known bits)가 패드된다. FEC 블록 사이즈(즉, 인터리버)는 릴리즈 6 3GGP 터보 코드에서 Kmin=40과 Kmax=5114 사이에 있는 모든 사이즈에 대해 정의되기 때문에, 필러 비트의 수는 C, 즉, 코드 블록 분할을 위해 사용된 세그먼트의 수에 의해 제한(bounded)된다.
그러나, EUTRA에 대해 고려되는 것과 같은 그 외의 시스템에서는, FEC 블록 사이즈(인터리버 사이즈)는 비-연속 사이즈(보다 간격이 넓은 인터리버 사이즈 세트(a coarser set of interleaver sizes)) Ktable에 대해서만 정의된다. 그러한 경우에, 임의의 이용가능한 FEC 블록 사이즈와 동일하지 않은(즉, Ktable에서 정의되지 않은) 세그먼트 사이즈들은 FEC 인코딩 전에 필러 비트를 사용하여 처리될 필요가 있다(원하는 코드 레이트에 도달하도록 인코딩 후에 펑쳐링함(puncturing)).
터보 코더가 Kmin와 Kmax 사이에 분포된 한정된 수의 FEC 블록 사이즈만을 지원한다고 가정하면, Ktable을 사용하여 길이 X인 CTB를 코드 블록 분할하는 두 가지 단순한 방법 양측을 포함한 것이 다음에 기술된다. 이 방법들은 가능한 한 적은 수의 세그먼트를 사용하는 한편 인코딩에 요구되는 필러 비트의 수 역시 줄인다.
하나의 FEC 블록 사이즈 만을 허용( Allow one FEC block size only )
하나의 방법은 상기 수학식 1을 변형한 것이고, 모든 세그먼트들이 하나의(single) 인터리버 사이즈 KI로 인코드되었다고 하면, 여기서,
Figure 112009020272242-pct00026
여기서, i, l<=i<=T, 는 Ktable에서 이용가능한 비-연속 FEC 블록 사이즈들의 그룹으로 나타내지고(index), Ktable에서의 T 사이즈들은 오림 차순으로 분류된다고 가정한다. 본질적으로, 이 방법은
Figure 112009020272242-pct00027
보다 크거나 동일한 Ktable로부터 가장 작은 KI, 즉,
Figure 112009020272242-pct00028
을 선택하고, 여기서, 0≤δ< KI-KI -1이고 KI -1<
Figure 112009020272242-pct00029
이다. I=1일 때, KI -1=0인 것으로 선정된다는 것에 유의한다. 따라서, 필러 비트의 수는 다음과 같이 주어진다.
Figure 112009020272242-pct00030
따라서, δ이 크면 Y가 크다. 다음 예는 이용가능한 FEC 블록 사이즈 (Ktable)의 수가 Y에 어떻게 영향을 미치는지 설명한다.
● Ktable이 Zmin=40 과 Zmax=5114 사이의 모든 값을 갖는다면, 필러 비트의 최 대 수는 C-1이다.
● Ktable이 Zmin=40 과 Zmax=5114 사이에 균일하게 분포된 T=100 값을 갖는다면, 모든 세그먼트에 패드된 필러 비트의 최대 총 수는 대략 50×C이다.
따라서, 필러 비트의 수는 Ktable에서 FEC 블록 사이즈 입도(granularity)를 가변시킴으로써 제어될 수 있다. 필러 비트의 수는 또한 다음에 기술하는 바와 같은 또 다른 접근법을 사용하여 감소될 수도 있다. 그러나, 다음 방법을 논의하기 전에, 일반적인 경우에, 임의의 KI(≥
Figure 112009020272242-pct00031
)는 잠재적으로 증가된 필러 비트의 수를 희생하여 FEC 인코딩을 위해 Ktable로부터 선택될 수 있다는 것에 유의한다. 이러한 경우에, 코드 블록 분할 후에 얻어진 세그먼트 사이즈들은 CBSSi≤KI (i=1, ... C)를 만족한다. 이러한 경우에, 논리 회로(106)는 다음 관계를 이용하여 세그먼트의 수를 결정한다.
Figure 112009020272242-pct00032
두 개의 인접한 FEC 블록 사이즈 만을 허용( Allow two adjacent FEC block sizes only )
소정의 CTB의 모든 세그먼트들을 인코딩하기 위해 하나의 FEC 블록 사이즈 KI를 사용하는 대신, Ktable로부터 2개의 인접하는 FEC 블록 사이즈 KI -1 및 KI, KI- 1<KI, l<=I<=T, 가 선택되는 것이 제안된다. I=1일 때 KI -1=0으로 선정된다는 것에 유의한다. 세그먼트의 수 C 및 보다 큰 FEC 블록 사이즈 KI는 이전 경우에서와 동일하게 선택, 즉, C는 수학식 1로 계산되고, KI는 수학식 2로 계산된다. 그러나, 사이즈 KI -1과 사이즈 KI로 인코드된 세그먼트의 수는 다음과 같이 결정된다(이해를 용이하게 하기 위해, 수반된 모든 계산이 아래 반복된다). 이러한 경우에, 논리 회로(106)는 다음 동작들을 수행하여 세그먼트의 수를 찾아낸다.
Figure 112009020272242-pct00033
CI -1 및 CI는 FEC 블록 사이즈 KI -1 및 KI를 각각 사용하여 인코드된 세그먼트의 수이고, 여기서, KI
Figure 112009020272242-pct00034
보다 크거나 동일한 이용가능한 FEC 블록 사이즈로부터 가장 작은 사이즈이고, DI는 인접하는 인터리버 사이즈 KI - 1와 KI 간의 차를 나타낸다.
수학식 4에서, Y는 2개의 인접하는 사이즈를 허용하는 경우에 요구된 필러 비트의 수를 나타내는 것이 아니고; C개의 세그먼트 모두에 대해 단지 하나의 사이즈 KI가 사용되는 경우에 요구된 필러 비트의 수를 나타낸다는 것에 유의한다.
따라서, 코드 블록 분할은 C개의 세그먼트를 형성하고, CI -1개의 세그먼트는 FEC 블록 사이즈 KI -1로 FEC-인코드된다. Y<DI일 때, 수학식 4는 CI -1=0을 제공하고, 이 방법은 하나의 FEC 블록 사이즈 KI를 사용하는 것으로 변질된다(degenerate). (즉, KI-1 사이즈는 허용되지만 사실상 사용되지 않음) 이에 반해, Y>=D I 일 때, 이 방법은 보다 큰 FEC 블록 사이즈 KI에 C개의 세그먼트 모두를 패딩하는 것보다 적은 필러 비트를 요구한다. 이 방법은 가능한 가장 적은 세그먼트를 사용하는 한편 CTB 당 추가된 필러 비트의 수 Y"가 최소 이도록 보증된다는 점에서 최적이다. Y"는 다음과 같이 결정된다.
Figure 112009020272242-pct00035
Y"는 C에 상관없이 DI에 의해 제한된다는 것이 입증될 수 있다.
Figure 112009020272242-pct00036
이러한 경우에, 코드 블록 분할 후에 얻어진 세그먼트 사이즈는 다음과 같은 제약을 갖는다. (제1 CI 세그먼트가 KI로 인코드되고 나머지는 KI -1로 인코드된다는 보편성에 대한 손실 없이)
Figure 112009020272242-pct00037
도 1로 되돌아 가면, 상술한 바와 같이, 적절한 FEC 블록 사이즈는 비-연속 FEC 블록 사이즈의 테이블(107)로부터 선택될 필요가 있다. 논리 회로(106)는 상술한 바와 같이 적절한 FEC 블록 사이즈/사이즈들을 선택하는 태스크를 수행한다. 테이블(107)의 예는 표 1에 주어진다. 예를 들어, 제1의 경우에, 논리 회로(106)는 Kmin와 Kmax 사이의 이용가능한 비-연속 FEC 블록 사이즈로부터 FEC 블록 사이즈를 선택하고, 여기서, Kmax <= KI <= Kmax이고, 추가로 KI는 X에 기초한다. 특히, 하나의(single) FEC 블록 사이즈 KI이 사용되는 경우, 논리 회로(106)는
Figure 112009020272242-pct00038
보다 작지 않은 (Ktalbe로부터) 최소 KI를 선택, 즉,
Figure 112009020272242-pct00039
이고, 여기서, δ≥0이고, KI-1 <
Figure 112009020272242-pct00040
이다. 그러나, 2개의 FEC 블록 사이즈가 사용되는 경우, FEC 블록 사이즈 KI -1 및 KI를 사용하여 인코드되는 세그먼트의 수를 제공하는 수학식 4로 KI -1 및 KI가 결정된다.
Figure 112009020272242-pct00041
터보 코더 내부 인터리버가 정의된 FEC 블록 사이즈의 세트
기초 FEC 코더(104)는 단지 한정된 FEC 블록 사이즈(혹은 입력 사이즈) 세트만 지원한다. 보편성에 대한 손실 없이, FEC 코더(104)가 터보 코더임을 가정하면, 터보 코더에 의해 지원된 FEC 블록 사이즈 세트는 터보 코드 내부 인터리버가 정의된 인터리버 사이즈 세트이다. 그러나, 당업자는 LDPC(low-density parity check) 코드, 컨볼루션 코드, 블록 터보 코드, 리드-솔로몬(Reed-Solomon) 코드 등을 포함하는 그 외의 FEC 스킴이 104에 사용될 수도 있음을 인지할 것이다.
일단 각 세그먼트에 대한 세그먼트의 수 C 및 FEC 블록 사이즈가 결정되면, 이 정보는, 하나의 FEC 블록 사이즈가 허용되는 경우에만, CTB(X 비트)가 FEC 블록 사이즈 KI로 인코드된 C개의 세그먼트로 분할되는 코드 블록 분할 회로(102)로 전달된다. 대안적으로, 2개의 인접한 FEC 블록 사이즈가 허용되는 경우, 코드 블록 분할 회로(102)는 FEC 블록 사이즈 KI로 인코드되는 CI 세그먼트와 FEC 블록 사이즈 KI -1로 인코드되는 CI -1 세그먼트를 출력할 수 있다.
필러 비트 삽입
필러 비트(각 세그먼트에 대해 패드됨)의 수는, 세그먼트의 FEC 인코딩에 사용되는 세그먼트 사이즈와 FEC 블록 사이즈에 기초하여 결정될 수 있다. 전체 필러 비트를 C개의 세그먼트에 분배하는 적어도 2가지 방법이 있다.
● 응집 필러(Concentrated-filler). 세그먼트 사이즈를 너무 작게 만들지 않으면서 필러 비트를 가능한 적은 세그먼트에 둔다. 일례에서, 모든 필러 비트는 제1 세그먼트의 시작에 나타날 수 있다. 단지 하나의 세그먼트(모든 필러 비트를 포함함)가 개별적으로 다뤄질 필요가 있다는 것이 이점이다. 또한, 필러 비트는 2개의 FEC 블록 사이즈가 CTB에 사용되는 경우, 더 작은 FEC 블록 사이즈 KI -1 보다는 보다 큰 FEC 블록 사이즈 KI로 인코드되는 세그먼트로 패드될 수 있다. 이 방법은 2개의 인접한 FEC 블록 사이즈의 인코딩을 허용하는 경우에 특히 매력적이다.
● 분산 필러(Distributed-filler). 필러 비트를 고르게(가능한 많이) 복수의 세그먼트로 분산한다. 필러 비트는 모든 C개의 세그먼트만큼 분배될 수 있다.
송신기 및 수신기의 효율적인 구현을 위해, 응집 필러가 바람직하다. 바람직한 실시예는 인코더에 보내기 전에 FEC 블록 사이즈 KI를 이용해서 Y″(2개의 인접 FEC 블록 사이즈를 허용하는 경우; 하나의 FEC 블록 사이즈만을 허용하는 경우에는 Y) 연속 필러 비트를 세그먼트들 중의 하나(예컨대, 제1 또는 마지막) 앞에 부가한다. 성능의 관접에서는, Y″연속 필러 비트를 FEC 블록 사이즈 KI를 갖는 세그먼트의 끝에 첨부하는 것과 균등하다.
도 1로 돌아가서, 각 세그먼트에 대해서(회로(102)에 의해 생성된), FEC 코드워드는 필러 비트를 세그먼트로 삽입하여 FEC 입력 블록을 형성하는 단계; FEC 입력 블록을 FEC 인코딩하는 단계; 및 필러 비트와 관련된 비트를 폐기하는 단계를 이용하여 결정된다.
회로(102)에 의해 생성된 각 세그먼트는 필러 비트 삽입이 일어나는 필러 회로(102)에 전달된다. 어떠한 필러 비트도 요구되지 않으면, 필러 회로는 투과성(transparent), 즉 어떠한 필러 비트도 부가되지 않는다(Kfiller=0). 세그먼트(필러 비트에 따른)는 이후, C개의 세그먼트의 터보 인코딩이 C개의 FEC 코드워드를 초래하는 터보 인코더(104)로 전달된다. 이후 필러 비트는 회로(105)에 의해서 폐기되고 최종 C개의 코드워드는 송신 회로(108)에 의해서 적절히 송신된다. 회로(103)에 의해서 어떠한 필러 비트도 부가되지 않으면, 필러 폐기 회로(105)는 투과성, 즉, 어떠한 필러 비트도 제거되지 않는다(Kfiller=0). 회로(105)는 필러 비트에 대응하는 어떠한 비트도 폐기하지 않을 수 있음에 유의한다.
도 2는 수신기의 블록도이다. 동작 동안 수신된 신호 벡터는 연관된 세그먼트에 따라 수신된 신호 벡터의 일부를 조직화하는 코드 블록 디세그먼테이션(de-segmentation) 회로(202)를 통과한다. 세그먼트 사이즈, 세그먼트의 수, 각 세그먼트를 터보 디코드하는데 사용된 FEC 블록 사이즈, 필러 비트의 수는, 인코더에서와 유사한 방식으로 논리 회로(213)와 이용가능한 FEC 블록 사이즈 테이블(215)을 사용하여 결정될 수 있다. 필러 핸들링 회로(204)는 필러 비트의 위치 정보를 이용하여, 예컨대 필러 비트에 대응하는 LLR을 높은 등급(high magnitude)으로 설정함으로써 터보 디코더(206)에 이익이 된다. 터보 디코딩 이후, 회로(208)는 필러 비트를 폐기하여 세그먼트의 추정을 얻는다. 코드 블록 어셈블러(211)는 회로(208)로부터 얻어진 세그먼트의 추정을 적절하게 수집하고 정렬함으로써 추정된 운송을 어셈블한다.
구성 코더의 패리티 비트 제거
본 설명은 FEC 코드워드를 결정하는 특정한 방법을 제공한다. 송신기에서 필러 비트 삽입의 정보를 이용하는 방법이 기술된다. 특히, 방법은 어떤 비트가(조직적 비트와 패리티 비트 모두) 무시해도 좋은 성능 하락(degradation)을 갖거나 또는 전혀 갖지 않고 터보 인코더 출력으로부터 폐기될 수 있는지 결정한다. 일반적으로, 필러 비트가 알려져 있으므로, 이 비트 중 체계적인 비트(주지 비트와 동일한)는 송신에 앞서 폐기될 수 있다. 그러나, 어떤 패리티 비트가 폐기될 수 있는지는 분명하지 않다.
도 3은 도 1의 터보 인코더(104)의 블록도이다. 동작 동안, 길이 KI 비트의 입력 블록은 인터리버(301)와 구성 인코더(302) 모두에 들어간다. 인터리버(301)는 입력 블록을 인터리브하고 인터리브된 순서로 입력 블록을 구성 인코더(303)에 전달한다. 구성 인코더(303)는 이후 인터리브된 입력 블록을 인코드한다. 마찬가지로, 구성 인코더(302)는 원(orginal) 입력 블록을 인코드한다. 코드워드 블록 x는 체계적인 블록(FEC 입력 블록), 구성 인코더(302)의 출력, 및 구성 인코더(303)의 출력으로 구성된다. 코드워드 블록 x는 이후 회로(105)로 보내진다.
예컨대, 테일드 터보 코드와 같은 종래의 터보 인코더에서, 구성 인코더의 초기 상태(시프트 레지스터(shift register) 컨텐츠)는 모두 제로로 가정한다. 그러한 경우, Kfiller 필러 비트(보통 0)가 입력 블록의 터보 코드의 시작에서 삽입될 때, Kfiller 비트 위치에 대응하는 구성 인코더(302)의 체계적인 비트와 패리티 비트는 모두 제로이다. 따라서, 이들 비트는 송신기에서 폐기될 수 있고, 수신기는 터보 디코딩을 실행하는 동안 이 정보를 이용할 수 있다. 그러나, 구성 인코더(303)에서, Kfiller 비트는 터보 코드 인터리버로 인해서 스크램블(scramble)되므로 필러 비트에 대응하는 구성 인코더(303)의 패리티 비트는 알려지지 않으므로 간단히 폐기될 수 없다.
터보 코더가 테일-바이팅 구성 인코더(tail-biting constituent encoder)를 갖는 경우, 구성 인코더의 초기 상태는 항상 제로가 아닐 수 있다. 테일-바이팅 코드에 대해서, 구성 인코더에 대한 초기 상태 및 최종 상태는 동일하고 입력 블록에 의존한다. 따라서, Kfiller 연속 필러 비트(즉, 제로)가 터보 코드 입력 블록의 시작에서 삽입되면, Kfiller 비트 위치에 대응하는 구성 인코더(302)의 패리티 비트는 항상 제로인 것은 아니다. 그러나, 구성 인코더의 Kfiller 패리티 비트 대부분이 어떠한 정보도 운반하지 않는다는 것이 증명될 수 있다.
일반적으로, 연속 필러 비트의 그룹은 하나의 세그먼트로 삽입되어서 FEC 입력 블록을 형성하며, 여기서 그룹 길이는 2m-1의 배수(3GPP 터보 코더 내의 구성 컨볼루션 코드(constituent convolutional codes)에 대해서 7)이다. 이후, FEC 입력 블록은 FEC 인코드되고 필러 비트에 관련된 패리티 비트는 폐기된다. FEC 인코더는 단독으로 사용된 테일-바이팅 컨볼루션 코드, 또는 터보 코더의 구성 코드로서 사용된 테일-바이팅 컨볼루션 코드일 수 있다.
특히, 테일-바이팅 구성 코드로 터보 코드에 사용되는 경우, 필러 비트에 따른 조직적 비트의 그룹; 및 구성 인코더의 출력에서 필러 비트의 그룹에 대응하는 패리티 비트는 폐기될 수 있고, 여기서 구성 인코더는 테일-바이팅 터보 코더에 대해서 인터리빙하지 않고 FEC 입력 블록을 취한다. 이것은 이하에서 나타낸다.
단계 i에서 구성 인코더(302)의 시프트 레지스터의 상태를 S(i)로 두고, m은 시프트 레지스터 내의 구성요소의 수로 두고, g는 0보다 큰 임의의 정수로 둔다. (2m-1)×g 제로가 단계 i+1로부터 단계 i+(2m-1)×g까지 구성 인코더로 입력되는 경우, (Rel. 6 3GPP 터보 코드에서 사용되는 것과 같은) 순환적 컨볼루션(recursive convolutional) 인코더의 특성은 다음과 같다.
Figure 112009020272242-pct00042
S(i)는 상수가 아닐 수 있음에 유의한다. 더욱이, 중간의 상태 S(j)는 상수 가 아니거나 또는 상태 S(i)(i<j<i+(2m-1)g)와 동일하지 않을 수 있다.
따라서, 구성 인코더의 상태는 단계 i+1내지 단계 i+(2m-1)×g 사이에서 바뀌지 않고 유지된다. 따라서, 이러한 필러 비트가 시프트 레지스터 상태를 변경하지 않아서 디코더에 대해서 어떠한 정보도 제공하지 않으므로, 송신기는 그러한 단계 동안 구성 인코더를 폐기함으로써 수학식 7을 이용할 수 있다. 수신기 내의 디코더는 또한 필러 비트 위치 및 값의 정보에 기초하여 마찬가지로 수학식 7을 이용할 수 있다. 다음으로, 상기 방법은 Kfiller 필러 비트(제로)가 테일-바이팅 터보 코드의 입력 내의 연속적인 위치로 삽입되는 일례로 기술된다.
Kfiller 연속 필러 비트(제로)는 터보 코드 입력 블록,
Figure 112009020272242-pct00043
에 삽입되기 때문에, 구성 인코더(302)의 p×g×(2m-1) 패리티 비트는 폐기될 수 있다. 여기서, p는 FEC 입력 블록 내의 각 비트에 대해 생성되는 구성 인코더(302)의 출력에서 패리티 비트의 수이다. 따라서, 필러 비트의 그룹에 대응하는 패리티 비트만이 구성 인코더(302)의 출력에서 폐기되며, 구성 인코더(302)는 테일-바이팅 터보 코더에 대해 인터리빙하지 않고 FEC 입력 블록을 취한다.
테일-바이팅 3GPP 터보 코더에 대해서, 구성 인코더 1에서 p=1, m=3이다. 따라서,
Figure 112009020272242-pct00044
패리티 비트는 Kfiller 연속적인 필러 비트에 대해서 구성 인코더(302)로부터 폐기될 수 있다. m=3이므로, 구성 인코더(302)의 Kfiller 필러 비 트에 대응하는 최대 6개의 패리티 비트만이 구성 인코더(302)의 출력으로 유지될 필요가 있다.
구성 인코더(303)에서, Kfiller 필러 비트는 터보 코드 인터리버로 인해서 분산될 수 있다. 따라서, 성능에 영향을 주지 않고 구성 인코더(303)로부터 패리티 비트를 폐기하는 것이 가능하지 않을 수 있다.
후술하는 부분은 코드 블록 분할 규칙이 사용될 수 있는, 예컨대 HARQ(hybrid-Automatic Repeat reQuest), MIMO(Multiple Input Multi Output) 등의 일부 예시 시나리오를 기술한다.
TB ( Transport Block ) 형성자
상술한 코드 블록 분할 규칙은 HARQ 채널 상의 CTB에 적용된다. 코드 블록 분할 전에, TTI(transmission time interval) 내의 기지국으로부터 단일 사용자에게 보내질 필요가 있는 정보 비트는 적어도 하나의 TB로 분할되어, 적어도 하나의 HARQ 채널을 통과할 필요가 있을 수 있다. 예를 들면, 도 4는 정보 비트가 2개의 HARQ 채널(HARQ1 및 HARQ2에 대응하는)과, 2개의 운송 블록 TB1 및 TB2를 이용해서 송신되는 일례를 보여준다. 길이 A의 정보 비트는 TB 형성 회로(402)에 의해서 수신되어 하나 이상의 공간 스트림 상에 송신된다. 회로(402)는 X' 비트를 운송 블록 TB1으로 지정하며, 여기서 X'≤A; HARQ1 프로세서(404)는 CRC 비트를 X' 비트에 첨부하여 길이 X의 CTB를 형성하고; 길이 X의 CTB는 제1 HARQ 채널에 매핑된다. CTB는 코드 블록 분할 회로(102)에 보내진다.
회로(402)는 정보 비트로부터의 W'=A-X' 비트를 제2 운송 블록으로 지정하고; HARQ2 프로세서(406)는 CRC 비트를 Y 비트에 첨부하여 제2 CTB를 형성하고; CTB는 제2 HARQ 채널에 매핑된다. CTB는 코드 블록 분할 회로(102)에 보내진다.
회로(404 및 406)는 HARQ에 관련된 다른 기능성과 같은 부가적인 기능을 실행하여, 제어 정보 등을 부가할 수 있음에 유의한다.
도 4의 개념이 2개의 HARQ 채널을 이용해서 도시되지만, 복수의 HARQ 채널로 쉽게 확장될 수 있다. 하나 이상의 HARQ 채널이 TTI(Transmission Time Interval) 내의 사용자를 지원하는 경우, 코드 블록 분할 규칙은 각 TB에 적용될 수 있다.
다수의 HARQ 채널은, 사용자당 TTI에 대해서 너무 많은 FEC 코드워드(또는 세그먼트)를 갖기 때문에, 예컨대 큰 대역폭(예컨대, 20㎒), 고순위 변조(예컨대, 64QAM), 멀티스트림 MIMO 등으로부터 발생할 수 있다. 다수의 HARQ 채널은 또한 VoIP 및 최선의-노력(best-effort) 데이터와 같은 상이한 QoS를 갖는 TB에 사용될 수 있다.
MIMO 코드워드는 하나의 MIMO 스트림 상의 TTI 내의 단일 사용자에게 보내지는 비트들을 포함한다. 따라서 MIMO 코드워드는 하나 이상의 FEC 코드워드를 포함할 수 있다. 때때로 MIMO 코드워드는 MIMO 스트림 상의 비트들을 지칭하는데 사용된다.
TB의 생성을 위한 규칙이 정의될 수 있다. 일 실시예에서, TB는 단지 x(예컨대, x=8) FEC 코드워드(EUTRA에서 eNodeB 스케줄러에 의해서 결정된 x의 값)를 포함할 것이다. 다른 실시예에서, x이상의 FEC 코드워드가 한 TB에 대해서 요구되면, 2개의 TB가 다음과 같이 생성된다. 패킷은 2개의 TB 사이에 적절히 균등하게 분할되며, 각 TB는 거의 같은 사이즈의 FEC 코드워드와 거의 동일한 수를 갖는다. 또 다른 실시예에서, 2개의 MIMO 스트림에 보내지는 FEC 코드워드에서는, 각각은 개별 TB에 속한다. 또 다른 실시예에서, 2개의 동시 HARQ 채널을 이용하는 동안 3개의 MIMO 스트림에 보내지는 FEC 코드워드에 대해서, 첫 번째(평균적으로, 최선의 품질 스트림)는 하나의 TB에 속하고 제2 및 제3 스트림은 제2 TB에 속한다. 또 다른 실시예에서, 2개의 HARQ 채널을 이용해서 보내질 4개의 MIMO 코드워드, 및 여러 조합이 가능하다. 예를 들어, (a) TBI=1,2 TB2=3,4 (b) TB1=1,3 TB2=2,4 (c) TB1=1,2 TB2=2,3 (d) TB1=1, TB2=2,3,4이다. 여기서 TBi는 i번째 HARQ 채널의 TB를 지칭하고; 숫자 1 내지 4는 MIMO 코드워드(또는 스트림) 번호를 지칭한다.
도 5는, 정보 비트가 적어도 하나의 HARQ 채널을 통해서 수신되는 경우 수신기 처리의 블록도이다. 코드 블록 어셈블러(211)로부터 수신된 비트는 적절한 채널 프로세서(504 및 506)에 입력된다. 채널 프로세서의 출력은, TB들을 조합하고 추정된 정보 비트를 출력하는 TB 어셈블러 회로(502)에 입력되는 추정된 운송 블록 TB1 및 TB2이다.
도 6은 도 1의 송신기의 동작을 보여주는 플로우차트이다. 논리 흐름은, 분할 회로가 길이 X의 CTB를 수신하는 단계 601에서 시작한다. 단계 603에서 논리 회로는 테이블(107)을 액세스하여 적절한 FEC 블록 사이즈를 선택한다. 상술한 바 와 같이, 본 발명의 제1 실시예에서 FEC 블록 사이즈 KI는 테이블(107) 내에 위치한 비-연속 FEC 블록 사이즈의 그룹으로부터 결정되며, 여기서 테이블(107) 내의 이용가능한 비-연속 FEC 블록 사이즈는 Kmin와 Kmax 사이에 있으며, Kmin<=KI<Kmax이다. 상술한 바와 같이, KI는 X에 기초한다. X는 논리 회로(106)에 의해서 CTB로부터 결정된다. 일단 X가 결정되면,
Figure 112009020272242-pct00045
Figure 112009020272242-pct00046
이 결정된다. 본 발명의 제2 실시예에서, FEC 블록 사이즈 KI 및 KI -1이 결정되며, 여기서
Figure 112009020272242-pct00047
이다.
계속해서, 단계 605에서 세그먼트의 수 C 및 FEC 블록 사이즈는 분할 회로(102)로 전달되고, 단계 607에서 분할 회로는 길이 X의 CTB를 실질적으로 KI(또는 대안적으로 KI 및 KI -1)와 동일한 사이즈의 C개의 세그먼트로 분할한다. 필러 비트는 (필요하면) 단계 609에서 회로(103)를 통해서 부가되고 단계 611에서 C개의 세그먼트 각각은 인코드된다(즉, FEC 코드워드는 각 C개의 세그먼트에 대해서 결정된다). 마지막으로, 단계 613에서 FEC 코드워드는 송신 회로(108)를 통해서 송신된다.
상술한 바와 같이, FEC 코드워드를 결정하는 단계는 필러 비트를 세그먼트로 삽입하여 FEC 입력 블록을 형성하는 단계, FEC 입력 블록을 FEC 인코딩하는 단계, 및 필러 비트와 관련된 비트를 폐기하는 단계를 포함한다. 이 단계는 연속적인 필러 비트의 그룹을 하나의 세그먼트로 삽입하여 그룹 길이가 7의 배수인 FEC 입력 블록을 형성하는 단계, FEC 입력 블록을 FEC 인코딩하는 단계, 및 필러 비트와 관 련된 비트를 폐기하는 단계를 수반한다. 필러 비트를 폐기하는 단계는, 필러 비트에 대응하는 체계적인 비트의 그룹을 폐기하는 단계와, 구성 인코더 1의 출력에서 필러 비트의 그룹에 대응하는 패리티 비트를 폐기하는 단계를 포함하며, 여기서 구성 인코더는 테일-바이팅 터보 코더에 대해서 인터리빙하지 않고 FEC 입력 블록을 취한다.
도 7은 도 2의 수신기의 동작을 보여주는 플로우차트이다. 논리 흐름은, 논리 회로(213) 및 테이블(215)을 이용하여 세그먼트 사이즈, 세그먼트의 수, 각 세그먼트를 터보-디코드하는데 사용되는 FEC 블록 사이즈, 및 필러 비트의 수가 결정되는 단계 701에서 시작한다. 상술한 바와 같이, 본 발명의 제1 실시예에서, FEC 블록 사이즈 KI는 테이블(215)에 위치한 비-연속 FEC 블록 사이즈의 그룹으로부터 결정되며, 여기서 테이블(215) 내의 이용가능한 비-연속 FEC 블록 사이즈는 Kmin와 kmax 사이에 있고, Kmin<=KI<Kmax이다. 상술한 바와 같이, KI는 X에 기초한다. X는 논리 회로(213)에 의해서 수신된 신호 벡터로부터 결정된다. 이후 논리 회로(213)는
Figure 112009020272242-pct00048
Figure 112009020272242-pct00049
를 결정한다. 본 발명의 제2 실시예에서, FEC 블록 사이즈 KI 및 KI -1가 결정되고, 여기서
Figure 112009020272242-pct00050
이다.
단계 703에서 수신된 신호 벡터는 연관된 C개의 세그먼트에 따라 수신된 신호 벡터의 일부를 조직화하는 코드 블록 디세그먼테이션 회로(202)를 통과한다. 단계 705에서 예를 들어, 필러 비트에 대응하는 LLR을 높은 등급으로 설정함으로 써, 필러 핸들링 회로(204)는 필러 비트의 위치 정보를 이용하여 터보 디코더(206)를 이롭게 한다. C개의 세그먼트의 각각은 단계 707에서 디코드된다. 터보 디코딩 이후, 회로(208)는 필러 비트를 폐기하여 세그먼트의 추정을 얻는다(단계 709). 코드 블록 어셈블러(211)는 회로(208)로부터 얻어진 세그먼트의 추정을 적절하게 수집하여 배열함으로써 추정된 수송을 어셈블한다(단계 711).
본 발명은 특히 특정한 실시예를 참조하여 도시되고 기술되었지만, 본 발명의 취지 및 범위를 벗어나지 않고 형태 및 세부사항에서의 다양한 변경이 가능함을 당업자라면 이해할 것이다. 그러한 변경은 후술하는 특허청구범위의 범위에 수반되도록 의도된다.

Claims (10)

  1. 송신기를 동작시키는 방법으로서,
    길이 X의 CTB(concatenated transport block)를 수신하는 단계;
    비-연속(non-contiguous) FEC 블록 사이즈들의 그룹으로부터 2개의 이용가능한 FEC 블록 사이즈들 KI-1 및 KI를 결정하는 단계 - 상기 이용가능한 비-연속 FEC 블록 사이즈들은 Kmin와 Kmax 사이이고, Kmin≤KI-1<Kmax, Kmin≤KI<Kmax이고, KI-1 및 KI는 X에 또한 기초함 -;
    길이 X의 상기 CTB를 사이즈들이
    Figure 112014035359453-pct00060
    인 C개의 세그먼트들로 분할(segment)하는 단계;
    FEC 블록 사이즈 KI 또는 KI-1을 이용하여 상기 C개의 세그먼트들 각각을 인코딩함으로써 FEC 코드워드를 결정하는 단계; 및
    채널을 통해서 상기 C개의 FEC 코드워드들을 송신하는 단계
    를 포함하고,
    CBSSi는 상기 CTB의 i번째 세그먼트의 사이즈를 나타내고,
    Figure 112014035359453-pct00061
    이고, 여기서
    Figure 112014035359453-pct00062
    ,
    Figure 112014035359453-pct00063
    ,
    Figure 112014035359453-pct00064
    이고,
    CI-1 및 CI는 FEC 블록 사이즈들 KI-1 및 KI를 각각 사용하여 인코드된 세그먼트의 수이고, 여기서, KI
    Figure 112014035359453-pct00065
    보다 크거나 동일한 이용가능한 FEC 블록 사이즈들 중 가장 작은 사이즈이고, DI는 인접하는 FEC 블록 사이즈들 KI-1와 KI 간의 차를 나타내는, 송신기 동작 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 송신기를 동작시키는 방법으로서,
    길이 X의 CTB(concatenated transport block)를 수신하는 단계;
    비-연속(non-contiguous) FEC 블록 사이즈들의 그룹으로부터 이용가능한 FEC 블록 사이즈 KI를 결정하는 단계 - 상기 이용가능한 비-연속 FEC 블록 사이즈들은 Kmin와 Kmax 사이이고, Kmin≤KI<Kmax이고, KI는 X에 또한 기초함 -;
    길이 X의 상기 CTB를 실질적으로 KI와 동일한 사이즈들의 C개의 세그먼트들로 분할(segment)하는 단계;
    FEC 블록 사이즈 KI를 이용하여 상기 C개의 세그먼트들 각각에 대한 FEC 코드워드를 결정하는 단계; 및
    채널을 통해서 상기 C개의 FEC 코드워드들을 송신하는 단계
    를 포함하고,
    상기 FEC 코드워드를 결정하는 단계는,
    연속적인 필러 비트들의 그룹들을 하나의 세그먼트에 삽입하여 FEC 입력 블록을 형성하는 단계 - 상기 그룹의 길이는 7의 배수임 -;
    상기 FEC 입력 블록을 FEC 인코딩하는 단계; 및
    상기 필러 비트들에 관련된 비트들을 폐기하는 단계를 더 포함하고,
    상기 비트들을 폐기하는 단계는,
    상기 필러 비트들에 대응하는 정보 비트(systematic bit)들의 그룹들을 폐기하는 단계; 및
    구성 인코더(constituent encoder) 1의 출력에서 필러 비트들의 그룹들에 대응하는 패리티 비트들을 폐기하는 단계 - 상기 구성 인코더는 테일-바이팅 터보 코더(tail-biting turbo coder)들에 대해서 인터리빙하지 않고 상기 FEC 입력 블록을 취함 - 를 더 포함하는
    송신기 동작 방법.
  8. 길이 X의 CTB를 수신하는 수신 회로;
    비-연속 FEC 블록 사이즈들의 그룹으로부터 2개의 이용가능한 FEC 블록 사이즈들 KI-1 및 KI를 결정하는 논리 회로 - 상기 이용가능한 비-연속 FEC 블록 사이즈들은 Kmin와 Kmax 사이이고, Kmin≤KI-1<Kmax, Kmin≤KI<Kmax이며, KI-1 및 KI는 X에 또한 기초함 -;
    길이 X의 상기 CTB를 사이즈들이
    Figure 112014035359453-pct00066
    인 C개의 세그먼트들로 분할하는 코드 블록 분할 회로;
    FEC 블록 사이즈 KI 또는 KI-1을 이용하여 상기 C개의 세그먼트들 각각에 대해서 FEC 코드워드를 결정하는 인코딩 회로; 및
    채널을 통해서 상기 C개의 FEC 코드워드들을 송신하는 송신 회로
    를 포함하고,
    CBSSi는 상기 CTB의 i번째 세그먼트의 사이즈를 나타내고,
    Figure 112014035359453-pct00067
    이고, 여기서
    Figure 112014035359453-pct00068
    ,
    Figure 112014035359453-pct00069
    ,
    Figure 112014035359453-pct00070
    이고,
    CI-1 및 CI는 FEC 블록 사이즈들 KI-1 및 KI를 각각 사용하여 인코드된 세그먼트의 수이고, 여기서, KI
    Figure 112014035359453-pct00071
    보다 크거나 동일한 이용가능한 FEC 블록 사이즈들 중 가장 작은 사이즈이고, DI는 인접하는 FEC 블록 사이즈들 KI-1와 KI 간의 차를 나타내는, 장치.
  9. 삭제
  10. 삭제
KR1020097006933A 2006-10-04 2007-09-17 데이터를 인코딩 및 디코딩하는 방법 및 장치 KR101429786B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US82821306P 2006-10-04 2006-10-04
US60/828,213 2006-10-04
US11/539,404 US8356232B2 (en) 2006-10-06 2006-10-06 Method and apparatus for encoding and decoding data
US11/539,404 2006-10-06
PCT/US2007/078676 WO2008042586A2 (en) 2006-10-04 2007-09-17 Method and apparatus for encoding and decoding data

Publications (2)

Publication Number Publication Date
KR20090074183A KR20090074183A (ko) 2009-07-06
KR101429786B1 true KR101429786B1 (ko) 2014-08-18

Family

ID=39269076

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097006933A KR101429786B1 (ko) 2006-10-04 2007-09-17 데이터를 인코딩 및 디코딩하는 방법 및 장치

Country Status (9)

Country Link
EP (1) EP2080271B1 (ko)
JP (2) JP4714941B2 (ko)
KR (1) KR101429786B1 (ko)
CN (1) CN101573872B (ko)
AR (1) AR064591A1 (ko)
BR (1) BRPI0717506B8 (ko)
ES (1) ES2386911T3 (ko)
PL (1) PL2080271T3 (ko)
WO (1) WO2008042586A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5453268B2 (ja) * 2007-09-14 2014-03-26 エージェンシー フォー サイエンス, テクノロジー アンド リサーチ ビット列の符号化方式および符号化回路
JP4922242B2 (ja) * 2008-06-05 2012-04-25 パナソニック株式会社 符号化装置、符号化方法、及びビタビ復号装置
JP2010004416A (ja) * 2008-06-23 2010-01-07 Fujitsu Ltd 移動無線装置
US8726137B2 (en) * 2009-02-02 2014-05-13 Telefonaktiebolaget L M Ericsson (Publ) Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes
CN107659384A (zh) * 2012-11-16 2018-02-02 华为技术有限公司 数据处理的方法和装置
EP3264613A4 (en) * 2015-04-01 2018-04-11 Huawei Technologies Co. Ltd. Encoding method, apparatus, base station and user equipment
WO2021044765A1 (ja) * 2019-09-04 2021-03-11 株式会社日立国際電気 通信システム及び通信方法
WO2022220394A1 (ko) * 2021-04-12 2022-10-20 삼성전자 주식회사 전송 데이터 손실 복구 방법 및 그 전자 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004349742A (ja) * 2003-05-19 2004-12-09 Matsushita Electric Ind Co Ltd 誤り訂正符号化/復号化装置および誤り訂正符号化/復号化方法
JP2005006115A (ja) 2003-06-12 2005-01-06 Matsushita Electric Ind Co Ltd マルチキャリア通信方法及びその通信装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09321634A (ja) * 1996-05-27 1997-12-12 Toshiba Corp ブロック・デ・インターリーブ装置
FI106758B (fi) * 1999-04-16 2001-03-30 Nokia Networks Oy Segmentointimekanismi lohkoenkooderia varten
US6397368B1 (en) * 1999-12-06 2002-05-28 Intellon Corporation Forward error correction with channel adaptation
CN1691785A (zh) * 2004-04-19 2005-11-02 上海国皓电子有限公司 基于dvb数字电视射频信道测量的前端装置
WO2008013528A1 (en) * 2006-07-25 2008-01-31 Thomson Licensing Recovery from burst packet loss in internet protocol based wireless networks using staggercasting and cross-packet forward error correction
KR20080094192A (ko) * 2007-04-19 2008-10-23 엘지전자 주식회사 신호 송수신 방법 및 신호 송수신 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004349742A (ja) * 2003-05-19 2004-12-09 Matsushita Electric Ind Co Ltd 誤り訂正符号化/復号化装置および誤り訂正符号化/復号化方法
JP2005006115A (ja) 2003-06-12 2005-01-06 Matsushita Electric Ind Co Ltd マルチキャリア通信方法及びその通信装置

Also Published As

Publication number Publication date
JP5110407B2 (ja) 2012-12-26
JP4714941B2 (ja) 2011-07-06
EP2080271B1 (en) 2012-07-11
BRPI0717506B1 (pt) 2019-12-03
CN101573872B (zh) 2013-06-12
ES2386911T3 (es) 2012-09-05
CN101573872A (zh) 2009-11-04
WO2008042586A2 (en) 2008-04-10
BRPI0717506B8 (pt) 2019-12-17
JP2011066932A (ja) 2011-03-31
BRPI0717506A8 (pt) 2017-03-07
JP2008092570A (ja) 2008-04-17
AR064591A1 (es) 2009-04-15
EP2080271A2 (en) 2009-07-22
BRPI0717506A2 (pt) 2014-06-24
KR20090074183A (ko) 2009-07-06
WO2008042586A3 (en) 2008-07-03
PL2080271T3 (pl) 2012-10-31

Similar Documents

Publication Publication Date Title
US8356232B2 (en) Method and apparatus for encoding and decoding data
JP6204543B2 (ja) トランスポートブロックサイズの決定方法及びこれを用いた信号伝送方法
KR101429786B1 (ko) 데이터를 인코딩 및 디코딩하는 방법 및 장치
US9225470B2 (en) Method for determining transport block size and signal transmission method using the same
JP2008219892A (ja) データを符号化および復号化する方法および装置
CN101217352B (zh) 一阶段速率匹配的缓冲设置方法
KR20090057415A (ko) 데이터 인코딩 및 디코딩 방법 및 장치
JP2011147188A (ja) データを符号化および復号するための方法および装置
US20120185756A1 (en) Apparatus and method for transmitting data using a ctc (convolutional turbo code) encoder in a mobile communication system
JP2007081931A (ja) 無線送信装置、無線受信装置
US20020031168A1 (en) Method and apparatus for flexible data rate matching by symbol insertion for a data communication system
KR20050054405A (ko) 이동통신시스템에서 상이한 전송시간간격들을 가지는채널들을 다중화하는 전송률 정합 방법 및 장치
US20020124224A1 (en) Method and system for matching information rates in turbo coded channels
JP5622646B2 (ja) 送信装置、受信装置、無線通信装置および無線通信方法
JP2001326577A (ja) 直接連接畳込み符号器、及び、直接連接畳込み符号化方法

Legal Events

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

Payment date: 20170726

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180727

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190725

Year of fee payment: 6