KR100346170B1 - 통신시스템의인터리빙/디인터리빙장치및방법 - Google Patents

통신시스템의인터리빙/디인터리빙장치및방법 Download PDF

Info

Publication number
KR100346170B1
KR100346170B1 KR1019980057959A KR19980057959A KR100346170B1 KR 100346170 B1 KR100346170 B1 KR 100346170B1 KR 1019980057959 A KR1019980057959 A KR 1019980057959A KR 19980057959 A KR19980057959 A KR 19980057959A KR 100346170 B1 KR100346170 B1 KR 100346170B1
Authority
KR
South Korea
Prior art keywords
address
random
size
input data
pseudorandom
Prior art date
Application number
KR1019980057959A
Other languages
English (en)
Other versions
KR20000041934A (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
Priority to KR1019980057959A priority Critical patent/KR100346170B1/ko
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to AU16956/00A priority patent/AU738762B2/en
Priority to JP2000590308A priority patent/JP3961770B2/ja
Priority to CNB031566669A priority patent/CN100345390C/zh
Priority to RU2000121962A priority patent/RU2217864C2/ru
Priority to BR9907844A priority patent/BR9907844B1/pt
Priority to CN99803175A priority patent/CN1121095C/zh
Priority to PCT/KR1999/000795 priority patent/WO2000038333A1/en
Priority to EP99960006.7A priority patent/EP1060564B1/en
Priority to CA 2319726 priority patent/CA2319726C/en
Priority to US09/468,568 priority patent/US6668343B1/en
Publication of KR20000041934A publication Critical patent/KR20000041934A/ko
Application granted granted Critical
Publication of KR100346170B1 publication Critical patent/KR100346170B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • 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
    • 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/276Interleaving address generation
    • H03M13/2764Circuits therefore
    • 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/2771Internal interleaver for turbo 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/2782Interleaver implementations, which reduce the amount of required interleaving memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명에 따른, 2m(m>1)의 정수 배가 아닌 크기를 가지는 입력데이터를 인터리빙하는 방법이, 상기 입력데이터를 메모리에 순차적으로 저장하는 과정과, 상기 입력데이터 크기에 오프셋 값을 더하여 가상 어드레스 크기가 2m의 정수배로 제공하는 과정과, 각각 2m의 크기를 가지는 상기 정수개의 어드레스 생성영역들을 가지고 상기 어드레스 생성영역들에서 랜덤 어드레스를 발생하는 과정과, 상기 어드레스 생성영역들로부터 발생된 상기 랜덤 어드레스들을 가지고 상기 메모리로부터상기 입력데이터를 독출하는 과정을 포함한다.

Description

통신시스템의 인터리빙/디인터리빙 장치 및 방법
본 발명은 인터리빙/디인터리빙 장치 및 방법에 관한 것으로, 특히 무선통신시스템(위성시스템, ISDN, Digital cellular, W-CDMA, IMT-2000, W-ATM)에서 사용되는 터보코더를 위한 인터리빙/디인터리빙 장치 및 방법에 관한 것이다.
상기 터보코더(TURBO code encoder)에서 인터리빙은 인코더에 입력되는 정보어를 랜덤화(randomization)하고, 코드워드(Code word)의 디스턴스 성질(distance property)를 개선하고자 사용된다. 특히, 최근에 매우 많은 관심을 모으고 있는 IMT-2000(CDMA2000)의 에어 인터페이스(Air interface)에서 데이터 전송 채널로서 사용되는 부가채널(Supplemental channel)과 ETSI(European Telecommunlication Standards Institute)에서 추진 중인 UMTS(Universal Mobile Telecommunication System)의 데이터 채널에서 터보코더가 사용될 것이 유력시 되고 있으며, 이를 위한 인터리버의 구체적 구현방식이 절실히 요구되고 있다. 또한 이 분야는 디지털 통신 시스템의 신뢰도 향상에 광범위하게 관련된 오류정정부호와 연관된 분야로서 기존의 디지털 통신시스템의 성능개선 분야와 향후 결정되는 차세대 통신시스템의성능을 개선시키는 방식에 관한 기술분야기도 하다.
상기 터보코더(Turbo encoder)는 L 정보 비트의 프레임(frame)으로 이루어진 입력을 두 개의 간단한 병렬 쇄상 부호를 이용하여 패리티 심볼(parity symbo1)을 만드는 시스템으로서 구성 부호(component code)로는 RSC(Recursive Systematic Convolutional) 부호를 이용한다.
도 9는 일반적인 터보 부호기 구조를 도시한 도면으로, 터보부호에 대한 특허로 1995년 8윌 29일 등록된 미합중국 특허(Patent Number: 5,446,747)에 자세히 개시되어 있다.
상기 도 9와 같은 구성을 갖는 터보코더는 입력 프레임 데이터를 부호화 하지 않고 출력하고, 상기 입력프레임을 부호화하여 출력하는 제1구성 부호기11와, 상기 입력 프레임 데이터를 인터리빙하여 제2구성 부호기 13로 출력하는 인터리버(interleaver) 12 및, 상기 인터리버의 출력을 입력하여 부호화하는 제2구성 부호기13으로 구성된다. 상기 제1, 제2구성 부호기 12 및 13은 이미 이 기술 분야에서 잘 알려진 RSC(Recursive Systematic Convolutional)부호기를 사용할 수 있다. 그리고 상기 인터리버 13은 입력되는 정보 비트의 프레임 길이와 동일한 크기를 가지며, 상기 제2구성 부호기 13에 입력되는 정보 비트 순서를 바꿈으로써 정보 비트들 사이의 상관(correlation)을 줄여주게 된다.
종래에는 상기 터보코더의 내부 인터리버(internal interleaver) 13로서, PN 랜덤 인터리버(random interleaver), 랜덤 인터리버, 블록 인터리버(Block interleaver), 비선형 인터리버(Non linear interleaver), S-Random interleaver등 다양한 방식이 제안되어 있다. 그러나 이러한 인터리버들은 아직까지 구현의 관점보다는 학문적인 연구분야로서 성능개선에 주안점을 두고 설계된 알고리즘들로 볼수 있다. 따라서 실제 시스템의 구현을 고려할 때 하드웨어 구현 복잡도라는 측면에서 재고가 필요한 방식들이다. 이하 종래 터보코더 인터리버에 대한 기술과 성질 그리고 문제점들에 대해 설명한다.
터보코더는 기본적으로 내부 인터리버의 역할에 의해서 성능이 좌우된다. 일반적으로 주어진 설계 스팩(design specification)하에서 최적의 성능을 보장하는 인터리버의 설계는 인터리버 크기(size)의 증가에 따라 요구되는 계산량이 기하급수적으로 증가하기 때문에 실제 구현이 불가능하다. 따라서 실제 구현을 위한 방법은 일반적으로 몇 가지 기준을 마련하고 그 기준을 최대한 만족시키는 방식을 실험적으로 구한다. 이러한 기준들이 되는 특성들은 하기와 같다.
거리 성질(Distance Properity) : 인접한 코드워드 심볼들간의 거리를 어느정도 이상 유지해야 한다. 이것은 길쌈부호(Convolutional code)의 코드워드 디스턴스 거리 성질과 동일한 역할을 하므로 동일한 조건에서 가급적 크도록 설계하는것이 바람직하다.
가중치 성질(Weight Properity): 제로가 아닌 정보어(Non-zero information word)에 대응되는 코드워드의 가중치가 어느정도 이상 되어야 한다. 이것은 길쌈부호의 최소거리(minimum distance) 성질과 동일한 역할을 하므로 동일한 조건에서 크도록 설계하는 것이 바람직하다.
랜덤 성질(Random Properity) : 인터리빙 이전의 원래 입력 워드심볼(original input word symbol)들간의 상관 계수(correlation factor)에 비하여 인터리빙 이후의 출력 워드 심볼들간의 상관 계수가 매우 낮아야 한다. 즉, 출력 워드 심볼들간에 랜덤화가 충실히 이루어져야 한다. 이는 연속 디코딩에서 발생되는 외부정보 성질(Extrinction information quality)에 직접적인 영향을 주는 요인이다.
상술한 세가지 설계 기준은 일반적으로 생각되는 터보 인터리버의 역할이지만, 이러한 성질들이 명확하게 분석되지는 않는다. 실험결과에 의하면 일반적으로, 렌덤 인터리버가 블록인터리버보다 성능이 우수하다. 그러나 랜덤 인터리버를 설계할 때 발생되는 문제점의 하나는 프레임 크기가 다양하고 커질수록 인터리버의 인덱스(mapping rule, 또는 address)를 저장하기 위한 메모리의 크기가 너무 커진다는 것이다. 즉, 어드레싱을 위한 메모리 공간이 매우 증가하게 된다. 결국, 하드웨어의 크기를 고려한다면, 인터리버의 인덱스를 저장하는 룩업 테이블(Look-Up Table)방식보다는 인덱스를 발생시키는 규칙(rule)을 사용하여 매 심볼 클럭마다 어드레스를 발생시키고, 해당되는 어드레스에 저장된 데이터를 읽어내는 셈(enumeration)방식이 바람직하다.
상기한 내용들을 종합해 볼 때, IMT-2000용이나 UTMS(Universal Telecommunication Mobi1e System)와 같이 다양한 인터리버의 크기가 요구되고 하드웨어 구현의 복잡성이 제한받는 경우에서 터보 인터리버를 구현하기 위해서는 이러한 제한적 여건들을 고려한 상태에서 최적의 인터리버 성능이 보장되도록 설계되어야 한다. 즉, 어드레스를 발생시키는 규칙을 고안하여 이를 바탕으로 인터리빙/디인터리빙이 이루어지도록 하여야 한다. 물론, 앞서 언급한 터보 내부 인터리버의 성질이 충실히 반영되도록 설계되어야 한다.
IMT-2000 스팩(specification) 또는 UMTS 스팩에서는 터보 인터리버로 아직 아무런 방식도 구체적으로 정의하고 있지 않다. IMT-2000 스팩에 주어진 순방향 링크(forward link)와 역방향 링크(reverse link)의 경우 논리채널(1ogical channel)의 종류가 매우 다양하며, 인터리버 크기 또한 여러 종류로 구성되어 이를 충실히 반영하기 위해서는 많은 양의 메모리가 요구된다. 예로서, 순방향 링크 N=3인 전송모드의 경우 최소 144bits/frame부터 최대 36864bits/frame까지 매우 다양한 크기의 인터리버가 사용된다.
상술한 바와 같이 종래기술의 문제점은 다음과 같이 요약된다.
첫째, 기존의 터보코드를 위한 내부 인터리버로서 PN 랜덤 인터리버, 랜덤 인터리버, 블록 인터리버, 비선형 인터리버, S-R 랜덤 인터리버 등 다양한 방식이제안되어 있다. 그러나 이러한 인터리버들은 아직까지 구현의 관점보다는 학문적인연구분야로서 성능개선에 주안점을 둔 방식이라 할수 있다. 따라서 실제 시스템의 구현할 때 상기한 인터리버의 조건과 더불어 하드웨어 구현 복잡도를 반드시 고려해야 하는데 이 부분이 구체적으로 제시되지 있지 않다.
둘째, 기존의 인터리빙 방식의 대부분이 룩업 테이블 방식으로 각각의 인터리버 크기에 따른 인터리빙 규칙을 송수신기의 제어부(CPU, HOST)가 저장해 두어야하므로 인터리버 버퍼 이외에 별도의 저장공간이 호스트 메모리 쪽에 필요하다. 즉, 설계 상의 문제점 중 하나는 프레임 사이즈가 다양하고 커질수록 인터리버의인덱스(매핑 규칙 또는 어드레스)를 저장하기 위한 메모리의 크기가 너무 커진다는 것이다. 즉, 어드레싱을 위한 메모리 공간이 매우 증가하는 문제점이 있다.
셋째, 거리 성질과 랜덤 성질을 동시에 만족하는 인터리버의 구현이 쉽지 않았다.
넷째, cdma2000 순방향 링크의 터보코더를 위한 구체적인 터보 인터리버 실계 스팩이 제시되지 않았다.
따라서 본 발명의 목적은 상기 종래기술의 문제점들을 해결할수 있는 인터리버를 구현할수 있는 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 통신시스템에서 터보코더의 특성인 거리특성, 가중치 특성, 랜덤특성을 동시에 만족하는 인터리빙/디인터리빙 장치 및 방법을 제공함에있다.
본 발명의 또 다른 목적은 통신시스템에서 입력 데이터에 특정값을 더하여 2m×N(정수) 크기를 가지는 가상 어드레스 영역을 가지고 인터리빙을 수행하는 장치 및 방법을 제공함에 있다.
상기 목적들을 달성하기 위한, 2m(m>1)의 정수 배가 아닌 크기를 가지는 입력데이터를 인터리빙하는 방법이, 상기 입력데이터를 메모리에 순차적으로 저장하는 과정과, 상기 입럭데이터 크기에 오프셋 값을 더하여 가상 어드레스 크기가 2m의정수배로 제공하는 과정과, 각각 2m의 크기를 가지는 상기 정수개의 어드레스 생성영역들을 가지고 상기 어드레스 생성영역들에서 랜덤 어드레스를 발생하는 과정과, 상기 어드레스 생성영역들로부터 발생된 상기 랜덤 어드레스들을 가지고 상기 메모리로부터 상기 입력데이터를 독출하는 과정을 포함하는 것을 특징으로 한다.
도 1은 본 발명에 따른 통신시스템의 인터리빙 장치의 블록 구성을 도시한 도면.
도 2는 본 발명에 따른 통신시스템의 디인터리빙 장치의 블록 구성을 도시한 도면.
도 3은 본 발명에 따른, 입력 데이터의 크기에 오프셋값을 더한 가상 어드레스 영역을 가지고 인터리빙할 경우, 상기 오프셋값에 해당하는 무효심볼들이 인터리빙되어 인터리빙된 심볼 사이 사이에 존재하는 모습을 보여주는 도면.
도 4는 상기 도 3에서 무효심볼들을 제거하여 출력 심볼들을 연접시킨 모습을 도시하는 도면.
도 5는 생성다항식이 (1+x+x6)인 의사랜덤 생성기(PN generator)를 도시한 도면.
도 6은 본 발명의 실시 따른 인터리빙 독출 어드레스를 생성하는 장치를 도시하는 도면.
도 7a는 상기 도 6의 구성중 랜덤어드레스 생성기의 상세 구성을 도시한 도면.
도 7b는 상기 도 7a의 구성중 카운터(716)의 다른 예를 도시하는 도면.
도 8은 본 발명의 실시예에 따른 인터리빙 독출 어드레스 생성과정을 흐름도로 도시한 도면.
도 9는 일반적인 터보코더의 블록구성을 보여주는 도면.
이하 본 발명의 바람직한 실시예를 첨부된 도면의 참조와 함께 상세히 설명한다.
본 발명은 상술한 터보코더 인터리버 성질(거리성질, 가중치 성질, 랜덤성질 등)을 만족할수 있는 최적의 인터리빙/디인터리빙 장치를 제안한다.
이를 위해 본 발명에서 제안하는 터보코더 인터리버의 어드레스 발생기는 입력 프레임 데이터의 크기가 2m(m>1)의 정수 배가 아니면, 상기 프레임 크기를 2진수로 변환하여 그 최하위 비트로부터 최소한 연속되는 0 개수가 1∼64개중 1개가 되도록 임의의 값(이하 오프셋값이라 칭함)을 더해 가상의 어드레스 크기 N을 구한다. 그리고 이렇게 구해진 상기 가상의 어드레스 크기 N을 영역수(Ng)×2m으로 표현되도록 하는 영역수Ng와 m을 구한다. 여기서 상기 영역수Ng와 m은 상기한 인터리버 성질들을 최적으로 만족할수 있도록 실험적으로 구한다. 그 다음 2m크기의 부분 어드레스 생성영역별로 의사랜덤 어드레스를 발생하여 전체 입력프레임 데이터를 인터리빙한다. 예들들어, 프레임 크기가 376(101111000)이라 할 때, 최하위비트부터0의 개수가 가장 많이 나오도록 더해질수 있는 상기 오프셋값은 8(1000)이 된다.
여기서 상기 추가된 오프셋값에 의해 불필요한 독출 어드레스들이 발생하는데, 이때의 어드레스들을 상대전파지연차라 칭한다. 만일, 2거듭제곱으로 표현되도록 상기 입력 데이터의 크기에 오프셋값을 추가한다면 상기 입력 프레임이 커지면오프셋값이 매우 커지므로 상대전파지연차의 처리가 복잡해진다. 또한 상기 영역수가 매우 커진다면 랜덤성질이 나빠질수 있다.
본 발명은 기본적으로 입력 정보 비트의 순서를 의사랜덤 오프셋제어방식으로 치환(permutation))하여 제2구성부호기의 입력으로 제공한다. 따라서 본 발명에따른 인터리버 구조는, 입력 정보 비트를 저장하는 인터리버 메모리(Input data buffer/Output data buffer)와, 입력 정보 데이터의 순서를 최적으로 바꾸기 위한 오프셋 제어 의사랜덤 인터리빙 블록(Partial Reversal Interleaver + Comparator)과, 부수적인 업/다운 카운터(Up-Down counter) 등이 필요하다. 또한 본 발명에서 예시하는 터보코드의 제1, 제2구성부호기는 상기 종래기술의 구성부호기로 구성될수 있을 뿐만아니라 TIA에서 표준화하고 있는 CDMA2000에서 제시하는 구성부호기 및 ETSI에서 표준화 하고 있는 UMTS에서 제시하는 구성부호기를 사용할수 있는 등 특정구성부호기에 의하여 한정되지 않는다. 또한 본 발명의 인터리버는 직렬 터보 코드의 내부 인터리버뿐만 아니라 채널인터리버 등에도 활용 가능하다.
본 발명에서 사용하는 용어들을 정의하면, '영역'은 인터리빙 어드레스 영역을 균등 분할하였을 때 각각의 어드레스 생성영역을 의미하며, '그룹'은 상기 오프셋값에 의해 그룹핑되는 어드레스 영역을 의미한다.
도 1 및 도 2는 본 발명에 따른 인터리버 및 디인터리버의 블록 구성을 보여준다.
상기 도 1를 참조하여 제1구성부호기에서 출력되는 프레임 데이터를 인터리빙하기 위한 인터리버의 구성을 살펴보면, 어드레스 생성부(111)는 입력 프레임 데이터 크기 L 및 입력 클럭(clock)에 따라 데이타의 순서를 바꾸기 위한 독출 어드레스를 생성하여 인터리버 메모리(112)로 출력한다. 상기 인터리버 메모리(112)는 쓰기모드시 입력데이타를 순서대로 저장하고, 독출모드시 상기 어드레스 생성부(111)에서 제공되는 어드레스에 따라 데이터를 출력한다. 카운터(113)는 클럭(Clock)을 입력하며, 상기 인터리버 메모리(112)의 쓰기 어드레스(Write address)으로 출력한다. 상기한 바와 같이 상기 인터리버는 쓰기모드시 입력데이타를 인터리버 메모리(112)에 순서대로 저장하고, 독출모드시 상기 어드레스 생성부(111)에서 발생된 독출 어드레스에 따라 상기 인터리버 메모리(112)에 저장되어 있는 데이터를 출력한다. 다른 예로, 쓰기 모드시 미리 데이터의 순서를 바꿔 인터리버 메모리에 저장하고, 독출모드시 순서대로 데이터를 읽어 제2구성부호기로 출력할 수도 있다.
상기 도 2를 참조하여 디인터리버의 구성을 살펴보면, 어드레스 생성부(211)는 입력 프레이 데이터 크기 L, 및 입력클럭에 의하여 데이터의 순서를 원래로 복원하기 위한 쓰기 어드레스를 생성하여 디인터리버 메모리(212)에 제공한다. 상기 디인터리버 메모리(212)는 쓰기모드시 상기 어드레스 생성부(211)에서 제공되는 쓰기 어드레스(write ADDR)에 따라 입력데이타를 저장하고, 독출모드시 저장 데이터를 순서대로 출력한다. 카운터(213)는 클럭(C1ock)을 입력하며, 상기 디인터리버 메모리(212)에서 데이터를 독출하기 위한 독출 어드레스(Read ADDR)를 상기 메모리(212)로 제공한다.
상술한 바와 같이, 상기 디인터리버는 인터리버의 역과정으로 구조상 모든 부분이 완전히 동일하며, 단지 독출/쓰기 모드에서 입력되는 데이터의 순서가 다를뿐이다. 따라서 이하 설명은 인터리버를 위주로 설명할 것이다.
일반적으로, 좋은 구조적 특성을 가진 인터리버를 구현하기 위해서는 수많은 시뮬레이션(simulation)에 의한 결론을 도출하는 것이 바람직하다. 일반적으로 일정한 프레임 크기 이상이면, 랜덤 인터리버의 성능은 평균적 성능을 보인다. 따라서, 랜덤 인터리버와 비슷한 성능을 지닌 인터리버를 설계하는 것이 바람직하다. 이를 위해 본 발명에서는 PN 시퀀스를 생성하는 선형 피드백 쉬프트 레지스터(LFSR;Linear Feedback Shift Register)를 이용하며, 이로부터 생성되는 랜덤 어드레스를 사용한다. 그러나, 이와 같은 방식을 사용하고자 할 경우 다음과 같은 문제점을 고려해야 한다.
첫째, PN시퀀스는 주기가 2m-1이다.
둘째, 대분분의 프레임 크기는 Z의 거듭제곱으로 표현되지 않는다.
상기한 두가지 문제를 해결하기 위해, 입력 데이터 L의 크기가 2m(m>1)의 정수배가 아닌 경우, 상기 입력 데이터의 크기 N에 상기 오프셋값(OSV)를 더하여 가상의 어드레스 크기N을 구하고, 하기[상기] 수학식 1과 같은 알고리즘에 의해 독출어드레스(ADDRESS_READ}를 생성한다.
본 발명에 따른 실시 예에 따른 인터리빙 방식을 소프웨어적으로 설명하면 다음과 같다.
우선, 입력 데이터 L의 크기가 2m(m>1)의 정수배가 아닌 경우, 상기 입력 데이터의 크기 N에 상기 오프셋값(OSV)를 더하여 가상의 어드레스 크기N을 구하고, 하기 수학식 1과 같이 주어진 오프셋제어 PN 인터리빙 알고리즘1(Offset Controlled PN Interleaving algorithm)에 의해 인터리빙을 수행한다.
[수학식 1]
}
}
상기 수학식 1과 같은 알고리즘을 통해 생성된 ADDRESS_READ는 원래의 어드레스와 1대 1 매핑(mapping)되며, 이러한 인터리버는 PN 터리버의 특성에다 거리특성을 함께 가진다. 또한 상기 수학식 1에서 OFFSET(I)는 상기 오프셋값에 의해 결정되는 기준값들로부터 상기 ADDRESS_READ가 어느 그룹에 속하는지를 파악하여 해당되는 특정값만큼 어드레스를 쉬프트시키는 기능을 하는 함수이다.
만일, 상기 특정값만큼 어드레스를 쉬프트시키지 않고 인터리버 메모리의 해당번지를 어드레싱하여 "DATA READ"하는 경우 오프셋값에 의한 무효한 데이터가 읽혀지게 된다. 즉, [O..L-1]의 입력데이타들에 해당되는 ADDRESS-READ 이외에 오프셋[L..N-1]에 해당되는 8개의 ADDRESS_READ가 인터리빙 시퀀스 사이 사이에 존재하게 된다. 이에 대한 설명이 도 3에 도시되어 있다. 이것을 그대로 읽을 경우, 실제 전송해야 할 L심볼보다 8개 많은 N개의 심볼들이 전송되므로 사이에 존재하는 어드레스를 빼고 후속하는 어드레스를 연접시켜야 한다. 이에 대한 설명은 도 4에 도시되어 있다. 상기 도 4에 도시된 바와 같이, L에서 N-1까지의 무효심볼들이 인터리빙후 사이 사이에 존재하게 된다. 따라서 이러한 무효심볼들을 부분을 제외하고 차례로 인터리빙된 심볼들을 출력해야 한다. 이를 위한 방법으로 오프셋 제어방식을 사용한다. 즉, [L..N-1]에서 최종 8 심볼에 해당되는 ADDRESS-READ는 항상 인터리빙 규칙에 의하여 일정하게 결정된다. 따라서 인터리빙된 무효심볼들의 위치를 미리 알수 있다. 우선, 테일(tai1) 8심볼들의 어드레스를 D1, D2, D3,...,D8(즉, L..N-1)이라 하자. 그리고 각각의 Di(i=1..8)에 해당되는 인터리빙 어드레스를 Tk=PIRB(Di), k=1..8,라 하자. 물론 D1<D2라 해서 반드시 T1<T2는 아니며 임의의순서에 의해 배치된다. 따라서, 편의상 T1<T2<..<T8의 순서로 배치되도록 조정한 인덱스를 j라 하고, 이를 사용한 어드레스를 Tj(j=1..8)로 정의한다. 그러면 상기 어드레스를 기준으로 N개의 인터리버 공간은 8개의 그룹으로 분할되며, 각각의 Ti가 그 경계를 구분하는 기준값들(Threshold)이 된다. 여기서 상기 기준값들을 제외시키고 어드레스들을 연접시켜야 한다. 예를들어,, GO의 경우에는 ADDRESS_READ-O, G1의 경우에는 ADDERSS-READ-1,..., G7의 경우에는 ADDRESS_READ-7을 해주면 발생되는 모든 어드레스는 [0..L-1] 사이의 값을 가지게 된다.
또한, 상기 수학식 1과 같은 알고리즘을 적용하기 위해서는 여러 가지 파라미터들이 미리 결정되어야 한다. 이하 설명되는 파라미터들은 실험적으로 결정된 파라미터들이다. 이러한 파라미터들은 상기 의사랜덤 시퀀스를 새성하는 의사랜덤생성기(PN generator)의 초기값(initial seed)들에 의해 바뀌지만 인터리버의 성능에는 거의 무관하기 때문에, 먼저 초기값은 임의로 고정시킨다. 하기 <표 1> 및 <표 2>에서 p(x)는 GF(2) 상에서 구한 의사랜덤 생성기의 원시 다항식(primitive polynomial)으로서 가장 왼쪽의 비트가 p(x)의 0차항의 계수를 나타내며, 가장 오른쪽 비트가 최고차 항의 계수를 나타낸다. 즉, p(x)=[110000]은 p(x)=1 + x + x6을 나타낸다. 예를들어, 상기 생성다항식 p(x)=1 + x + x6에 해당하는 의사랜덤 생성기는 도 5와 같이 도시된다.
일반적으로, 초기화 과정에서 m개의 쉬프트 레지스터 셀(shift register cell)에 각각의 영역에 해당하는 초기값들이 로딩(loading)된다. 이후, 매 클럭이진행될 때마다 레지스터의 값들은 연결된 라인에 의해 업데이트(update)되며, 상기 업데이트후 레지스터에 저장된 값(0/I)의 조합에 의해 6비트 어드레스가 발생한다. 즉, 최저차 항 셀의 내용을 p[I]라 하고 최고차 항의 내용을 p[m]이라 할 때 PNg(ADDRESS_WRITE)는 초기 시간(inital time)에서 ADDRESS_WRITE만큼 클럭킹(clocking) 되었을때 쉬프트 레지스터의 값(이진(binary)로 표시한 (p[1]p[2]...p[m-1]p[m]))을 십진수(Decimal)로 바꾼 어드레스(=p[1]2m-1+...+p[m]20)이다. 또한 상기 의사랜덤 발생기에서 생성되는 어드레스는 2m-1의 주기를 가지고 발생된다. 또한, 초기값들이 O이 아니므로 실질적으로 발생되는 모든 어드레스는 {1≤k≤2m-1} 범위 내의 값을 가진다. 따라서 상기 수학식 1에서 [PNg(ADDRESS_WRITE)-1]은 {0≤k≤2m-2} 범위 내의 값을 가진다. 이 경우 필요한 어드레스 수 2m보다 의사랜덤 생성기에 의해 발생되는 어드레스의 수가 2m-1로 하나적으므로 매 영역의 마지막 어드레스는 그대로 오버라이트((Overwrite)하여 그대로 독출 어드레스(ADDRESS_READ)로 사용한다. 이에 해당하는 내용은 상기한 수학식 1에서 ADDRESS_WRITE=ADDRESS_WRITE+g*2m-OFFSET(ADDRESS_WRITE)로 표현된다.
상기 수학식 1과 같은 알고리즘을 하드웨어적으로 구현한 예를 설명하면 다음과 같다.
도 6은 본 발명에 실시예에 따른, 상기 인터리버 메모리112에 순차적으로 저장된 데이터를 인터리빙하여 독출하기 위한 어드레스 생성부의 구체적인 상세구성을 도시하고 있다.
상기 도 6을 참조하여 어드레스생성부(111)를 살펴보면, 랜덤어드레스 생성부121은 복수개의 의사랜덤 발생기(PN generator)들에 의해 랜덤 어드레스들을 생성하여 출력한다. 비교부122는 상기 랜덤어드레스 생성부121에서 출력하는 랜덤 어드레스를 상기 오프셋값에 의해 미리 결정되는 상기 기준값들(GTH;어드레스 영역을 그룹핑하는 그룹 기준값들)과 비교하여 어느 그룹에 속하는지 판단하여 그룹값 선택신호와 상기 랜덤 어드레스를 출력한다. 또한, 상기 비교부122는 상기 랜덤 어드레스생성기(121)에서 출력되는 랜덤 어드레스를 상기 오프셋값에 의한 그룹 기준값들(GTH)과 비교하여 어느 하나라도 일치할 경우 그때의 랜덤 어드레스는 삭제(deletion)시켜 출력하지 않는다. 선택기[부]123은 상기 선택신호에 따라 해당 그룹값을 선택하여 출력한다. 감산기124는 상기 비교부(122)에서 출력되는 랜덤 어드레스에서 상기 선택부123에서 출력되는 특정 그룹값을 감하여 메모리(112)에서 데이터를 독출하기 위한 독출 어드레스를 생성한다.
상기 도 6의 구성중 상기 랜덤어드레스 생성부121의 상세구성을 도 7a에서 도시하고 있다.
상기 도 7a를 참조하면, 의사랜덤 생성기들(PN generator)711-7N1은 각각 대응되는 어드레스 생성영역에 저장된 데이터의 순서를 바꾸기 위한 의사랜덤 시퀀스 생성하여 제1멀티플렉서(712)로 출력한다. 여기서 각각의 의사랜덤 생성기는 서로 다른 상태값들로 초기화한다. 카운터716은 상기 제1멀티플렉서(712)의 출력을 선택하기 위한 선택신호를 출력한다. 만일, 어드레스 영역 수가 Ng개라고 가정하면, O..Ng-1의 선택신호를 출력한다. 여기서 상기 선택신호는 순차적 또는 랜덤하게 발생할수 있다. 상기 랜덤하게 발생하는 경우에는 실험적으로 구해진 어떠한 패턴에 의해 상기 선택신호를 랜덤하게 발생한다. 상기 멀티플렉서(712)는 상기 카운터에서 제공되는 선택신호에 의해 해당 의사랜덤 생성기의 출력을 선택하여 출력한다. 여기서 상기 멀티플렉서(712)의 출럭데이타는 감산기718에서 1만큼 감산되어 제2멀티플렉서로 입력된다. 이유인즉, 상기 의사랜덤 생성기들은 어드레스 0값을 생성하지 못하므로, 모든 생성값에서 1만큼 감하여 랜덤 어드레스를 0부터 매핑시키기 위함이다. 영역 카운터715는 상기 어드레스 생성영역의 크기에 해당하는 카운터를 발생하여 비교기714로 출력한다. 상기 비교기714는 상기 영역 카운터715에서 제공되는 카운터가 영역크기(2m)-1에 해당할 때 상기 제2멀티플렉서713으로 선택신호 "1"를 출력한다. 상기 제2멀티플렉서713은 상기 선택신호에 의해 상기 영역 카운터715에서 발생하는 카운터가 영역크기-2 동안에는 상기 제1멀티플렉서712의 출력을 선택출력하고, 상기 영역크기-1에 도달할 시 상기 비교기714에서 제공하는 2m-1(영역 크기-1)를 선택출력한다. 어드레스 버퍼717은 상위 어드레스 영역에 상기 카운터716의 출력데이타를 저장하고, 하위 어드레스 영역에 상기 제2멀티플렉서713의 출력데이타를 저장한다. 이렇게 상기 읽기 어드레스 버퍼717에 저장된 어드레스는 상기 비교기122로 전달된다. 그러면, 상기 비교기122에서는 상기 어드레스가 어느 그룹에 속하는지 판단하여 이에 대한 그룹값 선택신호를 상기 선택기123로 제공한다. 그리고 상기 선택기123은 상기 선택신호에 따라 해당 그룹값을 선택 출력하고, 상기 감산기124는 상기 비교기122에서 출력되는 상기 어드레스에서 상기 선택된 그룹값을 감해 최종 독출[인터리빙을 위한 읽기] 어드레스를 상기 인터리버 메모리112로 제공하고, 상기 인터리버 메모리112에서 상기 독출 어드레스에 해당하는 데이터를 독출한다.
상기한 도 6 및 도 7a의 구성에 따른 독출 어드레스 생성 과정을 살펴본다. 상기 의사랜덤 생성기711-7N1들은 클럭킹에 의해 저장된 상태값들을 쉬프트시켜 의사랜덤 시퀀스를 생성하고, 상기 제1밀티플렉서712는 상기 카운터716에서 제공되는 선택신호에 의해 해당 의사랜덤 생성기711-7N1의 상태값을 선택출력한다. 상기 선택신호에 의해 상기 의사랜덤 생성기들717-7N1의 상태값들이 선택되면, 다시 상기 의사랜덤 생성기들711-7N1은 클럭킹에 의해 저장된 상태값들을 쉬프트시켜 의사래덤 시퀀스를 생성한다. 이렇게 상기 제1멀티플렉서712에서 출력되는 상기 의사랜덤시퀀스는 1만큼 감해져서 상기 제2멀티플렉서713로 입력되며, 상기 의사랜덤 시퀀스는 상기 영역카운트(1/Ng)x CLK가 상기 어드레스 생성영역의 크기(2m)-1 값에 도달되기 전까지 그대로 패스되어 상기 어드레스 버퍼717의 하위 영역으로 전달된다. 한편, 상기 영역카운트가 상기 어드레스 생성영역의 크기(2m)-1 값에 도달될 경우에는 상기 (2m)-1 값이 상기 어드레스 버퍼717의 하위영역에 전달된다. 한편, 상기 어드레스 버퍼717의 상위영역에는 상기 카운터716에서 출력되는 영역(현재 선택된 의사랜덤 생성기에 대응되는 어드레스 생성영역을 지시하는 값들이 저장된다. 이렇게 상기 어드레스 버퍼717에 저장된 어드레스는 상기 비교기122로 전달되고, 상기 비교기122에서는 상기 어드레스가 어느 그룹에 속하는지를 판단하여 이에 대한 그룹값 선택신호를 상기 선택기123로 제공한다. 또한, 이때의 상기 어드레스를 상기 감산기124로 출력한다. 그러면, 상기 선택부123은 상기 선택신호에 따라 해당 그룹값을 선택 출력하고, 상기 감산기124는 상기 비교기(122)에서 출력되는 어드레스값에서 상기 해당 그룹값을 감해 독출 어드레스를 상기 인터리버 메모리112로 제공한다. 한편, 상기 어드레스가 어느 그룹에도 속하지 않을 경우, 다시 말해 상기 오프셋값에 의한 기준값들에 해당할 경우, 상기 비교기(122)는 상기 어드레스를 무효어드레스로 간주하여 삭제(deletion)하여 출력하지 않는다. 그리고, 상기 인터리버 메모리112는 상기 제공되는 독출 어드레스에 따라 해당 번지에 저장되어 있는 데이터를 출력한다.
상기한 실시 예는 오프셋값에 의해 발생된 무효어드레스(GTH)를 상기 비교기(122)에서 삭제시키는 것으로 설명하였지만, 다른 실시예로 마지막 의사랜덤생성기7N1에서 생성되는 오프셋값에 해당하는 의사랜덤 시퀀스를 당초 선택하지 않는 방법도 있다. 이럴 경우, 상술한 비교기(122)에서의 삭제기능은 필요하지 않다.
도 7b를 참조하면, 카운터(720)는 상기 마지막 의사랜덤 생성기의 상태값을 모니터링하고, 상기 상태값이 오프셋값에 의한 무효한 값이라 판단되며, 상기 카운터(720)는 선택기(721)로 인에이블 신호를 출력한다. 그러면 선택기(721)는 첫 번째 의사랜덤 생성기를 선택하기 위한 선택신호(s=0)을 상기 선택기712로 제공한다. 여기서 상기 의사랜덤 생성기들을 순차적으로 선택하는 경우에는 상기와 같이 상기 선택기(721)는 선택신호 "0"을 출력하지만, 상기 의사랜덤 생성기들을 랜덤하게 선택하는 경우에는 다음 차례의 의사랜덤 생성기를 선택할수 있는 선택신호를 출력한다. 즉, 상기 마지막 의사렌덤 생성기에서 생성되는 오프셋값에 의한 무효한 값을 당초 선택하지 않으므로서 무호한 어드레스가 생성되지 않도록 한다.
이하 본 발명의 실시 예에 따른 인터리빙을 위한 어드레스 생성과정을 도 8을 참조하여 설명한다. 상기 도 8의 과정은 상기한 수학식 1의 알고리즘에 의한 것이다.
상기 도 8을 참조하면, 어드레스 생성부(121)(일반적인 CPU)는 811단계에서 인터리빙을 위한 각 파라미터 값들을 산출한다. 입력 프레임 크기를 L이라 할 때, 상기 프레임 크기를 2진수로 표현했을 때, 최하위 비트부터 0의 개수가 적어도 한개 이상 되도록 임의의 값(오프셋값)을 더해 가상 어드레스 크기N을 구한다. 그리고, 상기 가상 어드레스 크기 N을 2의 제곱근(2m)×Ng로 표현했을 때, 상기 승수값(m)과 Ng(이하 영역번호라 칭함)을 실험적으로 구한다. 상기한 파라미터들은 설계 당시 미리 정해지는 값들이며, 이러한 값들은 룩업테이블 형태로 저장되고, 실지로 인터리빙 수행시 상기 룩업테이블로부터 해당 값들을 읽어와서 사용하게 된다.
그리고 상기 어드레스 생성부(121)는 813단계에서 쓰기어드레스(ADDRESS_WRITE)를 0으로 초기화하고, 815단계에서 영역인덱스(g)를 0으로 초기화한다.
상기 초기화가 이루어진후, 상기 어드레스 생성부(121)는 815단계에서 의사랜덤 시퀀스를 이용한 랜덤 어드레스를 하기 수학식에 의해 산출한다."(ADDRESS_READ=[(PNg(ADDRESS_READ_WRITE)-1]+g*2m" 여기서 상기 PNg(ADDRESS_READ_WRITE)는 의사랜덤 시퀀스를 생성하는 함수를 나타내며, -1를 해준 것은 상기 생성된 의사랜덤 시퀀스를 0에서부터 매핑시키기 위함이다. 또한 +g*2m"는 상기 생성된 의사랜덤 시퀀스를 각 해당 영역에 매핑시키기 위한 것이다. 즉, 영역인덱스 g가 0이면 상기 생성된 의사랜덤 시퀀스는 영역0에 매핑되고, 상기 영역인덱스가 1이면 영역1에 매핑된다.
그리고 상기 어드레스 생성부(121)는 819단계에서 이렇게 산출된 랜덤 어드레스를 이용해 최종 독출[읽기] 어드레스를 하기 수학식에 의해 산출한다."(ADDRESS_READ=ADDRESS_READ-OFFSET(ADDRESS-READ)" 여기서 상기 수학식은 상기 독출 어드레스가 어느 그룹에 속하는지를 판단하여 그 그룹에 해당하는 그룹값을 감하여 산출된 어드레스이다. 여기서 상기 그룹은 오프셋에 의해 그룹 기준값(=무효어드레스)에 의해 구분 되어진다. 예를들어, 상기 독출 어드레스가 그룹1에 해당하면 상기 독출 어드레스에서 1를 감하고, 그룹2에 해당하면 2를 감한다.
이후, 상기 어드레스 생성부(121)는 821단계에서 상기 영역인덱스 g가 영역번호Ng-1에 도달했는지 검사한다. 이때 상기 영역인덱스가 Ng-1에 도달했다고 판단시 상기 어드레스 생성부(121)는 823단계로 진행하며, 상기 Ng-1에 도달되지 않았다고 판단시 상기 어드레스 생성부(121)는 825단계로 진행하여 상기 영역인덱스를 1만큼 증가시키고 상기 817단계로 되돌아간다.
한편, 상기 영역인덱스가 상기 영역변호-1에 도달했음을 감지한 상기 어드레스 생성부(121)는 상기 823단계에서 상기 쓰기 어드레스(ADDRESS_WRITE)가 상기 2m-2 값(하나의 의사랜덤 생성기가 생성할수 있는 어드레스 수)에 도달했는지 검사한다. 여기서 상기 쓰기 어드레스는 상기한 영역카운트에 대응된다. 이때 상기 쓰기 어드레스가 상기 2m-2 값에 도달했다고 판단시 상기 어드레스 생성부(121)는 829단계로 진행하며, 상기 쓰기 어드레스가 상기 2m-2 값에 도달하지 않았다고 판단시 상기 어드레스 생성부(121)는 827단계로 진행하여 상기 쓰기 어드레스를 1만큼 증가시키고 상기 815단계로 되돌아간다.
한편, 상기 쓰기 어드레스가 상기 2-2 값에 도달했음을 감지한 상기 어드레스 생성부(121)는 상기 829단계에서 상기 쓰기 어드레스를 하기 수학식을 이용해 각 영역의 읽기 어드레스에 매핑시키고 본 프로그램을 종료한다. "ADDRESS_WRITE=2m-1,ADDRESS_READ=ADDRESS_WRITE+g*2m-OFFSET(ADDRESS-WRITE)" 즉, 맨 마지막에 해당하는 쓰기 어드레스는 그대로 읽기 어드레스로 이용함을 의미한다.
하기 표 1 및 표 2는 본 발명에 따른 인터리빙 방식을 IMT-2000시스템에 적용할 경우 각 레이트셋에 해당하는 OCPNI 설계 파라미터들을 보여준다.
[표 1]
[표 2]
여기서 상기 표 1에서 인터리버 사이즈N이 376인 경우 0CPNI의 읽기 어드레스의 예를 보여주면 하기 표 3과 같다.
[표 3]
상술한 바와 같이 본 발명에서는 입력데이타를 인터리빙할 때에 랜덤 성질, 거리성질 및 가중치 성질을 만족하면서 렌덤 인터리빙시 필요한 메모리의 사용을 최소화하는 방법을 제시 하였다. 또한 본 발명의 제안하는 오프셋제어 인터리버 방식은 기존의 PN인터리빙 방식이 인터리버 크기가 2의 거듭제곱 형태로 표현될수 없고, 인터리버의 크기가 큰 경우 메모리 활용면에서 매우 비효율적이라는 문제점을 해결하였다. 또한, IMT-2000을 위한 인터리버 설계에서 각 논리채널(logical channel)의 인터리버 크기가 2의 거듭제곱 형태로 표현되지 않으머, 인터리버의 크기 또한 매우 크다는 점을 고려할 때 이를 해결할수 있는 방식을 제안한다. 그리고 기존의 인터리빙 방식에서 각각의 인터리버 크기에 따른 인터리빙 룰을 송수신기의 제어부(CPU 또는 HOST)에 저장해 두어야 하므로 인터리버 버퍼 이외에 별도의 저장공간이 호스트 메모리쪽에 필요했으나, 이러한 문제점을 해결하였다. 즉, 셈(Enumeration)가 가능한 형태의 인터리버를 구현하므로서 하드웨어 구현의 복잡도를 매우 낮추었다. 또한, 송수신을 위한 인터리버/디인터리버 전송방식이 매우 간결하며, 최소의 메모리를 사용한다. 즉, 프레임 크기인 L비트만큼의 인터리버 메모리만 필요하다. 마지막으로, 터보코더 인터리버의 특성을 모두 만족하는 것으로, 랜덤 인터리버와 유사하거나 더 우수한 성능을 보여준다. 따라서 평균 성능(Average performance) 이상의 성능을 보장한다.

Claims (16)

  1. 2m(m>1)의 정수 배가 아닌 크기를 가지는 입력데이터를 인터리빙하는 방법에 있어서,
    상기 입력데이터를 메모리에 순차적으로 저장하는 과정과,
    상기 입력데이터 크기에 오프셋 값을 더하여 가상 어드레스 크기가 2m의 정수배로 제공하는 과정과,
    각각 2m의 크기를 가지는 상기 정수개의 어드레스 생성영역들을 가지고 상기 어드레스 생성영역들에서 랜덤 어드레스를 발생하는 과정과,
    상기 어드레스 생성영역들로부터 발생된 상기 랜덤 어드레스들을 가지고 상기 메모리로부터 상기 입력데이터를 독출하는 과정을 포함하는 것을 특징으로 하는 인터리빙 방법.
  2. 제1항에 있어서,
    상기 랜덤 어드레스들은 의사랜덤 시퀀스임을 특징으로 하는 인터리빙 방법.
  3. 제1항에 있어서,
    상기 오프셋값은 상기 입릭데이터의 크기를 2진수로 변환하여 그 최하위 비트에서 연속되는 '0'의 개수가 적어도 1개 이상이 되도록 더해주는 임의의 값임을특징으로 하는 인터리빙 방법.
  4. 2m(m>1)의 정수 배가 아닌 크기를 가기는 입력데이터를 인터리빙하는 장치에 있어서,
    상기 입럭데이터를 순차적으로 저장하는 메모리와,
    상기 입력데이터의 크기에 오프셋 값을 더하여 가상 어드레스 크기가 2m의 정수배가 되게하고, 각각 2m의 크기를 가기는 상기 정수개의 어드레스 생성영역을 가지고 상기 어드레스 생성영역들에서 랜덤 어드레스들을 생성하는 어드레스 생성기를 포함하며,
    상기 어드레스를 생성영역들로부터 발생된 랜덤 어드레스들을 가지고 상기 메모리로부터 상기 입력데이터를 독출함을 특징으로 하는 인터리빙 장치.
  5. 제4항에 있어서,
    상기 랜덤 어드레스들은 의사랜덤 생성기에 의해 생성되어짐을 특징으로 하는 인터리빙 장치.
  6. 제4항에 있어서,
    상기 오프셋값은 상기 입력데이터의 크기를 2진수로 변환하여 그 최하위 비트에서 연속되는 '0'의 개수가 적어도 1개 이상이 되도록 더해주는 임의의 값임을특징으로 하는 인터리빙 장치.
  7. 제4항에 있이서,
    상기 어드레스 생성기는 상기 어드레스 생성영역들의 마지막 어드레스들을 그대로 상기 독출 어드레스로 사용함을 특징으로 하는 인터리빙 장치.
  8. 제4항에 있어서, 상기 어드레스 생성기는,
    복수개의 의사랜덤 생성기들을 구비하고, 상기 의사랜덤 생성기들이 상기 각 어드레스 생성영역에 대응하여 랜덤 어드레스들을 발생하는 랜덤어드레스 생성부와,
    상기 오프셋값에 대응하는 어드레스들에 의해 상기 가상 어드레스 영역이 복수개의 그룹들로 그룹핑되며, 상기 랜덤어드레스 생성부로부터의 랜덤 어드레스가상기 복수개의 그룹들중 어느 그룹에 속하는지 판단하는 비교기와,
    상기 랜덤어드레스 생성부로부터의 랜덤 어드레스를 상기 비교기에서 판단되어진 그룹에 대응하는 특정값으로 감하여 상기 독출 어드레스를 발생하는 연산기로 구성되는 것을 특징으로 하는 인터리빙 장치.
  9. 제8항에 있어서,
    상기 의사랜덤 생성기들은 서로 다른 초기 상태값을 가짐을 특징으로 인터리빙 장치.
  10. 제4항에 있이서, 상기 어드레스 생성기는,
    상기 각 어드레스 생성영역들에 대응하여 랜덤 어드레스를 발생하는 복수개의 의사 랜덤 생성기들과,
    상기 복수개의 의사랜덤 생성기들중 하나를 선택하는 선택신호를 발생하는 카운터와,
    상기 카운터로부터의 선택신호에 의해 상기 복수개의 의사랜덤 생성기들중 소정 하나의 의사랜덤 생성기의 상태값을 선택하여 출력하는 선택기와,
    상기 카운터로부터의 상기 선택신호에 해당하는 비트들과 상기 선택기로부터의 출력 비트들을 조합하여 상기 독출 어드레스를 구성하는 어드레스 버퍼로 구성되는 것을 특징으로 하는 인터리빙 장치.
  11. 제10항에 있어서,
    상기 의사랜덤 생성기들은 서로 다른 초기 상태값을 가짐을 특징으로 인터리빙 장치.
  12. 제10항에 있어서,
    상기 카운터는 상기 복수개의 의사랜덤 생성기들을 순차적으로 선택하는 상기 선택신호를 출력하는 것을 특징으로 하는 인터리빙 장치.
  13. 제10항에 있어서,
    상기 카운터는 상기 복수개의 의사랜덤 생성기들을 랜덤하게 선택하는 상기 선택신호를 출력하는 것을 특징으로 하는 인터리빙 장치.
  14. 제12항 또는 제13항에 있어서,
    상기 카운터는 상기 복수개의 의사랜덤 생성기들중 마지막 의사랜덤 생성기의 상태값을 모니터링하고, 상기 마지막 의사랜덤 생성기의 상태값이 상기 오프셋값에 대응하는 상태값을 가질 때, 상기 마지막 의사랜덤 생성기들 스킵하고 다음 의사랜덤 생성기들 선택하는 상기 선택신호를 출력하는 것을 특징으로 하는 인터리빙 장치.
  15. 입력 데이터를 부호화하고 정보심볼들과 제1패리티심볼들을 발생하는 제1부호기와, 상기 입력 데이터를 입력하고 인터리빙된 데이터를 발생하는 인터리버와,상기 인터리빙된 데이터를 부호화하고 제2패리티심벌들을 발생하는 제2부호기를 포함하는 터보부호화 장치에서, 상기 입력데이터를 인터리빙하기 위한 상기 인터리버 장치에 있어서,
    상기 입력데이터를 순차적으로 저장하는 메모리와,
    상기 입력데이터의 크기에 오프셋 값을 더하여 가상 어드레스 크기가 2m의 정수배가 되게하고, 각각 2m의 크기를 가지는 상기 정수개의 어드레스 생성영역을가지고 상기 어드레스 생성영역들에서 랜덤 어드레스들을 생성하는 어드레스 생성기를 포함하며,
    상기 어드레스 생성영역들로부터 발생된 랜덤 어드레스들을 가지고 상기 메모리로부터 상기 입력데이터를 독출함을 특징으로 하는 장치.
  16. 제15항에 있어서,
    상기 오프셋값은 상기 입력데이터의 크기를 2진수로 변환하여 그 최하위 비트에서 연속되는 '0'의 개수가 적어도 1개 이상이 되도록 더해주는 임의의 값임을 특징으로 하는 장치.
KR1019980057959A 1998-12-21 1998-12-21 통신시스템의인터리빙/디인터리빙장치및방법 KR100346170B1 (ko)

Priority Applications (11)

Application Number Priority Date Filing Date Title
KR1019980057959A KR100346170B1 (ko) 1998-12-21 1998-12-21 통신시스템의인터리빙/디인터리빙장치및방법
JP2000590308A JP3961770B2 (ja) 1998-12-21 1999-12-21 通信システムのインターリービング/デインターリービング装置及び方法
CNB031566669A CN100345390C (zh) 1998-12-21 1999-12-21 用于通信系统的交织/解交织设备和方法
RU2000121962A RU2217864C2 (ru) 1998-12-21 1999-12-21 Устройство и способ перемежения обращенного перемежения для системы связи
AU16956/00A AU738762B2 (en) 1998-12-21 1999-12-21 Interleaving/deinterleaving device and method for communication system
BR9907844A BR9907844B1 (pt) 1998-12-21 1999-12-21 dispositivo e mÉtodo de entrelaÇamento e desentrelaÇamento para sistema de comunicaÇço.
CN99803175A CN1121095C (zh) 1998-12-21 1999-12-21 用于通信系统的交织设备和方法
PCT/KR1999/000795 WO2000038333A1 (en) 1998-12-21 1999-12-21 Interleaving/deinterleaving device and method for communication system
EP99960006.7A EP1060564B1 (en) 1998-12-21 1999-12-21 Interleaving/deinterleaving device and method for communication system
CA 2319726 CA2319726C (en) 1998-12-21 1999-12-21 Interleaving/deinterleaving device and method for communication system
US09/468,568 US6668343B1 (en) 1998-12-21 1999-12-21 Interleaving/deinterleaving device and method for communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980057959A KR100346170B1 (ko) 1998-12-21 1998-12-21 통신시스템의인터리빙/디인터리빙장치및방법

Publications (2)

Publication Number Publication Date
KR20000041934A KR20000041934A (ko) 2000-07-15
KR100346170B1 true KR100346170B1 (ko) 2002-11-30

Family

ID=19565176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980057959A KR100346170B1 (ko) 1998-12-21 1998-12-21 통신시스템의인터리빙/디인터리빙장치및방법

Country Status (10)

Country Link
US (1) US6668343B1 (ko)
EP (1) EP1060564B1 (ko)
JP (1) JP3961770B2 (ko)
KR (1) KR100346170B1 (ko)
CN (2) CN1121095C (ko)
AU (1) AU738762B2 (ko)
BR (1) BR9907844B1 (ko)
CA (1) CA2319726C (ko)
RU (1) RU2217864C2 (ko)
WO (1) WO2000038333A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100860660B1 (ko) * 2002-01-09 2008-09-26 삼성전자주식회사 통신시스템의 인터리빙 장치 및 방법

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6871303B2 (en) * 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
KR100468249B1 (ko) * 1999-10-07 2005-01-27 마츠시타 덴끼 산교 가부시키가이샤 인터리브 어드레스 생성 장치, 터보 부호화 장치, 터보 복호화 장치, 통신 단말 장치, 기지국 장치 및 인터리브 어드레스 생성 방법
US7302621B2 (en) * 2000-01-03 2007-11-27 Icoding Technology, Inc. High spread highly randomized generatable interleavers
US7187708B1 (en) * 2000-10-03 2007-03-06 Qualcomm Inc. Data buffer structure for physical and transport channels in a CDMA system
KR100846017B1 (ko) * 2000-10-30 2008-07-11 가부시키가이샤 히타치세이사쿠쇼 데이터 인터리브/디인터리브 효율을 향상시키기 위한 반도체 장치, 무선 통신 장치, 컴퓨터 프로그램 제품 및 방법
US7586993B2 (en) * 2001-12-06 2009-09-08 Texas Instruments Incorporated Interleaver memory selectably receiving PN or counter chain read address
AU2003268814B2 (en) * 2002-02-06 2005-07-28 Samsung Electronics Co., Ltd. Interleaver and interleaving method in a communication system
EP1420519A1 (en) * 2002-02-06 2004-05-19 Samsung Electronics Co., Ltd. Interleaver and interleaving method in a communication system
KR20030069431A (ko) * 2002-02-20 2003-08-27 삼성전자주식회사 통신 시스템에 적용되는 모뎀 에이직의 터보 부호화 장치및 그 부호화 방법
US7051261B1 (en) * 2002-10-29 2006-05-23 Lattice Semiconductor Corporation Turbo encoder with reduced processing delay
KR100925429B1 (ko) * 2002-12-28 2009-11-06 엘지전자 주식회사 터보 코더
DE10306302A1 (de) * 2003-02-14 2004-08-26 Infineon Technologies Ag Verfahren und Schaltung zur Adressgenerierung von Pseudo-Zufalls-Interleavern oder -Deinterleavern
US7702968B2 (en) 2004-02-27 2010-04-20 Qualcomm Incorporated Efficient multi-symbol deinterleaver
WO2005099099A1 (en) * 2004-03-05 2005-10-20 Thomson Licensing Address generation apparatus for turbo interleaver and deinterleaver in w-cdma systems
TWI264653B (en) * 2004-05-19 2006-10-21 Mediatek Inc Method and apparatus for convolutional interleaving/de-interleaving technique
US7543197B2 (en) 2004-12-22 2009-06-02 Qualcomm Incorporated Pruned bit-reversal interleaver
US7437650B2 (en) * 2005-04-12 2008-10-14 Agere Systems Inc. Pre-emptive interleaver address generator for turbo decoders
US8082479B2 (en) 2006-02-02 2011-12-20 Qualcomm Incorporated Methods and apparatus for generating permutations
US7925956B2 (en) * 2006-10-03 2011-04-12 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
US8356232B2 (en) * 2006-10-06 2013-01-15 Motorola Mobility Llc Method and apparatus for encoding and decoding data
US7949926B2 (en) * 2006-11-30 2011-05-24 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
KR101133907B1 (ko) 2007-07-06 2012-04-12 주식회사 코아로직 디인터리브 장치와 방법 및 인터리빙 인덱스 산출장치 및방법과 그 기록매체
WO2009014298A1 (en) * 2007-07-20 2009-01-29 Electronics And Telecommunications Research Institute Address generation apparatus and method of data interleaver/deinterleaver
US8200733B1 (en) 2008-04-15 2012-06-12 Freescale Semiconductor, Inc. Device having interleaving capabilities and a method for applying an interleaving function
KR101585936B1 (ko) * 2011-11-22 2016-01-18 한국전자통신연구원 가상 사설 망 관리 시스템 및 그 방법
US10203881B2 (en) * 2011-12-19 2019-02-12 Apple Inc. Optimized execution of interleaved write operations in solid state drives
CN113748624B (zh) * 2019-02-15 2024-04-26 苹果公司 用于在远程干扰管理中生成pn序列的初始化种子的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940010572A (ko) * 1992-10-30 1994-05-26 윤종용 디지탈통신방법 및 그 장치
US5333289A (en) * 1990-05-25 1994-07-26 Hitachi, Ltd. Main memory addressing system
US5721745A (en) * 1996-04-19 1998-02-24 General Electric Company Parallel concatenated tail-biting convolutional code and decoder therefor
WO1998043168A1 (en) * 1997-03-21 1998-10-01 International Business Machines Corporation Address mapping for system memory

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4637021A (en) * 1983-09-28 1987-01-13 Pioneer Electronic Corporation Multiple pass error correction
FR2592258B1 (fr) * 1985-12-23 1991-05-03 Thomson Csf Procede et dispositif de transmission radioelectrique d'informations codees, resistant au brouillage
JPS62190932A (ja) 1986-02-18 1987-08-21 Nippon Telegr & Teleph Corp <Ntt> インタリ−ブ方式
JPS648717A (en) * 1987-07-01 1989-01-12 Nec Corp Pseudo noise series code generating circuit
US5111389A (en) * 1987-10-29 1992-05-05 International Business Machines Corporation Aperiodic mapping system using power-of-two stride access to interleaved devices
JPH0210574A (ja) * 1988-06-28 1990-01-16 Matsushita Electric Ind Co Ltd 復調回路
FR2639781B1 (fr) * 1988-11-25 1991-01-04 Alcatel Thomson Faisceaux Procede d'entrelacement pour dispositif de transmission numerique
US5293607A (en) * 1991-04-03 1994-03-08 Hewlett-Packard Company Flexible N-way memory interleaving
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.
KR0140382B1 (ko) * 1991-11-22 1998-07-01 강진구 Dat의 오류정정을 위한 어드레스 발생회로
JPH06216882A (ja) 1993-01-19 1994-08-05 Matsushita Electric Ind Co Ltd 誤り訂正送信装置及び受信装置
US5446474A (en) 1994-01-19 1995-08-29 Lockheed Missiles & Space Company, Inc. Redeployable furlable rib reflector
JPH0974361A (ja) 1995-09-04 1997-03-18 Nec Eng Ltd 変復調装置
JPH09102748A (ja) 1995-10-04 1997-04-15 Matsushita Electric Ind Co Ltd インターリーブ回路
JPH09116444A (ja) 1995-10-23 1997-05-02 Sony Corp インターリーブ装置、符号化装置、デインターリーブ装置、復号装置、及び伝送方法
US5956757A (en) * 1996-03-22 1999-09-21 Adaptec, Inc. Method and apparatus for generating addresses
JP3239084B2 (ja) * 1997-05-30 2001-12-17 株式会社次世代デジタルテレビジョン放送システム研究所 マルチキャリア伝送インターリーブ装置及び方法
JP3347335B2 (ja) * 1997-11-10 2002-11-20 株式会社エヌ・ティ・ティ・ドコモ インタリービング方法、インタリービング装置、及びインタリーブパターン作成プログラムを記録した記録媒体
WO2000010257A1 (en) * 1998-08-17 2000-02-24 Hughes Electronics Corporation Turbo code interleaver with near optimal performance
US6657000B1 (en) * 1999-06-25 2003-12-02 Kraton Polymers U.S. Llc Hot melt pressure sensitive positioning adhesive (III)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333289A (en) * 1990-05-25 1994-07-26 Hitachi, Ltd. Main memory addressing system
KR940010572A (ko) * 1992-10-30 1994-05-26 윤종용 디지탈통신방법 및 그 장치
US5721745A (en) * 1996-04-19 1998-02-24 General Electric Company Parallel concatenated tail-biting convolutional code and decoder therefor
WO1998043168A1 (en) * 1997-03-21 1998-10-01 International Business Machines Corporation Address mapping for system memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100860660B1 (ko) * 2002-01-09 2008-09-26 삼성전자주식회사 통신시스템의 인터리빙 장치 및 방법

Also Published As

Publication number Publication date
BR9907844A (pt) 2000-10-24
JP3961770B2 (ja) 2007-08-22
CA2319726A1 (en) 2000-06-29
RU2217864C2 (ru) 2003-11-27
WO2000038333A1 (en) 2000-06-29
EP1060564B1 (en) 2017-10-18
JP2002533976A (ja) 2002-10-08
AU738762B2 (en) 2001-09-27
AU1695600A (en) 2000-07-12
EP1060564A1 (en) 2000-12-20
BR9907844B1 (pt) 2013-03-05
CN1121095C (zh) 2003-09-10
CN1496023A (zh) 2004-05-12
CA2319726C (en) 2005-05-10
CN100345390C (zh) 2007-10-24
US6668343B1 (en) 2003-12-23
CN1291379A (zh) 2001-04-11
EP1060564A4 (en) 2006-06-28
KR20000041934A (ko) 2000-07-15

Similar Documents

Publication Publication Date Title
KR100346170B1 (ko) 통신시스템의인터리빙/디인터리빙장치및방법
AU745959B2 (en) Interleaving / deinterleaving apparatus and method for a communication system
KR100350459B1 (ko) 통신시스템의인터리빙/디인터리빙장치및방법
AU759580B2 (en) 2-dimensional interleaving apparatus and method
EP1330040B1 (en) Interleaving apparatus and method for a communication system
US7210076B2 (en) Interleaving order generator, interleaver, turbo encoder, and turbo decoder
KR100780995B1 (ko) 데이터를 인터리빙하는 인터리버 및 방법
KR100330238B1 (ko) 통신시스템의 인터리빙/디인터리빙 장치 및 방법
KR100362557B1 (ko) 이차원 인터리빙 장치 및 방법
KR20040037624A (ko) 인터리빙된 데이터 열의 디인터리빙 방법 및 장치
KR100645730B1 (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: 20130627

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150629

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 17