KR101110201B1 - 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치 - Google Patents
통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치 Download PDFInfo
- Publication number
- KR101110201B1 KR101110201B1 KR1020070110144A KR20070110144A KR101110201B1 KR 101110201 B1 KR101110201 B1 KR 101110201B1 KR 1020070110144 A KR1020070110144 A KR 1020070110144A KR 20070110144 A KR20070110144 A KR 20070110144A KR 101110201 B1 KR101110201 B1 KR 101110201B1
- Authority
- KR
- South Korea
- Prior art keywords
- square matrix
- latin square
- size
- interleaving
- latin
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/2771—Internal interleaver for turbo codes
- H03M13/2775—Contention or collision free turbo code internal interleaver
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/01—Equalisers
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)
Abstract
본 발명은 통신시스템에서 병렬구조 인터리빙 방법 및 장치에 관한 것으로, 통신시스템에서 병렬구조기반의 라틴방진 행렬을 이용한 인터리빙 방법에 있어서, 입력되는 정보 비트들을 병렬처리 차수(L)에 따라 서브블록으로 분리하는 과정과, 상기 병렬처리 차수(L)를 기설정된 임계치와 비교하는 과정과, 상기 병렬처리 차수(L)가 기설정된 임계치보다 클 시, 상기 병렬처리 차수(L)보다 작은 상수 크기의 라틴 방진 행렬을 크기의 라틴 방진 행렬로 확장하는 과정과, 상기 크기의 라틴 방진 행렬을 이용하여 각 서브블록으로 분리된 정보비트를 독출하여 인터리빙을 수행하는 과정을 포함하여, 인터리버를 최적화하기 위해 고려해야 할 경우의 수가 다른 인터리버에 비해 상당히 적은 이점이 있다. 또한 다른 충돌방지 인터리버와 거의 같은 성능을 보여 주며 특히 높은 신호 대 잡음비(Eb/No)에서 프레임 오류율(Frame Error Rate: FER)성능이 개선된다.
병렬 인터리빙, 서브블록, 라틴방진, 터보부호.
Description
본 발명은 통신시스템에서의 채널 부호화에 관한 것으로, 특히 통신시스템에서 병렬처리 구조에 기반한 라틴방진(Latin Square) 인터리빙(interleaving) 방법 및 장치에 관한 것이다.
최근 이동통신이나 무선 데이터 통신에서 점점 높은 데이터 전송률이 필요하게 되면서 통신 대역폭 효율이나 신뢰도에 대한 요구조건이 높아지고 있다. 특히, 디지털 데이터를 송ㆍ수신하거나 저장매체를 통한 기록 및 판독, 오디오나 영상 같은 멀티미디어를 재생하는 과정에서 여러 요인에 의해 디지털 데이터에 오류가 발생하게 된다. 이러한 오류를 정정하거나 오류를 줄일 수 있는 오류제어(Error Control) 기법이 현재까지 많이 연구되어 오고 있는데 이러한 기술에는 대표적으로 오류정정부호(Forward Error Correction: 이하 "FEC"라 칭함)와 자동 재전송 요 구(Automatic Repeat reQuest: 이하 "ARQ"라 칭함) 프로토콜이 있다. 상기 FEC 기법 중 하나가 터보부호가 있으며, 순환 테일 바이팅(circular tail-biting) 부호화 기법과 더불어 터보부호의 병렬처리 기법에 관한 연구가 활발히 이루어져 오고 있다.
도 1은 터보 복호화기의 병렬처리 기법에 관한 블록도이다. 전체 블록의 크기 또는 인터리버의 크기를 N이라고 할 때, L개의 서브블록으로 분할되어 병렬처리가 수행된다. 이때, 각 블록의 크기는 M(=N/L)이 된다. 각 블록은 독립된 프로세서 1 내지 프로세서 L 제어하에 메모리로부터 데이터 정보를 받아 동시에 복호화 과정을 진행하게 된다. 이때, 각 프로세서들은 인터리버 또는 디인터리버(deinterleaving)에 의해 정해진 인터리빙 규칙에 따라 데이터 정보를 받게 된다.
도 2는 4개의 서브블록으로 구성된 병렬처리 기반의 복호화 과정에서 충돌이 일어나는 예시도이다. 상기 도 1에서 상술한 바와 같이, 각 프로세서들은 인터리빙 규칙에 따라 해당 메모리로부터 데이터 정보비트를 독출하여 인터리빙을 수행한다. 상기 도 2를 참조하면, 두 개의 프로세서, 즉 프로세서 1과 프로세서 2가 동시에 첫 번째 메모리부터 정보를 독출하는 경우를 보여주고 있다. 한번에 하나의 정보만 접근이 가능하므로 두 프로세서에서 정보를 독출하기 위해 두 번의 접근 시간을 필요로 하며 이 경우를 충돌(200)이라고 한다. 이러한 충돌은 병렬 처리의 효율을 떨어트리며 이러한 충돌을 방지하기 위한 다양한 충돌 방지 인터리버들이 제안되어 오고 있다.
베로우(Berrou)는 ARP(Almost Regular Permutation)을 제안하고 있다. 상기 ARP는 서로소(relative prime) 특성을 이용한 인터리버에 비규칙성을 추가한 인터리버로써, <수학식 1>과 같이 정의된다.
여기서, π(k)는 인터리버의 인터리빙 규칙으로써, 각 프로세서들이 메모리로부터 데이터 정보를 독출하는 순열을 나타낸다. 그리고, P는 N과 서로 소이고, L은 병렬 처리의 차수이며, 는 초기 설정 값이다. 에서 α(k)와 β(k)는 주기 L을 갖는 양의 정수이다. 일반적으로 α(k)는 0과 1 사이의 값을 갖으며 β(k)는 0부터 8 사이의 값을 갖는다. ARP는 IEEE 802.16, DVB-RCS((Digital Video Broadcast-Return Channel Satellite) 그리고, DVB-RCT(Digital Video Broadcast-Return Channel Terrestrial)등 다양한 표준에 인터리버(interleaver)로 채택되고 있으며 3GPP2(3rd Generation Partnership Project2)의 표준을 위한 인터리버로 제안되고 있다.
또 다른 충돌 방지 인터리버로써, QPP(Quadratic Permutation Polynomial) 인터리버는 대수학(algebra)적인 방법으로 접근한다. 상기 QPP는 최대 충돌 방지 인터리버, 즉 블록크기 N을 나누는 모든 서브블록 크기 M에 대하여 충돌 방지 조건을 만족하는 인터리버이다. 상기 QPP 인터리버는 <수학식 2>와 같이 정의된다.
여기서, π(k)는 인터리버의 인터리빙 규칙이고, f1과 f2는 양의 정수들이며 f1과 f2가 가져야 할 조건들에 대한 설명은 상기 <문헌 2>을 참조하기로 한다.
그외, 기존에 설계된 짧은 길이의 인터리버를 이용하여 각 서브블록 내에서의 섞는 순서를 정하고 라틴방진 행렬을 이용한 인터리버가 있다. L×L 크기의 라틴방진 행렬은 서로 다른 L개의 심볼로 이루어져 있으며 모든 행과 모든 열이 각각 개의 심볼이 한 번씩 나타나는 행렬이다. 이런 라틴방진이 반복되는 형태로 M×L 행렬 U를 정할 수 있으며 이 행렬이 라틴방진 인터리버이다. 라틴방진 인터리버는 하기 <수학식 3>으로 정의 된다.
여기서, π(k)는 인터리버의 인터리빙 규칙이고, πT(t)는 기존에 설계된 서브블록 인터리버이고, uts는 행렬 U에서 t 번째 행과 s 번째 열에 있는 원소이고, M 은 서브블록의 크기이다. 그리고, k = sㆍM + t으로 계산된다.
일반적인 시스템에 병렬처리 구조의 터보부호를 설계하기 위해서는 시스템에서 지원하는 다양한 크기의 블록에 대하여 여러 차수의 병렬처리가 가능하도록 설계되어야 한다. 이를 위하여 각 제안된 인터리버들은 최적화 단계를 거쳐야 한다.
상기 <문헌 1>의 종래 기술인 ARP의 경우 최적화 단계 시 고려해야 할 경우의 수를 살펴보면, 초기 설정 값 와 α값이 정해지고 k(mod L)=0인 β(k)는 0 값을 가지고 나머지 k(mod L)≠0인 β(k)는 0부터 8 사이의 값을 갖는다고 가정할 시, 약 |P|ㆍ8L-1가지의 경우의 수를 고려해야 한다. 여기서 |x|는 x의 카디널러티(cardinality)를 의미한다.
상기 <문헌 2>의 종래 기술인 QPP의 경우 블록 길이 N에 따라 총 두 가지의 설계 방법이 존재한다. N이 4로 나눠지는 경우를 고려할 시 f1은 N과 서로 소인 양의 정수 값이며, f2는 N을 소수의 곱의 형태로 표시할 경우 그 소수들을 원소로 가지고 있는 양의 정수 값들이다. 그러므로, 총 |f1|ㆍ|f2|가지의 경우의 수가 존재한다.
마지막으로 라틴방진 인터리버의 경우에서 L=4인 경우 4×4 크기의 라틴방진 행렬은 총 576가지 경우의 수가 존재하며 축소된 라틴방진 행렬(reduced Latin square), 즉 첫 번째 행이 (0,1,2,3)으로 고정되어 있는 경우를 고려하면 총 24가 지 경우의 수가 있고, 이 중 분포가 좋은 12개만 고려하면 된다. 따라서, 상기 라틴방진 인터리버는 상기 <문헌 1>, <문헌 2>에 기술된 인터리버보다 고려해야할 경우의 수가 적다.
하지만, 일반적으로 작은 블록이나 중간 블록 크기의 터보부호의 경우 병렬처리 차수가 4이며 중간 블록이나 큰 블록의 크기의 경우 병렬처리 차수가 4보다 큰 8이나 12이다. 하기 <표 1>은 3가지 경우에 대해 각 인터리버들이 최적화를 위해 고려해야 할 경우의 수를 나타내고 있다.
N=320, L=4 | N=640, L=4 | N=1024, L=8 | |
ARP 인터리버 | 40960 | 81920 | 1073741824 |
QPP 인터리버 | 15200 | 55360 | 261632 |
기존 라틴방진 인터리버 | 12 | 12 | 23309006400 |
상기 <표 1>을 보면, QPP의 경우 ARP에 비해 상대적으로 적은 양의 고려해야 할 경우의 수가 있지만 라틴방진 인터리버보다 상당히 많은 경우를 고려해야 한다. 상기 라틴방진 인터리버의 경우 L=4 일 때는 전체 블록크기에 상관없이 12가지 경우만 고려해야 하지만 L=8인 경우 고려해야 할 경우의 수가 기하급수적으로 증가하는 단점이 있다.
본 발명은 상기한 문제점을 해결하기 위해 제안된 것으로, 본 발명은 병렬처리 차수(L) 및 블록크기(N)에 상관없이 인터리버를 최적화하기 위한 경우의 수를 줄이면서 성능이 좋은 충돌방지 인터리버 방법 및 장치를 제안한다.
상기한 과제를 달성하기 위한 본 발명의 제 1 견지에 따르면, 통신시스템에서 병렬구조기반의 라틴방진 행렬을 이용한 인터리빙 방법에 있어서, 입력되는 정보 비트들을 병렬처리 차수(L)에 따라 서브블록으로 분리하는 과정과, 상기 병렬처리 차수(L)를 기설정된 임계치와 비교하는 과정과, 상기 병렬처리 차수(L)가 기설정된 임계치보다 클 시, 상기 병렬처리 차수(L)보다 작은 상수 크기의 라틴 방진 행렬을 크기의 라틴 방진 행렬로 확장하는 과정과, 상기 크기의 라틴 방진 행렬을 이용하여 각 서브블록으로 분리된 정보비트를 독출하여 인터리빙을 수행하는 과정을 포함하는 것을 특징으로 한다.
상기한 과제를 달성하기 위한 본 발명의 제 2 견지에 따르면, 통신시스템에서 병렬구조기반의 라틴방진 행렬을 이용한 인터리빙 장치에 있어서, 입력되는 정보 비트들을 병렬처리 차수(L)에 따라 서브블록으로 분리하고, 상기 병렬처리 차수(L)를 기설정된 임계치와 비교하여, 상기 병렬처리 차수(L)가 기설정된 임계치보다 클 시, 상기 병렬처리 차수(L)보다 작은 상수 크기의 라틴 방진 행렬을 크기의 라틴 방진 행렬로 확장하고, 상기 크기의 라틴 방진 행렬을 이용하여 각 서브블록으로 분리된 정보비트를 독출하여 인터리빙을 수행하는 프로세서를 포함하는 것을 한다.
상술한 바와 같이, 본 발명의 통신시스템에서 병렬처리 차수에 따라 라틴방진 인터리버를 구성하여 인터리빙을 수행함으로써, 인터리버를 최적화하기 위해 고려해야 할 경우의 수가 다른 인터리버에 비해 상당히 적은 이점이 있다. 또한 다른 충돌방지 인터리버와 거의 같은 성능을 보여 주며 특히 높은 신호 대 잡음비(Eb/No)에서 프레임 오류율(Frame Error Rate: FER)성능이 개선된다. 그리고, 서브블록 인터리버로 기존에 설계된 어떠한 형태의 인터리버든지 사용가능하다.
이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, 본 발명은 무선통신 시스템에서 메모리 충돌을 방지하지 하면서 병렬처리 차수에 따라 기본 라틴방진(Latin Square) 행렬로부터 확장된 라틴방진 행렬 을 구성하여 인터리빙(interleaving)을 수행하는 방법 및 장치에 대해 설명하기로 한다.
도 3은 본 발명의 실시 예에 따른 병렬구조 기반의 라틴방진 행렬을 이용한 인터리빙을 수행하는 흐름도를 도시하고 있다.
상기 도 3을 참조하면, 먼저 송신기는 300 단계에서 시스템이 요구하는 병렬처리 차수(L)에 따라 전체 데이터 블록(N)을 L개의 서브블록으로 분할한다. 여기서, 상기 각각의 서브블록 크기는 M(=N/L)이 된다.
이후, 상기 송신기는 302 단계에서 병렬처리 차수(L)가 정의된 임계치보다 큰지를 확인하여, 상기 병렬처리 차수(L)가 임계치보다 작을 시 310 단계로 진행하여 기존 라틴방진 인터리버(종래기술 설명된 라틴방진 인터리버 참조)를 사용하여 인터리빙을 수행한다. 이는 상기 기존 라틴방진 인터리버는 전체 데이터 블록 크기(N)와 병렬처리 차수(L)가 커질수록 다른 인터리버(예: <문헌 1>, <문헌 2> 참조)와 비교하여 인터리버를 최적화하기 위한 경우의 수가 기하 급수적으로 증가한다. 반면, 병렬처리 차수(L)가 정의된 임계치보다 작을 경우에는 다른 인터리버(예: <문헌 1>, <문헌 2> 참조)에 비교하여 인터리버를 최적화하기 위한 경우의 수가 훨씬 적다.
만약, 상기 302 단계에서 상기 병렬처리 차수(L)가 임계치보다 클 시 상기 송신기는 304 단계로 진행하여 크기의 라틴방진 행렬을 구성한다. 여기서, 은 병렬처리 차수(L)보다 작은 상수로써 L과 은 서로 소가 아니다(즉, L은 의 배수임). 상기 라틴방진 행렬은 의 서로 다른 기호를 써서 행 열의 정사각형으로 늘어놓을 때 각 행 각 열에 어느 기호도 꼭 한 개씩만 나타나는 행렬이다. 하기 <수학식 4>는 라틴방진 행렬을 나타내고 있다.
여기서, u l은 라틴방진 행렬이고, ai ,j는 u l의 i행 j열의 원소를 나타낸다. 인터리버를 최적화하기 위한 경우의 수를 줄이기 위해서, u l의 첫 행을 값으로 설정하여 라틴방진 행렬을 구성할 수 있고, 이와 같은 형태를 축소된 라틴방진 행렬이라고 하며 이외에도 다양하게 라틴방진 행렬을 구성할 수 있다.
이후, 상기 송신기는 306 단계로 진행하여 라틴방진 행렬로부터 확장 라틴방진 행렬을 생성한다. 여기서, 상기 <수학식 4>의 기본 라틴방진 행렬로부터 크기의 확장된 라틴방진 행렬은 상기 <수학식 5>로 나타낼 수 있다. 여기서, n은 라틴방진 행렬(u l)을 시스템이 요구하는 크기의 라틴방진 행렬(u L)로 변 환하기 위한 파라미터로 칭한다.
상기 <수학식 5>를 보면, 라틴방진 행렬 u l이 있을 때 (u l)(n)은 확장된 라틴방진 행렬 u nㆍl로 확장된다. 여기서, 이고, 이다. 상기 <수학식 5>에 의해 확장된 행렬은 각 행과 열마다 서로 다른 L개의 심볼이 치환된 형태가 되므로 라틴방진 행렬이 된다. ul이 축소된 형태가 된다면 u L 또한 축소된 형태가 된다. 상세한 설명은 하기 도 4에서 설명하기로 한다.
이후, 상기 송신기는 308 단계에서 확장된 라틴방진 행렬을 이용하여 각각 서브블록 단위의 인터리빙 결과를 병합하여 전체 인터리빙을 수행한다.
이후, 송신기는 본 발명의 인터리빙 절차를 종료한다.
상기 도 3에서 상술한 바와 같이, 발명의 라틴방진 인터리버의 설계방법에서 시스템이 요구하는 병렬처리 차수가 높은 경우 작은 크기의 기본 라틴방진 행렬로부터 시스템이 요구하는 크기를 가지는 라틴방진 행렬들로 확장하여 생성한다. 그리고, 생성된 확장 라틴방진 행렬들로부터 라틴방진 인터리버들을 구성하여 최적의 성능을 산출하는 인터리버를 선택한다. 서브블록 인터리버의 경우 기존에 설계된 인터리버 사용이 가능하며 필요에 따라 변형될 수 있다.
도 4는 본 발명의 실시 예에 따른 기본 라틴방진 행렬로부터 확장된 라틴방진 행렬을 구성하는 흐름도를 도시하고 있다.
상기 도 4를 참조하면, 인터리버는 400 단계에서 i,j,n 값을 초기화한다. 여기서, i는 시간 인덱스이고, j는 병렬처리 인덱스이고, n은 축소된 라틴방진 행렬을 시스템이 요구하는 크기의 라틴방진 행렬로 변환하기 위한 파라미터이다. 구현에 따라서, j가 시간 인덱스로, i가 병렬처리 인덱스로 정의될 수 있다.
이후, 상기 인터리버는 402 단계에서 시스템에서 요구하는 라틴방진 행렬의 행 (또는 열) 크기 만큼 반복수행하기 위한 카운트(count)를 0으로 초기화한다.
이후, 상기 인터리버는 404 단계에서 축소 라틴방진 행렬의 행(또는 열)(0, 1, 2, ...,l-1)의 순열로부터 를 이용하여 확장 라틴방진 행렬의 행(또 는 열)을 확장한다. 여기서, k는 이다.
예를 들면, 상기 <수학식 4>의 라틴방진 행렬의 첫 행(a11 a12 ... al)을 상기 <수학식 5>의 확장 라틴방진 행렬의 첫 행(a11 a12 ... a1l a11 (1) a12 (1)... a1l (1) a11 (2) a12 (2)... a1l (2) .... a11 (n) a12 (n)... a1l (n))처럼 확장한다. 마찬가지로, 두 번째 행부터 L 번째 행까지도 정의된 상기 <수학식 5>에 의해 확장된다.
이후, 상기 인터리버는 406 단계에서 생성된 행(또는 열)을 카운트 번째 행(또는 열)으로 저장한다.
이후, 상기 인터리버는 408 단계에서 카운트 값을 하나 증가시키고 410 단계에서 카운트 값이 병렬처리 차수(L)보다 큰지를 확인하여, 카운트 값이 병렬처리 차수(L)보다 클 시 종료하고, 카운트 값이 병렬처리 차수(L)보다 작을 시 404 단계로 진행함으로써, 시스템에서 요구하는 라틴방진 행렬의 행(또는 열) 크기 만큼 반복수행하게 된다. 따라서, 병렬처리 차수(L)에 따라 404 단계 내지 408 단계를 반복수행함으로써 상기 <수학식 5>처럼 확장 라틴방진 행렬을 생성하게 된다. 구현에 따라서, 행 또는 열 단위가 아닌 행렬단위로 처리할 수도 있다.
이후, 본 발명의 알고리즘을 종료한다.
병렬처리 차수가 4인 경우를 가정하여 확장 라틴방진 행렬 예를 설명하기로 한다. 먼저, 병렬처리 차수(L)이 4인 4×4 축소된 라틴방진 행렬을 <수학식 6>에 나타내고 있다.
여기서, u 4는 축소한 형태이기 때문에 첫 행은 항상 값을 가진다. (0 1 2 3)은 <수학식 5>를 통해 u 4로부터 u 8을 확장할 수 있다. 확장한 u 8는 <수학식 7>과 같다.
여기서, u 8 의 첫 열(a11 a12 a13 a14 a11 (1) a12 (1) a13 (1) a14 (1) )은 (0 1 2 3 4(a11 (1)= a11 +k*l= 0+1*4) 5(a12 (1)= a12 +k*l= 1+1*4) 6(a13 (1)= a13 +k*l= 2+1*4) 7(a14 (1)= a14 +k*l= 3+ 1*4))=(0 1 2 3 4 5 6 7)이 되고, 두 번째 열은 ( a21 (1) a22 (1) a23 (1) a24 (1) a21 a22 a23 a24)은 (5(a21 (1)= a21 +k*l= 1+1*4) 6(a22 (1)= a22 +k*l= 2+1*4) 7(a23 (1)= a23 +k*l= 3+1*4) 4(a24 (1)= a24 +k*l= 0 + 1*4) 1 2 3 0) = (5 6 7 4 1 2 3 0)이 된다. 마찬가지로, 나머지 열의 원소들을 산출할 수 있다.
n이 3인 경우에 u 4는 하기 <수학식 8>과 같이 확장된다.
<수학식 6>에 의해 정의된 축소된 형태의 u4는 총 24가지 경우가 존재하며 u4는로부터의 확장된 <수학식 7>의 u8과 <수학식 8>의 u12 또한 각각 24가지의 경우의 수가 존재하게 된다. 따라서, 인터리빙을 최적화를 위해 고려해야 할 경우의 수가 병렬처리 차수와 상관없이 축소된 라틴방진 행렬에 따라 결정되어서 적은 것을 확인할 수 있다.
도 5는 본 발명에 따른 병렬처리 구조의 인터리빙를 수행하기 위한 장치를 도시하고 있다.
상기 도 5를 참조하면, 전체 데이터 블록은 병렬처리 차수(L)에 따라 몇 개 의 서브블록으로 분할된다. 각 서브블록으로 구성된 데이터 정보는 메모리 1 내지 메모리 L에 각각 저장된다. 서브블록 인터리버는 메모리 1 내지 메모리 L에 저장되어 있는 데이터 정보를 인터리빙 규칙에 따라 독출한다. 서브블록 인터리버의 경우 기존에 설계된 인터리버를 사용할 수 있으며, 각 서브블록 인터리버들은 같은 인터리빙 동작을 수행한다. 각 서브블록 인터리버에 의해 뒤섞인 데이터 정보비트들은 라틴방진 인터리버에 의해 블록간에 데이터를 병합하여 데이터를 출력하게 된다.
본 발명에서 라틴방진 인터리버는 병렬처리의 차수에 따라 설계 방법이 달라진다. 일반적으로 전체 데이터 블록 길이(N)이 작거나 중간 크기의 경우(대략 2000 이하) 작은 차수의 병렬 처리를 요구하며, 전체 데이터 블록 길이가 중간 크기이거나 큰 경우(대략 1000 이상)는 높은 차수의 병렬 처리를 요구한다. 즉, 작은 차수의 경우 기존 라틴방진 인터리빙 설계 방법에 따라 라틴방진 행렬을 구성한다. 하지만, 시스템이 요구하는 병렬처리 차수(L)이 큰 경우 크기의 축소된 라틴방진 행렬로부터 크기의 확장된 라틴방진 행렬을 구성한다. 여기서, 은 L보다 작은 정수로써 과 L은 서로소가 아니다(L은 의 배수로 표현됨). 크기의 축소된 라틴방진 행렬로부터 크기의 확장된 라틴방진 행렬을 구성하는 상세한 방법은 상기 도 4를 참조하기로 한다.
이처럼, 라틴방진 인터리버는 병렬처리의 차수에 따라 라팅방진 행렬을 구성하게 되면(<수학식 7>, <수학식 8>), 라틴방진 인터리버는 구성된 라팅방진 행렬에 따라 데이터를 인터리빙하게 된다.
여기서, 설계된 라틴방진 행렬은 반복되는 형태로 M×L행렬 U을 형성하며 <수학식 3>에 의해 인터리버 기능을 수행한다. 도 6은 <수학식 3>에 의해 정의된 라틴방진 인터리버의 실행 과정을 그린 블록 다이어그램이다. 예를 들어, 첫 번째 프로세서 1의 k 번째 위치(601)에서 메모리로부터 정보를 읽어 올 경우 행렬 U에 의해 정의된 ut0 번째 서브블록의 πT(t)번째 있는 정보를 읽어오게 된다. 두 번째 프로세서 2의 k 번째 위치는 ut1 번째 서브블록의 πT(t)번째 있는 정보를 읽어오게 된다. 마찬가지로, L개의 프로세서가 동시에 행렬 U에 의해 정의된 서브블록 위치로부터 πT(t) 번째 있는 정보를 동시에 읽어 옴으로서 병렬 처리가 수행된다. 라틴방진 행렬의 특성상 하나의 행 또는 열에서 같은 서브블록의 인덱스가 존재하지 않으므로, 메모리 충돌이 발생하지 않는다
도 7a는 본 발명에 다른 병렬처리의 차수가 4이고 전체 블록 길이 N이 640인 경우 라틴방진 인터리버와 ARP의 성능을 Eb/N0에 대하여 FER(Frame Error Rate)을 비교한 것이다. 여기서, ARP의 파라미터는 3GPP2의 표준화 작업에서 제안한 것을 사용하였다. ARP의 파라미터는 <수학식 9>와 같다.
라틴방진 인터리버의 경우 서브블록 인터리버로 길이 160의 3GPP 인터리버를 사용했고 라틴방진 행렬의 형태는 <수학식 10>과 같다.
전체 부호율은 1/3이며, 구성 길쌈 부호의 발생 행렬은 <수학식 11>과 같다. 복호 방법은 max log-MAP을 사용했으며 최대 8번 반복 복호를 하였고 복호 중 복호된 비트에 오류가 없을 경우 반복 복호를 종료하였다.
약 1.5 dB까지는 비슷한 성능을 보여 주고 있으며 그 이후로 ARP가 약간 좋은 성능을 보여 주고 있다. 하지만, ARP의 경우 약 2.25dB부터는 Eb/N0가 증가하더라도 성능이 거의 향상되지않고 라틴방진 인터리버의 경우 높은 신호 대 잡음비에서도 좋은 성능을 보여 주고 있다(700).
도 7b은 본 발명에 따른 병렬처리의 차수가 8이고 블록 길이 N이 1024인 경우 라틴방진 인터리버와 QPP의 성능을 Eb/N0에 대하여 FER을 비교한 것이다. QPP의 인터리버 파라미터는 <수학식 12>와 같다.
라틴방진 인터리버의 경우 서브블록 인터리버로 길이 128의 3GPP 인터리버를 사용했고 라틴방진 행렬의 형태는 <수학식 13>과 같다.
다른 모의실험 환경은 도 7a와 유사하다. 약 1.25dB 까지는 두 인터리버가 거의 비슷한 성능을 보여주고 있으며 그 이후로부터 약 1.8 dB까지는 QPP 인터리버 가 더 좋은 성능을 보여주고 있다. 하지만, QPP 인터리버는 Eb/N0가 증가하더라도 성능 향상이 적어 지게 된다. 제안된 라틴방진 인터리버의 경우 ARP의 경우와 마찬가지로 높은 신호 대 잡음비에서도 좋은 성능을 보여 주고 있다(702).
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 터보 복호화기의 병렬처리 기법에 관한 블록도,
도 2는 4개의 서브블록으로 구성된 병렬처리 기반의 복호화 과정에서 충돌이 일어나는 예시도,
도 3은 본 발명의 실시 예에 따른 병렬구조 기반의 라틴방진 행렬을 이용한 인터리빙을 수행하는 흐름도,
도 4는 본 발명의 실시 예에 따른 기본 라틴방진 행렬로부터 확장된 라틴방진 행렬을 구성하는 흐름도,
도 5는 본 발명에 따른 병렬처리 구조의 인터리빙를 수행하기 위한 장치도,
도 6은 본 발명에 따른 라틴방진 인터리버의 실행 과정 예시도,
도 7a는 병렬처리의 차수가 4이고 전체 블록 길이 N이 640인 경우 라틴방진 인터리버와 ARP의 성능을 Eb/N0에 대하여 FER을 비교한 성능 그래프 및,
도 7b은 병렬처리의 차수가 8이고 블록 길이 N이 1024인 경우 라틴방진 인터리버와 QPP의 성능을 Eb/N0에 대하여 FER을 비교한 성능 그래프.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070110144A KR101110201B1 (ko) | 2007-10-31 | 2007-10-31 | 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치 |
US12/290,391 US8201030B2 (en) | 2007-10-31 | 2008-10-30 | Method and apparatus for parallel structured Latin square interleaving in communication system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070110144A KR101110201B1 (ko) | 2007-10-31 | 2007-10-31 | 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090044178A KR20090044178A (ko) | 2009-05-07 |
KR101110201B1 true KR101110201B1 (ko) | 2012-02-15 |
Family
ID=40584473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070110144A KR101110201B1 (ko) | 2007-10-31 | 2007-10-31 | 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8201030B2 (ko) |
KR (1) | KR101110201B1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5476902B2 (ja) * | 2009-09-30 | 2014-04-23 | 富士通株式会社 | ターボ復号装置及び通信装置 |
FR2955001A1 (fr) * | 2010-01-06 | 2011-07-08 | St Microelectronics Grenoble 2 | Procede et dispositif d'entrelacement en ligne et en colonne pour blocs de taille variable |
US8527833B2 (en) | 2010-09-13 | 2013-09-03 | Hughes Network Systems, Llc | Method and apparatus for a parameterized interleaver design process |
GB2515798A (en) * | 2013-07-04 | 2015-01-07 | Norwegian Univ Sci & Tech Ntnu | Network coding over GF(2) |
US10201026B1 (en) | 2016-06-30 | 2019-02-05 | Acacia Communications, Inc. | Forward error correction systems and methods |
US10505676B1 (en) * | 2018-08-10 | 2019-12-10 | Acacia Communications, Inc. | System, method, and apparatus for interleaving data |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050119595A (ko) * | 2004-06-16 | 2005-12-21 | 삼성전자주식회사 | 이동통신 시스템에서 연접 지그재그 부호를 이용한 채널부호화/복호화 장치 및 방법 |
KR20050122521A (ko) * | 2004-06-24 | 2005-12-29 | 학교법인연세대학교 | 터보 복호화를 위한 병렬 복호 방법 및 이를 사용한 터보복호기 |
KR20070085244A (ko) * | 2007-04-02 | 2007-08-27 | 미쓰비시덴키 가부시키가이샤 | 검사 행렬 생성 방법 및 통신 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020034269A1 (en) * | 2000-07-28 | 2002-03-21 | Victor Demjanenko | Use of soft-decision or sum-product inner coders to improve the performance of outer coders |
US6603412B2 (en) * | 2001-06-08 | 2003-08-05 | Texas Instruments Incorporated | Interleaved coder and method |
US7793169B2 (en) * | 2005-10-19 | 2010-09-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Intelligent table-driven interleaving |
-
2007
- 2007-10-31 KR KR1020070110144A patent/KR101110201B1/ko active IP Right Grant
-
2008
- 2008-10-30 US US12/290,391 patent/US8201030B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050119595A (ko) * | 2004-06-16 | 2005-12-21 | 삼성전자주식회사 | 이동통신 시스템에서 연접 지그재그 부호를 이용한 채널부호화/복호화 장치 및 방법 |
KR20050122521A (ko) * | 2004-06-24 | 2005-12-29 | 학교법인연세대학교 | 터보 복호화를 위한 병렬 복호 방법 및 이를 사용한 터보복호기 |
KR20070085244A (ko) * | 2007-04-02 | 2007-08-27 | 미쓰비시덴키 가부시키가이샤 | 검사 행렬 생성 방법 및 통신 방법 |
Non-Patent Citations (1)
Title |
---|
논 문 |
Also Published As
Publication number | Publication date |
---|---|
KR20090044178A (ko) | 2009-05-07 |
US8201030B2 (en) | 2012-06-12 |
US20090113271A1 (en) | 2009-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2467484C2 (ru) | Устройство, содержащее кольцевой буфер, и способ для присвоения вариантов избыточности кольцевому буферу | |
JP4858991B2 (ja) | データを符号化および復号するための方法および装置 | |
US8407561B2 (en) | Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutation (QPP) interleave | |
US6323788B1 (en) | Interleaving apparatus and method for use in serial concatenated convolutional code encoder in a mobile communication system | |
JP6886515B2 (ja) | データ伝送方法、送信デバイス、受信デバイス、及び通信システム | |
US8069387B2 (en) | Turbo coding having combined turbo de-padding and rate matching de-padding | |
US20070067696A1 (en) | System, transmitter, receiver, method, and computer program product for structured interleaved Zigzag coding | |
KR20090127878A (ko) | 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치 | |
KR101110201B1 (ko) | 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치 | |
KR101435830B1 (ko) | 인터리빙 수행 방법 | |
EP2313979B1 (en) | Methods for programmable decoding of a plurality of code types | |
KR100963463B1 (ko) | 낮은 프레임 에러 레이트를 위한 개선된 터보 코드인터리버 | |
JP5122480B2 (ja) | 高速な符号化方法および復号方法ならびに関連する装置 | |
US20130007568A1 (en) | Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program | |
JP4837645B2 (ja) | 誤り訂正符号復号回路 | |
KR20080041488A (ko) | 병렬 인터리빙 장치 및 방법 | |
KR100628201B1 (ko) | 터보 디코딩 방법 | |
US9130728B2 (en) | Reduced contention storage for channel coding | |
US20130254499A1 (en) | Interleaving and de-interleaving method, interleaver and de-interleaver | |
US9128888B2 (en) | Method and apparatus for turbo decoder memory collision resolution | |
KR101353094B1 (ko) | 오류정정부호에 대한 인터리빙 방법 및 이를 이용한 정보 송수신 시스템 | |
KR100645730B1 (ko) | 매직 매트릭스를 이용한 인터리빙 방법 | |
KR20080040525A (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: 20141223 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20151229 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20161228 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20171228 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20181227 Year of fee payment: 8 |