KR100330980B1 - 인터리빙 방법, 인터리빙 장치 및 인터리빙 패턴 생성 프로그램이 기록된 기록 매체 - Google Patents

인터리빙 방법, 인터리빙 장치 및 인터리빙 패턴 생성 프로그램이 기록된 기록 매체 Download PDF

Info

Publication number
KR100330980B1
KR100330980B1 KR1019997006257A KR19997006257A KR100330980B1 KR 100330980 B1 KR100330980 B1 KR 100330980B1 KR 1019997006257 A KR1019997006257 A KR 1019997006257A KR 19997006257 A KR19997006257 A KR 19997006257A KR 100330980 B1 KR100330980 B1 KR 100330980B1
Authority
KR
South Korea
Prior art keywords
interleaving
pattern
interleaving pattern
rows
data
Prior art date
Application number
KR1019997006257A
Other languages
English (en)
Other versions
KR20000070038A (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 KR20000070038A publication Critical patent/KR20000070038A/ko
Application granted granted Critical
Publication of KR100330980B1 publication Critical patent/KR100330980B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • 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/27Coding, 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 using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2767Interleaver wherein the permutation pattern or a portion thereof is stored

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)
  • Detection And Correction Of Errors (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

입력 데이터 시리즈의 데이터가 첫 번째 인터리버에 써진다. 그 데이터는 첫 번째 인터리버로부터 열 단위로 혹은 행 단위로 읽혀지고 복수의 두 번째 인터리버에 열 단위로 혹은 행 단위로 써진다. 데이터는 각 두 번째 인터리버들 각각에서 읽혀지고 필요하다면 하나 혹은 복수의 세 번째 인터리버에 써진다. 그 동작은 한번 혹은 여러 번 반복되며, 그렇게 해서 인터리버들 각각에서 데이터를 읽고 데이터 시리즈를 생성한다. 복수의 인터리빙 패턴들로 인터리빙 패턴을 생성하여 인터리빙이 수행된다. 게다가 터보 인코딩이나 전송에 적합한 인터리빙 패턴이 생성된다.

Description

인터리빙 방법, 인터리빙 장치 및 인터리빙 패턴 생성 프로그램이 기록된 기록 매체 {Interleaving method, interleaving apparatus, and recording medium in which interleave pattern generating program is recorded}
이동 통신 시스템과 같은 디지털 전송에서, 수신된 신호의 레벨은 빌딩이나 그와 비슷한 것에 반사되어 발생되는 다중 경로 페이딩(fading)에 의해 시간에 관해 크게 변화한다. 그러므로 버스트(burst) 오류 같은 디지털 오류가 발생할 수 있을 것이다. 그리고 컴팩트 디스크 혹은 하드 디스크와 같은 디지털 시스템들의 저장 매체에서 매체 표면의 읽는 면에서 긁힘, 먼지 혹은 그와 비슷한 것 때문에 버스트 오류와 같은 디지털 오류가 발생할 수 있을 것이다. 그러므로 여러 가지 시스템들에서 다양한 오류 정정 코드들이 사용된다. 그러한 오류 정정 코드에서는 버스트 오류에 관한 정정 능력을 향상하기 위해 오류 정정 코드와 더불어 인터리빙 기술이 사용된다. 버스트 오류가 있을 때에 오류 정정 코드의 정정 능력은 인터리빙 기술에 의존한다.
또한 최근 몇 년내에 제안되었던 고성능의 오류 정정 코드를 사용하는 터보 인코더(turbo encoder)는 인코더들간의 여분의 시스템의 상관도를 감소하기 위해 여러 개의 인코더들을 포함하고, 각각의 인코더는 (인터리빙 처리를 수행하는) 하나의 인터리버(interleaver)를 통해 서로 연결된다. 인터리버는 터보 코드의 능력을 결정하는데 매우 중요하다.
그러므로 상기에 언급된 인터리버를 사용하는 상기에 언급된 이동 통신 시스템들과 같은 전송 시스템들과 터보 인코딩에 적절한 인터리빙 방법이 요청된다.
본 발명이 속한 기술 분야의 숙련된 사람에게는 잘 알려진 것처럼, 인터리빙 방법의 목적은 입력 비트 시리즈의 비트 순서와 출력 비트 시리즈의 비트 순서를 무작위 화하는 것이다. 다음의 관점은 인터리빙 방법의 능력을 평가하기 위한 기준으로 사용될 수 있다.
(1) 두 개의 연속된 입력 비트들이 출력 열에서는 얼마나 멀리 떨어져서 분리될 수 있는가.
(2) 두 개의 연속된 출력 비트들이 입력 열에서는 얼마나 멀리 떨어져 분리되어 있는가.
도 1은 종래의 인터리빙 방법으로서의 블록 인터리빙 방법을 도시한 것이다.
도 1에서 보는 것과 같이, 한 프레임의 데이터(100)는 1152 비트들을 포함한다. 행렬(110)은 N × M (N개의 행과 M개의 열)의 버퍼를 가진다. 인터리빙 방법은M 비트들의 데이터가, 예들 들면, 사선으로 음영진 부분 A로 보여지는 벡터(115)처럼 행의 방향으로 써지고 N 비트들의 데이터가 사선으로 음영진 부분 B로 보여지는 것처럼 열의 방향으로 독출되는 것과 같이 실현된다. 상기에 언급된 기준에 관련하여 인터리빙 방법을 평가하면
(1) 두 개의 연속된 입력 비트들은 인터리브된 출력 시리즈(130)에서 N 비트들보다 더 멀리 분리될 수 없다. 그리고
(2) 두 개의 연속된 출력 비트들은 입력 시리즈에서 최소 M 비트들만큼 분리되어 있다라는 것이 인정된다.
그러나 상기 언급된 인터리빙 방법에서, 입력 비트 시리즈는 입력 비트 시리즈의 시간의 순서로 행의 방향으로 써지고, 써진 데이터는 역시 입력 비트 시리즈의 시간의 순서로 열의 방향으로 독출된다. 그러므로 데이터는 처리 과정들에서 오직 시간의 순서로 일단 써지고 읽혀진다. 그러므로 인터리빙의 효과는 낮고, 무작위화의 성능은 N × M 버퍼에서조차 상기에 언급된 정도로 한정된다.
본 발명은 대체로 버스트(burst) 오류를 위한 오류 정정 코드의 오류 정정 능력을 향상시키는 인터리빙(interleaving) 기술에 관련된다. 더 자세히는, 본 발명은 데이터 무작위화의 정도를 증가시켜 인터리빙의 효과를 향상시키는 인터리빙 방법, 인터리빙 장치 및 인터리빙 패턴(pattern) 생성 프로그램을 저장하는 매체에 관련된다.
도 1은 종래의 인터리빙 방법을 도시한 것이다.
도 2는 본 발명의 첫 번째 실시예에 따른 인터리빙 방법을 도시한 것이다.
도 3은 본 발명의 첫 번째 실시예에 따른 인터리빙 방법을 도시한 것이다.
도 4는 본 발명의 두 번째 실시예에 따른 인터리빙 방법을 도시한 것이다.
도 5는 본 발명의 세 번째 실시예에 따른 인터리빙 방법을 도시한 것이다.
도 6은 본 발명의 네 번째 실시예에 따른 인터리빙 방법을 도시한 것이다.
도 7은 본 발명의 다섯 번째 실시예에 따른 인터리빙 방법을 도시한 것이다.
도 8은 L=64 비트 길이 데이터가 8 비트 × 8비트의 블록 인터리버에 써지는 것을 도시한 것이다.
도 9는 심볼 단위에 의한 인터리빙의 첫 번째 경우를 도시한 것이다.
도 10은 심볼 단위에 의한 인터리빙의 두 번째 경우를 도시한 것이다.
도 11은 심볼 단위에 의한 인터리빙의 세 번째 경우를 도시한 것이다.
도 12는 인터리빙 과정을 설명하는 도면이다.
도 13은 본 발명의 일곱 번째 실시예에 따른 인터리빙 과정을 설명하는 도면이다.
도 14는 본 발명의 일곱 번째 실시예에 따른 인터리빙 과정을 설명하는 도면이다.
도 15는 본 발명의 일곱 번째 실시예에 따른 인터리빙 과정을 설명하는 도면이다.
도 16은 본 발명의 여덟 번째 실시예에 따른 인터리빙 과정을 설명하는 도면이다.
도 17은 본 발명의 여덟 번째 실시예에 따른 인터리빙 과정을 설명하는 도면이다.
도 18은 본 발명의 아홉 번째 실시예에 따른 인터리빙 과정을 설명하는 도면이다.
도 19는 본 발명의 아홉 번째 실시예에 따른 인터리빙 과정을 설명하는 도면이다.
도 20은 본 발명의 아홉 번째 실시예에 따른 인터리빙 과정을 설명하는 도면이다.
도 21은 본 발명의 아홉 번째 실시예에 따른 인터리빙 과정을 설명하는 도면이다.
도 22는 본 발명의 아홉 번째 실시예에 따른 인터리빙 과정을 설명하는 도면이다.
도 23은 인터리빙 패턴 기술 언어의 정의의 일 예를 설명하는 도면이다.
도 24는 인터리빙 패턴 기술 언어의 정의의 일 예를 설명하는 도면이다.
도 25는 인터리빙 패턴 기술 언어의 정의의 일 예를 설명하는 도면이다.
도 26은 인터리빙 패턴 기술 언어의 정의의 일 예를 설명하는 도면이다.
도 27은 인터리빙 패턴 기술 언어를 사용하는 경우에 인터리빙을 실현하는 일 예를 설명하는 도면이다.
도 28은 인터리빙 패턴 기술 언어를 사용하는 경우에 인터리빙을 실현하는 일 예를 설명하는 도면이다.
도 29는 인터리빙 패턴 기술 언어를 사용하는 경우에 인터리빙을 실현하는 일 예를 설명하는 도면이다.
도 30은 인터리빙 패턴 기술 언어를 사용하는 경우에 인터리빙을 실현하는 일 예를 설명하는 도면이다.
도 31은 인터리빙 패턴 기술 언어를 사용하는 경우에 인터리빙을 실현하는 일 예를 설명하는 도면이다.
도 32는 인터리빙 패턴을 생성하기 위한 과정의 흐름을 도시한 것이다.
도 33은 생성된 인터리빙 패턴을 결정하기 위한 과정을 보여주는 흐름도이다.
도 34는 터보 인코더의 구성의 일 예를 설명하는 도면이다.
도 35는 이동 무선 송신기-수신기의 구성의 일 예를 설명하기 위한 블록 다이아그램이다.
도 36은 역인터리빙의 일 예를 보여주는 도면이다.
도 37은 역인터리빙의 일 예를 보여주는 도면이다.
도 38은 터보 코드에 적합한 인터리빙 패턴을 생성하는 것을 설명하는 흐름도이다.
도 39는 인터리빙 패턴을 결정하는 과정을 상세하게 보여주는 도면이다.
도 40은 인터리빙 패턴을 결정하는 과정을 위해 사용되는 소정의 인터리빙 패턴들의 목록을 보여주는 테이블이다.
도 41은 다중 스테이지 인터리빙 방법에 의한 인터리빙 패턴의 생성 과정을 자세하게 보여주는 도면이다.
도 42는 인터리빙 패턴 생성 과정의 첫 번째 스테이지를 설명하는 도면이다.
도 43은 도 42에서 보여진 생성 과정의 특정한 일 예를 보여주는 도면이다.
도 44는 인터리빙 패턴 생성 과정의 다른 예를 설명하는 도면이다.
도 45는 생성된 인터리빙 패턴 검사를 설명하는 도면이다.
도 46은 전송선 인터리버에 적합한 인터리빙 패턴의 생성 과정을 설명하는 흐름도이다.
도 47은 인터리빙 패턴의 결정 과정을 상세하게 보여주는 도면이다.
도 48은 인터리빙 패턴을 생성하기 위해 사용되는 미리 결정된 인터리빙 패턴들의 목록을 보여주는 테이블이다.
도 49는 다중 스테이지 인터리빙 방법에 의한 인터리빙 패턴 생성 과정을 상세하게 보여주는 도면이다.
도 50은 인터리빙을 위한 장치의 일 예를 보여주는 도면이다.
본 발명은 상기에 언급된 관점에서 얻어진다. 본 발명의 첫 번째 목적은 일단 버퍼에서 읽거나 버퍼에 쓰는 과정을 수행한 후에 순서를 바꾸는 과정을 반복적으로 적용하여, 시간의 순서로 하나씩 읽고 쓰는 경우와 비교하여, 인터리빙의 효과를 향상하기 위한 인터리빙 방법을 제공하는데 있다.
상기 언급된 목적을 달성하기 위해, 본 발명에 따르면, 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
데이터 시리즈의 데이터를 첫 번째 인터리버에 쓰고, 그 데이터를 첫 번째 인터리버로부터 열 별로 혹은 행 별로 독출하며, 그 데이터를 복수의 두 번째 인터리버들에 쓰는 첫 번째 단계;
두 번째 인터리버들 각각으로부터 데이터를 독출하고, 필요하다면 하나 혹은 복수의 세 번째 인터리버에 그 데이터를 쓰는 두 번째 단계; 및
두 번째 단계를 한 번 혹은 여러 번 반복해서 생성된 인터리브들 각각으로부터 혹은 첫 번째 단계에 의해 생성된 인터리버들 각각으로부터 데이터를 독출하고, 데이터 시리즈를 출력하는 단계를 포함한다.
상기 언급된 본 발명은 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
데이터 시리즈를 첫 번째 인터리버에 한쪽 방향으로 쓰는 첫 번째 단계;
첫 번째 인터리버로부터 열 데이터 혹은 행 데이터를 독출하고, 첫 번째 인터리버의 크기와는 다른 크기의 두 번째 인터리버에 독출한 데이터를 한쪽 방향으로 쓰며, 열 데이터나 행 데이터를 독출하는 것과 독출한 데이터를 열 별로 혹은 행 별로 쓰는 것을 반복하는 두 번째 단계;
두 번째 단계에 의해 생성된 복수의 두 번째 인터리버들 각각을 첫 번째 인터리버로 간주하여 두 번째 단계를 실행하는 세 번째 단계를 반복하는 단계; 및
세 번째 단계를 반복하거나 두 번째 단계를 실행해서 생성되는 인터리버들 각각으로부터 데이터를 독출하고 그 데이터 시리즈를 출력하는 단계를 포함하도록구성될 수 있을 것이다.
상기 언급된 인터리빙 방법은, 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
데이터 시리즈를 첫 번째 인터리버에 한쪽 방향으로 쓰는 첫 번째 단계;
첫 번째 인터리버로부터 열 데이터 혹은 행 데이터를 독출하고, 첫 번째 인터리버의 크기와는 다른 크기의 두 번째 인터리버에 상기 독출한 데이터를 한쪽 방향으로 쓰며, 열 데이터나 행 데이터를 독출하는 것과 독출한 데이터를 열 별로 혹은 행 별로 쓰는 것을 반복하는 두 번째 단계;
두 번째 단계에 의해 생성된 인터리버들 각각으로부터 열 별로 혹은 행 별로 데이터를 독출하고, 첫 번째 인터리버의 크기와 같은 크기의 인터리버에 상기 데이터를 쓰는 세 번째 단계; 및
세 번째 단계에 의해 생성된 인터리버로부터 데이터를 독출하고, 데이터 열을 출력하는 단계를 포함하도록 구성될 수 있을 것이다.
상기 구성에서, 인터리빙 방법은
세 번째 단계에서 생성된 인터리버를 첫 번째 인터리버로 간주하여 두 번째 단계와 세 번째 단계를 수행하는 네 번째 단계;
네 번째 단계를 한 번 혹은 여러 번 반복하여 생성된 인터리버로부터 데이터를 읽어내는 단계; 및
그 데이터 시리즈를 출력하는 단계를 더 포함한다.
인터리빙 방법은 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
테이블에 복수의 인터리빙 패턴들을 미리 저장하는 단계;
테이블과 출력을 참조하여 입력 데이터 시리즈에 인터리빙 패턴들 중 하나를 적용하는 단계; 및
출력 데이터에 인터리빙 패턴들 중 하나를 적용하는 단계를 반복하고, 그 인터리브된 데이터 시리즈를 출력하는 단계를 포함하도록 구성될 수 있을 것이다.
상기 언급된 구성에서, 제 1항 내지 제 4항 중 어느 한 항에 따른 인터리빙 방법에 따라 테이블에 하나의 인터리빙 패턴이 저장된다.
상기 언급된 본 발명에 따르면, 일단 버퍼에서 읽거나 버퍼에 쓰는 과정을 수행한 후에 반복적으로 순서를 바꾸는 과정이 적용되기 때문에 시간의 순서로 하나 하나 읽고 쓰는 경우와 비교하면 인터리빙의 효과가 개선될 수 있다.
본 발명의 두 번째 목적은 인터리빙을 위한 감소된 데이터 양을 가지고 다양한 인터리빙을 유연하게 지원하는 인터리빙 방법을 제공하는 것이다.
상기에 언급한 목적들을 달성하기 위해, 본 발명에 따르면, 단위 길이의 입력 데이터 시리즈를 인터리빙하고 단위 길이의 인터리브된 데이터 시리즈를 출력하기 위한 인터리빙 패턴의 인터리빙 패턴 기술(記述)을 생성하는 방법에 있어서, 첫 번째 단위의 인터리빙 패턴 기술과 두 번째 단위의 인터리빙 패턴 기술을 사용해서 세 번째 단위의 인터리빙 패턴 기술을 생성하는 단계를 포함한다.
본 발명은 제 7항에서 청구된 인터리빙 패턴 기술 생성 방법을 사용해서 소정의 길이 단위의 인터리빙 패턴 기술을 생성한다.
상기의 구성에서, 인터리빙 패턴 기술은 인터리빙 패턴을 설명하는 패턴 테이블 혹은 인터리빙 패턴 방정식이다.
본 발명의 인터리빙 방법은 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
첫 번째 단위의 인터리빙 패턴 기술과 두 번째 단위의 인터리빙 패턴 기술을 사용해서 세 번째 단위의 인터리빙 패턴 기술을 생성하는 단계; 및
생성된 인터리빙 패턴 기술을 인터리빙 하는 단계를 포함하도록 구성될 수 있을 것이다.
그리고 본 발명의 인터리빙 방법은 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
첫 번째 단위의 인터리빙 패턴 기술과 두 번째 단위의 인터리빙 패턴 기술으로 세 번째 단위의 열에서 인터리빙 목적지들을 계산하는 단계; 및
그 계산의 결과를 가지고 인터리빙 하는 단계를 포함하도록 구성될 수 있을 것이다.
또한 그 인터리빙 방법은,
그 방법을 사용해서 첫 번째 단위의 인터리빙 패턴 기술과 두 번째 단위의 인터리빙 패턴 기술을 생성하는 단계; 및
첫 번째 단위의 상기 인터리빙 패턴 기술과 두 번째 단위의 상기 인터리빙 패턴 기술으로부터 계산하여 세 번째 단위의 데이터 시리즈를 인터리빙 하는 단계를 포함한다.
그리고 인터리빙 패턴 기술은 인터리빙 패턴을 설명하는 인터리빙 패턴 테이블이나 인터리빙 패턴 방정식임을 특징으로 하는 인터리빙 패턴 기술이다.
상기 언급된 본 발명에 따르면, 인터리빙 패턴 기술을, 예를 들면, 한 인터리빙 패턴 테이블(A=B인 경우)로부터 혹은 두개의 인터리빙 패턴 테이블들로부터 생성하여 더 큰 인터리빙 길이를 가지는 인터리빙 패턴이 생성될 수 있다. 그러므로 특정 인터리빙 길이의 패턴은 더 작은 인터리빙 길이를 가지는 복수의 패턴들의 조합으로 표시될 수 있다. 그러므로, 고정된 길이의 패턴들을 위한 메모리 양이 줄어들 수 있다. 예를 들면, 1000 비트들을 위한 인터리빙 패턴 테이블을 사용하는 경우에 1000 비트들을 위한 메모리가 통상적으로 필요하다. 본 발명에 따르면 1000비트들을 위한 인터리빙 패턴 테이블을 20 비트의 인터리빙 패턴 테이블과 50 비트 인터리빙 패턴 테이블로 표현해서 메모리는 70 (= 20 + 50)비트의 양으로 줄어든다. 그리고 900 비트 인터리빙 패턴 테이블을 20 비트 인터리빙 패턴 테이블 × 50 비트 인터리빙 패턴 테이블로 표현해서 고정된 길이 인터리빙 패턴 테이블을 확장하지 않고 1000 비트와 900 비트를 위한 인터리빙이 가능하다.
본 발명에 따른 방법은 단위 길이의 입력 데이터 시리즈를 인터리빙하고 인터리브된 데이터를 출력하기 위한 인터리빙 패턴의 인터리빙 패턴 기술을 생성하는 방법에 있어서,
인터리빙 패턴을 정의하는 인터리빙 패턴 기술 언어를 번역하는 단계; 및
번역에 기초하여 제 9항에서 청구된 방법과 같은 방법을 사용해서 인터리빙 패턴 기술을 생성하는 단계를 포함하는 것처럼 구성될 수 있을 것이다.
위의 구성에서, 만약 상기 인터리빙 패턴 기술 언어의 일부에 대응하는 인터리빙 패턴 기술이 저장되면, 인터리빙 패턴을 생성할 때에 인터리빙 패턴 기술 언어의 부분에 대응하는 과정을 실행하지 않고 저장된 인터리빙 패턴 기술을 참조하여 인터리빙 패턴 기술이 생성된다.
그리고, 그 인터리빙 방법은,
인터리빙 패턴을 정의하는 인터리빙 패턴 기술을 번역하는 단계; 및
번역에 기초하여 제 13항에서 청구된 인터리빙 방법에 의해 인터리빙 하는 단계를 포함한다.
구성된 인터리빙 방법에서, 만약 인터리빙 패턴 기술 언어의 일부에 대응하는 인터리빙 패턴 기술이 저장되면, 인터리빙 시에 인터리빙 패턴 기술 언어의 부분에 대응하는 과정을 실행하지 않고 저장된 인터리빙 패턴을 참조하여 인터리빙 패턴 기술이 생성된다.
본 발명은 단위 길이의 입력 데이터 시리즈를 인터리빙하고 단위 길이의 인터리브된 데이터 시리즈를 출력하기 위한 인터리빙 패턴의 인터리빙 패턴 기술을 생성하는 방법에 있어서,
단위 길이가 주어질 때에 첫 번째 스테이지의 인터리빙 패턴 기술을 결정하는 단계; 및
한 스테이지의 열과 행의 인터리버(interleaver)들에 대응하는 인터리빙 패턴들을 결정하는 과정을 어떤 스테이지에 도달할 때까지 혹은 인터리브할 수 없을 때까지 반복하여 인터리빙 패턴 기술을 생성하는 단계를 포함하도록 구성될 수 있을 것이다.
그리고 본 발명은 단위 길이의 입력 데이터 시리즈를 인터리빙하고 단위 길이의 인터리브된 데이터 시리즈를 출력하기 위한 인터리빙 패턴의 인터리빙 패턴 기술을 생성하는 방법에 있어서
생성된 인터리빙 패턴 기술을 검사하는 단계;
검사 단계의 결과가 성공하지 못하면 인수들을 모두 혹은 일부를 바꿔서 인터리빙 패턴 기술을 다시 생성하는 단계; 및
검사 단계를 통과하는 인터리빙 패턴 기술이 생성되어 검사 단계의 결과가 성공적일 때까지 검사 단계와 생성하는 단계를 반복하는 단계를 포함하도록 구성될 수 있을 것이다.
상기에 구성된 인터리빙 패턴 기술 생성 방법에서, 생성된 상기 인터리빙 패턴 기술은 인터리빙 패턴 테이블 혹은 인터리빙 패턴 방정식 혹은 인터리빙 패턴 기술 언어이다.
상기에 언급된 본 발명에 따르면, 인터리빙을 위한 감소된 데이터 양을 가지고 다양한 인터리빙을 유연하게 지원하는 인터리빙 방법이 지지될 수 있다.
본 발명의 세 번째 목적은 인터리빙 방법을 전송 시스템 장치, 터보 인코더 혹은 그와 비슷한 장치에 적용하는 방법을 제공하고, 전송 시스템 장치, 인코더 및 저장 매체와 같은 장치에 목표에 적합한 인터리빙 패턴 생성 프로그램을 제공하는 것이다.
상기 목적들을 달성하기 위해, 본 발명은 단위 길이의 입력 데이터 시리즈를 인터리빙하고 단위 길이의 인터리브된 데이터 시리즈를 출력하기 위한 인터리빙 패턴의 인터리빙 패턴 기술을 생성하는 방법에 있어서,
단위 길이가 주어질 때에 미리 정의된 응용 목표에 적합한 인터리빙 패턴 목록을 사용해서 단위 길이에 대응하는 블록 인터리버의 행 혹은 열들의 개수를 결정하고 행 혹은 열들의 결정된 개수로부터 열 혹은 행들의 개수를 정의하는 단계; 및
정의된 열들의 개수나 정의된 행들의 개수가 인터리빙 패턴 목록에서 정의될 때까지 단계를 반복하여 얻어진 인터리빙 패턴들로부터 단위 길이 인터리빙 패턴을 생성하는 단계를 포함하도록 구성될 수 있을 것이다.
상기 구성에서, 그 방법은,
정의된 숫자에 의해 미리 주어진 유니트 길이에 대응하는 블록 인터리버의 행들의 개수나 열들의 개수를 결정하고, 정의된 숫자에 대응하는 인터리빙 패턴을 미리 정의된 인터리빙 패턴을 가정하며, 결정된 행들의 개수를 사용하여 행들의 개수를 정의하거나 결정된 행들의 개수를 이용하여 열들의 개수를 정의하는, 첫 번째 스테이지의 한 처리 과정인, 첫 번째 단계;
미리 정의된 응용 목표에 적합한 인터리빙 패턴 목록을 사용해서 정의된 행들의 개수나 정의된 열들의 개수에 대응하는 블록 인터리버의 행들의 개수나 열들의 개수를 결정하고, 행들의 결정된 개수로부터 열들의 개수를 정의하거나 열들의 결정된 개수로부터 행들의 개수를 정의하는 두 번째 단계;
행들이나 열들의 개수에 대응하는 인터리빙 패턴이 미리 정의된 인터리빙 패턴 목록에 존재할 때까지 두 번째 단계를 반복하는 세 번째 단계;
첫 번째 단계에서 미리 정의된 인터리빙 패턴에 대응하는 행들이나 열들의 개수와 같은 수만큼 세 번째 단계를 실행하는 단계; 및
마지막 스테이지에서 생성된 행과 열에 대응하는 인터리빙 패턴으로부터 차례로 이전 스테이지의 행 혹은 열에 대응하는 인터리빙 패턴을 생성하는 단계를 포함한다.
그리고, 상기의 구성에서, 단위 길이의 생성된 인터리빙 패턴은 검사되고 단위 길이의 인터리빙 패턴은 검사의 결과에 따라 다시 생성된다.
그리고, 상기의 구성에서, 응용 목표는 터보 코드이며 첫 번째 스테이지의 행들의 개수는 7이다.
그리고, 상기의 구성에서, 응용 목표는 전송이며 첫 번째 스테이지의 열들의 개수는 한 프레임의 슬롯들의 개수이다.
상기에 언급된 본 발명에 의하면, 터보 인코딩, 전송 시스템 및 그와 비슷한 장치에 적용하는 인터리빙 방법으로 제공하게 된다.
상기에 언급한 목적들을 달성하기 위해, 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 장치에 있어서,
테이블에 하나 혹은 복수의 인터리빙 패턴들을 미리 저장하는 수단;
상기 복수의 인터리빙 패턴들의 하나를 적용해서 데이터를 출력하는 수단; 및
필요하다면 상기 복수의 인터리빙 패턴들의 하나를 더 적용해서 상기 출력 데이터를 출력하는 수단을 포함한다.
상기의 구성에서, 테이블은 제 1항 내지 제 4항 중 어느 한 항에서 청구된 것과 같은 인터리빙 방법에 의해 인터리빙 패턴을 저장한다.
그리고, 상기의 구성에서 인터리빙 패턴은 제 21항에서 청구된 것과 같은 상기 인터리빙 패턴 생성 방법에 의해 생성된다.
그리고, 인터리빙 장치에 있어서, 입력 데이터 시리즈의 인터리빙 목적지들이 계산되고, 인터리빙 패턴을 사용하는 대신에 상기 계산에 기초하여 인터리빙이 실행되며 데이터가 출력된다.
상기에 언급한 목적들을 달성하기 위해서, 본 발명에 따라, 단위 길이의 데이터 시리즈를 입력하며 단위 길이의 인터리브된 시리즈를 출력하는 인터리빙 방법에서 인터리빙 패턴을 설명하고 생성하는 프로그램을 저장하는 컴퓨터가 읽을 수 있는 매체에 있어서,
미리 정의된 응용 목표에 적합한 인터리빙 패턴 목록을 사용해서 미리 주어진 단위 길이에 대응하는 블록 인터리버의 행들 혹은 열들의 개수를 결정하고 행들 혹은 열들의 결정된 개수로부터 열 혹은 행들의 개수를 정의하는 단계; 및
정의된 열들의 개수나 정의된 행들의 개수가 상기 인터리빙 패턴 목록에서 정의될 때까지 단계를 반복하여 얻어진 인터리빙 패턴들로부터 단위 길이 인터리빙 패턴을 생성하는 단계를 포함한다.
그리고 상기의 구성에서, 프로그램은,
정의된 숫자에 의해 미리 주어진 유니트 길이에 대응하는 블록 인터리버의 행들의 개수나 열들의 개수를 결정하고, 정의된 숫자에 대응하는 인터리빙 패턴을미리 정의된 인터리빙 패턴을 가정하며, 결정된 행들의 개수를 사용하여 행들의 개수를 정의하거나 결정된 행들의 개수를 이용하여 열들의 개수를 정의하는, 첫 번째 스테이지의 한 처리 과정인, 첫 번째 단계;
미리 정의된 응용 목표에 적합한 인터리빙 패턴 목록을 사용해서 정의된 행들의 개수나 정의된 열들의 개수에 대응하는 블록 인터리버의 행들의 개수나 열들의 개수를 결정하고, 행들의 결정된 개수로부터 열들의 개수를 정의하거나 열들의 결정된 개수로부터 행들의 개수를 정의하는 두 번째 단계;
행들이나 열들의 개수에 대응하는 인터리빙 패턴이 미리 정의된 인터리빙 패턴 목록에 존재할 때까지 두 번째 단계를 반복하는 세 번째 단계;
첫 번째 단계에서 미리 정의된 상기 인터리빙 패턴에 대응하는 행들이나 열들의 개수와 같은 수만큼 세 번째 단계를 실행하는 단계; 및
마지막 스테이지에서 생성된 행과 열에 대응하는 인터리빙 패턴으로부터 차례로 이전 스테이지의 행 혹은 열에 대응하는 인터리빙 패턴을 생성하는 단계를 포함한다.
상기의 구성에서, 본 발명의 인터리빙 패턴을 생성하기 위한 프로그램을 저장하는 컴퓨터가 읽을 수 있는 매체에 있어서, 단위 길이의 생성된 인터리빙 패턴은 검사되고 단위 길이의 인터리빙 패턴은 검사의 결과에 따라 다시 생성된다.
그리고, 본 발명의 인터리빙 패턴을 생성하기 위한 프로그램을 저장하는 컴퓨터가 읽을 수 있는 매체에 있어서, 응용 목표는 터보 코드이며 상기 첫 번째 스테이지의 행들의 개수는 7이다.
그리고, 본 발명의 인터리빙 패턴을 생성하기 위한 프로그램을 저장하는 컴퓨터가 읽을 수 있는 매체에 있어서, 응용 목표는 전송이며 상기 첫 번째 스테이지의 열들의 개수는 한 프레임의 슬롯들의 개수이다.
상기 언급된 본 발명에 따라, 인터리빙 패턴을 생성하기 위한 프로그램을 저장하는 매체가 제공될 수 있으며, 특히 터보 인코딩, 전송 및 그와 비슷한 것에 적합한 인터리빙 패턴 생성을 위한 프로그램을 저장하는 매체가 제공될 수 있다.
다음에서, 도면들을 참조하여 본 발명의 실시예들에 대한 상세한 설명이 주어질 것이다. 비록 인터리버가 다음의 설명의 그림들에서 2차원의 행렬로 설명되지만, 이는 편의를 위해서 일 뿐이다. 본 발명이 2차원의 행렬 대신에 1차원의 행렬로 실행될 수 있다는 것은 말할 필요도 없다.
다음에 설명되는 인터리빙 과정들은 입력 비트 시리즈와 그와 유사한 것의 신호 처리를 위한 프로세싱 장치에 의해 실행된다.
첫 번째로, 본 발명의 첫 번째 실시예가 설명될 것이다.
도 2와 도 3은 본 발명의 첫 번째 실시예의 인터리빙 방법을 보여준다. 도 2에서 도시된 것처럼, 종래의 방법의 경우와 같이 단일의 프레임 데이터(200)로서 1152 비트가 입력이며, 행 벡터(215)는 72×16(=1152) 인터리버(210)의 버퍼에 행의 방향으로 써진다. 본 발명의 인터리빙 방법이 72×16 인터리버 대신에 일반적인 N×M 인터리버에도 적용될 수 있다는 것은 말할 필요도 없다. 72×16 인터리버(210)에서, 72 비트를 가진 벡터(220)를 포함하는 16열 벡터들 각각이 독출되며, 16비트 열 벡터들 각각에 대응하는 9×8 (=72) 인터리버들(230, 235, ..., 240)에 의해 인터리브된다. 다시 말하면, 예를 들면, 열 벡터(220)는 9×8 (=72) 인터리버의 버퍼에 행의 방향으로 써진다는 것이다. 마지막으로, 16개의 9×8 인터리버들 각각의 데이터는 열의 방향으로 연속적으로 독출되고, 그러면 인터리브된 데이터(245)가 출력되며, 다른 말로 하면, 추출된다.
도 1에 도시된 인터리브된 데이터는 열 부분의 관점에서 시간의 순서로 차례로 배열된다. 대조적으로, 도 2의 데이터 배열은 더 복잡하다. 여기에서 인터리빙의 성능을 양적으로 평가하기 위해, 인터리빙의 성능은 관련 기술에서 설명된 기준 (2)의 관점에서 평가된다.
도 1의 출력(130)에서, '0'에 인접한 숫자는 '16'이다. 그러므로 입력 데이터에서, 두 개 비트는 최소 16비트 떨어져 있다. 모든 비트들이 검사될 때에, 출력의 두 개의 연속된 비트들이 입력 시리즈에서 최소 16 비트 떨어져 있다는 것이 인정된다. 말하자면, 기준 (2)에 따른 상기에 언급된 평가는 16 비트인 것이다.
도 2에서 도시된 방법에 대한 기준 (2)에 따른 평가의 결과는 128 비트이다. 그러므로 인터리빙 방법의 성능이 향상되었다고 이해된다.
도 3은 부가적인 인터리빙이 실행된 방법을 보여준다. 도 3에서 도시된 것처럼, 도 2에 도시된 인터리버(230)와 같은 9×8 인터리버들 각각의 각 열 데이터는 3×3 (=9) 블록 인터리버들 각각에 의해 인터리브된다. 인터리빙의 끝 스테이지에서, 인터리브된 데이터(295)는 인터리버(285)와 같은 3×3 블록 인터리버들로부터 열의 방향으로 차례로 독출하여 출력된 혹은 추출된 것이다.
도 3에 도시된 방법에 따르면, 상기 언급된 기준 (2)에 의한 평가의 결과가 384 비트이기 때문에, 인터리빙의 성능은 인터리빙 처리를 반복해서 향상될 것이라고 이해될 수 있다.
다음에서, 본 발명의 두 번째 실시예가 설명될 것이다. 도 4는 본 발명의 두 번째 실시예에 따른 인터리빙 방법을 보여준다.
72×16 인터리버(210)의 데이터가 행 방향으로 읽히는 도 3에 도시된 방법과 틀리게, 두 번째 실시예에 따른 방법에서, 한 72×16 인터리버(310)의 행 벡터들의 16비트는 읽혀져서 인터리버(320)와 같은 4×4 인터리버들 각각에 행 방향으로 써진다. 다음에, 인터리버(320)와 같은 각 4×4 인터리버들의 각 열은 열 방향으로 순차적으로 읽혀지고, 72×16 인터리버(310)의 각 행에 되돌려 써진다. 이 경우에, 다른 인터리버(335)가 참조 번호 3109의 72×16 인터리버 대신에 사용될 수 있다. 4×4 인터리버들의 모든 데이터가 72×16 인터리버(310)에 되돌려 써 진 후에, 인터리브된 데이터(340)는 72×16 인터리버(310)의 버퍼를 열 방향으로 읽음으로 해서 추출된다.
종래의 인터리빙 방법에 따른 출력 결과(350)와 비교하면, 72×16 인터리버(310)의 각 열의 데이터 정렬은 종래 방법의 그것과 같으나, 열 정렬은 다르다는 것을 알 수 있다. 이 인터리빙 방법은 기준 (1)의 관점에서 다음에 평가될 것이다. 종래의 방법에 따르면, 입력 데이터 '0'과 '1'은 72 비트 떨어져서 인터리브된다. 기준 (1)의 관점에서 모든 비트들을 비슷하게 평가하면, 그 결과는 72 비트이다. 두 번째 실시예에서, 그 결과가 288 비트이기 때문에, 인터리빙의 성능이 향상되었다고 이해될 수 있다.
다음에는, 본 발명의 세 번째 실시예가 설명될 것이다. 도 5에서 본 발명의 세 번째 실시예의 인터리빙 방법이 도시된다. 본 실시예는 첫 번째와 두 번째 실시예들의 방법이 조합되어 이용되며 인터리빙 방법들 각각이 반복되는 방법이다.
도 5에서, 16비트의 단일 프레임 데이터(400)가 입력이며 4×4 (=16) 인터리버(410)의 버퍼에 행 방향으로 써진다. 4개 열들 각각은 4 비트로 구성되며 도 5에 도시된 네 개의 2×2 (=4) 인터리버들(420, 425, 430, 435) 중 하나에 의해 인터리브된다. 말하자면, 열들의 각각은 인터리버(420) 같은 2×2 (=4) 인터리버들의 버퍼에 행 방향으로 써진다.
다음에는, 각 2×2 (=4) 인터리버의 각 열의 2비트들이 계속해서 읽혀지고 4×4 인터리버(410)의 각 열로 돌려진다. 이런 경우, 다른 4×4 인터리버(440)가 참조 번호 410의 4×4 인터리버 대신에 사용될 수 있다.
각 행 데이터는 인터리버(410 혹은 440)로부터 읽혀지고 네 개의 2×2 (=4) 인터리버들 중 대응하는 하나에 의하여 인터리브된다. 말하자면, 인터리버(410 혹은 440)의 행 데이터는 2×2 (=4) 인터리버의 버퍼에 행 방향으로 써지는 것이다.
다음에, 인터리버(445)같은 모든 2×2 인터리버의 각 열의 2비트들이 연속하여 읽혀지고 4×4 인터리버(410 혹은 440)의 각 행으로 돌려진다. 이 경우에, 다른 4×4 인터리버(470)가 참조 번호 410 혹은 440의 4×4 인터리버 대신에 사용될 수 있다. 2×2 인터리버들(445 내지 460)의 모든 열 데이터가 돌려진 후, 4×4 인터리버(410, 440 혹은 470)의 버퍼는 열 방향으로 읽혀지고 인터리브된 데이터(480)가 추출된다.
상기 언급된 방법에 따르면, 기준 (1)과 (2)의 관점에서 성능들이 동시에 향상되기 때문에 인터리빙 성능은 더욱 향상될 수 있다.
그러므로, 본 발명에 따르면, N×M 버퍼 크기에서의 인터리빙에서, 인터리빙이 충분한 회수만큼 반복된 후에는 두 개의 비트들 사이의 거리는 출력 시리즈에서2N 비트 이상이 되도록 두 개의 연속된 입력 비트들이 분리될 수 있으며, 두 개의 연속된 출력 비트들은 입력 시리즈에서는 두 비트간의 거리가 2M 비트 이상이 되도록 분리될 수 있다. 예를 들면, 8×8 버퍼 크기의 인터리빙에서, 두 개의 연속된 입력 비트는 3번의 반복된 인터리빙 후에는 출력 시리즈에서 2×8 비트보다 더 멀리 분리될 수 있고 두 개의 연속된 출력 비트들은 입력 시리즈에서 2×8 비트보다 더 멀어지게 분리될 수 있다.
그리고, 본 발명은 버스트 오류 전송 회선이나 버스트 오류 기록 매체에서 발생하는 버스트 에러의 무작위성을 위해 사용될 수 있을 것이며, 또한 터보 인코딩에 적용되는 인터리빙 방법을 위해 사용될 수 있다.
다음에서, 본 발명의 네 번째 실시예가 설명될 것이다. 도 6은 그 실시예를 보여준다.
상기에 언급된 첫 번째 내지 세 번째의 실시예들에서와 같은 인터리빙 단계를 위하여 같은 인터리버들을 반복하여 사용할 필요는 없다. 도 6에서 도시된 것처럼, 입력 시리즈를 72×16 인터리버(600)에 쓴 후에, 인터리버(600)의 각 행은 16 비트씩 읽혀진다. 이런 경우, 인터리버의 모습은 첫 번째 행이 4×4 인터리버(610)에 써지고 두 번째 행이 6×3 인터리버(620)에 써지며 세 번째 행이 8×2 인터리버(630)에 써지고 그와 비슷하게 변화될 수 있다. 인터리버 버퍼를 입력 데이터로 채우는 것 또한 필요하지 않다. 예를 들면, 6×3 인터리버가 16 비트 입력 시리즈를 위하여 사용될 수 있을 것이다.
본 발명의 다섯 번째 실시예가 다음에 설명될 것이다. 도 7은 다섯 번째 실시예를 보여준다.
도 7은 도 2에 도시된 것과 비슷한 인터리빙의 예를 도시한 것이다. 도 2에 도시된 예의 경우에, 입력 시리즈는 복수의 16 비트 블록들로 나누어지고, 각 블록의 비트들의 순서는 첫 번째 인터리빙 단계에서의 시간과 같은 순서로 남아있다. 반면에 도 7에 도시된 실시예의 경우에, 의사 무작위 인터리빙이 각 블록에 실행되고 그 블록의 데이터는 72×16 인터리버(700)에 써진다. 그러므로 본 발명의 인터리빙 반복 과정들은 의사 무작위 인터리빙 방법을 위해 사용되는 것과 같은 비트 순서를 교환하는 처리 과정들과 결합될 수 있다. 도 7은 그러한 인터리빙 방법의 예를 도시한 것이다.
다음에, 본 발명의 여섯 번째 실시예가 설명된다. 상기에 언급된 실시예들에서, 비트 단위에 의한 인터리빙 방법들이 설명된다. 심볼 단위의 인터리빙 역시 가능하다. 다음에서, 여섯 번째 실시예가 심볼 단위에 의한 인터리빙의 예로서 설명될 것이다.
첫째로, L 비트 길이 데이터가 N×M (L ≤N×M) 블록 인터리버에 써진다.
이제부터 하나의 심볼은 K 비트로 간주될 것이다. 다시 말하면, 하나의 N×M 블록 인터리버에서 연속하는(인접한) K 비트가 하나의 심볼로 간주될 것이다.
수직 방향의 K 개의 연속적인 비트들이 하나의 심볼로 여겨지는 첫 번째 경우에, 블록 인터리버는 (N/K) 심볼 ×M 심볼 블록 인터리버로 간주될 수 있다. 그러므로, 심볼 인터리빙은 상기에 언급된 방법의 수직 방향에서 그리고 수평 방향에서 그리고 심볼을 독출될 비트들로 변환하여 다중 스테이지 인터리빙을 실행해서가능하다. 수평 방향의 K 비트들이 하나의 심볼로 여겨지는 두 번째 경우에, 블록 인터리버는 N 심볼 × (M/K) 심볼 블록 인터리버로 간주될 수 있다. 그러므로 심볼 인터리빙 역시 가능하다. 그리고, K 개의 인접한 비트들이 K가 N1×M1 인 하나의 심볼로 간주되는 세 번째 경우에, 블록 인터리버는 (N/N1) 심볼 × (M/M1) 심볼 블록 인터리버로 간주될 수 있으며, 그러므로 심볼 인터리빙 역시 가능하다.
상기에 언급된 방법들의 구체적인 실시예들이 도면들을 참조하여 설명될 것이다. 도 8은 L=64 비트 길이 데이터가 (N=)8 비트 × (M=)8 비트 블록 인터리버에 써지는 것을 도시한 것이다. 다음의 처리 과정들은 상기에 언급된 첫 번째 경우 내지 세 번째 경우에 각각 대응하는 도 9 내지 도 11을 참조하여 설명될 것이다.
도 9는 K가 2와 같은 첫 번째 경우를 도시한 것이다. 도 9에 도시된 4 심볼 × 8 심볼 블록 인터리버는 상기에 언급된 한 비트 단위의 방법으로 인터리브되고, 참조 번호 650의 인터리버내의 심벌들이 비트들로 변환되며, 그 때문에 참조 번호 660의 인터리버가 생성되며 그래서 비트들이 독출된다.
K가 2인 두 번째 경우에, 도 10에 도시된 것과 같이 인터리빙이 실행되며, K가 4인 세 번째 경우에는 인터리빙은 도 11에서와 같이 실행된다. 이 도면들과 상기의 설명들에서 명확하기 때문에 이런 방법들에 대한 정확한 설명은 생략될 것이다.
상기에서 언급한 것처럼, 본 발명의 첫 번째 내지 여섯 번째 실시예의 인터리빙 방법에 따르면, 전술한 첫 번째 목적은 성취된다. 말하자면, 한 버퍼에 일단 쓰거나 버퍼로부터 읽은 후에 데이터 순서를 반복적으로 교환하는 처리 과정을 적용해서, 인터리빙의 성능은 시간의 순서대로 하나씩 쓰고 읽는 종래의 방법에 비교하여 향상될 것이다.
본 발명의 인터리빙 방법은 이하에서는 다중 인터리빙 방법이라고 언급될 것이다.
상기에서 언급된 것처럼, 디지털 시스템의 경우, 인터리빙에서의 교환은 비트 혹은 심볼 단위로 실행된다. 상기 언급된 방법들은 버퍼에 데이터를 쓰고 데이터를 독출하는 방법을 보여준다. 데이터를 인터리빙 할 때에 언급될 인터리빙에서 순서 교환 정보로 패턴(이하 인터리빙 패턴이라 함)을 사용하는 것 또한 가능하다. 비록 인터리빙이 비트 단위로 혹은 심볼 단위로 혹은 비슷하게 실행될 수 있지만, 간단함을 위해 비트 단위의 실시예가 다음에 보여질 것이다.
도 12는 16 비트 시리즈의 인터리빙의 일 실시예를 도시한 것이다. 도 12에 도시된 것처럼, 비트별 인터리빙은 인터리빙 패턴 테이블을 참조해서 실행된다. 도 12에서, 인터리브될 입력 16 비트 시리즈(670)에 관하여는, 입력 시리즈의 비트들(혹은 심볼들과 그 비슷한 것)의 순서는 인터리빙 패턴 테이블(680)에 저장된 순서에 따라 변한다.
도 12에 도시된 것처럼, 인터리빙 패턴 테이블(680)은 화살표로 표시된 것과 같이 0, 8, 4, 12, 2, ...의 수직의 순서로 독출된다. 그러면 16비트 시리즈의 비트들은 독출 순서에 따라 교환되며 그래서 입력 시리즈의 0 번째 비트는 출력 시리즈의 0 번째 비트로 교환되고 첫 번째 비트는 여덟 번째 비트로 교환되며 이하 같다. 그 다음에 인터리브된 비트 시리즈가 출력이다.
다음에, 두 번째 목적을 달성하기 위한 본 발명의 실시예들이 일곱번째 실시예로부터 시작하여 설명될 것이다.
도 13 내지 도 15는 본 발명의 일곱 번째 실시예를 도시한 것이다.
도 13과 도 14에서 16 비트 시리즈(670)를 인터리브하는 것이 도시된다. 말하자면, 모두 4 비트 시리즈 변환을 설명하는 인터리빙 패턴 테이블 A와 인터리빙 패턴 테이블 B가 제공되며, 16 (4×4) 비트 시리즈 변환을 위한 인터리빙 패턴 테이블 C가 두 개의 4 비트 인터리빙 패턴 테이블에 의해 생성된다. 그러면 생성된 16 비트 시리즈 인터리빙 패턴 테이블을 이용하여 입력 16 비트 시리즈(670) 인터리빙이 실행된다.
도 13에서, 준비된 테이블 A는 인터리빙 패턴 테이블 C에 써지는 방향을 정의하고 테이블 B는 써지는 방향에 수직인 방향을 정의한다. L=16 비트 인터리빙을 실행할 때에, L (≤LA×LB)비트 인터리빙 패턴을 설명하는 인터리빙 패턴 테이블 C는 LA=4 비트 인터리빙 패턴을 설명하는 인터리빙 패턴 테이블 A와 LB=4 비트 인터리빙 패턴을 설명하는 인터리빙 패턴 테이블 B를 사용하여 생성된다(도 13의 ①).
도 13에 도시된 일 실시예에 따르면, 비트 시리즈의 i번째 비트를 의미하는 인터리빙 패턴 테이블의 C[i]를 생성하기 위한 연산은,
이며, 이때에 LA = 4 이고 i는 비트 시리즈에서 한 비트의 위치를 가리키는 어드레스이며 0보다 같거나 그 보다 큰 정수이다. 이하에서는 시리즈의 한 비트의위치를 가리키는 어드레스는 0과 같거나 큰 정수인 i, j, k, ...의 하나로 표시될 것이다. A[i]는 테이블 A의 i번째 원소를 뜻한다. '%'는 모듈로(modulo) 연산자를 뜻하고 'i%LA'는 i를 LA로 나눈 것의 나머지를 뜻한다. 'i/LA'는 i를 LA로 나눈 몫의 정수부(소수부는 버림)를 뜻한다. 이런 연산자들의 의미는 이하 같다. 테이블 A는 테이블 C의 수평 방향에서 패턴을 정의하고 테이블 B는 그 패턴을 수직 방향에서 정의한다.
인터리빙 패턴 테이블 C(680)는 그 결과를 인터리빙 패턴 테이블 C(680)에 수평 방향으로 써서 생성된다.
인터리빙 시에, 테이블 C의 비트들은 수직 방향으로 차례로 읽혀지고 입력 시리즈의 인터리빙은 비트들을 참조해서 실행된다(도 13의 ②). 다시 말하면, 시리즈 내에서 비트의 순서를 교환하는 것은 인터리빙 패턴 테이블 C(680)에 저장된 순서에 따라 실행된다.
이 경우 데이터를 밑의 방향으로 독출하는 것은 필요하지 않으며, 오른쪽 방향으로 쓰는 것도 필요하지 않다. 대신, 그러한 방향들은 도면의 방향에 반대일 수 있다. 예를 들면 독출은 위쪽일 수 있을 것이다.
그리고, 도 13에서 준비된 테이블 A는 인터리빙 패턴 테이블 C에 쓰는 방향을 정의하고 테이블 B는 쓰는 방향에 수직인 방향을 정의한다고 언급되어 있지만, 테이블 A와 B의 관계는 바꿔질 수 있다. 또한, 인터리빙 패턴 테이블 A와 B는 같거나 혹은 다른 패턴일 수 있다.
만일 테이블 A와 테이블 B가 같다면, 테이블들 중 하나만을 사용하는 것이필요하다.
예를 들면, C[i]는
이거나 혹은
로 표시될 수 있다.
이러한 모습은 도 13 내지 도 21에서 동일하다.
도 14는 도 13에 도시된 것과 같은 결과가 얻어질 수 있는 다른 연산을 보여준다. 도 14의 인터리빙 패턴 C(680)는 도 13에서 도시된 경우와 다른
(도 14의 ①)
에 의해 생성된다. 이 경우에, 테이블 A는 테이블 C의 수평 방향의 패턴을 정의하고 테이블 B는 테이블 C의 수직 방향의 패턴을 정의한다. 그 결과는 테이블 C에 수직 방향으로 써진다.
테이블 A와 B 간의 관계는 서로 바뀔 수 있다. 또한, 인터리빙 패턴 테이블 A와 B는 같거나 혹은 다른 패턴일 수 있다. 만일 테이블 A와 테이블 B가 같다면, 테이블들 중 하나만을 사용하는 것이 필요하다.
인터리빙 시에, 테이블 C의 비트들은 같은(수직) 방향으로 차례로 독출되고,그 때문에 입력 시리즈는 비트들을 참조해서 인터리브된다(도 14의 ②).
그러므로, 인터리빙 패턴 테이블 C(680)를 위한 연산을 바꾸는 것이 가능하다. 그리고 읽는 방향은 쓰는 방향과 같을 필요는 없으며, 양방향들은 도 14에 도시된 것과 같을 필요는 없다. 말하자면, 쓰는 방향과 읽는 방향은 자유롭게 설정될 수 있다.
도 15는 도 13과 도 14에 도시된 16 비트 인터리빙 대신에 15 비트 인터리빙의 일 실시예를 보여준다.
도 15에 도시된 것처럼, L=15 비트 입력 데이터 인터리빙 시에, L(≤LA×LB) 비트 인터리빙 패턴을 설명하는 인터리빙 패턴 테이블 C(700)는 LA=4 비트 인터리빙 패턴을 가지는 인터리빙 패턴 테이블 A와 LB=4 비트 인터리빙 패턴을 가지는 인터리빙 패턴 테이블 B를 사용하여 생성된다(도 15의 ①). 도 13에서 도시된 것과 마찬가지로, 인터리빙 패턴 테이블 C(700)를 생성하는 방법은
이며, 이때에 LA=4 이다. 테이블 A는 테이블 C의 수평 방향의 패턴을 정의하고 테이블 B는 수직 방향의 패턴을 정의한다.
그 결과는 테이블 C에 수평 방향으로 써진다. 테이블 C가 16 비트 인터리빙 패턴을 가지기 때문에, 테이블 C를 수직 방향으로 차례로 독출하고 숫자가 읽혀질 때에 15와 같거나 큰 숫자를 버리는 것에 의해 15 비트 인터리빙이 실행된다(도 15의 ②)
도 15에 도시된 것과 같이, 15 비트 인터리빙은 15와 같거나 큰 숫자를 건너뜀으로 해서 가능하다. 또한, 15 비트 인터리빙 패턴을 포함하는 테이블 C는 테이블 C에 데이터를 쓸 때에 15와 같거나 큰 데이터가 써지는 것을 막음으로서 15 비트 인터리빙을 실행하도록 생성될 수 있다. 즉, 도 15에 도시된 것처럼, 4 비트 인터리빙 패턴을 저장하는 테이블 A와 4 비트 인터리빙 패턴을 저장하는 테이블 B로 15(<4×4) 비트 인터리빙 패턴 테이블 C를 생성하는 경우에, 14 (=15-1)보다 큰 수를 쓰지 않고 15비트 인터리빙 패턴 테이블을 생성하는 것이 가능하다.
일곱번째 실시예에 따르면, 하나의 인터리빙 패턴 테이블(A=B인 경우)로부터 혹은 두 개의 인터리빙 패턴 테이블들로부터, 예를 들면, 더 큰 인터리빙 길이를 가지는 인터리빙 패턴 테이블이 생성된다. 그러므로, 특정 인터리빙 길이의 패턴은 더 작은 인터리빙 길이의 복수의 패턴들로 표시될 수 있다. 그러므로, 고정된 길이 패턴들을 위한 메모리 양이 줄어들 수 있다.
예를 들면, 종래에는, 1000비트 인터리빙 패턴 테이블을 사용하는 경우에, 1000 비트 인터리빙 테이블을 위한 메모리가 필요하다. 일곱 번째 실시예에 따르면, 1000 비트 인터리빙 패턴 테이블을 20 비트 인터리빙 패턴 테이블과 50 비트 인터리빙 패턴 테이블로 표현해서 메모리는 70 (=20 + 50) 비트를 위한 양으로 줄어들 수 있다.
그리고 900 비트 인터리빙 패턴 테이블을 20 비트 인터리빙 패턴 테이블과 50 비트 인터리빙 패턴 테이블로 표현해서, 고정된 길이의 인터리빙 패턴 테이블을 확장하지 않아도 1000 비트와 900 비트를 위한 인터리빙이 가능하다.
다음으로, 여덟 번째 실시예가 설명된다. 본 발명의 여덟 번째 실시예에 따르면, 도 13 내지 도 15에 도시된 일곱 번째 실시예의 결과와 같은 결과가 얻어진다. 그러나, 인터리빙 패턴 테이블 C는 인터리빙을 위해 생성되지 않으며, 그 대신에, 테이블 A와 테이블 B로부터 계산하여 인터리빙 목적지가 직접 얻어진다. 도 16과 도 17은 여덟 번째 실시예를 보여준다.
도 16에서, 도 13의 결과와 같은 결과가 얻어질 수 있는 16 비트 입력 시리즈의 일 실시예가 도시된다.
도 16에서 도시된 것과 같이, 도 13의 예와 같지 않게, 인터리빙 패턴 테이블 C는 생성되지 않는다. 입력 시리즈에서 비트 교환을 위한 각 목적지는 4 비트 인터리빙 패턴을 저장하는 테이블 A와 4 비트 인터리빙 패턴을 저장하는 테이블 B로부터 계산되며(도 16의 ①), 그 때문에 입력 시리즈는 계산의 결과를 기초로 하여 인터리브된다(도 16의 ②).
입력 시리즈의 i번째 원소에 대응하는 j번째 원소인 인터리빙 목적지를 테이블 A와 테이블 B로부터 직접적으로 계산하는 공식은 다음과 같다.
테이블 A와 B 간의 관계는 서로 바뀔 수 있다. 그리고, 인터리빙 패턴 테이블 A와 B는 같거나 혹은 다른 패턴일 수 있다. 만일 테이블 A와 테이블 B가 같다면, 테이블들 중 하나만을 사용하는 것이 필요하다. 즉, 아래와 같다.
도 17에서, 인터리빙 패턴 방정식들(710, 720)이 인터리빙 패턴 테이블 A와 B를 준비하는 것 대신에 인터리빙을 정의하기 위해 사용된다. 또한, 인터리빙 패턴 방정식을 계산해서 인터리빙이 수행된다(도 17의 ①, ②).
방정식들 각각이 4 비트 인터리빙 패턴을 표시하는 방정식 a(710)와 방정식 b(720)는 다음과 같이 표현된다.
이 때에 0≤ia≤4.
이 때에 0≤ib≤4.
16 비트 입력 시리즈의 i번째 원소에 대응하는 j번째 원소인 인터리빙 목적지는 a 방정식과 b 방정식 둘을 차례로 사용해서 계산되며, 이것은 다음의 계산과 같다.
이렇게 해서 인터리빙이 실행된다.
방정식 a와 b 간의 관계는 서로 바뀔 수 있다. 또한, 인터리빙 패턴 방정식 a와 b는 같거나 혹은 다른 방정식일 수 있다. 만일 방정식 a와 방정식 b가 같다면, 방정식들 중 하나만을 사용하는 것이 필요하다.
도 17에서 도시된 인터리빙에서, 인터리빙 패턴 테이블이 생성된 후에, 준비된 4 비트 방정식들로부터 16 비트 인터리빙 패턴을 계산하고 그 계산의 결과를 테이블에 씀으로 해서 인터리빙을 수행하는 것 역시 가능하며, 그것은 인터리빙 패턴이 패턴 테이블 대신에 공식에 의해 정의되는 일곱 번째 실시예의 경우와 같다.
여덟 번째 실시예에 따르면, 하나의 인터리빙 패턴 테이블로부터(A=B일 때) 혹은 두 개의 인터리빙 패턴 테이블들로부터 더 큰 인터리빙 길이의 인터리빙이 실행된다. 그러므로, 다른 인터리빙 패턴 테이블을 생성할 필요가 없다는 특징이 있다.
그리고, 하나의 인터리빙 패턴 방정식으로부터(a=b일 때) 혹은 두 개의 인터리빙 패턴 방정식들로부터, 더 큰 인터리빙 길이의 인터리빙이 실행될 수 있다. 이 경우에는, 다른 인터리빙 패턴 테이블을 생성할 필요가 없다. 그러나 인터리빙 패턴 테이블을 생성하는 것은 가능하다.
다음에 아홉 번째 실시예가 설명된다. 아홉 번째 실시예는 일곱 번째 실시예나 여덟 번째 실시예에서 도시된 처리 과정이 여러 번 반복하여 적용되는 하나의 예이다. 아홉 번째 실시예는 도 18 내지 도 22를 참조하여 설명될 것이다.
도 18에서 16 비트 인터리빙 패턴 테이블이 도 13의 일곱 번째 실시예에 도시된 처리과정을 수 차례 반복해서 2개의 2 비트 인터리빙 패턴 테이블 A, B와 4비트 인터리빙 패턴 테이블 C로부터 생성되는 예가 도시된다.
도 18에서 도시된 것처럼, L=16 비트 입력 데이터 인터리빙 시에 L = 4(≤LA ×LB) 비트 인터리빙 패턴을 가지는 인터리빙 패턴 테이블 D(730)는 LA=2 비트 인터리빙 패턴을 가지는 인터리빙 패턴 테이블 A와 LB=2 비트 인터리빙 패턴을 가지는 인터리빙 패턴 테이블 B를 이용하여 생성된다(도 18의 ①).
인터리빙 패턴 테이블 D(730)를 생성하기 위한 연산은 예를 들면 다음과 같다.
(이때에 테이블 A는 테이블 D의 쓰기 방향을 정의하고 테이블 B는 테이블 D의 쓰기 방향에 수직인 방향을 정의한다.)
다음으로, LE = 16(≤LC×LD) 비트 인터리빙 패턴을 가지는 인터리빙 패턴 테이블 E(740)는 생성된 인터리빙 패턴 테이블 D와 LD=4 비트 인터리빙 패턴을 가지는 인터리빙 패턴 테이블 C를 참조하여 생성된다(도 18의 ②).
인터리빙 패턴 테이블 E(740)를 생성하기 위한 연산은, 예를 들면, 다음과 같다.
(이 경우 테이블 D는 테이블 E의 수평 방향을 정의하고 테이블 C는 테이블 E의 수직 방향을 정의한다.)
그렇게 생성된 인터리빙 패턴 테이블 E를 참조하여, 16 비트 시리즈 인터리빙이 수행된다(도 18의 ③).
테이블 A와 B 간의 관계는 서로 바뀔 수 있다. 또한, 인터리빙 패턴 테이블 A와 B는 같거나 혹은 다른 패턴일 수 있다. 만일 테이블 A와 테이블 B가 같다면, 테이블들 중 하나만을 사용하는 것이 필요하다. 말하자면 다음과 같다.
그리고 읽는 방향은 쓰기 방향과 같을 필요는 없고, 양방향들이 도 18에 도시된 것과 같아야 하는 것도 아니다.
도 19에서 도 16의 여덟 번째 실시예에 도시된 모으는 처리과정을 수 차례 반복해서 2개의 2 비트 인터리빙 패턴 테이블 A, B와 4 비트 인터리빙 패턴 테이블 C로부터 16 비트 인터리빙 패턴 테이블이 생성되는 예가 도시된다.
도 19에 도시된 것처럼, 4 비트 시리즈의 id 번째(0≤id<4) 비트에 대응하는 jd 번째 비트가 테이블 A와 테이블 B를 참조하여 계산된다. 그 연산을 예를 들면 다음과 같다.
이때, 테이블 A는 테이블 C의 쓰기 방향을 정의하고 테이블 B는 테이블 C의 쓰기 방향에 수직인 방향을 정의한다.
다음에, 16 비트 입력 시리즈의 i 번째(0≤i<16) 비트로부터 j 번째 비트인교환 목적지는 상기에 언급된 연산의 결과와 인터리빙 패턴 테이블 C를 참조하여 계산된다(도 19의 ②). 그 연산은 예를 들면 다음과 같다.
이 때에 jd는 id=i%4의 교환 목적지이다.
마지막으로, 상기에 언급된 연산들의 결과를 기초하여 16 비트 시리즈의 순서를 교환하여 인터리빙이 이루어진다(도 19의 ③).
테이블 A와 B 간의 관계는 서로 바뀔 수 있다. 또한, 인터리빙 패턴 테이블 A와 B는 같거나 혹은 다른 패턴일 수 있다. 만일 테이블 A와 테이블 B가 같다면, 테이블들 중 하나만을 사용하는 것이 필요하다. 그런 경우에 다음의 수학식이 적용될 수 있다.
역시, 인터리빙 패턴 테이블은 테이블내의 계산 결과를 저장해서 생성될 수 있다.
도 20은 방정식들에 의한 인터리빙을 정의한 여덟 번째 실시예를 보여주는 도 17에서 도시된 처리 과정이 반복되는 일 예를 도시한다.
도 20에서 도시된 것처럼, 첫 번째로, 4 비트 인터리빙 패턴을 설명하기 위한 아래의 수학식으로 나타내지는 방정식 d는 방정식 a(ja=ia)와 방정식 b(jb=ib)로부터 생성되는데, 방정식들 각각은 2 비트 인터리빙 패턴을 설명한다(도 20의①).
다음에, 16 비트 인터리빙 방정식 e는 다음의 수학식과 같은데, 4 비트 방정식 c와 방정식 d로부터 계산된다(도 20의 ②). 그러면, 인터리빙은 계산된 방정식 e와 더불어 수행된다(도 20의 ③).
상기 언급된 계산을 테이블에 써서 인터리빙 패턴 테이블을 생성한 후에 인터리빙을 수행하는 것 역시 가능하다.
도 21은 방정식과 테이블과 함께 인터리브를 정의하고 그 인터리브에 기초하여 인터리빙 패턴 테이블을 생성하여 인터리빙이 수행되는 일 예를 도시한 것이다.
도 21에서 도시된 것처럼, 아래의 수학식으로 나타내지는 방정식 d는 2 비트 인터리빙 패턴을 설명하는 방정식 a와 2 비트 인터리빙 패턴 테이블 B로부터 생성된다(도 21의 ①).
다음으로, 16 비트 인터리빙 패턴 테이블 E(760)는 아래의 수학식에 의해 방정식 d와 4 비트 인터리빙 패턴 테이블 C로부터 생성된다(도 21의 ②). 그러면 인터리빙은 테이블 E(760)를 참조하여 실행된다(도 21의 ③).
도 22에는 도 13을 변형한 실시예가 도시되는데, 이 실시예에서 16 비트 인터리빙 패턴 테이블이 복수의 4 비트 테이블들로부터 생성된다.
도 22에 도시된 것처럼, 16 비트 인터리빙 패턴 테이블 C(770)는 (테이블 A0 내지 A3이 테이블 C의 쓰기 방향을 정의하고 테이블 B는 테이블 C의 쓰기 방향에 수직인 방향을 정의하는 경우에) 복수의 4 비트 테이블들 A0 내지 A3과 4 비트 테이블 B와 더불어 다음의 식에 의해 생성된다(도 22의 ①). 그러면 인터리빙은 테이블 C를 참조하여 실행된다(도 22의 ②).
테이블 A0 내지 A3과 B 간의 관계는 서로 바뀔 수 있다. 또한, 인터리빙 패턴 테이블 A0 내지 A3과 B는 같거나 혹은 다른 패턴일 수 있다. 읽기 방향은 밑 방향일 필요는 없고 쓰기 방향은 오른쪽일 필요는 없다.
다음으로, 열 번째 실시예가 설명될 것이다. 열 번째 실시예는 인터리빙 패턴 기술 언어에 의해 인터리빙이 정의되는 방법을 도시하는데, 이는 상기에 언급된 일곱 번째 내지 아홉 번째 실시예들에서 설명된 것처럼 인터리빙 패턴이 생성되거나 인터리빙이 실행된다고 인정된다.
도 23 내지 도 26은 인터리빙 패턴 기술 언어의 정의를 설명하기 위한 도면들이다. 도 27 내지 도 31에는 도 23 내지 도 26에 의해 정의된 인터리빙 패턴 기술 언어에 의해 설명되는 공식이 인식되고 인터리빙을 실행하기 위해 상기 언급된 일곱 번째 내지 아홉 번째 실시예에서 도시된 하나의 방법 혹은 방법들의 조합에 따라 인터리빙 패턴이 생성되는 예들이 도시된다. 도 32는 인터리빙 패턴을 자동적인 생성하는 것을 설명하기 위한 다이아그램이다. 도 33은 인터리빙 패턴을 결정하는 흐름을 설명하기 위한 흐름도이다.
첫째로, 인터리빙 패턴 기술 언어는 도 23 내지 도 26을 참조하여 설명될 것이다.
도 23은 인터리빙 패턴 기술 언어 L[N×M]의 정의 1을 설명한다. L[N×M]은 N×M 블록 인터리버를 의미한다. 이 인터리버는 N×M 블록 인터리버와 함께 L 비트 시리즈에 대한 인터리빙을 실행하는 것을 의미한다. 도 23은 일 예로 L[N×M] 블록 인터리버에 의한 L 비트 시리즈에 대한 인터리빙을 도시한다.
도 24는 R{A}의 정의 2를 설명한다. R{A}는 A 비트들이 거꾸로인 순서로 재배열되는 것을 의미한다. 도 24에는 일 예로서 6 비트 시리즈가 거꾸로인 순서로 재배열되는 R{6}이 도시된다.
도 25는 L[N1×M1, N2×M2 ..]의 정의 3을 설명한다. L[N1×M1, N2×M2 ..]는 해당 인터리버들에 의한 복수의 시리즈에 대한 인터리빙을 의미한다. 도 25는 예로서 2개의 6 비트 시리즈 각각이 인터리브되는 6[3×2, 2×3]를 도시한다.
도 26은 L[N1[N2×M2]×M1]의 정의 4를 설명한다. L[N1[N2×M2]×M1]은 N1×M1 블록 인터리버에 의한 L 비트 시리즈에 대한 인터리빙 후에, M1 열 행렬(N1비트들) 각각이 N2×M2 인터리버에 의해 인터리브되는 것을 의미한다.
L[N1×M1 [N2×M2]]는 N1×M1 블록 인터리버에 의한 L 비트 시리즈에 대한 인터리빙 후에, N1 행 행렬(M1 비트들) 각각이 N2×M2 인터리버에 의해 인터리브되는 것을 의미한다.
도 26은 16 비트 시리즈(780)가 4×4 블록 인터리버 A(790)에 써지고 각 열 행렬이 4개의 2×2 인터리버들 B 내지 E 중 하나에 의해 읽혀져서 인터리브되는 16[4[2×2]×4]를 일 예로서 도시한다. 인터리버 F(800)는 인터리버들 B 내지 E에 의한 결과들을 같이 얻기 위해 사용된다.
상기에 언급된 인터리빙 설명 언어는 인터리빙 패턴을 참조하여 인터리빙 패턴을 생성하고 입력 시리즈에 대한 인터리빙을 수행하기 위해 사용될 수 있다.
이하에서, 상기 언급된 인터리빙 패턴 기술 언어에 의한 인터리빙의 실시예들이 설명될 것이다.
도 27에는 인터리빙 패턴 기술 언어에 의해 16[4[2×2]×4[2×2]]로 설명된 인터리빙 패턴을 생성하는 것이 실현되는 예가 도시된다.
16[4[2×2]×4[2×2]]라고 설명된 인터리빙 패턴의 의미는 다음과 같다:
(a) 4×4 블록 인터리버인 첫 번째 스테이지 인터리버는 16 비트 인터리빙을 실행한다.
(b) 첫 번째 스테이지 인터리버의 각각의 행 행렬들(4 비트)은 2×2 인터리버에 의해 인터리브된다.
(c) 첫 번째 스테이지 인터리버의 열 행렬들(4 비트)의 각각은 2×2 인터리버에 의해 인터리브된다.
도 27은 상기 과정이 어떻게 실현되는 지를 설명한다. 도 27에 도시된 것과 같이, 입력 16 비트 시리즈(810)가 4×4 블록 인터리버 A(820)에 써진다(도 27의 ①). 다음에, 행 데이터 각각이 인터리버 A(820)로부터 읽혀서 2×2 인터리버들 B 내지 E 중 하나에 의해 인터리브된다(도 27의 ②). 인터리브된 데이터는 인터리버 F(830)에 써진다(도 27의 ③). 그러면 열 데이터 각각은 2×2 인터리버 G 내지 J 중 하나에 의해 읽혀져서 인터리브된다(도 27의 ④).
마지막으로, 설명된 인터리빙 패턴은 인터리브된 데이터를 참조 번호 840의 테이블에 써서 생성된다(도 27의 ⑤).
도 28은 도 27에서 도시된 설명과 같은 16[4[2×2]×4[2×2]]로 나타내진 인터리빙 처리가 상기 언급된 인터리빙 방법에 의해 실현되는 것을 보여준다. 도 28에서, 인터리빙 패턴을 생성하기 위한 ①내지 ⑤에 대한 설명이 도 27에서 설명되었기 때문에 생략될 것이다. 그 후에, 생성된 인터리빙 패턴 테이블(850)을 참조하여 인터리빙이 실현될 수 있다(도 28의 ⑥).
도 29와 도 30에는 상기 언급된 인터리빙 패턴 기술 언어에 의해 설명된 공식이 인식되고 인터리빙을 수행하기 위한 상기 언급된 일곱 번째 내지 아홉 번째 실시예서 도시된 방법들 중 하나 혹은 그 방법들의 조합에 따라 인터리빙 패턴이 생성되는 예들이 도시된다.
도 29는 인터리빙 패턴 생성이나 16[4[2×2]×4[2×2]]라고 설명된 인터리빙 처리 과정이 상기 도 13에 도시된 인터리빙 처리 과정을 반복적으로 적용해서 실행된다는 것을 보여준다.
도 29에 따른 인터리빙 패턴 기술 언어에 의해 설명된 인터리빙 패턴을 사용하기 위해, 첫째로, 인터리빙 패턴 테이블들 A 내지 D를 이용하여 인터리빙 패턴 테이블들 E와 F가 생성된다(도 29의 ①과 ②). 두 번째로, 인터리빙 패턴 테이블 E와 F를 이용하여 계산해서 인터리빙 패턴 테이블 G(860)가 생성된다(도 29의 ③). 인터리빙이 요청되면, 인터리빙 패턴 테이블 G(860)와 같이 인터리빙이 실행된다(도 29의 ④).
도 30은 인터리빙 패턴 혹은 16[4[2×2]×4[2×2]]라고 설명된 인터리빙 처리 과정의 생성은, 예를 들면, 상기 도 17에서 도시된 인터리빙 처리 과정을 반복해서 처리해서 실행되는 것을 도시한 것이다.
도 30에 보여지는 것과 같이, 4 비트 인터리빙 패턴 방정식들 e와 f가 2 비트 인터리빙 패턴 방정식들 a 내지 d로부터 생성된다(도 30의 ①과 ②). 다음에, 16비트 인터리빙 패턴 방정식 g가 4 비트 인터리빙 패턴 방정식들 e와 f로부터 생성되고(도 30의 ③과 ④) 인터리빙 패턴 방정식 g를 사용하여 인터리빙이 실행된다(도 30의 ⑤).
생성된 인터리빙 패턴이 저장된 후에, 다음 인터리빙 혹은 다른 인터리빙 때에 다시 그 패턴을 생성하지 않고 그 패턴 테이블을 읽기만 해서 같은 인터리빙 처리가 될 수 있다. 도 31은 그러한 효과를 예로서 보여준다.
도 31은 4 비트 인터리빙 패턴 4[2×2]가 이미 저장되어 있으면 16[4[2×2]×4[2×2]]라고 설명된 인터리빙이 요청되는 경우를 보여준다.
예를 들면, 도 31에 도시된 경우는 도 29에 도시된 방법과 같은 방법을 갖는다. 도 31에서 도시된 것처럼, 시스템은 인터리빙 패턴 테이블 A와 B로 인터리빙 패턴 4[2×2]를 가진다. 그러므로 4[2×2]에 대응하는 처리 과정(도 29의 ①과 ②)을 수행하지 않고 4 비트 인터리빙 패턴들을 참조해서 16 비트 인터리빙 패턴이 생성될 수 있다(도 31의 ①). 그러면 생성된 인터리빙 패턴 테이블 C를 참조하여 인터리빙이 수행된다(도 31의 ②).
그러므로, 16[4[2×2]×4[2×2]]는 저장된 4[2×2] 인터리버로부터 생성될 수 있다.
도 27 내지 도 31에 도시된 인터리빙 패턴 기술 언어에 의해 설명된 인터리빙 패턴들을 실현하는 방법은 여기에 도시된 방법들에 한정되지 않는다. 예를 들면 이런 방법들은 결합될 수 있다. 그러므로, 인터리빙 패턴을 얻기 위해, 인터리빙 패턴 테이블이나 인터리빙 테이블 패턴이 사용될 수 있다.
다음에는, 상기 언급된 인터리빙 패턴의 생성 방법이 도 32에 도시된 흐름도에 의해 설명될 것이다.
도 32에 도시된 것처럼, 인터리빙 길이 L 비트가 주어질 때에, L 비트보다 같거나 큰 첫 번째 스테이지 인터리빙 패턴 N1×M1이 102 단계에서 결정된다. 다음에, 104 단계에서, 첫 번째 스테이지 인터리버의 행 행렬과 열 행렬에 대응하는 복수의 두 번째 스테이지 인터리빙 패턴들이 결정된다. 그러면, 106 단계에서, 세 번째 스테이지 인터리버들의 인터리빙 패턴들이 104 단계에서와 같은 방법으로 두 번째 스테이지 인터리버들과 대응한다. 108 단계에서, 인터리빙이 더 이상 혹은 어떤 스테이지에서도 가능하지 않을 때까지 상기 처리 과정이 반복될 것이며, 마침내, 110 단계에서 인터리빙 패턴 기술 언어에 의해 설명될 수 있는 인터리빙 패턴이 생성된다.
각 스테이지의 인터리버의 인터리빙 패턴을 결정하기 위한 방법으로, 인수분해 사용, 목록 언급 및 각 스테이지의 인터리빙 길이를 제곱한 결과에 가까운 실수를 사용하며, 상기 각 방법들에서 각 스테이지의 N×M 인터리버에서 N 혹은 M을 위한 홀수나 솟수를 선택하는 방법들이 사용될 수 있다.
상기에 언급된 방법은 다중 스테이지 인터리빙 방법이라고 불릴 것이다.
도 33은 생성된 인터리빙 패턴들 중에서 실행할 수 있는 인터리빙 패턴을 선택하는 흐름도이다.
도 33에 도시된 것처럼, 인터리빙 길이에 대응하는 인터리빙 패턴이 도 32에서 설명된 것처럼 S204 단계에서 생성되며, 생성된 인터리빙 패턴은 S206 단계에서 시험된다.
시험이 실패라면 도 32에서 보여진 각 스테이지 인터리버의 패턴 전부 혹은 일부가 S204 단계에서 다시 생성된다. 상기 처리 과정은 결국 생성된 인터리빙 패턴을 결정하기 위해 성공할 때까지 반복될 것이다.
시험의 항목들은 버스트 오류에 대한 저항 강도, 인터리브된 비트들의 무작위성 그리고 그와 비슷한 것일 것이다. 특별히, 그 인터리버가 터보 코드 인터리버로 사용된다고 가정한다면, 코드 가중 시험, 격자 단말을 가정한 가중 시험 및 유사한 것들이 시험을 위해 사용될 수 있을 것이다.
상기 설명에 따르면, 본 발명의 방법들은 비트 이외에도 심볼같은 어떤 인터리빙 단위에도 적용될 수 있다. 그리고 인터리브된 시리즈의 길이는 시간에 따라 달라질 수 있을 것이다.
본 발명의 일곱 번째 내지 열 번째 실시예의 인터리빙 패턴 생성을 위한 방법에 따르면, 메모리 용량이 줄어들 수 있고 대응하는 인터리빙 패턴이 없는 인터리빙 길이가 유연성 있게 처리될 수 있다. 말하자면, 본 발명의 방법을 사용하지 않고 1000 비트 시리즈를 인터리빙 할 때에, 1000 비트들을 위한 인터리빙 패턴을 포함하는 테이블이 필요하다. 그러므로, 인터리빙 길이가 길수록, 인터리빙 패턴 테이블을 저장하는 메모리 양도 많아지며, 그 때에 인터리빙 길이는 비트들, 심볼 및 유사한 것과 같은 인터리브된 단위들의 총 개수를 의미한다. 더 나아가, 본 발명이 없이, 인터리빙 패턴이 변할 때에, 충분한 인터리빙 패턴들이 준비되어 각 인터리빙 패턴은 변한 인터리빙 길이에 대응해야 할 필요가 있다. 그러므로, 인터리빙 길이의 종류가 많을수록 각 인터리빙 길이에 대응하는 인터리빙 패턴 테이블들을 저장하기 위한 메모리 양도 많아진다. 예를 들면, 10 비트, 100 비트, 1000 비트 10000 비트 인터리빙 길이의 인터리버들의 4 종류를 위해서 10(log(10-1)]+1)+100([log(100-1)]+1)+1000([log(1000-1)]+1)+10000([log(10000-1)]+1) 비트의 메모리 용량이 모든 인터리빙 패턴들을 저장하기 위해 필요하며, 이때에 [log X]는 밑이 2인 X의 로그 값을 취해서 그 값의 소수부분은 버린 것을 의미하며, 그러므로, [log (X-1)]+1은 정수 X를 2진수로 표현한 자리 수를 의미한다. 본 발명에 따르면, 그러한 문제는 발생하지 않는다. 더 나아가, 본 발명에 따르면, 인터리빙 패턴인 인터리빙 패턴 기술 언어에 의해 설명으로 생성될 수 있다. 생성된 인터리빙 패턴의 특성이 검사될 수 있고, 그러면, 만일 시험된 특성이 나쁘다면 좋은 특성의 인터리빙 패턴이 다시 생성되는 시스템을 부가하는 것이 가능하다.
다음에, 세 번째 목적을 달성하기 위한 본 발명의 실시예들이 설명될 것이다. 다음에서, 터보 인코더, 이동 통신의 송신기-수신기를 가진 전송 시스템 및 유사한 것이 설명될 것이다. 실시예들을 설명하기 전에, 터보 인코더와 이동 통신의 송신기-수신기의 구성이 설명될 것이다.
도 34a 는 터보 인코더의 구성을 도시한 도면이다. 터보 인코더는 재귀 계통적 길쌈 인코더들(recursive systematic convolutional encoders)(RSC 12, RSC 13)을 포함하여 구성되는데, 재귀 계통적 길쌈 인코더는 도 34b에 도시된다. 도 34에 도시된 것처럼, 입력 데이터 d는 처리되어 출력 데이터 X1 내지 X3으로 출력된다. 인터리버(11)는 여분의 비트들 X1 과 X2 간의 상호 관계를 줄이기 위해 재귀 계통적 길쌈 인코더(RSC, 13)의 전단에 위치한다. 그리고, 터보 디코더는 2 개의 디코더들을 포함하는데, 하나의 인터리버와 인터리버의 역과정을 실행하는 하나의 역인터리버이다.
도 35는 이동 통신의 CDMA의 송신기-수신기와 그 유사한 것의 구성의 일부를 나타내는 도면이다. 송신단에서는, 채널 인코더(21)가 채널 인코드를 수행한 후에, 채널 인터리버(23)가 인터리빙을 수행한다. 그러면 SS 송신기(23)는 변조된 신호들과 파일럿 심볼들을 시분할 다중화하고 확산 변조를 수행한다. 수신단에서는, RAKE 수신기(25)가 역분산을 수행하고, 그러면 파일럿 심볼들을 이용해서 RAKE 합성을수행한다. 채널 역인터리버(26)는 역인터리빙을 수행하고 채널 디코더(27)는 디코딩을 수행한다. 만일 터보 코드가 전송 시스템에 사용된다면, 채널 인코더(21) 대신에 터보 인코더가 사용되며, 채널 디코더(27) 대신에 터보 디코더가 사용된다.
이런 장치들에서 사용되는 인터리버의 테이블은, 예를 들면, 도 12에서 설명된 것이다.
다음에, 채널 역인터리버(26)와 그와 비슷한 곳에서 실행되는 역인터리빙의 예들이 도 36과 도 37을 참조하여 설명된다.
도 36a는 테이블 A(LA=3 비트)와 테이블 B를 이용하여 12 비트를 인터리브하는 예를 보여준다. 인터리빙 패턴 테이블 C[i](비트 순서 C의 i번째 비트)를 생성하기 위한 연산은 다음과 같다.
이때에 LA = 3이고 LB = 4이다. 그리고, 테이블 A는 테이블 C의 수직 방향의 패턴을 정의하고 테이블 B는 테이블 C의 수평 방향의 패턴을 정의한다. 연산을 계산해서, 인터리빙 패턴 테이블 C는 생성되고, 그러면 출력 데이터는 인터리빙 패턴 테이블 C를 참조하여 입력 데이터로부터 얻어진다.
도 36b는 상기에 언급된 과정의 역과정인 역인터리빙 과정을 보여준다. 역인터리빙 패턴 테이블 C(870)는 테이블 A와 테이블 B를 교환하고 같은 연산을 수행해서 생성될 수 있다. 만일 입력 데이터가 상기에 언급된 인터리빙의 출력인 0, 8, 4, 2, ..., 7 이면, 출력은 상기에 언급된 인터리빙의 입력인 0, 1, 2, ..., 11이된다.
도 37a는 LA×LB>L인 경우의 인터리빙의 일 예를 보여주며, 도 37b는 역인터리빙을 보여준다. 도 37a에서, L과 같거나 큰 값은 독출되지 않거나, 테이블을 생성할 때에 그 값은 써지지 않는다. 도 37c의 연산 공식은 다음과 같다.
이때에 α는 다음의 규칙을 따른다(C 언어로 표현).
α = 0
for (j=0, J<(LA×LB-L), J++){
if C[i] >= LB ×A[(L-1-j)%LA] + B[(L-1-j)/LA]
α++;
}
역인터리빙 방법은 상기 언급된 인터리빙 방법들에 적용될 수 있고 또한 다음에 언급될 인터리빙 방법들에도 적용될 수 있다.
다음으로, 11번째 실시예가 설명될 것이다. 다음의 설명에서, 인터리빙 패턴을 설명하기 위한 표시 법은 도 23 내지 도 25에서 사용된 것이다.
다음에서, 터보 코드를 위해 적합한 인터리빙 패턴의 생성 방법은 도 38 내지 도 45를 참조하여 설명될 것이다.
도 38은 L 비트 인터리빙 길이를 가지며 터보 코드에 적합한 인터리빙 패턴을 생성하는 방법을 설명하는 흐름도이다.
도 38에 도시된 첫 번째 스테이지(S302 단계)에서 더 높은 스테이지(S306 단계)까지, L 비트 인터리빙 길이를 가진 터보 코드를 위한 인터리빙 패턴은 도 39와 함께 상세히 설명될 판단 과정에 의해 결정된다. 각 결정 과정 브랜치(branch)의 모든 과정들이 완성될 때에 인터리브 패턴들이 결정되며, 그러면 인터리빙 패턴은 결정된 마지막 결과로부터 생성된다(S308 단계). 그 후에, 생성된 인터리빙 패턴은 검사되고 터보 코드에 적합한 L 비트 인터리빙 길이의 인터리빙 패턴이 얻어질 수 있다.
이제, 인터리빙 패턴의 결정 과정이 설명될 것이다. 도 39는 인터리빙 패턴의 결정 과정을 상세하게 보여주는 도면이다. 도 40은 인터리빙 패턴의 결정 과정을 위해 사용되는 미리 정의된 인터리빙 패턴들(predefined interleaving patterns; PIP)의 목록을 보여주는 테이블이다. 미리 정의된 인터리빙 패턴 목록은 터보 코드에 적합하다고 인정되는 인터리빙 패턴들의 목록이다.
도 38의 첫 번째 스테이지에서, L≤N¹×M¹(위첨자는 스테이지의 번호를 나타낸다)의 행과 열로 나타내지는 인터리빙 패턴을 결정하는 것이 필요하다. 이 11번째 실시예에서, N¹ 은 7로 고정되어 있다. 그러므로, L을 7로 나눈 값이 정수라면 M¹이 그 값이며, 그리고 다른 경우에는 M¹은 그 값보다 큰 최소의 정수가 되게 M¹이 정해진다. N¹에 대응하는 미리 정의된 인터리빙 패턴은 도 40에서 T7이라고 보여지는 R{7[3×3[2×2]]}이다.
첫 번째 스테이지의 인터리빙 패턴의 행과 열을 결정하기 위해 7개의 행들 (M1¹- M7¹) 각각을 행과 열로 표시하는 것이 필요하다. 그러므로, 두 번째 단계에서, 행과 열은 각 행들에 대응하는 7개 브랜치들 각각에서 결정될 필요가 있다(도 39 참조). 행과 열을 결정하기 위해, 도 38의 두 번째 스테이지(S304)에서 보여진 것과 같이, 행들 MY²(Y=1, 2, ..., 7) 각각의 숫자는 도 38의 PIP 목록에서 도시된 '7, 13, 17, 29, 37, 43, 59 (L >3000 비트)' 혹은 '5, 7, 11, 13, 17, 37, 43 (3000>L≥301 비트)'으로부터 선택된다. 행의 개수 NY²는 M1을 선택된 숫자 MY²로 나눈 값이 정수라면 NY²가 그 값이며, 그리고 다른 경우에는 NY²는 그 값보다 큰 최소의 정수가 되게 NY²가 정해진다. 만일 NY²에 대응하는 IP(interleaving pattern)가 도 40의 테이블에서 정의된다면, 브랜치에 대한 연산은 완료된 것이다. 그렇지 않다면, 그 과정은 다음 단계(S306 단계)로 이동한다.
다음 과정(S306 단계)에서, 미정의 행들이 결정될 때까지 행과 열을 결정하게 된다. 그 과정(S306 단계)에서, 각 브랜치는 이하에서 설명되고 도 39에서 도시된 것처럼 진행된다. 행 MY Z(Z≥3)의 수는 이전 스테이지의 행 NY (Z-1)의 정의되지 않은 수의 제곱근과 같거나 혹은 작은 수로 정의되며, 도 40의 PIP(4와 6은 제외)에서 최대의 수이다. 4와 6을 제외하는 이유는 홀수나 혹은 큰 수가 터보 코드의 열의 수에 적합하다는 것이 경험적으로 알려져 있기 때문이다. 행 NY Z의 수는 NY (Z-1)값을 상기 정의된 MY Z로 나눈 값이 정수이면 NY Z가 그 값이며, 다른 경우에는 NY Z는그 값보다 큰 최소의 정수이다. PIP가 도 40에서 행의 수 NY Z를 위해 정의되면, 브랜치의 진행 절차는 완성된다. 그 절차는 모든 스테이지의 모든 브랜치가 완성될 때까지 실행될 것이다.
또한, 도 40에 도시된 인터리빙 패턴 외에, 다른 수에 대응하는 인터리빙 패턴이 정의될 수 있다. 이런 경우에, 다른 수에 대응하는 인터리빙 패턴은 도 38에 도시된 더 높은 스테이지의 방법과 같은 방법에 의해 생성된다. 도 40에서 인터리빙 패턴들이 더 많이 정의되면, 과정은 더 빨리 완성된다. 도 40에 도시된 인터리빙 패턴들의 수가 그런 방법으로 증가하면, MY Z(Z≥3)은 도 40에 도시된 '2, 3, 5, 7, 8, 9, 11, 13, 17, 20, 29, 37, 43, 47, 53, 59, 61' 중에서 선택될 것이다.
행과 열의 모든 인터리빙 패턴이 정의된 후, 인터리빙 패턴은 행과 열의 정의된 인터리버들로부터 생성된다(S308 단계). 그 과정은 도 41 내지 도 44를 참조하여 자세하게 설명될 것이다.
도 41은 상기 언급된 다중 스테이지 인터리빙 방법에 의한 인터리빙 패턴의 상세한 생성 과정을 도시한 도면이다. 이 도면에서 이해될 수 있듯이, 상위의 스테이지의 행 혹은 열에 대응하는 인터리빙 패턴(IP)이 하위의 스테이지에서 정의된 행 또는 열에 대응하는 인터리빙 패턴(IP)으로부터 결정되며, 이것은 도 39에서 각 브랜치의 과정의 역이다. 그러면, L 비트 인터리빙 패턴(IP)이 결국에는 생성될 수 있다.
행과 열의 인터리빙 패턴들에 의해 인터리빙 패턴(IP)이 생성되는 방법이 도42 내지 도 44를 참조하여 상세하게 설명될 것이다. 도 42는 인터리빙 패턴의 생성 과정의 한 스테이지를 설명하는 도면이다. 도 43은 도 42에 도시된 생성 과정의 일 예이다. 도 44는 인터리빙 패턴 생성 과정의 마지막 스테이지를 설명하기 위한 도면이다.
도 42는 각 브랜치의 NY Z(= NY (Z+1)×MY (Z+1)) 비트들의 인터리빙 패턴이 하위의 스테이지에서 결정된 열에 대응하는 NY (Z+1)비트 인터리빙 패턴(IP)과 하위의 스테이지에서 결정된 행에 대응하는 MY (Z+1)비트 인터리빙 패턴을 사용하여 어떻게 생성되는 가를 도시한다.
도 42에서, 열에 대응하는 NY (Z+1)비트 인터리빙 패턴(IP)과 행에 대응하는 MY (Z+1)비트 인터리빙 패턴(IP)에 연산을 하여, NY Z비트들의 패턴 C'[i]가 각 브랜치에서 생성된다. C'[i]는 패턴 C'의 i번째 원소를 나타낸다. 그 연산은 다음의 식과 같다.
이때에 A는 열의 NY (Z+1)에 대응하는 인터리빙 패턴을 나타내고, B는 행의MY (Z+1)에 대응하는 인터리빙 패턴을 나타내며, '%'는 나누기의 나머지를 취하는 모듈러 연산자이고, '/'는 나눗셈의 정수부(소수부는 버린다)를 의미한다.
그 연산에 의한 패턴 C'는 수직 NY (Z+1)× 수평 MY (Z+1)의 용량을 가지는 메모리에 수직 방향으로 써진다. 그러면, 그 메모리를 수직 방향으로 독출하여 NY Z비트 인터리빙 패턴 C가 얻어진다. 그때에, 인터리빙 패턴 C는 NY Z가 NY (Z+1)× MY (Z+1)보다 작을 때에 NY Z와 같거나 큰 수를 메모리에 쓰지 않으면 얻어질 수 있다. 또한, 모든 데이터를 메모리에 쓰고 읽을 때에는 NY Z보다 큰 수는 건너뛰어서 인터리빙 패턴이 얻어질 수 있다.
도 43은 과정의 구체적인 일 예를 도시한 것이다. 도 43은 4×4 = 16보다 작은 15 비트 인터리빙 패턴(IP)이 4 비트 인터리빙 패턴(IP) A와 4 비트 인터리빙 패턴(IP) B로부터 얻어질 수 있는 일 예를 도시한 것이다.
도 43에서 도시된 바와 같이, 16 비트 인터리빙 패턴 C'는 4 비트 인터리빙 패턴 A = {0, 2, 1, 3}와 4 비트 인터리빙 패턴 B = {0, 2, 1, 3}를 사용한 연산에 의해 얻어진다. 그러면, 그 패턴은 4×4 메모리에 수직의 방향으로 차례로 써진다. 그 연산은 다음의 식과 같다.
이 때에, 수학식 25에 의해 얻어진 '15'는 그 메모리에 써지지 않는다. 15 비트 인터리빙 패턴 C는 메모리에 써지는 방향과 같은 방향으로 차례로 메모리에서 독출하여 얻어질 수 있다.
그러면, 마지막 스테이지로부터 두 번째 스테이지까지의 각 행과 각 열에 대응하는 인터리빙 패턴(IP)과 첫 번째 스테이지의 첫 번째 행 내지 일곱 번째 행에 대응하는 인터리빙 패턴들이 얻어질 수 있다. 마지막으로, L 비트 인터리빙 패턴이 첫 번째 행 내지 일곱 번째 행의 인터리빙 패턴으로부터 얻어진다.
도 44는 L 비트 인터리빙 패턴이 첫 번째 스테이지에서 복수의 행들로부터 어떻게 생성되는가를 설명하기 위한 도면이다. 도 44에 도시된 것처럼, L 비트 패턴 C는 열에 대응하는 N 비트 인터리빙 패턴(IP)과 각 행에 대응하는 N 인터리빙 패턴들로부터 생성된다.
도 44에서, 열 N을 A라고 하고, 행인 M0내지 M(n-1)각각을 B0내지 B(n-1)이라고 하면, 그 연산은 다음 식과 같이 나타내진다.
이것은 도 43과 틀리며 B가 바뀌었다. L 비트 인터리빙 패턴 C는 수직 방향으로 차례로 메모리에 쓰고 수직 방향으로 차례로 독출하여 생성될 수 있다. L<M×N 일 때에 그 과정은 도 43에 설명된 것과 같다.
상기에서 언급된 것처럼, L 비트 길이의 인터리빙 패턴이 생성될 수 있다(도38의 S308 단계). 도 38에서, 생성된 인터리빙 패턴이 다음에 검사된다(S310 단계). 생성된 인터리빙 패턴이 그 검사 때문에 거절되면, 인터리빙 패턴은 N을 R(7[3×R{3}])에 의해 표시된 7로 바꿔서 다시 생성되며, 다시 생성된 패턴을 이전의 인터리빙 패턴과 비교하여 더 나은 인터리빙 패턴이 선택된다.
생성된 인터리빙 패턴의 검사 방법은 도 45를 참조하여 설명될 것이다. 도 45에서 도시된 것처럼, 인터리브된 L 비트 시리즈는 인터리브되지 않은 L 비트 시리즈와 비교되며, 인터리브되지 않은 비트 시리즈의 마지막 비트로부터 30 비트 내의 모든 비트들 혹은 비트들의 일부가 인터리브된 비트 시리즈의 마지막 비트로부터 30 비트 이내에서 인터리브되면, 인터리빙을 수행하는 인터리빙 패턴은 거절될 것이다.
도 38에서 도시된 흐름도에 의해 얻어진 인터리빙 패턴은 터보 코딩에 적합하다. 터보 코드는 강제 길이가 3인 터보 코드를 가정한다. 말하자면, 그것은 (16)과 (17) 같은 두 개의 지연 원소들 D가 있다는 것을 뜻한다(강제 길이 - 1). 강제 길이 4인 터보 코드를 가정하면, 도 38의 첫 번째 스테이지의 N¹은 R{8[4[2×2]×2]}에 나타내지는 8로 정해질 수 있다. 말하자면, M¹은 L/8이 되고 도 41에 도시된 브랜치들의 개수는 7에서 8로 늘어난다.
다음에, 12번째 실시예가 설명될 것이다.
다음에서, 전송 회선 인터리버에 적합한 인터리빙 패턴을 생성하는 방법이 도 46 내지 도 49를 참조하여 설명될 것이다.
도 46은 전송 시스템에 적합한 인터리빙 패턴을 생성하는 방법을 설명하기위한 흐름도이다.
L 비트 인터리빙 길이를 가진 전송 회선 인터리버를 위한 인터리빙 패턴은 도 47과 함께 상세하게 설명될 결정 과정에 의해서, 도 46에 도시된 첫 번째 스테이지(S402 단계)로부터 더 높은 스테이지(S406)까지 결정된다. 인터리브 패턴들은 각 결정 과정 브랜치의 모든 과정들이 완성되면 결정되며, 그러면, 인터리빙 패턴은 결정된 마지막 결과들로부터 생성된다(S408 단계).
이제, 인터리빙 패턴의 경정 과정이 설명될 것이다. 도 47은 인터리빙 패턴을 결정 과정을 상세하게 보여주는 도면이다. 도 48은 인터리빙 패턴의 결정 과정을 위해 사용되는 미리 정의된 인터리빙 패턴(PIP)의 목록을 보여주는 테이블이다. 도 48의 미리 정의된 인터리빙 패턴 목록은 전송 시스템에 적합한 것으로 인식된 인터리빙 패턴들의 목록이다.
도 46의 첫 번째 스테이지(S402 단계)에서, L ≤ N¹ × M¹(위첨자는 스테이지의 번호를 표시한다)인 행과 열에 의해 표현된 인터리빙 패턴을 결정할 필요가 있다. 첫 번째 스테이지의 열의 개수인 M¹은 한 프레임의 슬롯들의 개수(인터리빙 길이)에 따라 16, 32, 64, 128 중에서 선택된다. 첫 번째 스테이지의 행의 개수인 N¹은 선택된 M¹로 나눠진 L보다 큰 최소의 정수로 결정된다.
두 번째 스테이지(S404 단계)에서, 도 48에 도시된 미리 정의된 인터리빙 패턴들의 목록에 대응하는 숫자들('13'과 '17' 제외) 중에서 M²는 N¹을 나눌 수 있고 N¹의 제곱근과 같거나 더 작은 최대의 수로 선택된다. 그 정수가(N¹의 제곱근/4)보다 작거나 PIP 목록에 나눌 수 있는 후보가 없으면 N¹의 제곱근과 같거나 작은 최대의 정수가 PIP 목록에서 선택된다('13'과 '17' 제외). 13과 17을 제외하는 이유는 짝수가 전송 시스템에 적합하다는 것이 경험적으로 알려졌기 때문이다. N²는 선택된 M²에 의해 나눠진 N¹과 같거나 큰 최소의 정수이다. 두 번째 스테이지(S404 단계)에서, 도 48의 PIP 목록에서 N²가 정의되면, 모든 인터리빙 패턴이 결정되고, 그 때문에 결정된 인터리빙 패턴을 이용하여 L 비트 인터리빙 패턴을 생성하는 과정이 실행된다(S408 단계). 만일 N²가 PIP 목록에 정의되어 있지 않다면, 그 과정은 다음 스테이지로 진행한다(S406 단계).(도 47 참조)
참조 번호 S406 스테이지에서, 두 번째 스테이지와 유사하게, Mz('Z'는 스테이지의 개수를 표시한다)는 도 48에 도시된 미리 정의된 인터리빙 패턴들의 목록에 대응하는 숫자들('13'과 '17' 제외) 중에서 N¹을 나눌 수 있고 N¹의 제곱근과 같거나 더 작은 최대의 수로 선택된다. 그 정수가(N¹의 제곱근/4)보다 작거나 PIP 목록에 나눌 수 있는 후보가 없으면 N¹의 제곱근과 같거나 작은 최대의 정수가 PIP 목록에서 선택된다('13'과 '17' 제외). Nz는 선택된 Mz에 의해 나눠진 N(Z-1)과 같거나 큰 최소의 정수이다. 그러한 처리 과정은 Nz가 도 48의 PIP에서 정의될 때까지 실행된다(도 47 참조). 그것이 정의되면, 모든 인터리빙 패턴들이 정의되었으므로, 결정된 인터리빙 패턴들을 이용하여 L 비트 인터리빙 패턴 생성을 위한 과정이 수행된다(S408 단계).
그리고, 도 48에 도시된 인터리빙 패턴 외에, 다른 숫자에 대응하는 인터리빙 패턴이 정의될 수 있다. 이런 경우에, 다른 숫자에 대응하는 인터리빙 패턴은도 46에 도시된 더 높은 스테이지에서의 방법과 같은 방법에 의해 생성된다. 도 48에서 정의된 인터리빙 패턴 테이블이 많을수록, 처리 과정은 더 빨리 완성된다. 도 48에 도시된 인터리빙 패턴의 개수가 증가하더라고, My z(Z≥2)는 도 48에서 도시된 '2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 20, 32, 64, 128' 중에서 선택될 것이다.
L 비트 인터리빙 패턴을 생성하는 과정(S408 단계)은 상기 언급된 다중 스테이지 인터리빙 방법에 의해 인터리빙 패턴의 상세한 생성 과정을 도시하는 도 49를 참조하여 설명될 것이다.
도 49에서, 인터리빙 패턴들(IP) NZ와 MZ를 이용하여 이전 스테이지의 N(Z-1)가 얻어질 것이다. 얻는 과정은 도 42와 도 43에서 설명되었기 때문에, 설명은 생략될 것이다. 그 과정을 차례로 수행하여, 전송 시스템에 적합한 L 비트 인터리빙패턴이 얻어질 수 있다. 상기의 설명에서, 비트 길이는 인터리빙 패턴 길이로부터 사용된다. 다른 표현 방법이 비트가 아닌 하나의 단위로서 인터리빙을 위해서 사용될 것이다.
다음에서, 상기 언급된 인터리빙 방법을 사용하는 인터리빙 장치가 13번째 실시예로서 설명될 것이다.
설명된 인터리빙 방법은 지금까지 도 34에서 도 35에 도시된 장치들의 인터리버와 역인터리버에 적용될 수 있다. 그러나 그것은 그 장치들에 한정되지 않는다. 본 발명의 다중 인터리빙 방법이 인터리빙을 수행하는 다른 장치들에 적용될 수 있다. 11번째와 12번째 실시예들의 본 발명은 특히 도 34와 도 35에 도시된 장치, 즉 터보 인코더와 전송 시스템 장치에 특히 적합하다.
인터리버와 역인터리버의 구성들이 같기 때문에, 인터리버의 일 예가 설명될 것이다. 도 50은 인터리빙 혹은 역인터리빙을 수행하기 위한 장치의 일 예를 도시한 것이다. 도 50에서 도시된 것처럼, 인터리버는 입력 버퍼(30), 출력 버퍼(32), 메모리(34) 및 CPU(36)를 포함한다. 입력 시리즈 데이터는 입력 버퍼에 저장되고 인터리브된 출력 시리즈 데이터는 출력 버퍼에 저장된다. 역인터리빙의 경우에는, 인터리브된 데이터는 입력 버퍼(30)에 저장되고 역인터리브된 데이터는 인터리빙 이전의 데이터이다. 입력 버퍼와 출력 버퍼(32)는 RAM, 쉬프트 레지스터(shift register) 및 그와 유사한 것으로 구현된다. 메모리(34)는 상기 언급된 인터리브된 패턴 테이블들 그리고/혹은 출력 버퍼(32)의 인터리브된 어드레스를 직접 계산하는 프로그램을 저장하며, RAM, ROM 그리고 그와 유사한 것으로 구현된다. CPU(36)는 버퍼들에 대한 입출력 명령, 어드레스 계산 및 기타를 수행한다. 상기 언급된 구성은 LSI와 그와 유사한 집적 회로에 의해 구현될 수 있다.
다음에는, 메모리(34)가 인터리빙 패턴 테이블 망을 저장하는 경우의 운용이 설명될 것이다.
입력 시리즈 데이터가 입력 버퍼(30)의 입력일 때에, CPU(36)는 메모리(34)의 인터리빙 패턴 테이블을 참조하여 출력 버퍼의 목적 어드레스를 독출하며 입력 시리즈 데이터를 출력 버퍼(32)의 어드레스로 출력한다.
어드레스를 직접 계산할 때에, CPU(36)는 프로그램에 의해 목적 어드레스들을 계산하고 입력 버퍼(30)의 입력 시리즈 데이터의 주소로부터 출력 버퍼(32)의어드레스로 출력한다.
다음에는, 본 발명에 따른 매체가 14번째 실시예로 설명될 것이다. 도 38과 도 46에서 도시된 흐름도와 함께 설명된 인터리빙 패턴 생성 방법을 컴퓨터에서 수행하여, 인터리빙 패턴은 자동적으로 생성될 수 있고 상기 언급된 RAM과 그와 유사한 곳의 패턴 데이터로 사용될 수 있으며 전송 시스템과 터보 코드에 적합하다.
그 때에, 도 40과 도 48에서 정의된 인터리빙 패턴은 저장 장치에 저장될 수 있으며 프로그램에 의해 참조될 수 있다. 또한, 단지 표현 방법만이 저장될 수도 있을 것이며 필요하다면 인버팅 패턴이 생성될 수도 있을 것이다. 그리고, 예를 들면, 도 39, 도 41, 도 47, 도 49에 도시된 공통의 처리 과정들이 서브루틴들로 사용될 수 있고 다른 처리 과정들로부터 호출되어 사용될 수 있다.
본 발명의 프로그램을 저장하는 매체가 전자 메모리, 하드 디스크, 광자기 디스크, 플로피 디스크 및 그와 유사한 것에 의해 실현될 수 있다. 본 발명의 방법들은 실행될 수 있고 인터리빙 패턴은 컴퓨터내의 매체에 저장된 프로그램을 로딩 하거나 컴퓨터의 내부에 그 매체를 통합하여 얻어질 수 있다. 더 나아가, 인코더/디코더와 송신기-수신기는 인코더/디코더와 송신기-수신기내의 메모리에 저장된 프로그램을 로딩 하거나 그 장치들 내에 매체를 통합하여 최적의 인터리빙 패턴을 자동적으로 생성하도록 만들어질 수 있다. 그러므로, 그 장치들은 통신에서 다양한 환경 하에 최적의 인터리빙 처리 과정들을 수행할 수 있다.
상기에서 언급된 바와 같이, 본 발명의 인터리빙 패턴 생성 방법을 사용해서, 사용 목적에 적합한 인터리빙 패턴을 사용할 수 있다.
본 발명은 특별히 개시된 실시예들에 한정되지 않으며, 본 발명의 범위를 벗어나지 않고 변화들과 수정들이 이루어질 수 있을 것이다.

Claims (34)

  1. 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
    상기 데이터 시리즈의 데이터를 첫 번째 인터리버에 쓰고, 그 데이터를 상기 첫 번째 인터리버로부터 열 별로 혹은 행 별로 독출하며, 그 데이터를 복수의 두 번째 인터리버들에 쓰는 첫 번째 단계;
    상기 두 번째 인터리버들 각각으로부터 데이터를 독출하고, 필요하다면 하나 혹은 복수의 세 번째 인터리버에 그 데이터를 쓰는 두 번째 단계; 및
    상기 두 번째 단계를 한 번 혹은 여러 번 반복해서 생성된 인터리브들 각각으로부터 혹은 상기 첫 번째 단계에 의해 생성된 인터리버들 각각으로부터 데이터를 독출하고, 상기 인터리브된 데이터 시리즈를 출력하는 단계를 포함하는 것을 특징으로 하는 인터리빙 방법.
  2. 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
    상기 데이터 시리즈를 첫 번째 인터리버에 한쪽 방향으로 쓰는 첫 번째 단계;
    상기 첫 번째 인터리버로부터 열 데이터 혹은 행 데이터를 독출하고, 상기 첫 번째 인터리버의 크기와는 다른 크기의 두 번째 인터리버에 상기 독출한 데이터를 한쪽 방향으로 쓰며, 상기 열 데이터나 행 데이터를 독출하는 것과 상기 독출한 데이터를 열 별로 혹은 행 별로 쓰는 것을 반복하는 두 번째 단계;
    상기 두 번째 단계에 의해 생성된 상기 복수의 두 번째 인터리버들 각각을 상기 첫 번째 인터리버로 간주하여 상기 두 번째 단계를 실행하는 세 번째 단계를 반복하는 단계; 및
    상기 세 번째 단계를 반복하거나 상기 두 번째 단계를 실행해서 생성되는 인터리버들 각각으로부터 데이터를 독출하고 상기 인터리브된 데이터 시리즈를 출력하는 단계를 포함하는 것을 특징으로 하는 인터리빙 방법.
  3. 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
    상기 데이터 시리즈를 첫 번째 인터리버에 한쪽 방향으로 쓰는 첫 번째 단계;
    상기 첫 번째 인터리버로부터 열 데이터 혹은 행 데이터를 독출하고, 상기 첫 번째 인터리버의 크기와는 다른 크기의 두 번째 인터리버에 상기 독출한 데이터를 한쪽 방향으로 쓰며, 상기 열 데이터나 행 데이터를 독출하는 것과 상기 독출한 데이터를 열 별로 혹은 행 별로 쓰는 것을 반복하는 두 번째 단계;
    상기 두 번째 단계에 의해 생성된 인터리버들 각각으로부터 열 별로 혹은 행 별로 데이터를 독출하고, 상기 첫 번째 인터리버의 크기와 같은 크기의 인터리버에 상기 데이터를 쓰는 세 번째 단계; 및
    상기 세 번째 단계에 의해 생성된 상기 인터리버로부터 데이터를 독출하고, 상기 인터리브된 데이터 열을 출력하는 단계를 포함하는 것을 특징으로 하는 인터리빙 방법.
  4. 제 3항에 있어서,
    상기 세 번째 단계에서 생성된 상기 인터리버를 상기 첫 번째 인터리버로 간주하여 상기 두 번째 단계와 상기 세 번째 단계를 수행하는 네 번째 단계;
    상기 네 번째 단계를 한 번 혹은 여러 번 반복하여 생성된 인터리버로부터 데이터를 읽어내는 단계; 및
    상기 인터리브된 데이터 시리즈를 출력하는 단계를 더 포함하는 것을 특징으로 하는 인터리빙 방법.
  5. 어느 단위 길이의 데이터 시리즈를 입력하고 상기 단위 길이의 인터리브된 시리즈를 출력하는 인터리빙 방법에 있어서,
    제1 단위의 인터리브 패턴 기술과 제2 단위의 인터리브 패턴 기술을 이용한 연산에 의해, 제3 단위의 인터리브 패턴 기술을 작성하고,
    상기 연산에 의해 작성된 인터리브 패턴 기술을 미리 테이블에 등록해 두고, 상기 테이블을 참조하여, 입력한 데이터 시리즈에 상기 인터리빙 패턴 기술을 적용하여 출력하는 것을 특징으로 하며,
    상기 인터리브 패턴 기술은 인터리브 패턴을 기술한 인터리브 패턴 테이블 또는 인터리브 패턴 방정식인 인터리빙 방법.
  6. 제 5항에 있어서, 상기 연산에 의해 인터리빙 패턴을 작성하는 수순을 복수회 실행함으로써 소정 길이 단위의 인터리브 패턴 기술을 작성하고, 상기 인터리브 패턴 기술을 상기 테이블에 등록하는 것을 특징으로 하는 인터리빙 방법.
  7. 어느 단위 길이의 입력 데이터 시리즈를 입력하고 상기 단위 길이의 인터리브된 시리즈를 출력하기 위한 인터리빙 방법에 있어서, 인터리빙 패턴을 사용하여 입력 데이터를 인터리브하는 경우의 상기 인터리브 패턴의 기술 작성 방법에 있어서,
    제1 단위의 인터리브 패턴 기술과 제2 단위의 인터리브 패턴 기술을 이용한 연산에 의해, 제3 단위의 인터리브 패턴 기술을 작성하고, 상기 인터리브 패턴 기술은 인터리브 패턴을 기술한 인터리브 패턴 테이블 또는 인터리브 패턴 방정식인 것을 특징으로 하는 인터리브 패턴 기술 작성 방법.
  8. 인터리빙 패턴 기술을 생성하는 방법에 있어서,
    제 7항에서 청구된 것 같은 인터리빙 패턴 기술을 생성하기 위한 상기 방법을 여러 번 사용해서 소정의 길이 단위의 상기 인터리빙 패턴 기술을 생성하는 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법,
  9. 삭제
  10. 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
    첫 번째 단위의 인터리빙 패턴 기술과 두 번째 단위의 인터리빙 패턴 기술을 사용해서 세 번째 단위의 인터리빙 패턴 기술을 생성하는 단계; 및
    상기 생성된 인터리빙 패턴 기술을 인터리빙 하는 단계를 포함하는 것을 특징으로 하는 인터리빙 방법.
  11. 단위 길이의 데이터 시리즈를 입력하고 단위 길이의 인터리브된 데이터 시리즈를 출력하는 인터리빙 방법에 있어서,
    첫 번째 단위의 인터리빙 패턴 기술과 두 번째 단위의 인터리빙 패턴 기술으로 세 번째 단위의 열에서 인터리빙 목적지들을 계산하는 단계; 및
    그 계산의 결과를 가지고 인터리빙 하는 단계를 포함하는 인터리빙 방법.
  12. 인터리빙 방법에 있어서,
    제 7항 또는 제 8항에서 청구된 방법과 같은 상기 방법을 사용해서 첫 번째 단위의 인터리빙 패턴 기술과 두 번째 단위의 인터리빙 패턴 기술을 생성하는 단계; 및
    첫 번째 단위의 상기 인터리빙 패턴 기술과 두 번째 단위의 상기 인터리빙 패턴 기술으로부터 계산하여 세 번째 단위의 데이터 시리즈를 인터리빙 하는 단계를 포함하는 것을 특징으로 하는 인터리빙 방법.
  13. 제 10항 내지 제 12항 중 어느 한 항에 있어서,
    상기 인터리빙 패턴 기술은 인터리빙 패턴들 설명하는 인터리빙 패턴 테이블이나 인터리빙 패턴 방정식임을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  14. 단위 길이의 입력 데이터 시리즈를 인터리빙하고 인터리브된 데이터를 출력하기 위한 인터리빙 패턴의 인터리빙 패턴 기술을 생성하는 방법에 있어서,
    인터리빙 패턴을 정의하는 인터리빙 패턴 기술 언어를 번역하는 단계; 및
    상기 번역에 기초하여 제 9항에서 청구된 방법과 같은 상기 방법을 사용해서 인터리빙 패턴 기술을 생성하는 단계를 포함하는 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  15. 제 14항에 있어서,
    만약 상기 인터리빙 패턴 기술 언어의 일부에 대응하는 인터리빙 패턴 기술이 저장되면, 인터리빙 패턴을 생성할 때에 인터리빙 패턴 기술 언어의 상기 부분에 대응하는 과정을 실행하지 않고 상기 저장된 인터리빙 패턴 기술을 참조하여 상기 인터리빙 패턴 기술이 생성되는 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  16. 인터리빙 방법에 있어서,
    인터리빙 패턴을 정의하는 인터리빙 패턴 기술을 번역하는 단계; 및
    상기 번역에 기초하여 제 13항에서 청구된 상기 인터리빙 방법에 의해 인터리빙 하는 단계를 포함하는 것을 특징으로 하는 인터리빙 방법.
  17. 제 16항에 있어서,
    만약 상기 인터리빙 패턴 기술 언어의 일부에 대응하는 인터리빙 패턴 기술이 저장되면, 인터리빙 시에 인터리빙 패턴 기술 언어의 상기 부분에 대응하는 과정을 실행하지 않고 상기 저장된 인터리빙 패턴을 참조하여 상기 인터리빙 패턴 기술이 생성되는 것을 특징으로 하는 인터리빙 방법.
  18. 단위 길이의 입력 데이터 시리즈를 인터리빙하고 단위 길이의 인터리브된 데이터 시리즈를 출력하기 위한 인터리빙 패턴의 인터리빙 패턴 기술을 생성하는 방법에 있어서,
    단위 길이가 주어질 때에 첫 번째 스테이지의 인터리빙 패턴 기술을 결정하는 단계; 및
    한 스테이지의 열과 행의 인터리버(interleaver)들에 대응하는 인터리빙 패턴들을 결정하는 과정을 어떤 스테이지에 도달할 때까지 혹은 인터리브할 수 없을 때까지 반복하여 인터리빙 패턴 기술을 생성하는 단계를 포함하는 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  19. 단위 길이의 입력 데이터 시리즈를 인터리빙하고 단위 길이의 인터리브된 데이터 시리즈를 출력하기 위한 인터리빙 패턴의 인터리빙 패턴 기술을 생성하는 방법에 있어서,
    생성된 인터리빙 패턴 기술을 검사하는 단계;
    상기 검사 단계의 결과가 성공하지 못하면 인수들을 모두 혹은 일부를 바꿔서 인터리빙 패턴 기술을 다시 생성하는 단계; 및
    상기 검사 단계를 통과하는 인터리빙 패턴 기술이 생성되어 상기 검사 단계의 결과가 성공적일 때까지 상기 검사 단계와 생성하는 단계를 반복하는 단계를 포함하는 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  20. 제 18항 또는 제 19항에 있어서,
    생성된 상기 인터리빙 패턴 기술은 인터리빙 패턴 테이블 혹은 인터리빙 패턴 방정식 혹은 인터리빙 패턴 기술 언어인 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  21. 단위 길이의 입력 데이터 시리즈를 인터리빙하고 단위 길이의 인터리브된 데이터 시리즈를 출력하기 위한 인터리빙 패턴의 인터리빙 패턴 기술을 생성하는 방법에 있어서,
    단위 길이가 주어질 때에 미리 정의된 응용 목표에 적합한 인터리빙 패턴 목록을 사용해서 상기 단위 길이에 대응하는 블록 인터리버의 행 혹은 열들의 개수를 결정하고 행 혹은 열들의 상기 결정된 개수로부터 열 혹은 행들의 개수를 정의하는 단계; 및
    상기 정의된 열들의 개수나 상기 정의된 행들의 개수가 상기 인터리빙 패턴 목록에서 정의될 때까지 상기 단계를 반복하여 얻어진 인터리빙 패턴들로부터 상기 단위 길이 인터리빙 패턴을 생성하는 단계를 포함하는 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  22. 제 21항에 있어서,
    정의된 숫자에 의해 미리 주어진 유니트 길이에 대응하는 블록 인터리버의 행들의 개수나 열들의 개수를 결정하고, 상기 정의된 숫자에 대응하는 인터리빙 패턴을 미리 정의된 인터리빙 패턴을 가정하며, 상기 결정된 행들의 개수를 사용하여 행들의 개수를 정의하거나 상기 결정된 행들의 개수를 이용하여 열들의 개수를 정의하는, 첫 번째 스테이지의 한 처리 과정인, 첫 번째 단계;
    미리 정의된 응용 목표에 적합한 인터리빙 패턴 목록을 사용해서 상기 정의된 행들의 개수나 상기 정의된 열들의 개수에 대응하는 블록 인터리버의 행들의 개수나 열들의 개수를 결정하고, 행들의 상기 결정된 개수로부터 열들의 개수를 정의하거나 열들의 상기 결정된 개수로부터 행들의 개수를 정의하는 두 번째 단계;
    행들이나 열들의 개수에 대응하는 인터리빙 패턴이 상기 미리 정의된 인터리빙 패턴 목록에 존재할 때까지 상기 두 번째 단계를 반복하는 세 번째 단계;
    상기 첫 번째 단계에서 미리 정의된 상기 인터리빙 패턴에 대응하는 행들이나 열들의 개수와 같은 수만큼 상기 세 번째 단계를 실행하는 단계; 및
    마지막 스테이지에서 생성된 행과 열에 대응하는 인터리빙 패턴으로부터 차례로 이전 스테이지의 행 혹은 열에 대응하는 인터리빙 패턴을 생성하는 단계를 더 포함하는 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  23. 제 21항 또는 제 22항에 있어서,
    상기 단위 길이의 상기 생성된 인터리빙 패턴은 검사되고 상기 단위 길이의 인터리빙 패턴은 상기 검사의 결과에 따라 다시 생성되는 단계를 더 포함하는 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  24. 제 22항 또는 제 23항에 있어서,
    상기 응용 목표는 터보 코드이며 상기 첫 번째 스테이지의 행들의 개수는 7인 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  25. 제 22항 또는 제 23항에 있어서,
    상기 응용 목표는 전송이며 상기 첫 번째 스테이지의 열들의 개수는 한 프레임의 슬롯들의 개수인 것을 특징으로 하는 인터리빙 패턴 기술을 생성하는 방법.
  26. 어느 단위 길이의 데이터 시리즈를 입력하고 상기 단위 길이의 인터리브된 시리즈를 출력하는 인터리빙을 실행하는 인터리빙 장치에 있어서,
    제1 단위의 인터리브 패턴 기술과 제2 단위의 인터리브 패턴 기술을 이용한 연산에 의해, 제3 단위의 인터리브 패턴 기술을 작성하고,
    상기 연산에 의해 작성된 인터리브 패턴 기술을 미리 테이블에 등록해 두고, 상기 테이블을 참조하여 입력한 데이터 시리즈에 상기 인터리빙 패턴 기술을 적용하여 출력하는 수단을 가지며,
    상기 인터리브 패턴 기술은, 인터리브 패턴을 기술한 인터리브 패턴 테이블 또는 인터리브 패턴 방정식인 인터리빙 장치.
  27. 제 26항에 있어서, 상기 연산에 의해 인터리빙 패턴을 작성하는 수순을 복수회 실행함으로써, 소정 길이 단위의 인터리브 패턴 기술을 작성하고, 상기 인터리브 패턴 기술을 상기 테이블에 등록해 두고,상기 인터리브 패턴 기술을 사용하는 것을 특징으로 하는 인터리빙 장치.
  28. 어느 단위 길이의 데이터 시리즈를 입력하고, 상기 단위 길이의 인터리브한 시리즈를 출력하는 인터리빙을 실행하는 인터리빙 장치에 있어서,
    어느 단위 길이가 주어졌을 때, 상기 단위 길이에 대응하는 블록 인터리버의 행수 또는 열수를 미리 정해져 있는 적용 대상에 적합한 인터리브 패턴 리스트를 이용하여 결정하고, 결정한 행수 또는 열수로부터 열수 또는 행수를 정하는 스텝을, 상기 정해진 열수 또는 행수가 상기 인터리브 패턴 리스트에 정의될 때까지 반복 실행하여 얻어진 인터리브 패턴으로부터 상기 단위 길이의 인터리브 패턴을 작성하여 미리 테이블에 등록해 두고,
    상기 테이블을 참조하여 입력한 데이터 시리즈에 상기 인터리빙 패턴을 적용하여 출력하는 수단을 가지는 것을 특징으로 하는 인터리빙 장치.
  29. 제 26항 또는 제 27 항에 기재된 인터리빙 장치에 있어서,
    상기 인터리빙 패턴 기술로서 인터리브 패턴 방정식을 사용하는 경우, 입력한 데이터 시리즈의 인터리빙 목적지를 계산하고, 상기 계산 결과에 따라 인터리빙 처리를 행하여 데이터를 출력하는 것을 특징으로 하는 인터리빙 장치.
  30. 단위 길이의 데이터 시리즈를 입력하며 단위 길이의 인터리브된 시리즈를 출력하는 인터리빙 방법에서 인터리빙 패턴을 설명하고 생성하는 프로그램을 저장하는 컴퓨터가 읽을 수 있는 매체에 있어서,
    상기 프로그램은
    미리 정의된 응용 목표에 적합한 인터리빙 패턴 목록을 사용해서 미리 주어진 단위 길이에 대응하는 블록 인터리버의 행들 혹은 열들의 개수를 결정하고 행들 혹은 열들의 상기 결정된 개수로부터 열 혹은 행들의 개수를 정의하는 단계; 및
    상기 정의된 열들의 개수나 상기 정의된 행들의 개수가 상기 인터리빙 패턴 목록에서 정의될 때까지 상기 단계를 반복하여 얻어진 인터리빙 패턴들로부터 상기 단위 길이 인터리빙 패턴을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터가 읽을 수 있는 매체.
  31. 제 30항에 있어서,
    상기 프로그램은
    정의된 숫자에 의해 미리 주어진 유니트 길이에 대응하는 블록 인터리버의 행들의 개수나 열들의 개수를 결정하고, 상기 정의된 숫자에 대응하는 인터리빙 패턴을 미리 정의된 인터리빙 패턴을 가정하며, 상기 결정된 행들의 개수를 사용하여행들의 개수를 정의하거나 상기 결정된 행들의 개수를 이용하여 열들의 개수를 정의하는, 첫 번째 스테이지의 한 처리 과정인, 첫 번째 단계;
    미리 정의된 응용 목표에 적합한 인터리빙 패턴 목록을 사용해서 상기 정의된 행들의 개수나 상기 정의된 열들의 개수에 대응하는 블록 인터리버의 행들의 개수나 열들의 개수를 결정하고, 행들의 상기 결정된 개수로부터 열들의 개수를 정의하거나 열들의 상기 결정된 개수로부터 행들의 개수를 정의하는 두 번째 단계;
    행들이나 열들의 개수에 대응하는 인터리빙 패턴이 상기 미리 정의된 인터리빙 패턴 목록에 존재할 때까지 상기 두 번째 단계를 반복하는 세 번째 단계;
    상기 첫 번째 단계에서 미리 정의된 상기 인터리빙 패턴에 대응하는 행들이나 열들의 개수와 같은 수만큼 상기 세 번째 단계를 실행하는 단계; 및
    마지막 스테이지에서 생성된 행과 열에 대응하는 인터리빙 패턴으로부터 차례로 이전 스테이지의 행 혹은 열에 대응하는 인터리빙 패턴을 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터가 읽을 수 있는 매체.
  32. 제 30항 또는 제 31항에 있어서,
    상기 프로그램은 상기 단위 길이의 상기 생성된 인터리빙 패턴은 검사되고 상기 단위 길이의 인터리빙 패턴은 상기 검사의 결과에 따라 다시 생성되는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터가 읽을 수 있는 매체.
  33. 제 31항에 있어서,
    상기 응용 목표는 터보 코드이며 상기 첫 번째 스테이지의 행들의 개수는 7인 것을 특징으로 하는 컴퓨터가 읽을 수 있는 매체.
  34. 제 31항에 있어서,
    상기 응용 목표는 전송이며 상기 첫 번째 스테이지의 열들의 개수는 한 프레임의 슬롯들의 개수인 것을 특징으로 하는 컴퓨터가 읽을 수 있는 매체.
KR1019997006257A 1997-11-10 1998-11-09 인터리빙 방법, 인터리빙 장치 및 인터리빙 패턴 생성 프로그램이 기록된 기록 매체 KR100330980B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP30759997 1997-11-10
JP9-307599 1997-11-10
JP21837798 1998-07-31
JP10-218377 1998-07-31
JP10-233088 1998-08-19
JP23308898 1998-08-19

Publications (2)

Publication Number Publication Date
KR20000070038A KR20000070038A (ko) 2000-11-25
KR100330980B1 true KR100330980B1 (ko) 2002-04-01

Family

ID=27330141

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997006257A KR100330980B1 (ko) 1997-11-10 1998-11-09 인터리빙 방법, 인터리빙 장치 및 인터리빙 패턴 생성 프로그램이 기록된 기록 매체

Country Status (7)

Country Link
US (1) US6631491B1 (ko)
EP (1) EP0952673B1 (ko)
JP (1) JP3347335B2 (ko)
KR (1) KR100330980B1 (ko)
CN (1) CN1235343C (ko)
CA (1) CA2277474C (ko)
WO (1) WO1999025069A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9531407B2 (en) 2014-10-14 2016-12-27 Foundation Of Soongsil University-Industry Cooperation Method and interleaving apparatus for interleaving for error dispersion and computer readable recording medium for performing the same
US9819364B2 (en) 2014-09-19 2017-11-14 Samsung Electronics Co., Ltd. Apparatus and method for transmitting/receiving signal in communication system supporting bit-interleaved coded modulation with iterative decoding scheme

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430722B1 (en) 1998-01-23 2002-08-06 Hughes Electronics Corporation Forward error correction scheme for data channels using universal turbo codes
US7536624B2 (en) 2002-01-03 2009-05-19 The Directv Group, Inc. Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes
RU2190929C2 (ru) * 1998-08-06 2002-10-10 Самсунг Электроникс Ко., Лтд. Канальное кодирование/декодирование в системе связи
EP2173036B1 (en) 1998-08-17 2014-05-14 Dtvg Licensing, Inc Turbo code interleaver with near optimal performance
AU731794B2 (en) * 1998-08-20 2001-04-05 Samsung Electronics Co., Ltd. Device and method for inserting previously known bits in input stage of channel encoder
WO2000013323A1 (en) 1998-08-27 2000-03-09 Hughes Electronics Corporation Method for a general turbo code trellis termination
KR100306282B1 (ko) 1998-12-10 2001-11-02 윤종용 통신시스템의인터리빙/디인터리빙장치및방법
KR100346170B1 (ko) * 1998-12-21 2002-11-30 삼성전자 주식회사 통신시스템의인터리빙/디인터리빙장치및방법
JP3239872B2 (ja) * 1999-01-14 2001-12-17 日本電気株式会社 インタリーバ、インタリーブ方法、デインタリーバ、デインタリーブ方法、発信装置及び受信装置
KR100457895B1 (ko) * 1999-05-10 2004-11-18 가부시키가이샤 엔.티.티.도코모 다중화 방법과 다중화 장치 및 데이터 신호 송신 방법과데이터 신호 송신 장치
JP2000353964A (ja) * 1999-06-10 2000-12-19 Matsushita Electric Ind Co Ltd インタリーブ装置及びインタリーブ方法
DE10030407B4 (de) * 1999-07-14 2011-09-01 Lg Electronics Inc. Verfahren zur optimalen Ratenanpassung in einem Mobilkommunikationssystem
DE19934646C2 (de) * 1999-07-16 2001-09-13 Univ Dresden Tech Verfahren und Vorrichtung zur iterativen Decodierung von verketteten Codes
EP1098445B1 (en) * 1999-11-04 2011-02-16 Canon Kabushiki Kaisha Interleaving method for the turbocoding of data
FR2805103A1 (fr) * 2000-02-10 2001-08-17 Canon Kk Procede de permutation pour turbo-codage convolutif de donnees
FR2800950A1 (fr) * 1999-11-04 2001-05-11 Canon Kk Procede d'entrelacement pour turbo-codage convolutif de donnees
FI114766B (fi) 1999-11-30 2004-12-15 Nokia Corp Menetelmä ja järjestelmä kehyksen sisäisen lomituksen toteuttamiseksi
FR2804806B1 (fr) * 2000-02-08 2002-05-03 Canon Kk Procede et dispositif d'entrelacement, procedes et dispositifs de codage et de decodage et systemes les mettant en oeuvre
KR100324768B1 (ko) * 2000-02-29 2002-02-20 구자홍 차세대 이동 통신 시스템의 전송율 매칭 장치 및 방법
JP3399904B2 (ja) * 2000-03-17 2003-04-28 松下電器産業株式会社 インタリーブアドレス生成装置
JP2001285077A (ja) * 2000-03-31 2001-10-12 Mitsubishi Electric Corp 通信装置および通信方法
JP4409048B2 (ja) * 2000-05-22 2010-02-03 三菱電機株式会社 通信装置および通信方法
US7770010B2 (en) * 2000-09-18 2010-08-03 Wideband Semiconductors Inc. Dynamically configurable interleaver scheme using at least one dynamically changeable interleaving parameter
US7340664B2 (en) * 2000-09-20 2008-03-04 Lsi Logic Corporation Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving
US7000169B2 (en) * 2000-09-20 2006-02-14 Lsi Logic Corporation Turbo decoding
DE10048872A1 (de) * 2000-10-02 2002-04-25 Infineon Technologies Ag Abschnittsweise Entschachtelung
GB2370681B (en) * 2000-10-04 2004-03-03 Global Silicon Ltd Replaying digital media
US8054810B2 (en) * 2001-06-25 2011-11-08 Texas Instruments Incorporated Interleaver for transmit diversity
KR100833880B1 (ko) * 2001-11-06 2008-06-02 엘지전자 주식회사 유자 형상의 스캔을 이용한 광디스크 데이터기록장치/방법 및 재생장치/방법
JP3624874B2 (ja) 2001-11-19 2005-03-02 日本電気株式会社 インターリービング順序発生器、インターリーバ、ターボエンコーダ、及びターボデコーダ
KR100584426B1 (ko) * 2001-12-21 2006-05-26 삼성전자주식회사 고속 패킷 이동통신시스템에서 심벌 매핑을 위한 인터리빙장치 및 방법
EP1337045A1 (en) * 2002-02-18 2003-08-20 Siemens Aktiengesellschaft Method for interleaving and deinterleaving a digital signal and application of these methods
JP3686631B2 (ja) * 2002-05-21 2005-08-24 松下電器産業株式会社 データ送信装置及びデータ送信方法
US7058874B2 (en) * 2002-05-24 2006-06-06 Lucent Technologies Inc. Interleaver address generator and method of generating an interleaver address
FI20021222A (fi) * 2002-06-20 2003-12-21 Nokia Corp Informaatiobittien limitys
CN1685621B (zh) * 2002-10-29 2010-07-07 三星电子株式会社 用于解交织通信设备中的交织数据流的方法和装置
US7293217B2 (en) * 2002-12-16 2007-11-06 Interdigital Technology Corporation Detection, avoidance and/or correction of problematic puncturing patterns in parity bit streams used when implementing turbo codes
US20040267968A1 (en) * 2003-06-25 2004-12-30 Agilent Technologies Belgium S.A./N.V Implementation of a column interleaving function with a limited amount of columns
US8077743B2 (en) * 2003-11-18 2011-12-13 Qualcomm Incorporated Method and apparatus for offset interleaving of vocoder frames
WO2005050885A1 (ja) * 2003-11-21 2005-06-02 Matsushita Electric Industrial Co., Ltd. マルチアンテナ受信装置、マルチアンテナ受信方法、マルチアンテナ送信装置及びマルチアンテナ通信システム
KR20050052184A (ko) * 2003-11-29 2005-06-02 삼성전자주식회사 저밀도 패리티 검사 부호화를 위한 인터리빙 방법
US20050180332A1 (en) * 2004-02-13 2005-08-18 Broadcom Corporation Low latency interleaving and deinterleaving
US20050213393A1 (en) * 2004-03-14 2005-09-29 M-Systems Flash Disk Pioneers, Ltd. States encoding in multi-bit flash cells for optimizing error rate
US7493457B2 (en) * 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
US20060245516A1 (en) * 2005-03-02 2006-11-02 Rohde & Schwarz, Inc. Apparatus, systems and methods for providing in-band atsc vestigial sideband signaling or out-of-band signaling
BRPI0609150B1 (pt) * 2005-03-02 2019-08-27 Rohde & Schwarz método e aparelho para a provisão a um receptor de um sinal digital correspondente a um serviço e sistema para a provisão de um serviço
US7822139B2 (en) * 2005-03-02 2010-10-26 Rohde & Schwarz Gmbh & Co. Kg Apparatus, systems, methods and computer products for providing a virtual enhanced training sequence
US7738582B2 (en) * 2005-03-02 2010-06-15 Rohde & Schwarz Gmbh & Co. Kg Apparatus, systems and methods for producing coherent symbols in a single frequency network
US7430701B2 (en) * 2005-06-16 2008-09-30 Mediatek Incorporation Methods and systems for generating error correction codes
US20070011557A1 (en) * 2005-07-07 2007-01-11 Highdimension Ltd. Inter-sequence permutation turbo code system and operation methods thereof
US7797615B2 (en) 2005-07-07 2010-09-14 Acer Incorporated Utilizing variable-length inputs in an inter-sequence permutation turbo code system
JP2007158463A (ja) * 2005-11-30 2007-06-21 Icom Inc インタリーブ方法、インタリーブ装置及びデインタリーブ装置
JP2008135813A (ja) * 2006-11-27 2008-06-12 Fujitsu Ltd ターボ復号器及びターボ復号方法
US8149817B2 (en) * 2007-02-01 2012-04-03 Rohde & Schwarz Gmbh & Co. Kg Systems, apparatus, methods and computer program products for providing ATSC interoperability
KR101613893B1 (ko) * 2007-10-04 2016-04-20 삼성전자주식회사 이동통신 시스템에서 데이터 인터리빙 방법 및 장치
US9712279B2 (en) 2007-10-04 2017-07-18 Samsung Electronics Co., Ltd. Method and apparatus for interleaving data in a mobile communication system
US8140932B2 (en) * 2007-11-26 2012-03-20 Motorola Mobility, Inc. Data interleaving circuit and method for vectorized turbo decoder
DE102008017290A1 (de) * 2007-12-11 2009-06-18 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur Bildung eines gemeinsamen Datenstroms insbesondere nach dem ATSC-Standard
DE102007059959B4 (de) * 2007-12-12 2020-01-02 Rohde & Schwarz Gmbh & Co. Kg Verfahren und System zur Übertragung von Daten zwischen einer zentralen Rundfunkstation und mindestens einem Sender
KR100925441B1 (ko) 2008-01-07 2009-11-06 엘지전자 주식회사 분산형 가상자원블록 스케쥴링 방법
KR100904433B1 (ko) 2008-01-07 2009-06-24 엘지전자 주식회사 분산형 가상자원블록 스케쥴링 방법
KR100913099B1 (ko) 2008-01-07 2009-08-21 엘지전자 주식회사 분산형 가상자원블록 스케쥴링 방법
US8289935B2 (en) 2008-02-04 2012-10-16 Nokia Siemens Networks Oy Method, apparatus and computer program to map a cyclic shift to a channel index
US8355458B2 (en) * 2008-06-25 2013-01-15 Rohde & Schwarz Gmbh & Co. Kg Apparatus, systems, methods and computer program products for producing a single frequency network for ATSC mobile / handheld services
DE102008056703A1 (de) * 2008-07-04 2010-01-07 Rohde & Schwarz Gmbh & Co. Kg Verfahren und System zur Zeitsynchronisierung zwischen einer Zentrale und mehreren Sendern
DE102008059028B4 (de) * 2008-10-02 2021-12-02 Rohde & Schwarz GmbH & Co. Kommanditgesellschaft Verfahren und Vorrichtung zur Erzeugung eines Transportdatenstroms mit Bilddaten
CA2731958C (en) * 2008-11-06 2016-10-04 Rohde & Schwarz Gmbh & Co. Kg Method and system for synchronized mapping of data packets in an atsc data stream
EP2234357B1 (en) * 2009-03-21 2016-07-27 Rohde & Schwarz GmbH & Co. KG Method for improving the data rate of mobile data and the quality of channel estimation in an ATSC-M/H transport data stream
KR20100106142A (ko) * 2009-03-23 2010-10-01 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
DE102009025219A1 (de) * 2009-04-07 2010-10-14 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur kontinuierlichen Anpassung von Kodierungsparametern an eine veränderliche Nutzdatenrate
US8296624B2 (en) * 2009-06-30 2012-10-23 Comcast Cable Communications, Llc Variable interleave data transmission
TWI381653B (zh) 2009-09-11 2013-01-01 Ind Tech Res Inst 二階重排多項式交織器位址產生裝置與方法
CN102025380B (zh) * 2009-09-23 2013-02-13 财团法人工业技术研究院 二阶重排多项式交织器地址产生装置与方法
CN102035558B (zh) * 2009-09-27 2013-01-16 中兴通讯股份有限公司 Turbo译码方法和装置
DE102009057363B4 (de) 2009-10-16 2013-04-18 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur effizienten Übertragung von überregional und regional auszustrahlenden Programm-und Servicedaten
FR2955001A1 (fr) * 2010-01-06 2011-07-08 St Microelectronics Grenoble 2 Procede et dispositif d'entrelacement en ligne et en colonne pour blocs de taille variable
CN102388539B (zh) * 2010-02-10 2015-04-01 松下电器产业株式会社 发送装置、接收装置、发送方法及接收方法
TWI501596B (zh) * 2010-03-08 2015-09-21 Sony Corp 使用適應正交分頻多工之通訊系統
JP4814388B2 (ja) * 2010-07-23 2011-11-16 三菱電機株式会社 インタリーブ装置
CN101951266B (zh) * 2010-08-24 2013-04-24 中国科学院计算技术研究所 Turbo并行译码的方法及译码器
US8989021B2 (en) 2011-01-20 2015-03-24 Rohde & Schwarz Gmbh & Co. Kg Universal broadband broadcasting
CN102270992B (zh) * 2011-03-24 2013-01-30 中国人民解放军国防科学技术大学 Turbo译码器中前向递推概率获取方法
CN102270993B (zh) * 2011-03-24 2013-03-27 中国人民解放军国防科学技术大学 一种同时实现交织与解交织的Turbo译码器
JP2012253600A (ja) * 2011-06-03 2012-12-20 Kddi Corp インタリーブ装置および無線通信システム
US8850276B2 (en) * 2011-09-22 2014-09-30 Lsi Corporation Systems and methods for efficient data shuffling in a data processing system
CN104125056A (zh) * 2014-08-07 2014-10-29 肖龙旭 一种数据加解密方法
CN104767537B (zh) * 2015-03-19 2018-01-30 深圳市力合微电子股份有限公司 一种用于OFDM电力线通信系统的Turbo译码方法
WO2016181805A1 (ja) * 2015-05-08 2016-11-17 ソニー株式会社 データ処理装置、及び、データ処理方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3652998A (en) * 1970-03-01 1972-03-28 Codex Corp Interleavers
JPS5526715A (en) * 1978-08-16 1980-02-26 Kokusai Denshin Denwa Co Ltd <Kdd> Data string rearrangement unit
JPH0687554B2 (ja) 1987-02-20 1994-11-02 日本電信電話株式会社 併用誤り制御インタリ−ブ方式
JP2826365B2 (ja) 1990-04-10 1998-11-18 日本電気株式会社 インタリーブ段数可変誤り訂正伝送方式
US5111455A (en) * 1990-08-24 1992-05-05 Avantek, Inc. Interleaved time-division multiplexor with phase-compensated frequency doublers
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.
JP2824474B2 (ja) * 1992-02-17 1998-11-11 三菱電機株式会社 誤り訂正方式及びこの誤り訂正方式を用いた復号器
US5387765A (en) * 1992-09-02 1995-02-07 Ncr Corporation Data secure digitizer control circuit and method
JPH0730846A (ja) 1993-06-24 1995-01-31 Hitachi Ltd 画像信号の時間軸置換装置
JP3005396B2 (ja) 1993-08-05 2000-01-31 日本電気株式会社 ビットインタリーブ伝送方式
JPH0758646A (ja) 1993-08-19 1995-03-03 Nec Eng Ltd インタリ−ブ装置
FR2713845B1 (fr) 1993-12-07 1996-01-19 Thomson Consumer Electronics Procédé d'entrelacement et de désentrelacement en bloc et dispositif de mise en Óoeuvre.
JP3014261B2 (ja) 1993-12-28 2000-02-28 株式会社ピーエフユー 通信におけるインターリーブ方式
JP3249280B2 (ja) 1994-01-11 2002-01-21 富士通株式会社 インターリーブ回路
JPH07254862A (ja) 1994-03-15 1995-10-03 Sony Corp インターリーブ回路およびディインターリーブ回路
JP3304632B2 (ja) 1994-09-21 2002-07-22 ソニー株式会社 インターリーブ方法およびインターリーブ回路
US5659580A (en) 1994-11-29 1997-08-19 Lucent Technologies Inc. Data interleaver for use with mobile communication systems and having a contiguous counter and an address twister
JP3292023B2 (ja) 1996-01-25 2002-06-17 株式会社高岳製作所 コンデンサ素子巻回装置
JPH09212412A (ja) * 1996-02-06 1997-08-15 Sony Computer Entertainment:Kk メモリアクセス方法及びデータ処理装置
JPH09214473A (ja) 1996-02-06 1997-08-15 Fujitsu Ltd インタリーブ通信方式及びその装置
US5721745A (en) * 1996-04-19 1998-02-24 General Electric Company Parallel concatenated tail-biting convolutional code and decoder therefor
JPH09294079A (ja) 1996-04-26 1997-11-11 Matsushita Electric Ind Co Ltd インターリーブ装置、デインターリーブ装置およびそれらを用いた通信システム
JPH1098397A (ja) 1996-09-20 1998-04-14 Fujitsu General Ltd インタリーバ
JP3310186B2 (ja) 1996-11-22 2002-07-29 旭化成マイクロシステム株式会社 リード・ソロモン符号の復号回路
US6141384A (en) * 1997-02-14 2000-10-31 Philips Electronics North America Corporation Decoder for trellis encoded interleaved data stream and HDTV receiver including such a decoder
KR19990012821A (ko) * 1997-07-31 1999-02-25 홍성용 전자기파 흡수체 조성물과 이의 제조 방법, 전자기파 흡수용도료 조성물과 이의 제조 방법 및 이의 도포 방법
JP3881751B2 (ja) 1997-08-20 2007-02-14 沖電気工業株式会社 半導体チップの実装構造および実装方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819364B2 (en) 2014-09-19 2017-11-14 Samsung Electronics Co., Ltd. Apparatus and method for transmitting/receiving signal in communication system supporting bit-interleaved coded modulation with iterative decoding scheme
US9531407B2 (en) 2014-10-14 2016-12-27 Foundation Of Soongsil University-Industry Cooperation Method and interleaving apparatus for interleaving for error dispersion and computer readable recording medium for performing the same

