KR100601624B1 - 인터리버빙과 디인터리빙 장치 및 방법 - Google Patents

인터리버빙과 디인터리빙 장치 및 방법 Download PDF

Info

Publication number
KR100601624B1
KR100601624B1 KR1019990047748A KR19990047748A KR100601624B1 KR 100601624 B1 KR100601624 B1 KR 100601624B1 KR 1019990047748 A KR1019990047748 A KR 1019990047748A KR 19990047748 A KR19990047748 A KR 19990047748A KR 100601624 B1 KR100601624 B1 KR 100601624B1
Authority
KR
South Korea
Prior art keywords
address
data
clock
value corresponding
dividing
Prior art date
Application number
KR1019990047748A
Other languages
English (en)
Other versions
KR20010039380A (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 삼성전자주식회사
Priority to KR1019990047748A priority Critical patent/KR100601624B1/ko
Publication of KR20010039380A publication Critical patent/KR20010039380A/ko
Application granted granted Critical
Publication of KR100601624B1 publication Critical patent/KR100601624B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/2732Convolutional interleaver; Interleavers using shift-registers or delay lines like, e.g. Ramsey type 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Abstract

본 발명은 인터리버 및 디인터리버에 관한 것으로서, 데이터를 전송할 순서에 따라 소정의 개수의 그룹으로 나누어, 나누어진 각 그룹의 데이터를 그룹별로 서로 틀린 시간만큼 지연시켜 전송할 데이터를 분산시키는 것을 특징으로 하는 인터리버 및 상기 인터리빙된 데이터들을 지연된 시간이 같은 데이터들을 같은 그룹으로 분류하고, 각 분류된 그룹별 지연된 시간이 인터리빙 시에 지연된 시간을 포함하여 모두 동일하도록 각 그룹별로 서로 다른 지연 시간을 가하여 인터리빙되기 전의 데이터로 복구하는 장치 및 방법을 개시한다.
본 발명에 의하면, 전송하려는 데이터를 전송 순서에 따라 그룹으로 나누고 각 그룹별로 서로 다르게 지연을 시켜 인터리빙을 하고 인터리빙된 데이터를 지연된 시간이 같은 데이터별로 그룹을 나누고 모든 데이터의 지연 시간이 같도록 하여 디인터리빙하는 것을 데이터가 기록되고 읽어지는 메모리의 주소를 제어하여 실행하여 인터리빙과 디인터리빙의 제어를 간단히 하여 하드웨어적인 복잡도를 크게 줄이며, 인터리빙을 위한 기본 클럭을 빠르게 한 배속 클럭을 사용하여 메모리에 쓰고 읽는 동작을 실행함으로 해서 처리 속도를 빠르게 하여, 시스템의 신뢰도와 실행 속도를 높일 수 있다.

Description

인터리버빙과 디인터리빙 장치 및 방법{Apparatus and method for interleaving and deinterleaving}
도 1은 인터리버와 디인터리버가 사용된 일반적인 디지털 통신 시스템을 블록으로 도시한 것이다.
도 2는 종래의 길쌈 인터리버와 디인터리버의 동작을 도시한 것이다.
도 3은 본 발명에 따른 길쌈 인터리버와 디인터리버의 일실시예를 블록으로 도시한 것이다.
도 4는 본 발명에 따른 인터리버 장치의 동작의 흐름을 도시한 것이다.
도 5는 읽혀서 출력되는 데이터를, 데이터가 인터리빙 되는 것과 연관되도록 도시한 것이다.
도 6은 본 발명에 따른 길쌈 인터리버와 디인터리버의 다른 실시예를 블록으로 도시한 것이다.
도 7은 도 6에 따른 인터리버의 인터리빙 방법의 흐름을 도시한 것이다.
본 발명은 디지털 통신 시스템에 관한 것으로서, 특히 데이터를 인터리버빙 하고 인터리빙 된 데이터를 디인터리빙하는 장치 및 방법에 관한 것이다.
디지털 통신 시스템에서 메모리가 있는 채널(channel with memory)은 페이딩(fading), 간섭(interface) 및 연집 잡음(burst noise)등이 존재하는 연집 오류 채널(burst error channel)이다. 하지만 채널상의 오류를 정정하기 위해 고안된 대부분의 블록 부호(block codes)나 길쌈부호(convolutional codes)는 랜덤 독립 오류(random independent error)에 대처하도록 고안되어 있다. 따라서 랜덤 오류 정정 부호에 의해 오류를 정정하기 위해 이러한 연집 오류(burst error)들을 랜덤화하는 기술이 필요하다. 이러한 기술중의 하나가 시간 다이버시티(time diversity) 즉 인터리빙(interleaving)이며, 그 역과정을 디인터리빙(deinterleaving)이라 한다. 부호화된 메시지를 전송하기 전에 인터리빙하고 수신한 후에 디인터리빙하면 채널상의 연집오류들은 시간적으로 분산되어 복호기에서 랜덤 오류처럼 처리할 수 있다.
도 1은 인터리버와 디인터리버가 사용된 일반적인 디지털 통신 시스템의 블록을 도시한 것이다.
원래의 데이터(10)가 채널 인코더(11)를 거쳐 인터리버(12)에서 인터리빙된 후에 모듈레이터(13)에서 전송을 위해 변환되어 채널(14)을 통해 전송된다. 채널(14)은 전송을 위한 라인일 수도 있고 전파가 전송되는 공간일 수도 있다. 일 예로 케이블 모뎀의 경우에는 채널(14)은 모뎀을 위한 케이블이 될 수 있다.
주로 채널에서 데이터 송수신중에 오류 특히 연집 오류가 생기는 경우가 많다.
채널(14)을 통해 수신한 데이터는 디모듈레이터(15)에서 상기 모듈레이터(13)에서 변환된 방식에서 역으로 변환되어 디언터리버(16)에서 디인터리빙된다. 디인터리빙된 데이터는 채널 디코더(17)에서 디코딩되어 원 데이터(10)와 같은 데이터(18)로 변환된다.
인터리버는 크게 블록 인터리버(block interleaver)와 길쌈 인터리버(convolutional interleaver)의 2가지 형태로 분류된다. 길쌈 인터리버는 블록 인터리버에 비해 지연(delay)과 메모리 요구량이 절반밖에 되지 않는 장점이 있다.
도 2는 길쌈 인터리버와 디인터리버의 동작을 나타내는 블록도이다.
이때에 I는 인터리빙 깊이(interleaving depth), 즉 탭(tap)의 개수를 나타낸다. 예를 들어 I가 8이라면 모든 데이터를 입력되는 순서대로 8가지로 나누어서 전송하는 것이다.
J는 하나의 레지스터(21)에 포함된 지연 소자(예를 들면 플립 플롭)의 지연 단위이다. 예를 들어 도 2의 참조번호 21의 레지스터는 J만큼 지연이 되게 하며, 참조번호 22의 레지스터는 2J만큼 지연이 되도록 한다.
인터리브된 데이터는 채널(24)을 통해 디인터리버로 전송된다. 인터리버에서는 도면에 도시된 것처럼 지연이 없었던 1의 데이터는 디인터리버에서는 I*J만큼 지연이 되며, 인터리버에서는 I*J만큼 지연이 되었던 I 데이터는 디인터리버에서는 지연되지 않고 처리된다.
길쌈 인터리버와 디인터리버의 메모리 최소 요구량은 각각 J*I*(I+1)/2이다.
이때에 I와 J가 큰 경우에는 레지스터를 사용해서 인터리버를 하드웨어적으로 구현하면 구현에 필요한 소자인 레지스터가 차지하는 면적이 커지게 되고, 실질적으로 구현이 불가능하게 된다. 그러므로 이런 경우에는 RAM을 사용하여 구현해야 한다. 하지만 RAM에 읽고 쓰는 동작에 있어서 RAM의 주소를 제어하는 것이 매우 복잡하며 실질적으로 메모리 요구량도 많아지게 되는 문제가 있다.
본 발명이 이루고자 하는 기술적인 과제는, 상기의 문제점들을 해결하기 위해, 길쌈 인터리버와 디인터리버에서 메모리의 주소를 간단하게 제어할 수 있는 장치 및 방법을 제공하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 통신 시스템에서 전송할 데이터를 인터리빙(interleaving)하는 장치에 있어서, 기본 클럭을 발생하는 클럭 발생부; 상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부; 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 출력하는 카운터부; 인터립빙을 위해 지연시키는 시간별로 분리된 데이터의 그룹 개수와 지연된 시간에 따라 인터리빙될 데이터를 쓰기 위한 주소와 써진 데이터를 읽기 위한 주소를 출력하는 주소 생성부; 및 상기 카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 상기 인터리빙할 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함하는 것을 특징으로 한다.
상기 장치는 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수와 상기 I와 J로 결정되는 소정의 값을 출력하는 제2카운터부를 더 포함하는 것을 특징으로 하며, 상기 카운터부는 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하고, 상기 제2카운터부는 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수를 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값 i를 출력하며, 상기 주소 생성부는 (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, i를 k로 나눈 나머지에 대응하는 값을 읽기 주소로 출력하는 것을 특징으로 한다.
또는 상기 인터리빙 장치의 상기 카운터부는 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하며, 상기 주소 생성부는 상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 될 데이터를 쓴 주소를 WA라 하면 (WA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, 데이터를 읽은 주소를 RA라 하면 (RA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 출력하는 것을 특징으로 한다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 의한 통신 시스템에서 인터리빙된 데이터를 디인터리빙하는 장치에 있어서, 기본 클럭을 발생하는 클럭 발생부; 상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부; 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 제1카운터부; 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수를 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값을 출력하는 제2카운터부; 상기 제2 카운터부의 출력값을 i라고 하면 i를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 읽기 주소로 출력하는 주소 생성부; 및 상기 제1카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 상기 인터리빙 된 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 의한 통신 시스템에서 인터리빙된 데이터를 디인터리빙(deinterleaving)하는 장치에 있어서, 기본 클럭을 발생하는 클럭 발생부; 상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부; 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 카운터부; 상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 된 데이터를 쓴 주소를 WA라 하면 (WA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, 데이터를 읽은 주소를 RA라 하면 (RA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 출력하는 주소 생성부; 및 상기 카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 상기 인터리빙 된 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀 지는 메모리부를 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 의한 통신 시스템에서 데이터를 인터리빙/디인터리빙하는 장치에 있어서, 기본 클럭을 발생하는 클럭 발생부; 상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부; 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 제1카운터부; 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수를 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값 i를 출력하는 제2카운터부; 인터리빙시에는 (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소 값으로 출력하고, i를 k로 나눈 나머지에 대응하는 값을 읽기 주소 값으로 출력하며, 디인터리빙시에는 상기 i를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 읽기 주소로 출력하는 주소 생성부; 및 인터리빙시에는 상기 제1카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 인터리빙 될 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지며, 디인터리빙시에는 상기 제1카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 인터리빙 된 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 의한 통신 시스템에서 데이터를 인터리빙/디인터리빙하는 장치에 있어서, 기본 클럭을 발생하는 클럭 발 생부; 상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부; 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 카운터부; 상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 인터리빙시에는 상기 인터리빙 될 데이터를 쓴 주소를 WA1이라 하면 (WA1+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, 데이터를 읽은 주소를 RA1이라 하면 (RA1+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 출력하며, 디인터리빙시에는 상기 인터리빙 된 데이터를 쓴 주소를 WA2이라 하면 (WA2+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, 데이터를 읽은 주소를 RA2이라 하면 (RA2+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 출력하는 주소 생성부; 및 인터리빙시에는 상기 카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 인터리빙 될 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지며, 디인터리빙시에는 상기 카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 인터리빙 된 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 의한 통신 시스템에서 전송할 데이타를 인터리빙하는 방법에 있어서, 기본 클럭과 소정의 배속 클럭을 발생하는 단계; 상기 소정의 배속으로 변환된 클럭에 대응하는 값을 생성하는 단계; 지연시키는 시간별로 분리된 데이터의 그룹 개수와 지연된 시간에 따라 인터리빙될 데이터를 쓰기 위한 주소와 써진 데이터를 읽기 위한 주소를 생성하는 단계; 및 상기 변환된 클럭에 대응하는 값에 따라 인터리빙할 데이터를 저장하거나 저장된 데이터를 출력하는 단계를 포함하는 것을 특징으로 한다.
상기 방법은 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수와 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값 i를 출력하는 단계를 더 포함하며, 상기 변환된 클럭에 대응하는 값을 생성하는 단계는 상기 소정의 배속 클럭이 기본 클럭의 n배일 때에, 입력된 배속 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하며, 상기 주소를 생성하는 단계는 (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 생성하고, i를 k로 나눈 나머지에 대응하는 값을 읽기 주소로 생성하는 것을 특징으로 한다.
또한 상기 변환된 클럭에 대응하는 값을 생성하는 단계는 상기 소정의 배속 클럭이 기본 클럭의 n배일 때에, 입력된 배속 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하며, 상기 주소를 생성하는 단계는 상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 될 데이터를 쓴 주소를 WA라 하면 (WA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 생성하고, 데이터를 읽는 주소를 RA라 하면 (RA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 생성하며, 상기 WA와 RA의 초기 주소값은 0임을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 의한 통신 시스템에서 인터리빙된 데이터를 디인터리빙하는 방법에 있어서, 기본 클럭과 소정의 n배속 클럭을 발생하는 단계; 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 생성하는 단계; 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수를 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값 i를 출력하는 단계; 상기 i를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 생성하고, (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 읽기 주소로 생성하는 단계; 및 상기 n으로 나눈 나머지에 대응하는 값을 생성하는 단계의 출력의 상태에 따라 상기 주소를 생성하는 단계에서 생성된 쓰기 주소에 상기 인터리빙 된 데이터를 저장하고 상기 주소를 생성하는 단계에서 생성된 읽기 주소에서 데이터를 출력하는 단계를 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 의한 통신 시스템에서 인터리빙된 데이터를 디인터리빙하는 방법에 있어서, 기본 클럭과 소정의 n배속 클럭을 발생하는 단계; 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 생성하는 단계; 상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 된 데이터를 쓴 주소를 WA라 하면 (WA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 생성하고, 데이터를 읽은 주소를 RA라 하면 (RA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 생성하는 단계; 및 상기 n으로 나눈 나머지에 대응하는 값을 생성하는 단계의 출력의 상태에 따라 상기 주소 생성 단계에 생성된 쓰기 주소에 상기 인터리빙 된 데이터를 저장하며, 상기 주소 생성 단계에 생성된 읽기 주소에서 데이터를 출력하는 단계를 포함하며, 상기 WA와 RA의 초기 주소값은 0 인 것을 특징으로 한다.
이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명한다.
도 3은 본 발명에 따른 인터리버 및 디인터리버를 곱셈기를 이용하여 구현한 일실시예를 블록으로 도시한 것이다.
먼저 인터리버의 구성을 설명한다.
인터리버는 기본 클럭을 생성하는 클럭 발생부(30), 기본 클럭의 속도를 2배로 하는 배속 클럭 생성부(31), 입력되는 클럭에 대응하여 0과 1을 반복하는 모듈로 2 카운터(32), 쓰기 주소와 읽기 주소를 생성하는 주소 생성부(34) 및 인터리브될 데이터가 저장되고 읽혀지는 메모리부(37)를 포함한다. 이 장치는 인터리빙을 위해 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수와 상기 I와 J로 결정되는 값 k로 나눈 소정의 값을 출력하는 제2 카운트부(33)를 더 포함하는 것이 바람직하다. 본 실시예에서는 k=I*I*J의 관계를 이용한다.
그리고 상기 주소 생성부(34)는, 상기 제2 카운터부(33)의 출력값을 i라고 하면 (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소 값으로 출력하고, i를 k로 나눈 나머지에 대응하는 값을 읽기 주소 값으로 출력하기 위해, (I*J+1) 곱셈기(35), I*I*J 모듈로 연산을 하는 모듈로 (I*J+1) 변환기(36) 및 쓰기와 읽기 상태에 따라 해당 주소를 출력하는 선택부(37)를 포함한다.
도 4는 도 3에 따른 인터리버의 동작의 흐름을 도시한 것이다.
인터리빙하는 방법은 기본 클럭과 소정의 배속 클럭을 발생하는 단계(40), 배속으로 변환된 클럭에 대응하는 값을 생성하는 단계(42), 인터리빙을 위해 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수와 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값 i를 출력하는 단계(44), 인터리빙을 위해 지연시키는 시간별로 분리된 데이터의 그룹 개수와 지연된 시간에 따라 인터리빙 될 데이터를 쓰기 위한 주소와 써진 데이터를 읽기 위한 주소를 생성하는 단계(46) 및 상기 참조 번호 42단계에서 변환된 클럭에 대응하는 값에 따라 인터리빙할 데이터를 저장하거나 저장된 데이터를 출력하는 단계(48)를 포함한다.
상기 변환된 클럭에 대응하는 값을 생성하는 단계(42)는 상기 소정의 배속 클럭이 기본 클럭의 n배일 때에, 입력된 배속 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 것이 바람직하며, 상기 주소를 생성하는 단계(46)는 (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소 값으로 생성하고, i를 k로 나눈 나머지에 대응하는 값을 읽기 주소 값으로 생성하는 것이 바람직하다.
도 3 및 도 4를 참조하여 본 발명에 따른 인터리버 동작을 설명한다.
기본 클럭이 클럭 발생부(30)에서 생성되고, 이 기본 클럭이 2배 클럭 생성 부(31)에서 2배 속도의 클럭으로 변환한다(40 단계). 예를 들기 위해 2배 클럭이 생성되는 것으로 설정한다. 이 2배의 속도로 된 클럭에 동기되어 메모리부(38)에 써지거나 읽는 동작이 수행된다.
2배 속도 클럭이 모듈로 2 카운터(32)에 입력되고, 이 2배 속도 클럭에 동기되어 0과 1의 값이 반복되어 출력된다(42 단계). 2배 속도 클럭 1주기 동안에 모듈로 2 카운터(32)에서는 0과 1이 한번씩 출력된다.
이하의 실시예의 설명에서는 모듈로 2 카운터(32)의 출력이 0일 때에 인터리브될 데이터가 메모리부(38)에 써지고, 모듈로 2 카운터(32)의 출력이 1일 때에 메모리부(38)에 써진 데이터가 읽혀져서 인터리브된 데이터가 출력되는 것으로 설정한다. 실질적으로 위의 가정과 반대로 모듈로 2 카운터(32)의 출력이 "1"일 때에 메모리부(38)에 써지고 "0"일 때에 데이터를 읽어도 본 발명에 따른 인터리버의 동작은 마찬가지일 것이다.
데이터 입출력 클락인 기본 클럭 1주기마다 메모리에 대한 쓰기와 읽기 동작이 각각 한번씩 2배 속도의 클럭에 동기되어 실행된다. 이런 방법을 사용하면 2배속이 아닌 예들 들어 4배속의 클럭을 생성하고 이 4배속의 클럭에 대해 모듈로 4 카운터를 사용하여, 0,1의 카운터 출력에 메모리에 쓰고, 2,3의 출력에 메모리에서 읽는다면 전체적인 속도는 도 3의 예의 속도의 2배가 될 것이다. 이런 용도를 위해 배속 클럭의 속도를 조절할 수 있다.
인터리버에서 메모리부(38)에 입력되는 주소는 다음과 같이 발생된다(48 단계).
Figure 111999013985398-pat00001
상기의 식에서 i는 모듈로 I*I*J 카운터(33)에서 클럭 발생부(30)에서 발생하는 기본 클럭의 주기의 개수를 k=I*I*J로 나눈 나머지 값으로 0부터 (I*I*J-1)까지의 값을 가진다(44 단계). 그리고 I는 도 2에서와 같은 인터리빙 깊이(interleaving depth), 즉 탭(tap)의 개수를 나타내며 J는 하나의 레지스터에 포함된 지연 소자에 의한 기본 지연 단위이다.
참고로 (a mod b) 연산의 결과는 a를 b로 나눈 나머지이다. a와 b는 정수이며, mod 연산의 결과도 정수가 된다.
모듈로 2 카운터(32)는 기본 클럭의 2배의 속도인 2배 클럭에 동기되어 0과 1의 값을 출력하고, 선택부(37)에서는 이 값을 입력받아 읽기 주소와 쓰기 주소를 선택하고 메모리부(38)에 읽기 동작 혹은 쓰기 동작에 따른 주소를 메모리부(37)의 주소 포트에 공급한다. 인터리버에서 읽기 주소와 쓰기 주소는 상기의 식과 같이 모듈로 연산을 통해 발생시킨다.
본 발명에 의한 인터리버와 디인터리버 시스템은 입력 데이터가 출력되기까지 총 I*I*J 데이터 입출력 클럭만큼의 지연(delay)이 발생하며, 필요한 메모리부(38)의 용량은 I*I*J이다.
더 상세한 설명을 위해 도 2에서 I=4이고 J=1이고 입력되는 데이터는 A부터 T까지의 20개의 차례로 입력되는 데이타를 설정한다.
모듈로 16 카운터(33)가 클럭 발생부(30)의 기본 클락을 받아 동작하면 첫 번째 값이 0이 출력된다. 즉 i=0이다. 그리고 모듈로 2 카운터(32)의 출력이 0일 때에 데이터(=A)가 메모리부(37)에 써진다.
A가 첫 번째 데이터이므로 쓰기 주소는 상기 수학식 1을 이용하면 0 mod 16 = 0번지이다. 이 주소는 모듈로 16 카운터(33)에서 발생한 i의 값(=0)을 5 곱셈기(35)에서 5를 곱하고 모듈로 5 변환기(36)에서 모듈러 연산을 실행하여 생성된 것이다. 이 주소 값이 선택부(37)로 전달된다. 선택부(37)에서는 쓰기라는 신호를 모듈로 2 카운터(32)에서 받아서 이 주소 값을 메모리부(38)에 전달한다. 그리고 메모리부(38)는 모듈로 2 카운터(32)로부터 쓰기라는 신호를 전달받게되어 메모리부(38)의 0번지 주소에 A라는 값이 써지게 된다.
그리고 다음은 읽기 차례이므로 모듈로 2 카운터(32)의 출력이 1일 때에 데이터를 메모리부(37)에서 읽어간다. 이 동작은 다음과 같다.
상기 수학식에서 계산된 0 mod 16 = 0번지의 A 데이터가 읽혀진다. 모듈로 16 카운터(33)에는 속도가 2배로 되기 전의 원래의 기본 클럭 신호로 동작하므로 아직도 카운터 값 i는 0이다. 이 값이 그대로 선택부(38)로 읽기 주소값으로 입력된다. 선택부(38)에서는 읽기라는 신호(=1)를 모듈로 2 카운터(32)에서 받아서 이 주소 값을 메모리부(38)에 전달한다. 그리고 메모리부(38)는 모듈로 2 카운터(32)로부터 읽기라는 신호를 전달받게되어, 메모리부(38)의 0번지 주소에 저장된 값인 A가 출력되고, 이 값이 디인터리버로 전송된다.
다음의 데이터 B가 인터리빙되는 과정은 다음과 같다.
모듈로 16 카운터(33)가 기본 클락의 2번째 주기를 받아 1을 출력한다. 즉 i=1이다. 그리고 상기 클락이 2배 클럭 생성부(31)에서 2배 속도로 변환하여 2배로 변환되어, 모듈로 2 카운터(32)의 출력이 0인 첫 번째 시간 슬롯에서 데이터를 메모리부(38)에 쓴다.
B가 두 번째 데이터이므로 쓰기 주소는 5 mod 16 = 5번지이다. 이 주소는 모듈로 16 카운터(33)에서 발생한 i의 값(=1)을 5 곱셈기(34)에서 5를 곱하고 모듈러 5 변환기(36)에서 모듈러 16 연산을 실행하여 생성된 것이다. 이 주소 값이 선택부(37)로 전달된다. 선택부(37)에서는 쓰기라는 신호를 모듈로 2 카운터(32)에서 받아서 이 주소 값을 메모리부(38)에 전달한다. 그리고 메모리부(38)는 모듈로 2 카운터(32)로부터 쓰기라는 신호를 전달받게되어 메모리부(38)의 5번지 주소에 B라는 값이 써지게 된다.
그리고 다음은 읽기 차례이므로 모듈로 2 카운터의 출력이 1인 두 번째 시간 슬롯에서 데이터를 메모리부(38)에서 읽어간다.
상기 수학식에서 계산된 1 mod 16 = 1번지의 A 데이터가 읽혀진다. 1이라는 값이 선택부(37)에 주소값으로 입력된다. 선택부(37)에서는 두 번째 시간 슬롯에서 읽기라는 신호를 모듈로 2 카운터(32)에서 받아서 이 주소 값을 메모리부(38)에 전달한다. 그리고 메모리부(38)는 모듈로 2 카운터(32)로부터 읽기라는 신호를 전달받게되어 메모리부(38)의 1번지 주소에 저장된 값이 출력되어 디인터리버로 전송된다. 그런데 1번지에는 아직 아무 값도 없는 것이므로 더미 데이터(dummy data)가 출력되어 인터리버로 전달된다. 이 더미 데이터에 대해서는 나중에 다시 설명한다.
다음의 표는 상기와 같은 과정을 거쳐 인터리빙되어 써지고 디인터리버로 전송되는 데이타를 나타낸 것이다.
i값 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
쓰기 주소 0 5 10 15 4 9 14 3 8 13 2 7 12 1 6 11 0 5 10 15 4 9 14 3 8 13 2 7 12 1 6 11
A B C D E F G H I J K L M N O P Q R S T x x x x x x x x x x x x
읽기 주소 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
A x x x E B x x I F C x M J G D Q N K H x R O L x x S P x x x T
이때에 x는 더미 데이터를 나타내는 표시이다.
i가 0일때에 0번지에 A를 쓰고 0번지에서 A를 읽어가며, i가 1일때에는 5번지에 B를 쓰고 1번지에서 더미 데이터를 읽어가는 것이다.
i가 15에서 0으로 바뀐 것은 I가 모듈로 16 카운터(33)의 출력값이므로 15 다음에는 0의 값으로 돌아가는 것이다.
상기의 예에서는 A 내지 T의 값을 예를 들었기 때문에 더미 데이터가 여러개 표시되었다. 그러나 일반적인 데이터 스트림에서 연속된 데이터가 들어오는 것을 생각하면, 상기의 표에서 나타난 더미 데이터는 상기 A 내지 T의 값 이전 그리고 그 값들 이후의 데이터 스트림들이 인터리빙되었다면, 더미 데이터가 아닌 실 데이터가 될 것이다. 위의 표에서는 단지 A부터 T까지의 값이 처리가 되는 것만을 보여주기 위한 설명이었으므로 더미 데이터가 발생한 것으로 표시되었다.
도 5는 표 1의 읽혀서 출력되는 데이터를 데이터가 인터리빙 되는 것과 연관 되도록 도시한 것이다.
상기 인터리버가 사용되는 환경이 예를 들어 케이블 모뎀(cable modem)과 같은 시리얼(serial) 데이타가 전송되는 경우라면, 인터리빙 되어 전송되는 데이터의 차례는 A, x, x, x, E, B, x, x, I, F, C, x, ...이다. 연속적인 데이터이었던 A, B, C,,,,등의 데이터가 분산되어 전송되는 것을 확인할 수 있을 것이다. 이 전송되는 순서가 원래의 데이터(A, B, C, ...)가 인터리빙이 된 것을 보여주기 위해 도 5와 같이 도시된 것이다.
데이터의 원 순서는 A, B, C, D ...의 차례이므로 이 순서와 I의 값인 탭의 개수(I=4)를 고려하여 보면, A는 첫 번째 그룹에서 지연 없이 그대로 전송되고 B는 두 번째 그룹에서 한번(지연 단위 J=1) 지연되어 전송된 것이고 C는 세 번째 그룹에서 두 번 지연되어(지연 단위 2J=2) 전송되며 D는 네 번째 그룹에서 세 번 지연되어(지연단위 3J=3) 전송되는 것이다. 이하 다른 데이터도 마찬가지로 그룹이 지어지고 각 그룹별로 서로 다른 지연 시간이 가해진다.
즉 인터리빙 단계는 전송 순서에 따라 소정의 개수(이 경우에는 4개)로 그룹을 나누고(41 단계), 각 그룹별로 첫 번째 그룹은 지연을 하지 않고, 두 번째 그룹은 한 단위(=J)를 지연하였으며, 세 번째 그룹은 두 단위(=2J) 그리고 네 번째 그룹은 세 단위(=3J)를 지연시켜 각 그룹별로 서로 다르게 지연(42 단계)시킨 것을 알수 있다.
그리고 상기의 설명을 위해 I값을 4, J값을 1이라고 설정하였지만 이 값들은 구현예에 따라 바뀔 수 있다. 그리고 상기의 예에서 A는 지연이 없고, B는 한번 지 연되며, C는 두 번 지연되고 D는 세 번 지연되었지만, 구현의 필요에 따라서는 이 지연되는 정도는 각 그룹별로 서로 틀리기만 하면(예를 들어 A는 한번 지연, B는 두 번 지연, C는 세 번 지연 및 D는 지연 없음) 본 발명의 사상을 해치지 않고 구현할 수 있다는 것은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에게는 자명할 것이다.
또한, n배속의 클럭이 제2 카운터부(32)에 입력되는 경우에는 제2 카운터부로 모듈로 n 카운터를 사용한다. n배속 클럭의 세는 시작 시점을 정하지 않더라도 제2 카운터부의 출력으로 0부터 n-1까지의 출력이 생성되며, 예를 들어 이 출력이 0 내지 5까지는 상기 모듈로 2 카운터(32) 출력이 0인 경우와 같이 그리고 이 출력이 6 내지 n-1까지는 상기 모듈로 2 카운터(32) 출력이 1일 때와 같이 동작하면 같은 결과가 이루어지는 것을 알 수 있을 것이다.
도 2와 같은 지연 소자를 사용하는 인터리버의 경우에는 J의 값 즉 지연 단위가 커질수록 필요한 소자의 양이 급격히 증가되는 것을 알 수 있다. 반면 본 발명에 따른 상기의 실시예에서는 상기 수학식 1에서 J의 값만 바꾸면 되기 때문에 제어가 아주 간단해진다.
상기 데이터를 처리하기 위한 메모리 용량은 각 데이터가 1바이트의 용량인 경우 0부터 15까지의 16(=4*4*1)바이트가 필요함을 알 수 있다. 그리고 인터리빙을 위해 쓰는 시간은 16(=4*4*1) 지연 단위가 필요하며, 데이터를 다 쓴 후 읽어내는 시간은 16(=4*4*1) 지연 단위가 더 필요한 것을 알 수 있다.
도 6은 본 발명에 따른 인터리버의 다른 실시예를 도시한 것이다.
인터리버는 기본 클럭을 발생하는 클럭 발생부(60), 기본 클럭의 속도를 2배로 하는 2배 클럭 생성부(61), 속도가 2배로 된 클럭을 입력으로 하여 0과 1의 값을 출력하는 모듈로 2 카운터(62), 쓰는 주소 혹은 읽는 주소를 출력하는 주소 생성부(63) 및 인터리브된 데이터가 저장되는 메모리부(67)를 포함한다.
상기 주소 생성부(63)는 인터리빙을 위해 상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 될 데이터를 쓴 주소를 WA라 하면 (WA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, 데이터를 읽은 주소를 RA라 하면 (RA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 출력한다.
상기 주소 생성부(63)는 주소 값이 1씩 증가하는 모듈로 I*I*J 카운터a(64), 주소 값이 (I*J + 1)씩 증가하는 모듈로 I*I*J 카운터b(65), 쓰기와 읽기 상태에 따라 해당 주소를 출력하는 선택부(66)를 포함한다.
도 6의 구성은 도 3에서 곱셈기(35)를 사용하지 않을 경우에 주소를 다음의 식과 같이 변형시켜 사용한 것이다.
Figure 111999013985398-pat00002
이전 인터리버 읽기 주소(RA) 및 이전 인터리버 쓰기 주소(WA)의 초기값은 0인 것이 바람직하다.
상기의 식에서 현재 주소는 이전의 주소와 관계된다. 상기의 수학식 2는 2개의 모듈로 카운터로 구현할 수 있는데, 하나(64)는 증가치를 1로 하고, 다른 하나(65)는 증가치를 I*J+1로 하는 카운터가 된다. 이를 구현하여 연결 관계를 도시한 것이 도 6의 주소 생성부(63)내에 도시되어 있다.
도 7은 도 6에 따른 인터리버의 인터리빙 방법의 흐름을 도시한 것이다. 이 방법은 기본 클럭과 소정의 배속 클럭을 발생하는 단계(70), 상기 소정의 배속으로 변환된 클럭에 대응하는 값을 생성하는 단계(72), 인터리빙될 데이터를 쓰기 위한 주소와 써진 데이터를 읽기 위한 주소를 생성하는 단계(76) 및 상기 변환된 클럭에 대응하는 값에 따라 인터리빙할 데이터를 저장하거나 저장된 데이터를 출력하는 단계(78)를 포함한다.
상기 참조 번호 72 단계는 상기 소정의 배속 클럭이 기본 클럭의 n배일 때에, 입력된 배속 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하며, 상기 참조번호 76 단계는 인터리빙을 위해 상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 될 데이터를 쓴 주소를 WA라 하면 (WA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 생성하고, 데이터를 읽는 주소를 RA라 하면 (RA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 생성하는 것이 바람직하다. 이때 상기 WA와 RA의 초기 주소값은 0이다.
도 6과 도 7을 참조하여 본 발명에 따른 인터리버의 동작을 설명한다. 2배 클럭 생성부(61)와 모듈로 2 카운터(62), 선택부(66) 및 메모리부(67)의 기능과 동 작은 도 3과 동일하다.
도 3의 예와 같이 I=4, J=1이며 데이터도 A부터 T까지라고 가정한다.
주소의 초기값은 0이므로 0번지에 첫 번째 데이터인 A가 써지고 0번지의 A가 읽혀진다.
두 번째 데이터인 B가 써지는 주소는 상기 수학식 2에 따라 1*5 mod 16 = 5번지가 되고 읽어가는 데이터는 1 mod 16 = 1번지에서 더미 데이터(물론, 이전에 인터리빙 동작이 있었다면 그에 해당하는 데이타)가 읽혀진다. 이를 반복하면 상기 도 3과 수학식 1에 따른 동작과 같은 것을 확인할 수 있을 것이다.
디인터리버를 설명한다.
본 발명에 따른 디인터리버는 기본 클럭을 발생하는 클럭 발생부, 상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부, 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 제1카운터부, 인터리빙을 위해 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수를 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값을 출력하는 제2카운터부, 상기 제2 카운터부의 출력값을 i라고 하면 i를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 읽기 주소로 출력하는 주소 생성부 및 상기 제1카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 상기 인터리빙 된 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함한다.
디인터리버의 동작은 기본 클럭과 소정의 n배속 클럭을 발생하는 단계, 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 생성하는 단계, 인터리빙을 위해 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수를 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값 i를 출력하는 단계, 상기 i를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 생성하고, (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 읽기 주소로 생성하는 단계 및 상기 n으로 나눈 나머지에 대응하는 값을 생성하는 단계의 출력의 상태에 따라 상기 주소를 생성하는 단계에서 생성된 쓰기 주소에 상기 인터리빙 된 데이터를 저장하고 상기 주소를 생성하는 단계에서 생성된 읽기 주소에서 데이터를 출력하는 단계를 포함한다.
디인터리버의 구성 요소는 도 3의 인터리버의 구성 요소와 주소 생성부를 제외하면 같다. 디인터리버는 인터리빙된 데이터를 원래의 데이터로 복구하는 것이므로 구성 요소를 같이 사용하며 구현한 것이다. 도 3의 인터리버와 틀린 것은 주소 생성부가 인터리브 된 데이터를 메모리부에 쓰는 주소와 메모리부에 써진 데이터를 읽는 주소이다. 이 주소들을 다음의 식과 같이 생성된다.
Figure 111999013985398-pat00003
이때에 사용된 문자들의 의미는 상기 수학식 1에 사용된 것과 같다.
디인터리버의 동작은 상기의 인터리버 동작의 역과정이며, 상기 수학식 1의 인터리버의 주소와 비교하면 읽기 주소와 쓰기 주소가 바뀐 것을 알 수 있다. 인터리버와의 동작의 차이는 도 3의 인터리버의 모듈로 2 카운터(32)의 출력에 따라 쓰고 읽을 때의 주소가 반대라는 것이다. 그 외의 각 구성 요소의 동작은 도 3의 인터리버의 것과 거의 동일하므로 디인터리버의 동작 설명은 생략한다.
본 발명에 따른 다른 태양의 디인터리버는 기본 클럭을 발생하는 클럭 발생부, 상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부, 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 카운터부, 인터리빙을 위해 상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 된 데이터를 쓴 주소를 WA라 하면 (WA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, 데이터를 읽은 주소를 RA라 하면 (RA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 출력하는 주소 생성부 및 상기 카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 상기 인터리빙 된 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함한다.
디인터리버의 구성 요소는 도 6의 인터리버의 구성 요소와 주소 생성부를 제외하면 같다. 디인터리버는 인터리빙된 데이터를 원래의 데이터로 복구하는 것이므로 구성 요소를 같이 사용하며 구현한 것이다. 도 6의 인터리버와 틀린 것은 주소 생성부가 인터리브 된 데이터를 메모리부에 쓰는 주소와 메모리부에 써진 데이터를 읽는 주소이다. 이 주소들을 다음의 식과 같이 생성된다.
Figure 111999013985398-pat00004
상기 수학식 3 및 수학식 4에서의 이전 인터리버 읽기 주소(RA) 및 이전 인터리버 쓰기 주소(WA)의 초기값은 0인 것이 바람직하다.
이때에 사용된 문자들의 의미는 상기 수학식 2에 사용된 것과 같다.
디인터리버의 동작은 상기의 인터리버 동작의 역과정이며, 상기 수학식 2의 인터리버의 주소와 비교하면 읽기 주소와 쓰기 주소가 바뀐 것을 알 수 있다. 인터리버와의 동작의 차이는 도 6의 인터리버의 모듈로 2 카운터(62)의 출력에 따라 쓰고 읽을 때의 주소가 반대라는 것이다. 그 외의 각 구성 요소의 동작은 도 6의 인터리버의 것과 거의 동일하므로 디인터리버의 동작 설명은 생략한다.
도 3과 도 6을 비교하면 제어를 위한 소자의 수가 줄어든 것을 확인할 수 있다. 즉, 같은 제어를 하면서 더 작은 개수의 소자를 사용하여 구현할 수 있는 것이다.
그리고 도 3의 인터리버 혹은 디인터리버가 서로 거의 같은 구성 요소를 가지고 있다는 것을 이용해서 인터리버와 디인터리버의 기능을 같이 가진 인터리버/ 디인터리버를 구성할 수 있다. 즉, 하나의 장치에서 주소 생성부(34)의 기능이 인터리버를 위한 동작과 디인터리버를 위한 동작을 필요에 따라 혹은 번갈아 실행할 수 있게 하는 것이다. 하나의 시스템에 인터리버와 디인터리버를 별도로 설치하지 않고 도 3과 같은 장치를 이용해서 필요시에는 인터리버로 혹은 디인터리버로 사용할 수 있다.
이 경우 인터리버와 디인터리버간의 전환은, 예를 들면 도면에는 명시하지 않은 상태 레지스터를 두고, 이 상태 레지스터의 값에 따라 인터리버 혹은 디인터리버 기능을 실행하게 할 수 있을 것이다.
본 발명에 의하면, 전송하려는 데이터를 전송 순서에 따라 그룹으로 나누고 각 그룹별로 서로 다르게 지연을 시켜 인터리빙을 하고 인터리빙된 데이터를 지연된 시간이 같은 데이터별로 그룹을 나누고 모든 데이터의 지연 시간이 같도록 하여 디인터리빙하는 것을 데이터가 기록되고 읽어지는 메모리의 주소를 제어하여 실행하여 인터리빙과 디인터리빙의 제어를 간단히 하여 하드웨어적인 복잡도를 크게 줄이며, 인터리빙을 위한 기본 클럭을 빠르게 한 배속 클럭을 사용하여 메모리에 쓰고 읽는 동작을 실행함으로 해서 처리 속도를 늘여서, 그리하여 시스템의 신뢰도와 실행 속도를 높일 수 있다.

Claims (16)

  1. 통신 시스템에서 전송할 데이터를 인터리빙(interleaving)하는 장치에 있어 서,
    기본 클럭을 발생하는 클럭 발생부;
    상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부;
    상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 출력하는 카운터부;
    인터리빙을 위해 지연시키는 시간별로 분리된 데이터의 그룹 개수와 지연된 시간에 따라 인터리빙될 데이터를 쓰기 위한 주소와 써진 데이터를 읽기 위한 주소를 출력하는 주소 생성부; 및
    상기 카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 상기 인터리빙할 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함하는 것을 특징으로 하는 인터리빙 장치.
  2. 제1항에 있어서,
    데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수와 상기 I와 J로 결정되는 소정의 값을 출력하는 제2카운터부를 더 포함하는 것을 특징으로 하는 인터리빙 장치.
  3. 제2항에 있어서,
    상기 카운터부는 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하고,
    상기 제2카운터부는 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수를 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값 i를 출력하며,
    상기 주소 생성부는 (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, i를 k로 나눈 나머지에 대응하는 값을 읽기 주소로 출력하는 것을 특징으로 하는 인터리빙 장치.
  4. 제1항에 있어서,
    상기 카운터부는 상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하며,
    상기 주소 생성부는 상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 될 데이터를 쓴 주소를 WA라 하면 (WA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, 데이터를 읽은 주소를 RA라 하면 (RA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 출력하는 것을 특징으로 하는 인터리빙 장치.
  5. 제 4항에 있어서, 상기 주소 생성부의 WA와 RA의 초기 주소값은 0 인 것을 특징으로 하는 인터리빙 장치.
  6. 통신 시스템에서 인터리빙된 데이터를 디인터리빙(deinterleaving)하는 장치 에 있어서,
    기본 클럭을 발생하는 클럭 발생부;
    상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부;
    상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 제1카운터부;
    데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수를 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값을 출력하는 제2카운터부;
    상기 제2 카운터부의 출력값을 i라고 하면 i를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 읽기 주소로 출력하는 주소 생성부; 및
    상기 제1카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 상기 인터리빙 된 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함하는 것을 특징으로 하는 디인터리빙 장치.
  7. 통신 시스템에서 인터리빙된 데이터를 디인터리빙하는 장치에 있어서,
    기본 클럭을 발생하는 클럭 발생부;
    상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부;
    상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 카운터부;
    상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 된 데이터를 쓴 주소를 WA라 하면 (WA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, 데이터를 읽은 주소를 RA라 하면 (RA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 출력하는 주소 생성부; 및
    상기 카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 상기 인터리빙 된 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함하는 것을 특징으로 하는 디인터리빙 장치.
  8. 제 7항에 있어서, 상기 주소 생성부의 WA와 RA의 초기 주소값은 0 인 것을 특징으로 하는 디인터리빙 장치.
  9. 통신 시스템에서 데이터를 인터리빙/디인터리빙하는 장치에 있어서,
    기본 클럭을 발생하는 클럭 발생부;
    상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부;
    상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 제1카운터부;
    데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수를 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값 i를 출력하는 제2카운터부;
    인터리빙시에는 (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소 값으로 출력하고, i를 k로 나눈 나머지에 대응하는 값을 읽기 주소 값으로 출력하며, 디인터리빙시에는 상기 i를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 읽기 주소로 출력하는 주소 생성부; 및
    인터리빙시에는 상기 제1카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 인터리빙 될 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지며, 디인터리빙시에는 상기 제1카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 인터리빙 된 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함하는 것을 특징으로 하는 인터리빙/디인터리빙 장치.
  10. 통신 시스템에서 데이터를 인터리빙/디인터리빙하는 장치에 있어서,
    기본 클럭을 발생하는 클럭 발생부;
    상기 기본 클럭을 n배속의 클럭으로 변환하는 배속 클럭 생성부;
    상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하는 카운터부;
    상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 인터리빙시에는 상기 인터리빙 될 데이터를 쓴 주소를 WA1이라 하면 (WA1+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 출 력하고, 데이터를 읽은 주소를 RA1이라 하면 (RA1+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 출력하며, 디인터리빙시에는 상기 인터리빙 된 데이터를 쓴 주소를 WA2이라 하면 (WA2+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 출력하고, 데이터를 읽은 주소를 RA2이라 하면 (RA2+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 출력하는 주소 생성부; 및
    인터리빙시에는 상기 카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 인터리빙 될 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지며, 디인터리빙시에는 상기 카운터부의 출력의 상태에 따라 상기 주소 생성부가 출력한 쓰기 주소에 인터리빙 된 데이터가 써지고 상기 주소 생성부가 출력한 읽기 주소에서 데이터가 읽혀지는 메모리부를 포함하는 것을 특징으로 하는 인터리빙/디인터리빙 장치.
  11. 제 10항에 있어서, 상기 주소 생성부의 WA1, RA1, WA2 및 RA2의 초기 주소값은 0 인 것을 특징으로 하는 인터리빙/디인터리빙 장치.
  12. 통신 시스템에서 전송할 데이타를 인터리빙하는 방법에 있어서,
    기본 클럭과 소정의 배속 클럭을 발생하는 단계;
    상기 소정의 배속으로 변환된 클럭에 대응하는 값을 생성하는 단계;
    지연시키는 시간별로 분리된 데이터의 그룹 개수와 지연된 시간에 따라 인터리빙될 데이터를 쓰기 위한 주소와 써진 데이터를 읽기 위한 주소를 생성하는 단 계; 및
    상기 변환된 클럭에 대응하는 값에 따라 인터리빙할 데이터를 저장하거나 저장된 데이터를 출력하는 단계를 포함하는 것을 특징으로 하는 인터리빙 방법.
  13. 제 12항에 있어서,
    데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수와 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값 i를 출력하는 단계를 더 포함하며,
    상기 변환된 클럭에 대응하는 값을 생성하는 단계는 상기 소정의 배속 클럭이 기본 클럭의 n배일 때에, 입력된 배속 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하며,
    상기 주소를 생성하는 단계는 (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 생성하고, i를 k로 나눈 나머지에 대응하는 값을 읽기 주소로 생성하는 것을 특징으로 하는 인터리빙 방법.
  14. 제 12항에 있어서, 상기 변환된 클럭에 대응하는 값을 생성하는 단계는
    상기 소정의 배속 클럭이 기본 클럭의 n배일 때에, 입력된 배속 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 출력하며,
    상기 주소를 생성하는 단계는
    상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 될 데이터를 쓴 주소를 WA라 하면 (WA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 생성하고, 데이터를 읽는 주소를 RA라 하면 (RA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 생성하며, 상기 WA와 RA의 초기 주소값은 0임을 특징으로 하는 인터리빙 방법.
  15. 통신 시스템에서 인터리빙된 데이터를 디인터리빙하는 방법에 있어서,
    기본 클럭과 소정의 n배속 클럭을 발생하는 단계;
    상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 생성하는 단계;
    데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 기본 클럭을 입력으로 하여 기본 클럭의 개수를 상기 I와 J로 결정되는 값 k로 나눈 나머지에 대응하는 값 i를 출력하는 단계;
    상기 i를 상기 k로 나눈 나머지에 대응하는 값을 쓰기 주소로 생성하고, (i*(I*J)+1)를 상기 k로 나눈 나머지에 대응하는 값을 읽기 주소로 생성하는 단계; 및
    상기 n으로 나눈 나머지에 대응하는 값을 생성하는 단계의 출력의 상태에 따라 상기 주소를 생성하는 단계에서 생성된 쓰기 주소에 상기 인터리빙 된 데이터를 저장하고 상기 주소를 생성하는 단계에서 생성된 읽기 주소에서 데이터를 출력하는 단계를 포함하는 것을 특징으로 하는 디인터리빙 방법.
  16. 통신 시스템에서 인터리빙된 데이터를 디인터리빙하는 방법에 있어서,
    기본 클럭과 소정의 n배속 클럭을 발생하는 단계;
    상기 n배속으로 변환된 클럭을 입력으로 하여 입력된 클럭 개수에 대응하는 값을 n으로 나눈 나머지에 대응하는 값을 생성하는 단계;
    상기 데이터가 I개의 그룹으로 나누어지고, 각 그룹별로 지연되는 시간들이 J의 배수로 표현될 때에, 상기 인터리빙 된 데이터를 쓴 주소를 WA라 하면 (WA+1)을 I*I*J로 나눈 나머지에 대응하는 값을 쓰기 주소로 생성하고, 데이터를 읽은 주소를 RA라 하면 (RA+I*J+1)을 I*I*J로 나눈 나머지에 대응하는 값을 읽는 주소로 생성하는 단계; 및
    상기 n으로 나눈 나머지에 대응하는 값을 생성하는 단계의 출력의 상태에 따라 상기 주소 생성 단계에 생성된 쓰기 주소에 상기 인터리빙 된 데이터를 저장하며, 상기 주소 생성 단계에 생성된 읽기 주소에서 데이터를 출력하는 단계를 포함하며, 상기 WA와 RA의 초기 주소값은 0 인 것을 특징으로 하는 디인터리빙 방법.
KR1019990047748A 1999-10-30 1999-10-30 인터리버빙과 디인터리빙 장치 및 방법 KR100601624B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990047748A KR100601624B1 (ko) 1999-10-30 1999-10-30 인터리버빙과 디인터리빙 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990047748A KR100601624B1 (ko) 1999-10-30 1999-10-30 인터리버빙과 디인터리빙 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20010039380A KR20010039380A (ko) 2001-05-15
KR100601624B1 true KR100601624B1 (ko) 2006-07-14

Family

ID=19617839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990047748A KR100601624B1 (ko) 1999-10-30 1999-10-30 인터리버빙과 디인터리빙 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100601624B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991882A (ja) * 1995-09-28 1997-04-04 Sony Corp データ記録/再生のための方法および装置、並びにデータ記録媒体
KR19980023731A (ko) * 1996-09-30 1998-07-06 배순훈 정적 램을 이용한 길쌈 인터리버/디인터리버 및 정적 램의 주소 생성 방법
KR100330608B1 (ko) * 1998-04-27 2002-03-29 마츠시타 덴끼 산교 가부시키가이샤 콘볼루셔널 인터리빙 장치 및 방법과 콘볼루셔널 디인터리빙 장치 및 방법
KR100427521B1 (ko) * 1994-12-23 2004-07-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 저속메모리를이용한인터리빙

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100427521B1 (ko) * 1994-12-23 2004-07-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 저속메모리를이용한인터리빙
JPH0991882A (ja) * 1995-09-28 1997-04-04 Sony Corp データ記録/再生のための方法および装置、並びにデータ記録媒体
KR19980023731A (ko) * 1996-09-30 1998-07-06 배순훈 정적 램을 이용한 길쌈 인터리버/디인터리버 및 정적 램의 주소 생성 방법
KR100330608B1 (ko) * 1998-04-27 2002-03-29 마츠시타 덴끼 산교 가부시키가이샤 콘볼루셔널 인터리빙 장치 및 방법과 콘볼루셔널 디인터리빙 장치 및 방법

Also Published As

Publication number Publication date
KR20010039380A (ko) 2001-05-15

Similar Documents

Publication Publication Date Title
JP3415693B2 (ja) インターリーブプロセス
EP0681373B1 (en) Convolutional interleaver with reduced memory requirements and address generator therefor
US6553517B1 (en) Interleavers and de-interleavers
US7127004B1 (en) Interleaver and method for interleaving an input data bit sequence using a coded storing of symbol and additional information
JPH10214486A (ja) 重畳インターリーバ及びメモリのアドレス発生方法
KR19980070970A (ko) 디지털 데이타의 인터리브 및 역인터리브 방법, 인터리브 및역인터리브 장치, 및 통신 시스템
JP3553546B2 (ja) 多段階チャネルインターリーバ/デインターリーバに使用するためのアドレス生成装置
GB2329804A (en) Time and frequency interleaving device for a multicarrier system
KR100430567B1 (ko) 주소발생기를 포함한 인터리빙/디인터리빙 수행 장치 및그 방법과 그를 이용한 채널 부호화 시스템
US6192493B1 (en) Data element interleaving/deinterleaving
US7073012B2 (en) System and method for interleaving data in a communications device
JP3796250B2 (ja) デジタル通信システムのデインターリービング装置およびそのデインターリービング方法
WO2009060185A2 (en) Interleaving or de-interleaving a stream of data received in successive frames
KR100601624B1 (ko) 인터리버빙과 디인터리빙 장치 및 방법
JP3549756B2 (ja) ブロックインターリーブ回路
JPH0974361A (ja) 変復調装置
KR19980023731A (ko) 정적 램을 이용한 길쌈 인터리버/디인터리버 및 정적 램의 주소 생성 방법
JP3242750B2 (ja) 信号変換装置および通信システム
JPH11145851A (ja) インタリーブ回路
KR0183171B1 (ko) 인터리버 및 디인터리버와 그 방법
KR100338635B1 (ko) 다단계 채널 인터리버/디인터리버에 사용하기 위한어드레스 생성 장치 및 방법
JPH1013253A (ja) コンボリューショナル・インターリーバ
KR100350683B1 (ko) 데이터 디인터리버 및 어드레스 발생방법
GB2294616A (en) Data interleaving process for radio transmission
KR100525549B1 (ko) 블럭 인터리버의 읽기용 어드레스 계수 장치 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130627

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150629

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee