KR0183171B1 - 인터리버 및 디인터리버와 그 방법 - Google Patents

인터리버 및 디인터리버와 그 방법 Download PDF

Info

Publication number
KR0183171B1
KR0183171B1 KR1019950025472A KR19950025472A KR0183171B1 KR 0183171 B1 KR0183171 B1 KR 0183171B1 KR 1019950025472 A KR1019950025472 A KR 1019950025472A KR 19950025472 A KR19950025472 A KR 19950025472A KR 0183171 B1 KR0183171 B1 KR 0183171B1
Authority
KR
South Korea
Prior art keywords
symbols
shifting
column
interleaver
deinterleaver
Prior art date
Application number
KR1019950025472A
Other languages
English (en)
Other versions
KR970013800A (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 KR1019950025472A priority Critical patent/KR0183171B1/ko
Publication of KR970013800A publication Critical patent/KR970013800A/ko
Application granted granted Critical
Publication of KR0183171B1 publication Critical patent/KR0183171B1/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/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
    • 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
    • H03M13/6505Memory efficient implementations

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
심볼을 매트릭스 형태의 열과 행을 변환하여 인터리빙 또는 디인터리빙하는 인터리버 및 디인터리버와 그 방법에 관한 것이다.
2. 발명이 해결하고자 하는 기술적 과제
시공간적 용장성을 배제하면서도 메모리의 용량을 감소시킬 수 있는 인터리버 및 디인터리버를 제공한다.
3. 발명의 해결방법의 요지
직렬로 입력되는 연속되는 심볼들을 순차적으로 직렬로 쉬프트시키면서, 하나의 처리단위가 되는 매트릭스의 마지막 행의 첫번째 열의 심볼이 상기 쉬프트 단계중 첫번째 쉬프트 단계에 나타낼 때를 기준으로 각 쉬프트 단계의 심볼들을 선택하여 출력한다.
4. 발명의 중요한 용도
매트릭스 형태의 열과 행 변환에 의한 인터리빙 또는 디인터리빙시 시공간적 용장성을 배제하고 메모리 용량을 감소시키는데 이용한다.

Description

인터리버 및 디인터리버와 그 방법
제1도는 종래의 인터리버 및 디인터리버의 회로도.
제2도는 본 발명에 따른 인터리버 및 디인터리버의 회로도.
제3도는 제2도의 각 부분의 동작타이밍도.
본 발명은 인터리버(interleaver) 및 디인터리버(deinterleave)에 관한 것으로, 특히 연속되는 심볼을 매트릭스(matirx)형태의 열과 행을 변환하여 인터리빙 또는 디인터리빙하는 인터리버 및 디인터리버와 그 방법에 관한 것이다.
일반적으로 데이타 전송시스템이나 기록/재생시스템 등에서는 인터리빙 기술이 널리 사용되고 있다. 예를 들어 데이타 전송시스템에서는 전송 채널의 버스트(burst)한 에러(errer) 발생 특성으로 인해 국부적이고 연속적인 데이타 에러가 발생한다. 또한 기록매체를 사용하여 데이타를 기록/재생하는 기록/재생시스템에서도 기록매체의 훼손이나 오염들로 인해 국부적이고 연속적인 데이타 에러가 발생한다. 인터리빙 기술은 이러한 국부적이고 연속적으로 발생되는 에러를 극복하기 위해 사용된다.
이러한 데이타 전송시스템의 하나로서 데이타를 패킷단위로 송수신하는 패킷 통신시스템의 예를 들면, 송신측은 설정된 수의 패킷내의 데이타의 순서를 바꾸어 송신하여 수신측은 수신된 데이타의 순서를 다시 원래대로 복원한다. 이에 따라 버스트 에러가 랜덤(random)에러로 변형됨으로써 에러정정이 용이하게 된다. 이와 같이 데이타의 순서를 바꾸는 것을 인터리빙이라 하며, 인터리빙을 수행하기 위한 장치를 인터리버라 한다. 그리고 인터리빙된 데이타의 순서를 다시 원래대로 복원하는 것을 디인터리빙이라 하며, 디인터리빙을 수행하기 위한 장치를 디인터리버라 한다.
통상적으로 패킷 통신시스템에서 인터리버 및 디인터리버는 하나의 인터리빙 또는 디인터리빙 단위가 되는 패킷들을 이루는 연속된 심볼(symbol)을 저장하는 부분과 저장된 심볼들의 순서를 변형하여 출력하는 부분으로 구성된다.
패킷 통신시스템에 사용되어 왔었던 종래의 인터리버 및 디인터리버의 회로도를 보이면 제1도와 같은데, 이는 인터리버로 사용될 수도 있고 디인터리버로 사용될 수도 있다. 입력데이타 Din는 직렬로 입력되는 심볼들로서 제1레지스터 블럭(register block)(10) 또는 제2레지스터 블럭(12)에 저장된다. 이때 제1, 제2레지스터 블럭(10,12)은 매트릭스(matrix)형태로 배열된 다수의 레지스터들로 구성하며, 각각 적어도 하나 이상의 동일한 수의 패킷을 이루는 심볼들이 매트릭스 형태로 배열된다. 또한 제1, 제2레지스터 블럭(10,12)는 모드신호 MODE에 의해 서로 상대적으로 저장/독출이 이루어진다. 즉 제1레지스터 블럭(10)에 하나의 처리단위가 되는 갯수의 패킷의 심볼들이 저장되는 동안 제2레지스터 블럭(12)에 저장된 심볼들이 독출되어 멀티플렉서(14)에 인가되거나, 제1레지스터 블럭(10)에 저장된 심볼들이 독출되어 멀티플렉서(14)에 인가되는 동안 제2레지스터 블럭(12)에 하나의 처리단위가 되는 갯수의 패킷의 심볼들이 저장된다. 멀티플렉서(14)는 제1, 제2레지스터 블럭(10,12)중 독출상태의 레지스터 블럭으로부터 출력되는 심볼들을 선택하여 출력한다.
상기한 제1도에서 인터리빙 또는 디인터리빙 동작을 살펴보면 다음과 같다. 예를 들어 제1, 제2레지스터 블럭(10,12)에 행단위로 심볼들을 저장한 후 열단위로 독출함으로써 인터리빙 또는 디인터리빙이 이루어진다. 이와달리 제1, 제2레지스터 블럭(10,12)에 열단위로 심볼들을 저장한 후 행단위로 독출하여도 인터리빙 또는 디인터리빙이 이루어진다. 이때 인터리빙과 디인터리빙은 서로 반대의 순서가 된다. 이러한 인터리빙 또는 디인터리빙 구조는 수평/수직 또는 수직/수평 변환구조로서 가장 기본이 되는 인터리빙 또는 디인터리빙 구조이다.
이때 제1, 제2레지스터 블럭(10,12)중 어느 하나에 하나의 처리단위가 되는 갯수의 패킷의 심볼들이 모두 저장이 완료되어야만 인터리빙 또는 디인터리빙이 이루어질 수 있게 된다. 이에 따라 만일 제1, 제2레지스터 블럭(10,12)중 어느 하나만을 사용하여 인터리버 또는 디인터리버를 구성할 경우에는 한번의 저장 및 독출이 이루어질 때까지 다음의 패킷들에 대한 처리를 하지 못하고 대기하여야만 하는 시간적 용장성이 발생한다. 이를 개선하기 위하여 레지스터 블럭을 두개 사용하여 하나가 저장동작을 할 때 나머지 하나가 독출동작을 하도록 한 것이다.
따라서 상기한 바와 같은 종래의 인터리버 및 디인터리버는 인터리빙 또는 디인터리빙에 필요한 메모리 용량이 2배로 커지는 문제점이 있었다. 또한 레지스터 블럭들에 대하여 수평/수직방향으로 저장/독출을 제어하여야 함에 따라 제어가 복잡해지고 공간적 용장성이 발생하는 단점이 있었다.
따라서 본 발명의 목적은 시간적 용장성을 배제하면서도 메모리의 용량을 감소시킬 수 있는 인터리버 및 디인터리버와 그 방법을 제공함에 있다.
본 발명의 다른 목적은 시간적 용장성뿐만 아니라 공간적 용장성을 배제할 수 있는 인터리버 및 디인터리버와 그 방법을 제공함에 있다.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명 및 첨부도면에서 많은 특정 상세들이 본 발명의 보다 전반적인 이해를 제공하기 위해 나타나 있다. 이들 특정 상세들 없이 본 발명이 실시될 수 있다는 것은 이 기술분야에서 통상의 지식을 가진 자에게 자명할 것이다. 그리고 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
제2도는 본 발명에 따른 인터리버 및 디인터리버의 회로도를 도시한 것으로, 하나의 처리단위를 이루는 심볼들이 12개일 경우의 구성예를 보인 것이다. 쉬프트 레지스터(16)는 직렬입력단자 SA에 직렬로 입력되는 연속되는 심볼들을 쉬프트클럭 SCLK에 의해 순차적으로 직렬로 쉬프트시키며 13개의 출력단자들 Q0~Q12을 통해 각 쉬프트 단계들의 비트들 b0~b12을 병렬로 출력한다. 상기 쉬프트 레지스터(16)는 처리단위의 모든 심볼들의 수보다 하나 더 많은 수의 쉬프트 단계를 가진다. 멀티플렉서(18)는 쉬프트 레지스터(16)의 출력 비트들 b0~b12을 대응하는 수의 입력단자들 I0~I12에 입력하며, 그들 중 어드레스 발생기(20)로부터 선택입력단자 SEL에 연속적으로 인가되는 어드레스에 대응하는 비트를 하나씩 순차적으로 선택하여 출력한다. 어드레스 발생기(20)는 쉬프트 레지스터(16)의 쉬프트 단계들에 대응하는 값을 가지는 어드레스들 중 매트릭스의 마지막 행의 첫번째 열의 심볼이 쉬프트 레지스터(16)의 첫번째 비트에 나타낼 때를 첫번째 값으로 하여 심볼들의 행을 열로 변환하기 위한 4비트의 어드레스 ADDR을 멀티플렉서(18)의 선택입력단자 SEL에 인가한다.
제3도는 제2도의 각 부분의 동작타이밍도를 보인 것으로, 연속되는 직렬의 심볼들 중 하나의 처리단위가 되는 12개의 심볼 DA, DB, DC,…, DL만을 나타낸 것이다.
이하 본 발명에 따른 제2도의 동작예를 제3도의 동작타이밍도를 참조하여 상세히 설명한다.
우선 본 발명은 매트릭스 형태의 처리단위의 심볼들의 수평방향과 수직방향의 증가방향을 서로 바꾸어 배열하는 방법에 따라 인터리빙 또는 디인터리빙하는 수평/수직 또는 수직/수평 변환구조에 적용된다.
심볼들을 매트릭스 형태 즉, n×m(n,m은 1이상의 자연수임)으로 표현할 때 연속된 심볼들 D(k)와 수평/수직 변환된 심볼들 DI(k)는 각각 하기 (1), (2)식과 같다.
D(k)=D(i+n×j) ......(1)
DI(k)=D(j+n×i) ......(2)
상기 (1), (2)식에서 i는 0부터 n까지 증가하며, j는 0부터 m까지 증가하는 값이다.
이하에서는 설명의 편의를 위해 인터리빙 또는 디인터리빙할 매트릭스의 열 n을 4로 행 m을 3으로, 즉 4×3으로 한다. 즉, 하나의 처리단위가 되는 연속된 심볼들의 길이는 12로 된다. 그리고 인터리빙 또는 다인터리빙된 매트릭스는 3×4가 된다. 또한 각 심볼들은 실제로는 논리 0 또는 논리 1이 되나 각각의 데이타 순서를 구분하여 표시하기 위해 12개의 심볼들을 DA, DB, DC, …, DL로 나타낸다.
그러면 인터리빙 또는 디인터리빙할 매트릭스 Min은 하기 (3)식과 같이 된다.
또한 인터리빙 또는 디인터리빙된 매트릭스 Mout는 하기 (4)식과 같이 된다.
쉬프트 레지스터(16)는 직렬입력단자 SA에 직렬로 입력되는 제3도와 같은 입력데이타 Din, 즉 연속되는 심볼들 DA, DB, DC, …, DL을 제3도와 같은 쉬프트클럭 SCLK에 의해 순차적으로 직렬로 쉬프트시키며 13개의 출력단자들 Q0~Q12을 통해 각 쉬프트 단계들의 비트들 b0~b12을 제3도와 같이 병렬로 출력한다. 이때 비트들 b0~b12은 멀티플렉서(18)의 입력단자 I0~I12에 대응되게 하나씩 입력된다.
이때 쉬프트 레지스터(16)에 의해 9번째 쉬프트된 상태 S9에서 상기 (3)식의 마지막 행의 첫번째 열의 심볼 DI가 처음으로 첫번째 쉬프트 단계의 비트 b0에 나타난다. 이때 어드레스 발생기(20)의 출력 어드레스 ADDR값이 첫번째 값, 즉 0이어야 한다. 그리고 이 시점을 기준으로 인터리빙 또는 디인터리빙된 심볼 순서 DA, DE, DI, DB, DF, DJ, DC, DG, DK, DD, DH, DL이 되기 위해서는 어드레스 ADDR값의 발생 순서는 제3도와 같이 6, 3, 0, 8, 5, 2, 10, 7, 4, 12, 9, 6이 됨을 알 수 있다.
이에 따라 멀티플렉서(18)로부터 출력되는 출력데이타 Dout의 심볼들은 상기 (4)식과 같이 된다.
상술한 바와 같이 본 발명은 매트릭스 형태의 열과 행 변환에 의한 인터리빙 또는 디인터리빙시 시공간적 용장성을 배제하고 메모리 용량을 감소시킬 수 있는 잇점이 있다.
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 특히 본 발명의 실시예에서는 4×3 매트릭스를 3×4로 변환하는 것을 예시하였으나, 그 반대의 경우에도 마찬가지로 적용될 뿐만 아니라 행과 열의 수를 얼마든지 임의의 값으로 할 수 있다. 다만 이 경우 쉬프트 레지스터의 쉬프트 단계와 멀티플렉서의 선택수와 어드레스 발생기의 어드레스수를 조정하면 된다. 따라서 발명의 범위는 설명된 실시예에 의하여 정할 것이 아니고 특히 청구의 범위와 특허 청구의 범위의 균등한 것에 의해 정하여져야 한다.

Claims (3)

  1. 하나의 처리단위를 이루는 심볼들을 매트릭스 형태의 열과 행 변환에 의해 인터리빙 또는 디인터리빙하는 인터리버 및 디인터리버에 있어서, 상기 처리단위의 모든 심볼들의 수보다 하나 더 많은 수의 쉬프트 단계를 가지며, 직렬로 입력되는 연속되는 상기 심볼들을 순차적으로 직렬로 쉬프트시키며 모든 쉬프트 단계들의 비트들을 병렬로 출력하는 쉬프트 수단과, 상기 쉬프트 수단의 출력 비트들 중 연속적으로 인가되는 어드레스에 대응하는 쉬프트 단계의 비트를 하나씩 순차적으로 선택하여 출력하는 선택 수단과, 상기 쉬프트 단계들에 대응하는 값을 가지는 어드레스들 중 상기 매트릭스의 마지막 행의 첫번째 열의 심볼이 상기 쉬프트 수단의 첫번째 비트에 나타낼 때를 첫번째 값으로 하여 상기 심볼들의 행을 열로 변환하기 위한 어드레스들을 상기 선택 수단에 인가하는 어드레스 발생수단을 구비하는 것을 특징으로 하는 인터리버 및 디인터리버.
  2. 하나의 처리단위를 이루는 심볼들을 매트릭스 형태의 열과 행 변환에 의해 인터리빙 또는 디인터리빙하는 인터리버 및 디인터리버에 있어서, 상기 처리단위의 모든 심볼들의 수보다 하나 더 많은 수의 쉬프트 단계를 가지며, 직렬로 입력되어 연속되는 상기 심볼들을 순차적으로 직렬로 쉬프트시키며 모든 쉬프트 단계들의 비트들을 병렬로 출력하는 쉬프트 수단과, 상기 쉬프트 수단의 출력 비트들 중 연속적으로 인가되는 어드레스에 대응하는 쉬프트 단계의 비트를 하나씩 순차적으로 선택하여 출력하는 선택 수단과, 상기 쉬프트 단계들에 대응하는 값을 가지는 어드레스들 중 상기 매트릭스의 마지막 열의 첫번째 행의 심볼이 상기 쉬프트 수단의 첫번째 비트에 나타낼 때를 첫번째 값으로 하여 상기 심볼들의 열을 행으로 변환하기 위한 어드레스들을 상기 선택 수단에 인가하는 어드레스 발생 수단을 구비하는 것을 특징으로 하는 인터리버 및 디인터리버.
  3. 하나의 처리단위를 이루는 심볼들을 매트릭스 형태의 열과 행 변환에 의해 인터리빙 또는 디인터리빙하는 방법에 있어서, 직렬로 입력되는 심볼들을 순차적으로 직렬로 쉬프트시키는 과정과, 상기 매트릭스의 마지막 행의 첫번째 열의 심볼이 상기 쉬프트 단계 중 첫번째 쉬프트 단계에 나타낼 때를 기준으로 상기 각 쉬프트 단계의 심볼들을 선택하여 출력하는 과정으로 이루어지는 것을 특징으로 하는 방법.
KR1019950025472A 1995-08-18 1995-08-18 인터리버 및 디인터리버와 그 방법 KR0183171B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950025472A KR0183171B1 (ko) 1995-08-18 1995-08-18 인터리버 및 디인터리버와 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950025472A KR0183171B1 (ko) 1995-08-18 1995-08-18 인터리버 및 디인터리버와 그 방법

Publications (2)

Publication Number Publication Date
KR970013800A KR970013800A (ko) 1997-03-29
KR0183171B1 true KR0183171B1 (ko) 1999-04-15

Family

ID=19423756

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950025472A KR0183171B1 (ko) 1995-08-18 1995-08-18 인터리버 및 디인터리버와 그 방법

Country Status (1)

Country Link
KR (1) KR0183171B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304991B1 (en) * 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
KR100438427B1 (ko) * 2001-12-04 2004-07-03 삼성전자주식회사 디인터리빙 장치 및 방법

Also Published As

Publication number Publication date
KR970013800A (ko) 1997-03-29

Similar Documents

Publication Publication Date Title
EP0681373B1 (en) Convolutional interleaver with reduced memory requirements and address generator therefor
US6035427A (en) Convolutional interleaver and method for generating memory address therefor
EP1125366B1 (en) Generalized convolutional interleaver/deinterleaver
EP1317069B1 (en) Convolutional interleaving method
CN1350369A (zh) 存储装置、访问存储装置的方法和里德索罗门解码器
JP3239084B2 (ja) マルチキャリア伝送インターリーブ装置及び方法
US7073012B2 (en) System and method for interleaving data in a communications device
KR0183171B1 (ko) 인터리버 및 디인터리버와 그 방법
KR100499467B1 (ko) 블록 인터리빙 방법 및 그를 위한 장치
US6476738B1 (en) Block interleave circuit
KR100215566B1 (ko) 정적 램을 이용한 길쌈 인터리버/디인터리버 및정적 램의 주소 생성 방법
EP0674395A2 (en) Error correction code encoding device and error correction code encoding method
US6714606B1 (en) Integrated services digital broadcasting deinterleaver architecture
KR19990003706A (ko) 듀얼 포트 메모리를 이용한 길쌈 인터리버 / 디인터리버
KR100556469B1 (ko) 인터리브/디인터리브 장치
JP2827978B2 (ja) インターリーブ装置
US5999566A (en) Method and apparatus for providing error-tolerant communication of information
JPH10163887A (ja) インターリーブ装置およびデインターリーブ装置
KR100215565B1 (ko) 정적 램을 이용한 길쌈 인터리버/디인터리버 및정적 램의 주소 생성 방법
KR100218153B1 (ko) 데이터 통신의 블록 인터리브/디인터리브 방법
KR100443003B1 (ko) 오류정정을 위한 순차형 블록 인터리버 장치
KR100733767B1 (ko) 시간 디인터리빙 장치 및 방법
JPH10308676A (ja) インターリーブ装置およびデインターリーブ装置
JPH02143714A (ja) インターリーブ回路
JPH02135924A (ja) インターリーブ回路

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

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee