KR20070080921A - 통신시스템에서 인터리빙 장치 및 방법 - Google Patents

통신시스템에서 인터리빙 장치 및 방법 Download PDF

Info

Publication number
KR20070080921A
KR20070080921A KR1020060012440A KR20060012440A KR20070080921A KR 20070080921 A KR20070080921 A KR 20070080921A KR 1020060012440 A KR1020060012440 A KR 1020060012440A KR 20060012440 A KR20060012440 A KR 20060012440A KR 20070080921 A KR20070080921 A KR 20070080921A
Authority
KR
South Korea
Prior art keywords
index
address
interleaving
generated
generating
Prior art date
Application number
KR1020060012440A
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 삼성전자주식회사
Priority to KR1020060012440A priority Critical patent/KR20070080921A/ko
Priority to US11/704,168 priority patent/US20070220377A1/en
Publication of KR20070080921A publication Critical patent/KR20070080921A/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
    • 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/2792Interleaver wherein interleaving is performed jointly with another technique such as puncturing, multiplexing or routing
    • 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
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 통신시스템에서 인터리빙 장치 및 방법에 관한 것이다. 본 발명에 따른 인터리빙 장치는, 다음 발생될 k인덱스가 폐기 인덱스인지 판단하고, 상기 폐기 인덱스이면 스킵신호를 발생하는 판단부와, 클럭에 응답하여 상기 k인덱스를 '1'만큼 증가하여 출력하고, 상기 스킵신호가 감지되면 상기 k인덱스를 '2'만큼 증가하여 출력하는 인덱스 발생부와, 상기 인덱스 발생부로부터의 k인덱스를 가지고 소정 연산을 수행하여 인터리빙을 위한 어드레스를 발생하는 어드레스 생성부를 포함한다. 이와 같은 본 발명은 인터리빙/디인터리빙에 필요한 클럭 개수를 줄일 수 있는 이점이 있다.
인터리버, 디인터리버, 어드레스

Description

통신시스템에서 인터리빙 장치 및 방법{APPARATUS AND METHOD FOR INTERLEAVING IN COMMUNICATION SYSTEM}
도 1은 통상적인 광대역 무선통신시스템에서 서브패킷 생성 장치의 블록 구성을 보여주는 도면.
도 2는 도 1의 구성에서 채널 인터리버의 상세 구성을 보여주는 도면.
도 3은 본 발명의 실시예에 따른 인터리버의 블록 구성을 도시하는 도면.
도 4는 본 발명의 실시예에 따른 인터리버에서 독출 어드레스를 생성하기 위한 절차를 도시하는 도면.
본 발명은 통신시스템에서 인터리빙 장치 및 방법에 관한 것으로, 특히 인터리빙 동작을 위한 어드레스를 생성하기 위한 장치 및 방법에 관한 것이다.
일반적으로, 유무선 디지털 통신시스템은 전송로상의 오류를 정정하기 위해 오류정정부호를 사용한다. 상기 오류정정부호의 하나인 터보 부호(turbo code)를 사용하는 부호기(이하 "터보부호기"라 칭함)는 2개의 병렬 쇄상 부호를 이용하여 패리티 비트(parity bit)를 만드는 시스템으로서, 구성 부호기(component encoder)로 RSC(Recursive Systematic Convolutional) 부호를 사용하고, 입력 비트열을 인터리빙하여 구성부호기로 제공하는 내부 인터리버를 구비한다.
일반적으로, 상기 터보 부호기는 매 클럭마다 하나의 정보 비트를 입력받아 처리하는 반면, CTC(Convolutional Turbo Code)를 사용하는 부호기(이하 '길쌈터보 부호기"라 칭함)는 매 클럭마다 2개의 정보 비트들을 입력받아 처리한다. 상기 CTC는 광대역(broadband) 무선통신시스템의 채널 부호기로 채택되어 있으며, 상기 터보 부호와 유사한 형태를 갖는다.
도 1은 통상적인 광대역 무선통신시스템에서 서브패킷 생성 장치의 블록 구성을 보여준다.
도 1을 참조하면, 먼저 CTC 부호기(100)는 입력되는 정보비트열을 CTC 부호화하여 부호화 비트들을 발생한다. 여기서, 상기 CTC 부호기(100)의 부호화율을 1/3으로 가정하기로 한다. 즉, 2개의 정보비트들이 입력되면 6개의 비트들이 발생된다.
채널 인터리버(102)는 무선채널에서 발생하는 페이딩에 의한 집중에러(burst error)를 분산시키기 위해 상기 CTC 부호기(100)로부터의 비트들을 인터리빙하여 출력한다. 여기서, 상기 채널 인터리버(102)는 상기 CTC 부호기(100)로부터의 비트들을 서브블록(subblock) 단위로 인터리빙하여 출력한다.
천공부(104)는 상기 채널 인터리버(102)로부터의 상기 인터리빙된 비트들을 천공(puncturing)하여 전송할 서브패킷을 발생한다. 즉, 상기 천공부(104)는 상기 채널 인터리버(102)로부터의 상기 인터리빙된 비트들 중에서 전송할 비트들을 선택(selection)하여 서브패킷을 생성한다.
도 2는 도 1의 구성에서 채널 인터리버(102)의 상세 구성을 보여준다.
도시된 바와 같이, 상기 CTC 부호기(100)에서 발생하는 1번째 정보 블록을 A 서브블록으로 나타내고, 2번째 정보 블록을 B 서브블록으로 나타낸다. 또한, 상기 CTC 부호기(100)내 제1길쌈부호기에서 발생하는 1번째 패리티 블록을 Y1 서브블록으로 나타내고, 2번째 패리티 블록을 Y2 서브블록으로 나타낸다. 또한, 상기 CTC 부호기(100)내 제2길쌈부호기에서 발생하는 1번째 패리티 블록을 W1 서브블록으로 나타내고, 2번째 서브블록을 W2 서브블록으로 나타내기로 한다. 인터리빙 규칙(rule)을 단계별로 살펴보면 다음과 같다.
< 비트 분리 단계 >
상기 CTC 부호기(100)에서 매 클럭마다 발생되는 6개의 비트들 중 첫 번째 비트는 A 서브블록(200), 두 번째 비트는 B서브블록(202), 세 번째 비트는 Y1서브블록(204), 네 번째 비트는 Y2서브블록(208), 다섯 번째 비트는 W1서브블록(206), 여섯 번째 비트는 W2 서브블록(210)에 저장된다.
< 서브블록 인터리빙 단계 >
6개의 서브블록들(200 내지 210)은 개별적으로 다음 1 내지 5의 단계로 인터리빙된다.
1. 아래의 <표 1>을 사용하여 서브블록 인터리버 파라미터 m과 J를 결정한 다.
Index Block size (N_EP) N subblock interleaver parameters
m J
0 48 24 3 3
1 72 36 4 3
2 96 48 4 3
3 144 72 5 3
4 192 96 5 3
5 216 108 5 4
6 240 120 6 2
7 288 144 6 3
8 360 180 6 3
9 384 192 6 3
10 432 216 6 4
11 480 240 7 2
12 960 480 8 2
13 1920 960 9 2
14 2880 1440 9 3
15 3840 1920 10 2
16 4800 2400 10 3
2. i와 k를 0으로 초기화한다.
3. 다음의 수식을 이용하여 독출 어드레스를 생성한다.
Figure 112006009546138-PAT00001
여기서, m과 J는 상기 표 1로부터 획득되는 변수들이고, BRO(H)는 H를 비트 역상순(bit reverse ordering)하기 위한 함수이다. 또한, "mod"와 "/"는 각각 나머지와 몫을 구하는 모듈로 연산(modulo operation)과 디바이더 연산(divider operation)을 나타낸다.
4. 만약 생성된 어드레스 Tk가 N(인터리버 사이즈)보다 작으면, Ai=Tk 이고 i와 k를 각각 1씩 증가시킨다. 그렇지 않으면 Tk를 버리고 k만 증가시킨다.
5. 모든 독출 어드레스들을 획득할 때까지 3과 4를 반복한다.
< 비트 그룹핑 단계 >
인터리빙된 A 서브블록과 B 서브블록은 그대로 출력되고, 인터리빙된 Y1 서브블록과 Y2 서브블록은 도시된 바와 같이 Y1,Y2,Y1,Y2,Y1,Y2...형태로 멀티플렉싱되어 출력된다. 또한, 인터리빙된 W1 서브블록과 W2 서브블록도 W1,W2,W1,W2,W1,... 형태로 멀티플렉싱되어 출력된다.
상술한 종래기술에 따른 인터리빙 방식은 다음과 같은 문제점이 있다.
폐기(discard)되는 독출 어드레스들을 계산하기 위해 불필요한 클럭들을 사용하는 문제점이 있다. N_EP가 4800인 경우를 살펴보면, 블록 인터리버의 크기가 3072((210 * 3)이고 그 안의 실제 정보비트의 개수는 2400개이다. 따라서, 폐기될 독출 어드레스들의 개수는 672(3072 - 2400)개가 된다. 또한, 전체 인터리빙을 시리얼 연산을 사용해 진행한다고 가정할 때, 실제 필요한 클럭 개수는 18432(3072*6)개 이고, 이중 폐기되는 독출 어드레스들에 따른 클럭 개수는 4032(672*6)개이다. 즉, 약 20%에 해당하는 클럭들이 불필요하게 사용되는 문제점이 있다. 또한, 이것은 인터리빙에 소요되는 시간을 증가시키는 요인이 된다.
따라서, 본 발명의 목적은 통신시스템에서 인터리빙/디인터리빙에 소요되는 시간을 줄이기 위한 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 통신시스템에서 인터리빙/디인터리빙을 위해 발생되 는 일련의 어드레스들 중 폐기될 어드레스들을 당초 생성하지 않도록 하는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 통신시스템에서 인터리빙/디인터리빙에 소요되는 클럭 개수를 줄이기 위한 장치 및 방법을 제공함에 있다.
상기 목적들을 달성하기 위한 본 발명의 일 견지에 따르면, 인터리빙 장치에 있어서, 다음 발생될 k인덱스가 폐기 인덱스인지 판단하고, 상기 폐기 인덱스이면 스킵신호를 발생하는 판단부와, 클럭에 응답하여 상기 k인덱스를 '1'만큼 증가하여 출력하고, 상기 스킵신호가 감지되면 상기 k인덱스 '2'만큼 증가하여 출력하는 인덱스 발생부와, 상기 인덱스 발생부로부터의 k인덱스를 가지고 소정 연산을 수행하여 인터리빙을 위한 어드레스를 발생하는 어드레스 생성부를 포함하는 것을 특징으로 한다.
본 발명의 다른 견지에 따르면, 인터리빙 방법에 있어서, 클럭에 응답하여 k인덱스를 '1'만큼 증가하여 발생하며, 다음 발생될 k인덱스가 폐기 인덱스이면 상기 k인덱스를 '2'만큼 증가하여 발생하는 과정과, 상기 발생된 k인덱스를 가지고 소정 연산을 수행하여 인터리빙을 위한 어드레스를 생성하는 과정을 포함하는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명 이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하 본 발명은 통신시스템에서 인터리빙/디인터리빙을 위해 발생되는 일련의 어드레스들 중 폐기될 어드레스들을 당초 생성하지 않도록 하는 방안에 대해 설명하기로 한다. 이하 설명은 OFDM 기반의 광대역 무선통신시스템에서 사용되는 채널 인터리버를 예를 들어 살펴보기로 한다. 하지만, 본 발명에 따른 인터리빙 빙식은 CDMA와 같은 다른 통신시스템의 채널 인터리버, 터보부호기의 내부 인터리버 등 다양한 분야의 인터리버에 동일하게 적용될 수 있다.
먼저, 본 발명의 설명에 앞서, 상기 <표 1>의 m과 J 값을 새롭게 정의하기로 한다.
상기 <수학식 1>에서 제수로 들어가는 파라미터 J 값이 2의 배수가 아닌 값이 될 경우, 로직의 크기나 타이밍을 맞추는데 상당한 부담으로 작용한다. 예를 들어, J가 4일 경우에는 단순히 피제수를 오른쪽으로 2번 비트 쉬프트를 하고, J가 2일 경우에는 피제수를 오른쪽으로 1번 비트 쉬프트를 함으로써 간단히 연산을 수행할 수 있는데, J가 3일 경우에는 비트 쉬프트뿐만 아니라 나누기 로직을 부가적으로 사용해야 하는 부담이 있다.
따라서, 본원 출원인이 기 출원한 "공개특허 10-2005-94304"에 따르면 1xEV-DV(Evolution Data and Voice)에 적용되는 인터리버의 m과 J 값을 새롭게 정의하고 있다. 이러한 관점에서, 상기 <표 1>을 다시 정리하면 하기 <표 2>와 같이 나타낼 수 있다.
Index Block size (N_EP) N subblock interleaver parameters
m J
0 48 24 4 2
1 72 36 5 2
2 96 48 5 2
3 144 72 6 2
4 192 96 6 2
5 216 108 5 4
6 240 120 6 2
7 288 144 7 4
8 360 180 7 4
9 384 192 7 4
10 432 216 6 4
11 480 240 7 2
12 960 480 8 2
13 1920 960 9 2
14 2880 1440 10 4
15 3840 1920 10 2
16 4800 2400 11 4
이와 같이, 파라미터 J 값을 2의 배수 형태로 조정할 경우, 앞서 설명된 수학식 1을 다음 수학식 2와 같이 수정해야 한다. 하기 수학식 2에 대한 설명은 상기 공개특허에 상세히 기술되어 있으므로, 여기서는 자세한 설명을 생략하기로 한다.
Figure 112006009546138-PAT00002
여기서, m과 J는 상기 표 2로부터 획득되는 변수들이고, BRO(H)는 H를 비트 역상순(bit reverse ordering)하기 위한 함수이다. 또한, "mod"와 "/"는 각각 나머지와 몫을 구하는 모듈로 연산(modulo operation)과 디바이더 연산(divider operation)을 나타낸다.
이하 본 발명의 구체적인 실시예를 설명함에 있어 상기 <표 2>를 예를 들어 살펴보기로 한다.
만약, 폐기(discard)되는 k 인덱스(또는 독출 어드레스)를 미리 알 수 있다면, 폐기되는 k 인덱스를 미리 인지하게 당초 생성이 되지 않도록 할 수 있다. 예를 들어, 블록 사이즈(N-EP)가 48인 경우를 살펴보면, 폐기되는 k 인덱스는 0x3, 0x7, 0xB, 0xF, 0xF, 0x13, 0x17, 0x1B, 0x1F로 총 8개이다. 상기 인덱스들을 살펴보면, 하위 4비트가 0x3, 0x7, 0xB, 0xF 일 때 폐기됨을 알 수 있다. 이와 같은 방식으로 폐기되는 인덱스들의 규칙(rule)을 검색한다. 만약, 폐기되는 k 인덱스를 스킵(skip) 할 수 있다면, 손실되는 클럭 없이 연산을 수행할 수 있다.
여기서, 폐기되는 k 인덱스 바로 이전 k 인덱스들에 대한 규칙을 정리하면 하기 <표 3>과 같다.
Index 조건 1: K_idx[3:0] 조건 2
0 0x2, 0x6, 0xA, 0xE
1 0x2, 0x5, 0x9, 0xD
2 0x2, 0x6, 0xA, 0xE
3 0x2, 0x5, 0x9, 0xD
4 0x2, 0x6, 0xA, 0xE
5 0x6, 0xE
0xA K_idx[4]가 1일 경우
6 0xE
7 0x2, 0x5, 0x9, 0xD
8 0x2, 0x6, 0xA, 0xE
0xD K_idx[7:4]가 0x0, 0x4, 0x8, 0xC가 아닐 경우
9 0x2, 0x6, 0xA, 0xE
10 0x6, 0xE
0xA K_idx[4]가 1일 경우
11 0xE
12 0xE
13 0xE
14 0x2, 0x6, 0xA, 0xE
0xE K_idx[7:4]가 0x0, 0x4, 0x8, 0xC가 아닐 경우
15 0xE
16 0x2, 0xA, 0xD, 0x5
0x9 K_idx[4]가 1, K_idx[6:4]가 6일 경우
도 3은 본 발명의 실시예에 따른 인터리버의 블록 구성을 도시하고 있다.
도시된 바와 같이, 인터리버는 카운터(300), 독출 어드레스 생성부(310) 및 인터리버 메모리(320)를 포함한다. 그리고, 상기 독출 어드레스 생성부(310)는 K 인덱스 발생부(312), 판단부(314) 및 어드레스 생성부(316)를 포함하여 구성된다.
도 3을 참조하면, 먼저 기록모드시 카운터(300)는 입력되는 클럭(clock)에 응답하여 카운팅을 수행하며, 상기 카운팅 값을 인터리버 메모리(320)의 기록(write) 어드레스로 출력한다. 상기 기록모드시 상기 인터리버 메모리(320)는 상기 카운터(300)로부터의 기록 어드레스에 따라 입력데이터를 순차로 저장한다.
독출모드시, 독출 어드레스 생성부(310)는 입력되는 클럭(clock)에 응답하여 상기 인터리버 메모리(320)에 저장된 데이터를 퍼뮤테이션(permutation)하기 위한 독출(read) 어드레스를 발생한다. 상기 독출모드시, 상기 인터리버 메모리(320)는 상기 독출 어드레스 생성부(310)로부터의 독출 어드레스에 따라 저장된 데이터를 랜덤하게 출력한다. 이와 같이, 기록모드시 데이터를 순차로 저장하고 독출모드시 데이터를 랜덤하게 출력하거나, 다른 예로 기록모드시 데이터를 랜덤하게 저장하고 독출모드시 저장된 데이터를 순차로 출력할 수도 있다.
본 발명의 핵심 구성인 상기 독출 어드레스 생성부(310)에 대해 상세히 살펴보면 다음과 같다.
먼저, K 인덱스 발생부(312)는 카운터를 포함하며, 기본적으로 외부로부터 제공되는 클럭에 응답하여 k인덱스를 '1'만큼 카운팅하여 출력하고, 판단부(314)로부터 스킵(skip)신호가 입력될 경우 상기 k 인덱스를 '2'만큼 카운팅하여 출력한다.
상기 판단부(314)는 상기 표 3과 같은 룩업테이블을 포함하며, 상기 K 인덱스 발생부(312)로부터 발생되는 k 인덱스가 특정 규칙(표 3)을 만족하는지 판단하고, 상기 특정 규칙을 만족하는 경우 상기 K인덱스 발생부(312)로 상기 스킵신호를 발생한다. 다시 말해, 상기 판단부(314)는 앞으로 발생될 k인덱스가 폐기될 k인덱스인지 판단하고, 폐기될 인덱스라고 판단되면 해당 인덱스를 스킵(skip)하기 위한 신호를 상기 K인덱스 발생부(312)로 발생한다.
어드레스 생성부(316)는 상기 표 2와 같은 룩업테이블을 포함하며, 상기 K인덱스 발생부(312)로부터의 k인덱스 및 상기 룩업테이블로부터 획득된 m과 J 값을 가지고 소정 연산을 수행하여 상기 독출 어드레스를 발생한다. 여기서, 상기 소정 연산은 예를 들어 상기 <수학식 2>와 같다.
상술한 바와 같이, 본 발명에 따른 인터리버 장치는 소정 연산에 의해 발생되는 어드레스 중 폐기되는 어드레스가 일정한 규칙이 있다는 사실에 기초하여, 사전에 해당 어드레스에 대응하는 값이 카운팅되지 않도록 하는 것을 특징으로 한다.
도 4는 본 발명의 실시예에 따른 인터리버에서 독출 어드레스를 생성하기 위한 절차를 도시하고 있다.
도 4를 참조하면, 먼저 인터리버는 401단계에서 인코딩 패킷 크기에 따라 m과 J 값을 결정한다. 상기 m과 J 값은 <표 2>와 같은 미리 정해진 테이블을 통해 획득된다. 예를 들어, 인코딩 패킷 크기가 '2400'이라 할 때, 상기 m과 J는 각각 11과 4로 결정된다.
상기 m과 J 값을 결정한 후, 상기 인터리버는 403단계로 진행하여 독출 어드레스의 인덱스에 관련된 i 인덱스 및 k 인덱스를 '0'으로 초기화한다. 그리고, 상기 인터리버는 405단계에서 상기 k 인덱스를 가지고 다음 <수학식 3>과 같은 연산을 수행하여 독출(read) 어드레스 Ai를 생성한다. 이렇게 생성된 독출 어드레스 Ai는 인터리버 메모리에 순차로 저장된 데이터를 랜덤하게 독출하는데 사용된다.
Figure 112006009546138-PAT00003
여기서, m과 J는 인코딩 패킷 크기에 따라 결정되는 변수들이고, BRO(H)는 H 를 비트 역상순(bit reverse ordering)하기 위한 함수이다. 또한, "mod"와 "/"는 각각 나머지와 몫을 구하는 모듈로 연산(modulo operation)과 디바이더 연산(divider operation)을 나타낸다.
i번째 독출 어드레스를 생성한 후, 상기 인터리버는 407단계에서 상기 i 인덱스가 (N-1)와 같은지를 검사한다. 즉, 독출 어드레스를 모두 생성하였는지를 검사한다. 상기 i 인덱스가 (N-1)보다 작으면 상기 인터리버는 409단계로 진행하고, 상기 i 인덱스가 (N-1)와 같으면 상기 인터리버는 본 알고리즘을 종료한다.
한편, 상기 인터리버는 상기 409단계에서 상기 k 인덱스가 특정 규칙(예 : 표 3)을 만족하는지 판단한다. 즉, 상기 인터리버는 다음 k인덱스가 폐기될 인덱스인지 판단한다. 만일, 다음 k 인덱스가 유효한 인덱스이면, 상기 인터리버는 413단계로 진행하여 상기 k 인덱스와 상기 i 인덱스를 '1'만큼 증가한 후 다음 독출 어드레스를 생성하기 위해 상기 405단계로 되돌아간다.
만일, 다음 k 인덱스가 폐기될 인덱스이면, 상기 인터리버는 411단계로 진행하여 다음 k 인덱스를 스킵하기 위해 상기 k 인덱스를 '2'만큼 증가하고, 상기 i 인덱스를 '1'만큼 증가한 후 다음 독출 어드레스를 생성하기 위해 상기 405단계로 되돌아간다.
이와 같이, 본 발명은 폐기될 독출 어드레스를 미리 인지하여 당초 생성되지 않도록 한다. 상술한 도 2와 같은 서브 블록 인터리빙을 가정하고, 서브블록 당 데이터 사이즈(N)를 '2400'이라 가정할 때, 기존 방식은 2400개의 유효한 독출 어드 레스들을 획득하기 위해 3072(210×3)개의 클럭이 필요하지만, 본 발명은 2400개의 클럭으로 유효한 독출 어드레스들을 모두 발생시킬 수 있다. 또한, 서브블록들의 인터리빙을 병렬로 진행한다면, 기존에 필요했던 3076×6의 클럭을 단 2400 클럭으로 줄일 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 가령, 상술한 본 발명의 실시예는 인터리버를 예를 들어 설명하고 있지만, 인터리버의 역동작을 행하는 디인터리버(deinterleaver)에도 동일하게 적용된다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이, 본 발명은 인터리버 및 디인터리버 동작을 위해 발생되는 어드레스 중에서 폐기되는 어드레스가 일정한 규칙(rule)이 있다는 사실에 기초하여, 사전에 해당 어드레스에 대응하는 값이 카운팅되지 않도록 함으로써, 인터리빙/디인터리빙에 필요한 클럭 개수를 줄일 수 있는 이점이 있다. 즉, 본 발명은 인터리빙/디인터리빙 수행 시간을 획기적으로 줄일 수 있는 이점이 있다. 또한, 독출 어드레스의 발생 주기를 일정하게 함으로써 하드웨어의 복잡성을 제거할 수 있는 이점이 있다.

Claims (9)

  1. 인터리빙 장치에 있어서,
    다음 발생될 k인덱스가 폐기 인덱스인지 판단하고, 상기 폐기 인덱스이면 스킵신호를 발생하는 판단부와,
    클럭에 응답하여 상기 k인덱스를 '1'만큼 증가하여 출력하고, 상기 스킵신호가 감지되면 상기 k인덱스를 '2'만큼 증가하여 출력하는 인덱스 발생부와,
    상기 인덱스 발생부로부터의 k인덱스를 가지고 소정 연산을 수행하여 인터리빙을 위한 어드레스를 발생하는 어드레스 생성부를 포함하는 것을 특징으로 하는 장치.
  2. 제1항에 있어서,
    상기 판단부는 폐기 인덱스들의 바로 이전 인덱스들에 대한 규칙이 기록된 룩업테이블을 포함하는 것을 특징으로 하는 장치.
  3. 제1항에 있어서,
    상기 소정 연산은 하기 수식과 같은 것을 특징으로 하는 장치.
    Figure 112006009546138-PAT00004
    여기서, m과 J(J는 2의 배수)는 인코딩 패킷 크기에 따라 결정되는 변수들이고, BRO(H)는 H를 비트 역상순(bit reverse ordering)하기 위한 함수임.
  4. 제1항에 있어서, 상기 어드레스 생성부는,
    인코딩 패킷 크기에 따른 m과 j(j는 2의 배수)를 제공하는 룩업테이블과,
    상기 룩업테이블로부터 획득되는 m 과 J값 그리고 상기 인덱스 발생부로부터의 k인덱스를 가지고 하기 수식과 같은 연산을 수행하여 인터리빙을 위한 어드레스를 발생하는 연산부를 포함하는 것을 특징으로 하는 장치.
    Figure 112006009546138-PAT00005
    여기서, BRO(H)는 H를 비트 역상순(bit reverse ordering)하기 위한 함수임.
  5. 제1항에 있어서,
    입력 데이터를 순차로 저장하며, 상기 어드레스 생성부로부터의 어드레스에 따라 상기 저장된 데이터를 랜덤하게 출력하는 인터리버 메모리를 더 포함하는 것을 특징으로 하는 장치.
  6. 인터리빙 방법에 있어서,
    클럭에 응답하여 k인덱스를 '1'만큼 증가하여 발생하며, 다음 발생될 k인덱스가 폐기 인덱스이면 상기 k인덱스를 '2'만큼 증가하여 발생하는 과정과,
    상기 발생된 k인덱스를 가지고 소정 연산을 수행하여 인터리빙을 위한 어드레스를 생성하는 과정을 포함하는 것을 특징으로 하는 방법.
  7. 제5항에 있어서,
    상기 소정 연산은 하기 수식과 같은 것을 특징으로 하는 방법.
    Figure 112006009546138-PAT00006
    여기서, m과 J(J는 2의 배수)는 인코딩 패킷 크기에 따라 결정되는 변수들이고, BRO(H)는 H를 비트 역상순(bit reverse ordering)하기 위한 함수임.
  8. 인터리빙 방법에 있어서,
    입력 데이터를 순차로 메모리에 저장하는 과정과,
    클럭에 응답하여 k인덱스를 '1'만큼 증가하여 발생하며, 다음 발생될 k인덱 스가 폐기 인덱스이면 상기 k인덱스를 '2'만큼 증가하여 발생하는 과정과,
    상기 발생된 k인덱스를 가지고 소정 연산을 수행하여 어드레스를 생성하는 과정과,
    상기 어드레스를 따른 데이터를 상기 메모리로부터 독출하는 과정을 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 소정 연산은 하기 수식과 같은 것을 특징으로 하는 방법.
    Figure 112006009546138-PAT00007
    여기서, m과 J(J는 2의 배수)는 인코딩 패킷 크기에 따라 결정되는 변수들이고, BRO(H)는 H를 비트 역상순(bit reverse ordering)하기 위한 함수임.
KR1020060012440A 2006-02-09 2006-02-09 통신시스템에서 인터리빙 장치 및 방법 KR20070080921A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060012440A KR20070080921A (ko) 2006-02-09 2006-02-09 통신시스템에서 인터리빙 장치 및 방법
US11/704,168 US20070220377A1 (en) 2006-02-09 2007-02-08 Interleaving apparatus and method in communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060012440A KR20070080921A (ko) 2006-02-09 2006-02-09 통신시스템에서 인터리빙 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20070080921A true KR20070080921A (ko) 2007-08-14

Family

ID=38519413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060012440A KR20070080921A (ko) 2006-02-09 2006-02-09 통신시스템에서 인터리빙 장치 및 방법

Country Status (2)

Country Link
US (1) US20070220377A1 (ko)
KR (1) KR20070080921A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10009042B2 (en) 2014-03-14 2018-06-26 Samsung Electronics Co., Ltd. Method and apparatus for controlling interleaving depth

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266508B2 (en) 2007-06-08 2012-09-11 Telefonaktiebolaget L M Ericsson (Publ) Computational efficient convolutional coding with rate matching
CN101710850B (zh) * 2008-12-26 2013-10-30 三星电子株式会社 卷积Turbo编码方法及实现编码方法的设备
US8390485B2 (en) * 2011-03-21 2013-03-05 Viasat, Inc. Subset transform interleaver
KR101286021B1 (ko) * 2012-02-02 2013-07-19 주식회사 이노와이어리스 인터리버 인덱스 생성장치 및 방법
US9419952B2 (en) * 2014-06-05 2016-08-16 Stmicroelectronics (Grenoble 2) Sas Memory encryption method compatible with a memory interleaved system and corresponding system
US10122495B2 (en) * 2015-11-25 2018-11-06 National Instruments Corporation Flexible polynomial-based interleaver

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001005040A1 (en) * 1999-07-13 2001-01-18 Samsung Electronics Co., Ltd. Address generating device for use in multi-stage channel interleaver/deinterleaver
US6510182B1 (en) * 1999-10-25 2003-01-21 Freesystems Pte. Ltd. Wireless infrared digital audio system
US6954885B2 (en) * 2001-12-14 2005-10-11 Qualcomm Incorporated Method and apparatus for coding bits of data in parallel
US7051229B2 (en) * 2002-12-03 2006-05-23 Alcatel Canada Inc. Logical bus overlay for increasing the existing system bus data rate
US7089369B2 (en) * 2003-03-31 2006-08-08 Sun Microsystems, Inc. Method for optimizing utilization of a double-data-rate-SDRAM memory system
US8144800B2 (en) * 2004-09-18 2012-03-27 Broadcom Corporatino Downstream transmitter and cable modem receiver for 1024 QAM

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10009042B2 (en) 2014-03-14 2018-06-26 Samsung Electronics Co., Ltd. Method and apparatus for controlling interleaving depth
US10693501B2 (en) 2014-03-14 2020-06-23 Samsung Electronics Co., Ltd. Method and apparatus for controlling interleaving depth
US11018699B2 (en) 2014-03-14 2021-05-25 Samsung Electronics Co., Ltd. Method and apparatus for controlling interleaving depth

Also Published As

Publication number Publication date
US20070220377A1 (en) 2007-09-20

Similar Documents

Publication Publication Date Title
KR100711326B1 (ko) 선형 합동 시퀀스들을 이용한 터보 코드 인터리버
EP1045521B1 (en) Rate matching and channel interleaving for a communications system
US8543884B2 (en) Communications channel parallel interleaver and de-interleaver
US6854077B2 (en) Apparatus and method for providing turbo code interleaving in a communications system
KR20070080921A (ko) 통신시스템에서 인터리빙 장치 및 방법
KR100526512B1 (ko) 이동 통신시스템의 직렬 쇄상 컨볼루션 부호화를 위한 인터리빙장치 및 방법
AU759580B2 (en) 2-dimensional interleaving apparatus and method
KR100739910B1 (ko) 부호화 장치, 복호화 장치
AU746913B2 (en) Address generator and address generating method for use in a turbo interleaver/deinterleaver
KR20000042786A (ko) 통신시스템의인터리빙/디인터리빙장치및방법
KR101435830B1 (ko) 인터리빙 수행 방법
JP2009533796A (ja) 消失支援ブロックコードデコーダおよびこれに関する方法
WO2004002046A2 (en) Method of interleaving/deinterleaving in a communication system
US6889353B2 (en) Method and arrangement for decoding convolutionally encoded code word
KR100830500B1 (ko) 터보 인터리버에서의 터보 인터리버 어드레스 출력 방법 및 그 장치
JP3515701B2 (ja) 符号化処理装置およびレピティション方法
WO2021044765A1 (ja) 通信システム及び通信方法
KR100362557B1 (ko) 이차원 인터리빙 장치 및 방법
KR20100117193A (ko) 광대역 무선 통신 시스템의 채널 부호화 장치

Legal Events

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