KR20000022950A - 부호화 장치 및 방법, 복호장치 및 방법, 및 제공매체 - Google Patents

부호화 장치 및 방법, 복호장치 및 방법, 및 제공매체 Download PDF

Info

Publication number
KR20000022950A
KR20000022950A KR1019990037828A KR19990037828A KR20000022950A KR 20000022950 A KR20000022950 A KR 20000022950A KR 1019990037828 A KR1019990037828 A KR 1019990037828A KR 19990037828 A KR19990037828 A KR 19990037828A KR 20000022950 A KR20000022950 A KR 20000022950A
Authority
KR
South Korea
Prior art keywords
data
input data
substitution
encoding
range
Prior art date
Application number
KR1019990037828A
Other languages
English (en)
Inventor
무라야마준
하토리마사유키
Original Assignee
이데이 노부유끼
소니 가부시끼 가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이데이 노부유끼, 소니 가부시끼 가이샤 filed Critical 이데이 노부유끼
Publication of KR20000022950A publication Critical patent/KR20000022950A/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/2735Interleaver using powers of a primitive element, e.g. Galois field [GF] interleaver
    • 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/296Particular turbo code structure

Landscapes

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

Abstract

본 발명은 부호화장치 및 방법, 복호장치 및 방법, 및 제공매체에 관한 것으로, 특히 터보 부호의 부호화 또는 복호화를 수행할 때 적합하게 적용되는 부호화 장치 및 방법, 복호장치 및 방법, 및 제공매체에 관한 것이다. 치환 전후 2지점사이의 거리의 합이 크게 되는 치환이 수행되며, 치환위치가 시퀀스로서 간주된 경우, 상기 시퀀스는 k-차균등분포성을 만족한다. 단계 S1에서, 어파인(affine) 인터리버에 의한 치환 어레이가 설정된다. 단계 S2 및 S3에서, M-시퀀스가 발생되고, 함수 L(t, u)는 0 및 1의 존재위치에 의해 얻어진다. 이들 과정을 통해 얻어진 데이터에 의해서, 단계 S4에서, 최종의 치환 어레이가 설정된다.

Description

부호화장치 및 방법, 복호장치 및 방법, 및 제공매체{Encoding apparatus and method, decoding apparatus and method, and providing medium}
본 발명은 부호화장치 및 방법, 복호장치 및 방법, 및 제공매체에 관한 것으로, 특히 터보 부호의 부호화 또는 복호화를 수행할 때 적합하게 적용되는 부호화 장치 및 방법, 복호장치 및 방법, 및 제공매체에 관한 것이다.
터보부호는 부호성능의 이론적인 한계로서 샤논 한계(shannon limit)에 근접한 성능을 보이는 부호로서 알려져 있다. 이러한 터보부호에서, 부호화는 복수의 컨볼루션(convolution) 부호화 회로 및 인터리버(인터리브 회로)가 결합된 구조를 통해 수행되며, 복호화측에서, 소프트 출력을 출력하는 복수의 복호회로 사이에 입력 데이터에 관한 정보의 교환을 행하여 최종의 복호결과를 얻는다.
도 1은 종래의 터보 부호화 장치(10)의 구조를 도시한 것이다. 이 터보 부호화 장치(10)는 입력 데이터에 관하여 컨볼루션 부호화를 수행하여 부호화된 데이터를 얻도록 하는 컨볼루션 부호화 회로(1-1), 입력 데이터를 순차적으로 인터리브하는 인터리버(2-1 내지 2-(N-1)) 이하, 인터리버(2-1 내지 2-(N-1))를 개별적으로 구별할 필요가 없는 경우 각각을 단지 인터리버(2)라 하고, 다른 장치에 대해서도 마찬가지이다), 및 인터리버(2)의 출력 데이터에 대해 컨볼루션 부호화를 각각 수행하여 부호화된 데이터를 얻도록 하는 컨볼루션 부호화 회로(1-2 내지 1-N)를 포함한다.
여기서, 컨볼루션 부호화 회로(1)는 입력된 데이터에 대해 컨볼루션 부호화 조작을 수행하여 조작결과를 부호화된 데이터로서 출력한다. 인터리버(2)는 입력된 데이터의 시퀀스를 변경하여 이들을 출력한다.
도 2는 컨볼루션 부호화 회로(1)의 예를 도시한 것이다. 도 2에 도시한 컨볼루션 부호화 회로는 구속장(constraint length)이 3인 피드백형 컨볼루션 부호화 회로이다. 이 컨볼루션 부호화 회로(1)는 종단(termination) 회로(21), 3개의 배타논리 OR 회로(이라 "EXOR 회로"라 칭함)(22-1 내지 22-3), 및 2개의 시프트 레지스터(23-1 및 23-2)를 포함하며, 입력된 데이터로부터 부호화된 데이터를 발생한다.
여기서, 시프트 레지스터(23)는 입력된 데이터를 1 단위시간만큼 지연시키는 지연소자로서 작용하며, EXOR 회로(22)는 입력된 데이터의 배타논리 OR를 출력한다. 종단회로(21)는 입력 데이터 모두가 부호화될 때까지 입력 데이터를 출력하며, 부호화가 완료된 시점부터 단지 2 단위시간(시프트 레지스터 개수에 대응하는 시간)동안 피드백 데이터를 출력한다. 모든 입력 데이터가 부호화된 후의, 시프트 레지스터(23)의 모든 내용이 0으로 되돌아가는 과정을 종단이라고 하며, 복호화측에서는 이러한 과정의 가정하에서 복호화를 수행한다.
도 3은 인터리버(2)의 일실시예를 도시한 것이다. 인터리버(2)에 입력된 입력 데이터는 임시로 입력 데이터 유지 메모리(31)에 저장된 다음 데이터 치환 회로(32)에 의해 시퀀스가 재배열된다. 데이터 시퀀스의 재배열은 치환 데이터 ROM(판독 전용 메모리)(34)의 내용(치환 위치 정보)에 기초하여 수행된다. 시퀀스가 재배열된 데이터는 출력 데이터 유지 메모리(33)에 저장된 후 출력 데이터로서 출력된다.
도 3은 인터리버(2)의 크기가 5이고 치환 데이터 ROM(34)의 내용이 도 4에 도시한 바와 같이 된 경우에 인터리버의 동작의 예를 도시한 것이다. 즉, 입력 데이터가 "11010"일 때, 치환 데이터 ROM(34)에 저장된 데이터에 따라, 데이터 치환 회로(32)는 입력 데이터의 치환과정을 수행함으로써 "00111"이 출력 데이터로서 출력된다.
도 1에 도시한 터보 부호화 장치(10)의 동작을 기술한다. 입력 데이터는 컨볼루션 부호화 회로(1-1)에 공급된다. 이 컨볼루션 부호화 회로(1-1)에서, 입력 데이터에 대해서 컨볼루션 부호화 조작이 수행된 다음 종단이 수행됨으로써, 종단을 포함하는 부호화 과정을 통해 부호화된 데이터가 출력된다.
또한, 입력 데이터는 일련의 인터리버(2-1 내지 2-(N-1)) 회로에 공급되고, 입력된 데이터의 시퀀스는 순차적으로 변경되어 데이터가 출력된다. 인터리버(2-1 내지 2-(N-1))의 출력 데이터는 대응하는 컨볼루션 부호화 회로(1-2 내지 1-N)에 각각 공급된다. 컨볼루션 부호화 회로(1-2 내지 1-N)에서, 각각 대응하는 인터리버(2-1 내지 2-(N-1)의 출력 데이터에 대해 컨볼루션 부호화 조작이 수행된 다음 종단이 수행됨으로써, 종단을 포함하는 부호화 과정을 통해 부호화된 데이터가 출력된다.
도 5는 입력 데이터의 비트수와 터보 부호화 장치(10)에서 부호화된 데이터의 비트수 사이의 관계를 도시한 것이다. 입력된 k비트 입력 데이터가 컨볼루션 부호화 회로(1-1)에 의해 n1-비트 부호로 변환된 후, t1-비트 종단이 더 부가됨으로써, 데이터는 전체 (n1+ t1)-비트 부호로 된다. 마찬가지로, (n2+ t2) 내지 (nm+ tm)-비트 부호화된 데이터는 컨볼루션 부호화 회로(1-2 내지 1-N)로부터 출력된다.
도 6은 종래의 터보 복호장치의 구성을 도시한 것이다. 이 터보 복호장치(40)는 터보 부호화 장치(10)로부터 출력된 부호화된 데이터(수신 데이터)의 수에 대응하는 복수의 소프트 출력 복호회로(51-1 내지 51-N)를 포함한다. 소프트 출력 복호 회로(51-1 내지 51-N)는 부호화측에서 입력 데이터가 0 또는 1일 확률을 계산하는 기능을 갖는, 예를 들면 MAP(최대 귀납적(Aposteriori) 확률) 복호기 및 SOVA(소프트 출력 비터비 알고리즘) 복호기와 같은 소위 소프트 출력 복호 시스템을 사용하여 구성된다.
도 6에 도시한 터보 복호장치(40)의 동작을 기술한다. 수신 데이터(부호화된 데이터)는 소프트 출력 복호회로(51-1 내지 51-N)에 각각 공급된다. 각각의 복호회로(51-1 내지 51-N)는 부호화측에서 종단비트를 제외한 입력 데이터에 대해 추정 확률값 데이터를 서로 사용하고, 수회 내지 수십회의 반복적인 복호동작이 수행된다. 최종의 복호화된 데이터가 임의의 복호회로(도 6에서, 복호회로(51-1)로부터 출력된다.
도 7은 터보 복호장치(40)의 수신 데이터의 비트 수, 추정 확률값 데이터 수 및, 복호화된 데이터의 수 사이의 관계를 도시한 것이며 도 1에 있는 터보 부호화 장치(10)에서 각각의 비트 수에 대응하는 관계를 도시한다. 소프트 출력 복호회로(51-1 내지 51-N)는 (n1+ t1) 내지 (nm+ tm)-비트 수신 데이터로부터 종단비트를 제외한 입력 데이터의 k-비트 추정 확률값 데이터를 계산한다. k-비트 추정 확률값 데이터는 각각의 복호회로사이에 교환되어, k-비트 복호화된 데이터가 최종으로 출력된다.
터보 부호화 장치 및 복호장치에서 높은 에러 정정 능력을 얻기 위해서, 일반적으로, 인터리버(20)는 다음의 2개의 조건을 동시에 만족해야 한다
[조건1] 치환 전후 임의의 2개의 지점사이의 거리의 합은 치환전보다 충분히 크게 된다.
[조건2] 치환 위치를 시퀀스로서 간주하는 경우, 시퀀스는 k-차균등분포성이라고 하는 수학적인 성질을 만족한다.
전술한 2개의 조건은 에러 정정 부호에 대해 정의된 성능 지수값에 관계된 것으로, 부호의 최소거리 및 최소 거리 부호의 다양성이라고 부른다. 이러한 2개의 조건은 에러 정정 부호가 우수한 성능을 나타내기 위해서 필요하다. 조건 1은 최소거리가 크게 되는 것에 대응하며, 조건 2는 최소 거리의 다양성이 작게 되는 것에 대응한다.
그러나, 전술한 터보 부호화 장치(10)의 인터리버(2)에서, 치환 데이터 ROM(34)에 저장되고 난수를 사용하여 발생된 데이터는 치환위치를 결정하기 위한 데이터로서 사용된다. 이러한 난수를 사용하므로 발생된 치환위치에서, 조건 2의 k-차균등분포성이 만족될 수 있다. 그러나, 치환전후의 임의의 2개의 지점사이의 거리의 합이 작아지게 되는 경우가 발생하기 때문에, 조건 1이 만족될 수 없다.
난수를 사용하여 치환위치를 결정하는 인터리버 이외에, 어파인(affine) 인터리버가 있다. 상기 어파인 인터리버가 조건 1을 만족하는 인터리버로서 적합할지라도, 조건 2를 만족시킬 수는 없다.
이와 같이, 종래에 사용된 인터리버에서, 전술한 조건 1 및 조건 2가 동시에만족될 수 없다는 문제가 있었다.
본 발명의 목적은 전술한 조건 1 및 조건 2를 동시에 만족하는 인터리버를 제공하는 것이다.
본 발명의 부호화 장치, 부호화 방법, 및 제공매체는 인터리버 수단이 치환 전후의 임의의 2지점 사이의 거리의 합이 소정의 값 또는 그 이상이 되고 또한 치환된 입력 데이터를 무작위화하는 인터리버를 사용하여 입력 데이터를 치환하는 것을 특징으로 한다.
복호장치, 복호방법, 및 제공매체는 부호화 장치에 의해 수행된 인터리브 과정과는 반대되는 디인터리브 과정을 수행하는 것을 특징으로 한다.
도 1은 종래의 터보 부호화 장치의 일례의 구성을 도시하는 블록도.
도 2는 컨볼루션 부호화 회로의 구성을 도시하는 블록도.
도 3은 인터리버의 구성을 도시하는 블록도.
도 4는 치환 ROM에 저장된 데이터의 설명을 도시하는 도면.
도 5는 입력 데이터의 비트수와 터보 부호화 장치에서 부호화된 데이터의 수사이의 관계를 도시하는 도면.
도 6은 터보 복호장치의 구성을 도시하는 블록도.
도 7은 수신 데이터의 비트수, 추정확률 값 데이터의 수 및, 터보 복호장치에서 복호화된 데이터 수사이의 관계를 도시하는 도면.
도 8은 본 발명을 적용한 터보 부호화 장치의 실시예의 구성을 도시하는 블록도.
도 9는 인터리버의 구성을 도시하는 블록도.
도 10은 치환위치를 결정하는 공정을 설명하는 흐름도.
도 11은 M-시퀀스 발생회로의 구성을 도시하는 블록도.
도 12는 치환위치를 결정하는 다른 공정을 설명하는 흐름도.
도 13은 치환위치를 결정하는 또 다른 공정을 설명하는 흐름도.
도 14는 치환위치를 결정하는 또 다른 공정을 설명하는 흐름도.
도 15는 도 14에 연속되는 흐름도.
도 16은 터보 복호장치의 구성을 도시하는 블록도.
<도면의 주요 부분에 대한 부호의 설명>
71 : 인터리버 81 : 입력 데이터 유지 메모리
82 : 데이터 치환 회로 83 : 출력 데이터 유지 메모리
84 : 치환 데이터 ROM 90 : M-시퀀스 발생회로
101 : 시프트 레지스터 102 : 가산회로
103 : 곱셈회로 120 : 터보 복호장치
본 발명의 양호한 실시예를 이하 상세히 기술한다.
본 발명의 부호화 장치의 인터리브 수단(예를 들면, 도 8의 인터리버(71))은 치환 전 후 임의의 2지점 사이의 거리의 합이 소정의 값 또는 이보다 큰 인터리버를 사용하여 입력 데이터를 치환하는 치환수단(예를 들면, 도 10의 단계 S1), 및 상기 치환수단에 의해 치환된 입력 데이터를 무작위화하는 무작위화 수단(예를 들면, 도 10의 단계 S4)을 포함하는 것을 특징으로 한다.
본 발명의 복호장치는 부호화 장치에 의해 수행된 인터리브 과정에 반대되는 과정을 수행하는 디인터리브 수단(예를 들면, 도 16의 소프트 출력 복호회로(131)를 포함하는 것이 특징이다.
도 8은 본 발명이 적용된 터보 부호화 장치의 구성을 도시한 것이다. 이 터보 부호화 장치(60)는 입력 데이터에 대해 컨볼루션 부호화를 수행함으로서 부호화된 데이터를 얻는 컨볼루션 부호화 회로(1-1), 입력 데이터를 순차적으로 인터리브하는 인터리버(71-1 내지 71-(N-1)), 및 인터리버(71-1 내지 71-(N-1))의 출력 데이터에 대해 컨볼루션 부호화를 각각 수행함으로써 부호화된 데이터를 얻는 컨볼루션 부호화 회로(1-1 내지 1-N)를 포함한다.
여기서, 컨볼루션 부호화 회로(1)는 입력된 데이터에 대해 컨볼루션 부호화 동작을 수행하여 동작결과를 부호화된 데이터로서 출력하며, 앞의 경우와 마찬가지로, 도 2에 도시한 바와 같이 구성된다. 인터리버(71)는 입력된 데이터의 순서를 변경하여 이들을 출력한다.
도 9는 인터리버(71)의 구성예를 도시한 것이다. 인터리버(71)에 입력된 입력 데이터는 임시로 입력 데이터 유지 메모리(81)에 저장된 다음 데이터 치환 회로(82)에 의해서 시퀀스가 재배열된다. 입력 데이터의 시퀀스의 재배열은 치환 데이터 ROM(84)의 내용(치환 위치 정보)에 기초하여 수행된다. 그후 시퀀스가 재배열된 데이터는 출력 데이터 유지 메모리(83)에 저장된 후 출력 데이터로서 출력된다.
다음에, 도 9에 도시한 인터리버(71)에 의해 수행되는 입력 데이터의 시퀀스를 대치(치환)시키는 것에 대해서 기술한다. 이 대치(치환)는 다음의 두가지 조건을 만족하도록 수행된다.
[조건 1] 치환 전후 임의의 2지점 사이의 거리의 합은 충분히 크게 된다(소정값보다 크게 된다)
[조건 2] 치환 위치가 시퀀스로서 간주된 경우, 시퀀스는 k-차균등분포성이라고 하는 수학적인 성질을 만족한다.
조건 1을 만족하는 인터리버로서는 어파인 인터리버를 사용한 것이 있다. 어파인 인터리브에서, 입력신호의 위치 i에 대해, 인터리버의 크기 N에 대해 상대적으로 소수인 소정의 상수 "a", 및 임의의 상수 "b"를 사용하여 i번째 위치의 입력신호를 (a × i + b) mod N의 위치로 인터리브한다. 특히, N = 2m^2이고 a =2m ±1일 때, 임의의 상수 "b"에 대하여, 치환 전후의 임의의 두점사이의 거리의 합은 항상 2m 또는 그 이상으로 된다. 이 경우 치환 전후의 임의의 두점사이의 거리의 합의 최소값 2m은 크기가 동일한 어떠한 인터리버에서도 최대값인 것으로 입증되었다. 즉, 이러한 파라미터를 갖는 어파인 인터리브를 사용한 인터리버는 조건 1을 만족한다. 그러나, 어파인 인터리버는 조건 2를 만족하지 않는 것으로 알려져 있다.
조건 2에 나타낸 k-차균등분포성은 크기 N의 인터리버에 대해 부류 번호(class number) C 및 차원(dimension) K가 결정되게 하는 것으로서, 먼저, i번째 치환위치 π(i)(i=0 내지 N-1)에 대해 결정된 값 c={c|(c × s)π(i) < (c × (s+1)), s=N/C, 0≤c<C}을 치환위치가 속한 부류로 한다. 다음에, i번째, (i+1)번째,..., (i+(K-1))번째 입력이 속한 부류들을 하나의 벡터로 하고, 0≤i≤(N-K)의 모든 i에 대해 결정된 벡터 출현빈도를 카운트한다. 마지막으로, 시퀀스(i=0 내지 (N-1)의 값을 π(i)로 바꾸어 얻어짐)가 균등하게 분포된 것으로 된 경우, 각각의 벡터의 출현빈도의 기대값 E = (N-K)/(C^K)과 실제 (C^K) 종류의 벡터의 출현빈도 F0, F1,...,FC^K-1로부터, (χ^2)라고 하는 값 V=Σ(Fj -E)^2/E(j=0 내지 (C^K) -1)이 계산된다.
k-차균등분포성을 만족한다는 것은 소정의 설정된 기준값 T에 관하여, 상기한 바와 같이 계산된 (χ^2) 값 V가 V<T로 된다는 것을 의미한다.
예를 들면, 크기 N이 6이고 0번째부터 5번째까지 입력의 치환위치가 4, 2, 0, 3, 1, 5로 되는 인터리버에 대해서 부류 번호가 3이고 차원 K가 2인 k-차균등분포성을 2인 기준값 T에 관하여 판정하는 경우를 고찰한다. 먼저, 각각의 치환위치가 속한 부류는 치환위치 π(i)가 0≤π(i) < 2인 경우 부류 0이며, 2≤π(i)<4인 경우엔 부류 1이고, 4≤π(i)<6인 경우엔 부류 2이다. 따라서, 각각이 분류될 때, 치환위치가 속하는 부류는 차례대로 2, 1, 0, 1, 0, 2가 된다. 모든 차원 K(=2) 부류들의 인접한 부류를 모아 마련된 벡터는 (2, 1), (1, 0), (0, 1), (1, 0), (0, 2)이 된다.
전부 9종류의 벡터 (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)가 있으며, 각각의 벡터 F0내지 F8의 출현빈도는 F0=0, F1=1, F2=1, F3= 2, F4=0, F5=0, F6=0, F7=1 및, F8=0이다. 시퀀스가 균등하게 분포된 경우 각각의 벡터의 출현빈도의 기대값 E는 E=(N-K)/(C^K) = (6-2)/(3^2) = 4/9가 되기 때문에, (χ^2) 값은 기대값과 다음 식에 따라 계산된다.
(χ^2) 값 V =39/4가 얻어지며, 제1 설정 기준값 T=2에 대해서 V>T의 관계가 얻어지므로, k-차균등분포성은 만족되지 않는다. 설명의 편의상 부류 번호 C 및 차원 K에 대해 크기 N의 값을 작게 하였기 때문에, k-차균등분포성은 만족되지 않았다. 그러나, 실제로, 기대값 E를 10 또는 그 이상의 값(크기 N의 값을 충분히 크게 함)으로 한 후에 판정하면, k-차균등분포성이 만족된다.
인터리버(71)의 치환 데이터 ROM(84)에 저장된 치환 위치 데이터의 준비에 대해서 도 10의 흐름도를 참조하여 기술한다. 다음에, 치환 전후의 임의의 2지점사이의 거리의 합이 소정의 값 또는 그 이상이 되게 하고 동일한 크기를 갖는 각각의 (p^n) 인터리버들이 갈로아(Galois) 필드 GF(p^n) 원소의 계수를 갖는 M-시퀀스와 결합되게 하고, 그 결과로서 얻어진 인터리브 위치에 입력신호를 인터리브하게, 치환위치 데이터를 발생하는 경우에 대해서 기술한다.
전술한 바와 같이, 치환 전후의 임의의 2개의 지점사이의 거리의 합이 소정의 값 또는 그 이상이 되게 하며 동일한 크기를 갖는 (p^n) 인터리버로서, N 크기를 각각 갖는 전술한 어파인 인터리버가 사용된다.
단계 S1에서, j번째 (0≤j< p^n) 어파인 인터리버에 i번째 입력신호의 치환위치는 다음에 도시하는 치환함수 πj(i)에 의해서 결정된다.
M-시퀀스의 차수 "d"는 다음 식을 만족하는 정수 "d"로 한다.
도 11은 M-시퀀스의 발생을 회로로 실현한 경우의 예를 도시하는 블록도이다. 도 11에 도시한 M-시퀀스 발생회로(90)는 시프트 레지스터(101-1 내지 101-4), GF(p^n)의 가산회로(102-1 내지 102-3), 및 GF(p^n)의 곱셈회로(103-1 내지 103-4)를 포함하며, 치환위치 신호를 순차적으로 발생한다. 곱셈회로(103-1 내지 103-4)에 미리 설정된 계수 a1내지 a4는 다항식 a4× 4+ a3× 3 + a2× 2 + a1× 1 + 1이 GF(p^n)에서 d번째 약분할 수 없는 원시 다항식이 되도록 선택된다.
시프트 레지스터(101-1 내지 101-4) 각각은 입력 데이터를 1 단위시간만큼 지연시킨 후, 후단의 시프트 레지스터(101-2 내지 101-4) 또는 곱셈회로(103-4)에 출력한다. GF(p^n)의 가산회로(102-1 내지 102-3) 각각은 대응하는 곱셈회로(103-1 내지 103-3)로부터 입력과 후단의 가산회로(102-2, 102-3)로부터의 입력 또는 곱셈회로(103-4)로부터의 입력을 더하여 대응하는 시프트 레지스터(101-1) 또는 곱셈회로(102-1, 102-2)에 출력한다. GF(p^n)의 곱셈회로(103-1 내지 103-4) 각각은 대응하는 시프트 레지스터(101-1 내지 101-4)로부터의 입력과 대응하는 계수 a1내지 a4와의 곱을 대응하는 가산회로(102-1 내지 102-3)에 출력한다. 모든 시프트 레지스터(101-1 내지 101-4)는 시간 0에서 0의 값에 설정되기 때문에, 결국, 0이 출력된다. 시간 1에서, 모두 0이 아니도록 초기화 값이 설정된 후, 치환위치 신호가 매 1단위시간마다 출력된다.
단계 S2에서, 시간 0 내지 시간 (p^n-1)에서 M-시퀀스는 M-시퀀스 발생회로(90)에서 발생되며, 발생된 M-시퀀스는 어레이 m[i]에 저장된다. 단계 S3에서, i=0 내지 i=N × (p^n-1)까지 저장된 어레이 m[i]를 살펴보아 다음과 같이 표현되는 함수를 구하는데, 이것은 값 t(0≤t<p^n)가 u번째(0≤u<N)에서 나타나는 위치를 나타낸다.
마지막으로, 단계 S4에서, 상기 M-시퀀스로부터 얻어진 함수 L(t, u)를 사용하여 목적지 i번째 입력의 치환위치를 표현하는 함수 π(i)를 구한다. 함수 π(i)는 다음과 같다.
이와 같이 표현된 함수에 의해 얻어진 치환 위치를 치환 데이터 ROM(84)에 저장함으로써 실현된 인터리버에서, 치환 전후의 임의의 2지점사이의 거리의 합이 2m/(p^n) 또는 그 이상으로 되고, 부류 번호 (p^n) 및 차원 (1 + logp^nN)의 k-차균등분포성이 매우 작은 기준값 T에 대해 만족됨이 입증되었다. 이것에 의해서, 크기 (p^n × N)을 가지며 조건 1 및 조건 2를 만족하는 인터리버를 구성하는 것이 가능하게 된다. 예로서, 크기 N=8을 각각 갖는 2개의 어파인 인터리버와 GF(2)의 4번째 M-시퀀스를 결합한 경우에 대해 설명한다.
단계 S1에서의 과정과 같이, 각각의 어파인 인터리버의 치환 함수는 다음과 같이 결정된다.
입력 신호의 위치 i 및 치환 목적지의 위치 πj(i)로부터, 상기 치환 함수를 사용한 계산을 통해서 다음 관계가 얻어진다.
i 0 1 2 3 4 5 6 7π0(i) 0 3 6 1 4 7 2 5
i 0 1 2 3 4 5 6 7π1(i) 0 5 2 7 4 1 6 3
여기서, 도 11에 도시한 M-시퀀스 발생회로(90)에 의해 GF(2)의 제4 시퀀스가 발생된 경우, 시간 0 내지 시간 15에서 출력은 다음과 같게 된다.
M-시퀀스 발생회로의 출력: 0100010011010111
이로부터, 함수 L(u, t), (0≤u<2, 0≤t<8)은 다음과 같이 결정된다.
i 0 1 2 3 4 5 6 7L(0, i) 0 2 3 4 6 7 10 12
i 0 1 2 3 4 5 6 7L(1, i) 1 5 8 9 11 13 14 15
최종의 치환 함수 π(i)는 다음과 같이 되며, 계산결과로부터 얻어져 치환 데이터 ROM(84)에 저장된 값은 표5에서 도시하는 바와 같이 된다.
(0i<16)i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15π1(i) 0 4 10 2 6 12 3 7 1 13 8 15 11 5 14 9
다음에, 도 12의 흐름도를 참조하여, 치환위치를 결정하는 또 다른 방법을 기술한다. 이 실시예에서, 인터리버의 치환위치를 변화시킨 결과로부터 얻어진 인터리버 위치에 입력신호가 인터리브되게 치환위치가 발생되고, 치환 전후의 임의의 2지점사이의 거리의 합이 일정범위 ±a 내에서, 소정의 값 또는 그 이상이 될 수 있게 하는 경우에 대해서 기술한다.
치환 전후의 임의의 2지점 사이의 거리의 합이 소정의 값 또는 그 이상이 될 수 있게 하는 인터리버로서, 크기 N의 어파인 인터리버가 사용된다. 먼저, 단계 S11에서, 원래의 어파인 인터리버의 치환 위치의 어레이 p[i]는 다음 식에 의해 설정된다.
단계 S12에서, 위치변화에 사용된 어레이 q[i]는 q[i] = i(0≤i<N)으로서 설정된다. 다음에, 단계 S13에서, 치환 위치의 변화 범위를 결정하기 위한 파라미터 A가 설정되고, 단계 S14에서, 파라미터 POS는 0으로 초기화된다.
단계 S15에서, 새로운 치환 어레이를 얻기 위한 지수가 되는 어레이 q[i]를 교환하여 그로부터 얻어진 치환위치가 일정 변화 범위 A 내에 들도록 한다. 즉, |POS-q[i]|≤A 및 |POS+ A - q[i]|≤A 가 되는, POS≤i≤POS+A에서 q[i]의 내용이 무작위로 교환된다.
단계 S16에서, POS값은 1만큼 증분되고, 과정은 단계 S17로 진행한다. 단계 S17에서, POS 값이 (N-A)인지 아니면 그 이상인지 여부에 대해 판정하고 판정이 아니오인 경우, 단계 S15으로 되돌아가며 그 후의 과정이 반복되며, 판정이 예인 경우, 단계 S18로 진행한다.
단계 S18의 과정에서, 치환 어레이 r[i]는 다음의 식을 통해서 얻어지며 얻어진 치환 어레이 r[i]의 내용은 치환 데이터 ROM(84)에 저장된다.
이러한 식으로 실현된 인터리버에서, 치환 전후 임의의 2지점사이의 거리의 합이 2m-2A 또는 그 이상으로 되고, k-차균등분포성이 만족된다. 이것에 의해서, 크기 N을 가진 인터리버를 구성하는 것이 가능하게 되고, 이것은 조건 1 및 조건 2를 만족한다.
여기서, 크기 N=8인 어파인 인터리버의 치환 위치가 2의 시프트 범위로 가변되는 경우의 예에 대해서 기술한다. 먼저, 단계 S11에서, 어파인 인터리버의 치환 함수는 다음과 같이 결정된다.
입력 데이터의 위치 i 및 치환 목적지의 위치 p[i]는 상기 치환 함수 p[i]에 의해서 다음과 같이 하여 얻어진다.
i 0 1 2 3 4 5 6 7p[i] 0 3 6 1 4 7 2 5
다음에, 단계 S12에서, 어레이 q[i]는 다음과 같이 설정된다.
i 0 1 2 3 4 5 6 7q[i] 0 1 2 3 4 5 6 7
단계 S13에서, 시프트 범위 A는 2로 설정된다. 단계 S14에서, POS의 값은 초기값으로서 0으로 한다. 그후, 단계 S15 내지 S17의 과정이 반복된다. 여기서, POS가 0내지 5(=N-A-1)까지 변하는 경우에 단계 S15에서 수행되며 어레이 q[i]에 대해서 수행되는 과정에 대해서 기술한다.
[POS=0일 때]i 0 1 2 3 4 5 6 7q[i] 0 1 2 3 4 5 6 7
어레이 q[i] (POS≤i≤POS + A)가 |POS - q[i]|≤A 및 |POS+ A - q[i]|≤A를 만족할 때, 즉 어레이 q[i] (0≤i≤2)가 |0 - q[i]|≤2 및 |2 - q[i]|≤2를 만족할 때, 3개의 q[0], q[1], q[2]가 있으며 이들의 내용은 무작위로 교환된다.
[POS=1일 때]i 0 1 2 3 4 5 6 7q[i] 1 2 0 3 4 5 6 7
어레이 q[i](POS≤i≤POS+A)가 |POS - q[i]|≤A 및 |POS+ A - q[i]|≤A를 만족할 때, 즉 어레이 q[i] (1≤i≤3)가 |1 - q[i]|≤2 및 |3 - q[i]|≤2를 만족할 때, 2개의 q[1], q[3]가 있으며 이들의 내용은 무작위로 교환된다.
[POS=2일 때]i 0 1 2 3 4 5 6 7q[i] 1 3 0 2 4 5 6 7
어레이 q[i](POS≤i≤POS+A)가 |POS - q[i]|≤A 및 |POS+ A - q[i]|≤A를 만족할 때, 즉 어레이 q[i] (2≤i≤4)가 |2 - q[i]|≤2 및 |4 - q[i]|≤2를 만족할 때, 2개의 q[3], q[4]가 있으며 이들의 내용은 무작위로 교환된다.
[POS=3일 때]i 0 1 2 3 4 5 6 7q[i] 1 3 0 4 2 5 6 7
어레이 q[i](POS≤i≤POS+A)가 |POS - q[i]|≤A 및 |POS+ A - q[i]|≤A를 만족할 때, 즉 어레이 q[i] (3≤i≤5)가 |3 - q[i]|≤2 및 |5 - q[i]|≤2를 만족할 때, 2개의 q[3], q[5]가 있으며 이들의 내용은 무작위로 교환된다.
[POS=4일 때]i 0 1 2 3 4 5 6 7q[i] 1 3 0 5 2 4 6 7
어레이 q[i](POS≤i≤POS+A)가 |POS - q[i]|≤A 및 |POS+ A - q[i]|≤A를 만족할 때, 즉 어레이 q[i] (4≤i≤6)가 |4 - q[i]|≤2 및 |6 - q[i]|≤2를 만족할 때, 2개의 q[5], q[6]가 있으며 이들의 내용은 무작위로 교환된다.
[POS=5일 때]i 0 1 2 3 4 5 6 7q[i] 1 3 0 5 2 6 4 7
어레이 q[i](POS≤i≤POS+A)가 |POS - q[i]|≤A 및 |POS+ A - q[i]|≤A를 만족할 때, 즉 어레이 q[i] (5≤i≤7)가 |5 - q[i]|≤2 및 |7 - q[i]|≤2를 만족할 때, 2개의 q[5], q[7]가 있으며 이들의 내용은 무작위로 교환된다. 결국, 이하 나타낸 결국 q[i]가 얻어진다.
i 0 1 2 3 4 5 6 7q[i] 1 3 0 5 2 7 4 6
단계 S17에서, 전술한 각각의 과정을 통해 얻어진 p[i](표6) 및 q[i](표14)에 의해서 최종의 치환 어레이 r[i]는 r[i] = p[q[i]]를 통해 얻어진다.
i 0 1 2 3 4 5 6 7r[i] 3 1 0 7 6 5 4 2
마지막으로, 이러한 식으로 얻어진 치환 어레이 r[i]의 결과(표15)는 치환 데이터 ROM(84)에 저장된다.
다음에, 도 13의 흐름도를 참조하여, 치환 위치를 결정하는 또 다른 방법을 기술한다. 이 실시예에서, 치환 전후 임의의 2지점사이의 거리의 합이 소정의 값 또는 그 이상이 되게 하는 인터리버의 치환 위치가 소정의 범위로 나누어지고, 입력신호는 임의의 알고리즘에 의해 그 안에서 섞인 결과로서 얻어진 인터리브 위치로 인터리브되는 그러한 치환 위치 데이터가 발생되는 경우에 데 대해 기술한다.
치환 전후 임의의 2지점사이의 거리의 합이 소정의 값 또는 그 이상이 되게 하는 인터리버로서, 크기 N의 어파인 인터리버를 사용한다. 먼저, 단계 S21에서, 원래의 어파인 인터리버의 치환 위치의 어레이 p[i]는 다음의 식에 따라 계산된다.
단계 S22에서, 섞는데 사용되는 어레이 q[i]는 q[i]=i로서 설정된다.
다음에, 단계 S23에서, 섞는 간격을 결정하기 위한 경계값 aj는 다음의 조건을 만족하도록 설정된다.
단계 S24에서, 소정의 j(0≤j<k)에 대해서, aj≤j<aj+1를 만족하는 어레이 q[i]의 내용은 무작위로 교환된다. 마지막으로, 단계 S25의 과정에 의해, 치환 어레이 r[i]는 다음 식에 따라 얻어진다.
얻어진 치환 어레이 r[i](0≤i<N)의 내용은 치환 데이터 ROM(84)에 저장된다.
이러한 식으로 실현된 인터리버에서, 치환 전후의 임의의 2지점사이의 거리의 합은 2m - ma×{a(j+1)-a(j-1))} 또는 그 이상으로 되며, k-차균등분포성이 만족된다. 이에 의해서, 크기 N을 가지며 조건 1 및 조건 2를 만족하는 인터리버를 구성하는 것이 가능하게 된다.
여기서, 크기 N=8인 어파인 인터리버가 사용되며 치환 위치가 섞이게 되는 경우의 예에 대해 설명한다. 단계 S21에서, 어파인 인터리버의 치환 함수 p[i]의 내용은 다음 식에 따라 결정된다.
입력 데이터의 위치 i 및 치환 목적지의 위치 p[i]로부터, 상기 치환 함수에 의해 다음 관계가 얻어진다.
i 0 1 2 3 4 5 6 7p[i] 0 3 6 1 4 7 2 5
다음에, 단계 S22에서, q[i]는 다음과 같이 설정된다.
i 0 1 2 3 4 5 6 7q[i] 0 1 2 3 4 5 6 7
단계 S23에서, 섞는 간격을 결정하기 위한 경계값은 다음과 같이 설정된다.
경계값 : a0=0, a1=2, a2=4, a3=6, a4=8
다음에, 단계 S24에서, 소정의 j(0≤j<5)에 대해서, aj≤i<aj+1를 만족하는 어레이 q[i]의 내용은 무작위로 교환된다. 이 예의 경우, q[0] 및 q[1], q[2] 및 q[3], q[4] 및 q[5], q[6] 및 q[7]의 내용은 무작위로 교환되고, 표18에 나타낸 바와 같이 새로운 q[i]가 얻어진다.
i 0 1 2 3 4 5 6 7q[i] 1 0 2 3 5 4 7 6
마지막으로, 단계 S25에서, 최종의 치환 어레이 r[i]는 전술한 과정을 통해 얻어진 p[i](표16) 및 q[i](표18)와 표19에 나타낸 바와 같은 r[i]=p[q[i]]의 관계를 사용함으로써 얻어진다.
i 0 1 2 3 4 5 6 7r[i] 3 0 6 1 7 4 5 2
이와 같이 하여 얻어진 치환 어레이 r[i]의 내용은 치환 데이터 ROM(84)에 저장된다.
다음에, 도 14 및 도 15의 흐름도를 참조하여, 치환 위치를 결정하는 또 다른 방법을 기술한다. 이 실시예에서, 치환 전후 임의의 2지점사이의 거리의 합이 소정의 값 또는 그 이상이 되게 하는 인터리버의 치환 위치가 일정범위 ±a에서 변화되고 치환 위치가 소정의 범위로 나누어지고 임의의 알고리즘에 의해 그 안에서 섞인 결과로서 얻어진 인터리브 위치로 입력신호가 인터리브되는 그러한 치환위치 데이터가 발생되거나, 치환 전후 임의의 2지점사이의 거리의 합이 소정의 값 또는 그 이상이 되게 하는 인터리버의 치환 위치가 소정의 범위로 나누어지고 임의의 알고리즘에 의해 그 안에서 섞이고, 더욱이 치환 위치가 일정범위 ±a에서 변화된 결과로부터 얻어진 인터리브 위치에 입력신호가 인터리브되는 그러한 치환위치 데이터가 발생되는 경우에 대해 기술한다. 즉, 이 예는 도 12에서 설명된 실시예와 도 13에서 설명된 실시예의 조합이다.
치환 전후 임의의 2지점사이의 거리의 합이 소정의 값 또는 그 이상이 되게 하는 인터리버로서, 크기 N의 어파인 인터리버가 사용된다. 단계 S31 내지 S38의 과정은 도 12의 단계 S11 내지 S18의 과정과 동일하기 때문에, 이들의 설명은 생략한다.
단계 S31 내지 S38의 과정을 통해 얻어진 어레이 r[i]의 내용은 단계 S39(도 15)에서 어레이 p[i]에 복사된다. 이러한 복사된 어레이 p[i]를 사용함으로써, 단계 S40에 이은 과정이 수행된다. 단계 S40 내지 S43의 과정은 도 13의 단계 S22 내지 S25의 과정과 동일하므로 설명을 생략한다.
여기서는 크기 N=8의 어파인 인터리버의 치환 위치가 2의 시프트 범위로 변화된 후에, 치환 위치를 소정의 범위로 더 분할하고, 그 안을 섞은 경우에 대해 기술한다. 먼저, 단계 S31에서, 어파인 인터리버의 치환 함수 p[i]는 다음과 같이 결정된다.
입력 데이터의 위치 i 및 치환 목적지의 위치 p[i]로부터, 표20에 나타낸 관계는 상기 치환 함수 p[i]를 통해 얻어진다.
i 0 1 2 3 4 5 6 7p[i] 0 3 6 1 4 7 2 5
다음에, 단계 S32에서, q[i]는 다음과 같이 설정된다.
i 0 1 2 3 4 5 6 7q[i] 0 1 2 3 4 5 6 7
단계 S33에서, 시프트 범위 A=2가 설정되고, 단계 S34에서 POS=0이 설정된다. 단계 S35 내지 S37의 과정이 POS=0 내지 5(=N-A-1)까지 수행된 결과로서 얻어진 q[i]의 예를 표22에 나타내었다.
i 0 1 2 3 4 5 6 7q[i] 1 3 0 5 2 7 4 6
이러한 식으로 얻어진 p[i](표20) 및 q[i](표 22)로부터, 단계 S37에서 발생된 r[i]를 다음에 나타내었다.
i 0 1 2 3 4 5 6 7r[i] 3 1 0 7 6 5 4 2
단계 S39에서, r[i]의 내용은 p[i]에 복사된다. 결과는 다음과 같다.
i 0 1 2 3 4 5 6 7p[i] 3 1 0 7 6 5 4 2
더우기, 단계 S40에서, q[i]는 다음과 같이 설정된다.
i 0 1 2 3 4 5 6 7q[i] 0 1 2 3 4 5 6 7
단계 S41에서, 섞는 범위를 결정하기 위한 경계값은 다음과 같이 설정된다.
경계값 : a0=0, a1=2, a2=4, a3=6, a4=8
다음에, 단계 S42에서, 소정의 j(0≤j<5)에 대해서, aj≤i<aj+1를 만족하는 어레이 q[i]의 내용은 무작위로 교환된다. 이 경우, q[0] 및 q[1], q[2] 및 q[3], q[4] 및 q[5], q[6] 및 q[7]의 내용은 무작위로 교환되고, 다음에 나타낸 바와 같은 관계가 얻어진다.
i 0 1 2 3 4 5 6 7q[i] 1 0 2 3 5 4 6 7
마지막으로, 단계 S43에서, 최종의 치환 어레이 r[i]는 전술한 과정을 통해 얻어진 p[i](표24) 및 q[i](표26)와 r[i]=p[q[i]]의 관계를 통해 얻어진다. 얻어진 결과를 표27에 나타내었다.
i 0 1 2 3 4 5 6 7r[i] 1 3 0 7 5 6 4 2
이와 같이 하여 얻어진 결과는 치환 데이터 ROM(84)에 저장된다.
도 16은 터보 복호장치(120)의 구성을 도시한 것이다. 이 터보 복호장치(120)는 도 8에 도시한 터보 부호화 장치(60)로부터 출력된 부호화된 데이터를 복호하여, 복호된 데이터를 얻는다. 이 터보 복호장치(120)는 터보 부호화 장치(60)로부터 출력된 부호화된 데이터(수신 데이터)의 개수에 대응하는 복수의 소프트 출력 복호회로(131-1 내지 131-N)을 포함한다. 소프트 출력 복호회로(131)는 부호화 측에서 입력데이터가 0 또는 1일 확률을 계산하는 기능을 갖는 예를 들면 MAP 복호기 및 SOVA 복호기와 같은 소위 소프트 출력 복호 시스템을 사용하여 구성된다. 소프트 출력 복호회로(131) 각각은 도 8의 터보 부호화 장치(60)의 인터리버(71)에 의해 수행되는 과정에 반대되는 과정을 수행하는 디인터리버를 포함한다.
도 16에 도시한 터보 복호장치(120)의 동작에 대해 설명한다. 수신 데이터(부호화된 데이터)는 각각 소프트 출력 복호회로(131-1 내지 131-N)에 공급된다. 각각의 소프트 출력 복호회로(131)에서, 부호화측에서 입력 데이터에 대한 추정 확률값 데이터를 서로 사용하며, 수회 내지 수십회 반복되는 복호동작이 수행된다. 그후 최종의 복호 데이터가 임의의 복호회로(도 16에서, 소프트 출력 보호회로(131-1)로부터 출력된다.
이와 같이, 실시예에서, 치환 전후의 임의의 2개의 지점사이의 거리의 합이 확실하고, 조건 1을 만족하는 전술된 어파인 인터리버인 복수의 인터리버는 난수 시퀀스를 발생하는 방법으로서 M-시퀀스를 사용하여 서로 결합되거나, 치환 전후의 임의의 2개의 지점사이의 거리의 합이 확실하고 조건 1을 만족하는 인터리버는 특정한 무작위화 알고리즘에 의해 무작위화되므로, 다음 두 개의 조건을 만족하는 인터리버를 구성하는 것이 가능하게 된다:
[조건1] 치환 전후의 거리의 합은 충분히 크게 되고,
[조건2] 치환 위치가 시퀀스로서 간주되는 경우, 시퀀스는 k-차균등분포성이라고 하는 수학적인 특성을 만족하며 높은 에러 정정 능력을 가진 터보 부호화/복호화 장치를 실현할 수 있게 된다.
또한, 전술한 실시예에서, 본 발명은 터보 부호화 장치 및 터보 복호화 장치에 적용되었지만, 본 발명은 다른 부호화 장치 및 복호화 장치에 적용될 수 있으며 어파인 인터리버 이외의 인터리버를 사용할 수도 있다.
더우기, 본 명세서에서, 상기 과정을 구현하는 컴퓨터 프로그램을 제공하는 제공 매체로서, 자기 디스크나 CD-ROM과 같은 정보 기록매체 외에도, 인터넷 또는 디지털 위성과 같은 네트워크를 통한 전송 매체도 포함된다.
본 발명에서 설명한 부호화 장치, 부호화 방법, 및 제공매체에 따라, 인터리버는 치환 전후의 임의의 2지점사이의 거리의 합이 소정의 값 또는 그 이상인 인터리버를 사용하여 입력 데이터를 치환하고 무작위화함으로써 수행된다. 따라서, 치환 전후의 임의의 2지점사이의 거리의 합이 크게 되도록 인터리브를 수행하는 것이 가능해지고, 치환 위치가 시퀀스로서 간주되는 경우, 시퀀스는 k-차균등분포성을 만족한다.
더우기, 본 발명에서 기술된 복호화 장치, 복호방법, 및 제공매체에 따라, 디인터리브는 복호화 장치에 의해 수행된 인터리브 과정에 반대되는 과정을 통해 수행된다. 따라서, 치환 전후의 임의의 2지점사이의 거리의 합이 크게 되도록 인터리브된 부호화된 데이터를 복호하는 것이 가능해지고, 치환 위치가 시퀀스로서 간주되는 경우, 시퀀스는 k-차균등분포성을 만족한다.

Claims (16)

  1. 입력 데이터에 대해 컨볼루션(convolution) 부호화를 수행하는 컨볼루션 수단 및, 상기 입력 데이터를 순차적으로 인터리빙하는 인터리브 수단(interleave means)을 포함하는 부호화 장치에 있어서,
    상기 인터리브 수단은 치환 전후의 임의의 2개의 지점사이의 거리의 합이 소정의 값 또는 그 이상인 인터리버를 사용하여 상기 입력 데이터를 치환하는 치환수단 및,
    상기 치환수단에 의해 치환된 입력 데이터를 임의추출하는 무작위화 수단(randomization means)을 포함하는 것을 특징으로 하는 부호화 장치.
  2. 제1항에 있어서, 상기 치환수단은 어파인 인터리버(affine interleaver)를 사용하는 것을 특징으로 하는 부호화 장치.
  3. 제1항에 있어서, 상기 무작위화 수단은 1의 발생수와 0의 발생수가 서로 동일한 k-차균등분포성을 만족하는 난수(random numbers)를 사용하는 것을 특징으로 하는 부호화 장치.
  4. 제1항에 있어서, 상기 무작위화 수단은 무작위화되는 데이터의 범위를 ±a("a"는 정수)의 범위 내에서 변경하면서 무작위화를 반복하는 것을 특징으로 하는 부호화 장치.
  5. 제1항에 있어서, 상기 무작위화 수단은 소정의 범위를 설정하고 상기 범위에서 상기 데이터에 소정의 알고리즘을 적용하여 무작위화하는 것을 특징으로 하는 부호화 장치.
  6. 제1항에 있어서, 상기 무작위화 수단은 무작위화되는 데이터의 범위를 ±a의 범위 내에서 변경한 다음, 소정의 알고리즘을 소정의 범위에 적용하여 무작위화하거나, 또는 상기 무작위화 수단은 소정의 범위를 설정하고 소정의 알고리즘을 상기 범위에 적용하여 무작위화를 행한 다음 ±a의 범위에서 무작위화하면서 부가로 변경하는 것을 특징으로 하는 부호화 장치.
  7. 입력 데이터에 대해 컨볼루션 부호화를 수행하고 상기 입력 데이터에 대해 인터리브를 순차적으로 수행하는 부호화 방법에 있어서,
    상기 인터리브는 치환 전후의 임의의 2개의 지점사이의 거리의 합이 소정의 값 또는 그 이상으로 되는 인터리버를 사용하여 상기 입력 데이터를 치환하는 치환 단계 및,
    상기 치환단계에서 치환된 상기 입력 데이터를 임의추출하는 무작위화 단계를 포함하는 것을 특징으로 하는 부호화 방법.
  8. 제7항에 있어서, 상기 치환단계는 어파인 인터리버를 사용하는 것을 특징으로 하는 부호화 방법.
  9. 제7항에 있어서, 상기 무작위화 단계는 1의 발생수와 0의 발생수가 서로 동일한 k-차균등분포성을 만족하는 난수를 사용하는 것을 특징으로 하는 부호화 방법.
  10. 제7항에 있어서, 상기 무작위화 단계는 무작위화되는 상기 데이터의 범위를 ±a("a"는 정수)의 범위에서 변화시키면서 무작위화를 반복하는 것을 특징으로 하는 부호화 방법.
  11. 제7항에 있어서, 상기 무작위화 단계는 소정의 범위를 설정하고 상기 범위에서 상기 데이터에 소정의 알고리즘을 적용하여 무작위화하는 것을 특징으로 하는 부호화 방법.
  12. 제7항에 있어서, 상기 무작위화 단계는 무작위화되는 데이터의 범위를 ±a의 범위 내에서 변경한 다음, 소정의 알고리즘을 소정의 범위에 적용하여 무작위화하거나, 또는 상기 무작위화 단계는 소정의 범위를 설정하고 소정의 알고리즘을 상기 범위에 적용하여 무작위화를 행한 다음 ±a의 범위에서 무작위화하면서 부가로 변경하는 것을 특징으로 하는 부호화 방법.
  13. 입력 데이터에 대해 컨볼루션 부호화를 수행하는 컨볼루션 수단 및 상기 입력 데이터를 순차적으로 인터리빙하는 인터리브 수단을 포함하는 부호화 장치의 인터리브 수단이,
    치환 전후의 임의의 2개의 지점사이의 거리의 합이 소정의 값 또는 그 이상이 되는 인터리버를 사용하여 상기 입력 데이터를 치환하는 치환단계 및,
    상기 치환단계에서 치환된 입력 데이터를 임의추출하는 무작위화 단계를 포함하는 공정을 수행하도록 하는 컴퓨터로 판독가능한 프로그램을 제공하는 것을 특징으로 하는 제공매체.
  14. 치환 전후의 임의의 2개의 지점사이의 거리의 합이 소정의 값 또는 그 이상이 되는 인터리버를 사용하여 입력 데이터를 치환하는 치환수단 및, 상기 치환수단에 의해 치환된 상기 데이터를 임의추출하는 무작위화 수단의 조합을 통해 인터리브 공정을 수행하면서 입력 데이터를 부호화하는 부호화 장치로부터 출력된 부호화된 데이터를 복호하는 복호장치에 있어서,
    상기 부호화 장치에 의해 수행된 인터리브 공정에 반대되는 공정을 수행하는 디인터리브 수단을 포함하는 것을 특징으로 하는 복호장치.
  15. 치환 전후의 임의의 2개의 지점사이의 거리의 합이 소정의 값 또는 그 이상이 되는 인터리버를 사용하여 입력 데이터를 치환하는 치환수단 및, 상기 치환수단에 의해 치환된 상기 데이터를 임의 추출하는 무작위화 수단의 조합을 통해 인터리브 공정을 수행하면서 입력 데이터를 부호화하는 부호화 장치로부터 출력된 부호화된 데이터를 복호하는 복호방법에 있어서,
    상기 부호화 장치에 의해 수행된 인터리브 공정에 반대되는 공정을 수행하는 디인터리브 단계를 포함하는 것을 특징으로 하는 복호방법.
  16. 치환 전후의 임의의 2개의 지점사이의 거리의 합이 소정의 값 또는 그 이상이 되는 인터리버를 사용하여 입력 데이터를 치환하는 치환수단 및, 상기 치환수단에 의해 치환된 상기 데이터를 임의추출하는 무작위화 수단의 조합을 통해 인터리브 공정을 수행하면서 입력 데이터를 부호화하는 부호화 장치로부터 출력된 부호화된 데이터를 복호하는 복호장치가,
    상기 부호화 장치에 의해 수행된 인터리브 공정에 반대되는 공정을 수행하는 디인터리브 단계를 포함하는 공정을 수행하도록 하는, 컴퓨터로 판독가능한 프로그램을 제공하는 것을 특징으로 하는 제공매체.
KR1019990037828A 1998-09-08 1999-09-07 부호화 장치 및 방법, 복호장치 및 방법, 및 제공매체 KR20000022950A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP98-253586 1998-09-08
JP25358698A JP4081875B2 (ja) 1998-09-08 1998-09-08 符号化装置および方法、復号装置および方法、並びに提供媒体

Publications (1)

Publication Number Publication Date
KR20000022950A true KR20000022950A (ko) 2000-04-25

Family

ID=17253444

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990037828A KR20000022950A (ko) 1998-09-08 1999-09-07 부호화 장치 및 방법, 복호장치 및 방법, 및 제공매체

Country Status (4)

Country Link
US (1) US6415414B1 (ko)
EP (1) EP0986182A3 (ko)
JP (1) JP4081875B2 (ko)
KR (1) KR20000022950A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606725B1 (en) * 2000-04-25 2003-08-12 Mitsubishi Electric Research Laboratories, Inc. MAP decoding for turbo codes by parallel matrix processing
GB2373149B (en) 2001-03-06 2004-07-07 Ubinetics Ltd Coding
US7600164B2 (en) * 2004-12-17 2009-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Interleaving/de-interleaving using compressed bit-mapping sequences
US8082479B2 (en) * 2006-02-02 2011-12-20 Qualcomm Incorporated Methods and apparatus for generating permutations
US8218518B2 (en) * 2006-06-09 2012-07-10 Samsung Electronics Co., Ltd. Interleaver interface for a software-defined radio system
US11323731B2 (en) * 2019-03-08 2022-05-03 Tencent America LLC Method and apparatus for video coding

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537420A (en) * 1994-05-04 1996-07-16 General Instrument Corporation Of Delaware Convolutional interleaver with reduced memory requirements and address generator therefor
JP4033245B2 (ja) * 1997-09-02 2008-01-16 ソニー株式会社 ターボ符号化装置およびターボ符号化方法

Also Published As

Publication number Publication date
EP0986182A3 (en) 2004-05-19
JP2000091926A (ja) 2000-03-31
JP4081875B2 (ja) 2008-04-30
US6415414B1 (en) 2002-07-02
EP0986182A2 (en) 2000-03-15

Similar Documents

Publication Publication Date Title
US6928602B2 (en) Encoding method and encoder
US4873688A (en) High-speed real-time Reed-Solomon decoder
US6304991B1 (en) Turbo code interleaver using linear congruential sequence
US7458006B2 (en) Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages
EP0928071B1 (en) Interleaver for turbo encoder
US7502988B2 (en) Decoding and error correction for algebraic geometric codes
US5535225A (en) Time domain algebraic encoder/decoder
EP0233075A2 (en) Method and apparatus for generating error detection check bytes for a data record
US7945780B1 (en) Apparatus for dynamically configurable interleaver scheme using at least one dynamically changeable interleaving parameter
KR20060125837A (ko) 데이터를 인코딩하기 위한 방법 및 장치
US6751773B2 (en) Coding apparatus capable of high speed operation
KR20000022950A (ko) 부호화 장치 및 방법, 복호장치 및 방법, 및 제공매체
JP4045872B2 (ja) 符号化方法および符号化装置
JP2000151427A (ja) 符号化装置および方法、復号装置および方法、提供媒体、並びにデ―タ置換位置情報を生成するための方法
JP3241851B2 (ja) 誤り訂正復号装置
JP3812983B2 (ja) エラー評価多項式係数計算装置
US8245103B2 (en) Arithmetic circuit for concatenated codes and address control method
KR0137354B1 (ko) 무선 데이타 통신에서의 에러검출 및 정정방법
Han Decoding BCH/RS Codes
Ryu Permutation polynomial based interleavers for turbo codes over integer rings: theory and applications
KR100192792B1 (ko) 리드 솔로몬 복호기의 다항식 평가 장치
KR0167390B1 (ko) 복호화 장치
Balamurugan et al. Novel Error Detection and Correction in Memory System using Hybrid Technology
Fenn et al. The design of Reed-Solomon codecs over the, dual basis
Gautam et al. Study and design of architecture for BCH code encoder and decoder

Legal Events

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