Also Published As

Publication number Publication date
CA2277474A1 (en) 1999-05-20
WO1999025069A1 (fr) 1999-05-20
CN1246991A (zh) 2000-03-08
KR20000070038A (ko) 2000-11-25
CN1235343C (zh) 2006-01-04
EP0952673A4 (en) 2000-10-25
CA2277474C (en) 2004-04-06
EP0952673B1 (en) 2017-05-17
EP0952673A1 (en) 1999-10-27
JP3347335B2 (ja) 2002-11-20
US6631491B1 (en) 2003-10-07

Similar Documents

Publication Publication Date Title
KR100330980B1 (ko) 인터리빙 방법, 인터리빙 장치 및 인터리빙 패턴 생성 프로그램이 기록된 기록 매체
KR100526512B1 (ko) 이동 통신시스템의 직렬 쇄상 컨볼루션 부호화를 위한 인터리빙장치 및 방법
RU2313177C2 (ru) Турбодекодер, использующий линейные конгруэнтные последовательности
US5446747A (en) Error-correction coding method with at least two systematic convolutional codings in parallel, corresponding iterative decoding method, decoding module and decoder
US6553516B1 (en) Interleaving method, interleaving apparatus, turbo encoding method, and turbo encoder
US8239711B2 (en) QPP interleaver/de-interleaver for turbo codes
KR101297060B1 (ko) 서브 블록 인터리버 및 디-인터리버를 가진 다차원 블록인코더
JP3987553B2 (ja) 通信システムでインタリービングされたデータストリームのデインタリービング方法及び装置
CN1853350A (zh) 用于移动通信系统的维特比/涡轮联合译码器
US7526707B2 (en) Method and apparatus for encoding and decoding data using a pseudo-random interleaver
KR20080041488A (ko) 병렬 인터리빙 장치 및 방법
JP3515036B2 (ja) インターリービング方法、インターリービング装置、ターボ符号化方法及びターボ符号化装置
KR100628201B1 (ko) 터보 디코딩 방법
US7013412B2 (en) Method for segmentally deinterleaving a data signal
US9374109B2 (en) QPP interleaver/DE-interleaver for turbo codes
EP1300954A1 (en) Encoding device and method, decoding device and method, providing medium, and method for generating data substitution position information
US6415414B1 (en) Encoding apparatus and method, decoding apparatus and method, and providing medium
JP4411401B2 (ja) 符号順序変換方法およびその装置、符号順序変換テーブル作成装置、並びにターボ符号用の符号器および復号器
KR20040037624A (ko) 인터리빙된 데이터 열의 디인터리빙 방법 및 장치
KR100645730B1 (ko) 매직 매트릭스를 이용한 인터리빙 방법
KR100510643B1 (ko) 이동통신 시스템에서의 인터리빙 방법
CN114745076A (zh) 一种基于fpga的码长自适应交织/解交织器及方法
CN117978324A (zh) 通过共享硬件实现4g&amp;5g速率匹配与交织的处理方法
KR101353094B1 (ko) 오류정정부호에 대한 인터리빙 방법 및 이를 이용한 정보 송수신 시스템
KR100240868B1 (ko) 다중비율 전송 시스템

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: 20130227

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140220

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150224

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160219

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20170221

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20180302

Year of fee payment: 17