KR100963463B1 - 낮은 프레임 에러 레이트를 위한 개선된 터보 코드인터리버 - Google Patents

낮은 프레임 에러 레이트를 위한 개선된 터보 코드인터리버 Download PDF

Info

Publication number
KR100963463B1
KR100963463B1 KR1020087011297A KR20087011297A KR100963463B1 KR 100963463 B1 KR100963463 B1 KR 100963463B1 KR 1020087011297 A KR1020087011297 A KR 1020087011297A KR 20087011297 A KR20087011297 A KR 20087011297A KR 100963463 B1 KR100963463 B1 KR 100963463B1
Authority
KR
South Korea
Prior art keywords
binary data
substitution
data stream
permutation
matrix
Prior art date
Application number
KR1020087011297A
Other languages
English (en)
Other versions
KR20080067650A (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 퀄컴 인코포레이티드
Publication of KR20080067650A publication Critical patent/KR20080067650A/ko
Application granted granted Critical
Publication of KR100963463B1 publication Critical patent/KR100963463B1/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
    • 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/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • 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/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/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

Abstract

본 발명의 적어도 하나의 양태는, 병렬 제 1 구성요소 인코더 (202) 및 제 2 구성요소 인코더 (206); 및 상기 제 2 구성요소 인코더에 대한 입력으로서 연결되어, 제 1 구성요소 인코더에 대한 이진 데이터 입력의 순서 교환된 (permutated) 버전을 제공하기 위한 인터리버 (204) 를 갖는 터보 인코더 (104) 를 제공하여, 낮은 프레임 에러 레이트를 달성한다. 인터리버는, 이진 데이터 입력을 입력 블록으로 파싱하고, 치환 벡터를 결정하고, 또한 소정의 치환 방정식 세트에 따라 입력 블록에서의 이진 데이터의 순서를 재배열하도록 구성된다. 그 다음에, 정보 블록에서의 재배열된 이진 데이터가 제 2 구성요소 인코더로 전달되어, 송신된 중복 데이터의 거리 스펙트럼을 향상시키게 된다.
이진 데이터, 인터리버, 터보 코드, 프레임 에러 레이트, 치환 행렬, 치환 벡터, 중복 비트

Description

낮은 프레임 에러 레이트를 위한 개선된 터보 코드 인터리버{IMPROVED TURBO CODE INTERLEAVER FOR LOW FRAME ERROR RATE}
배 경
기술분야
본 발명의 적어도 하나의 특징은 디지털 통신 시스템에 관한 것이고, 보다 상세하게는 낮은 프레임 에러 레이트를 갖는 개선된 터보 인코더에 관한 것이다.
배경기술
통신 시스템은 다수의 기술을 이용하여, 전송 에러를 최소화하면서 전송되는 정보의 양을 증가시킨다. 이들 통신 시스템에 있어서, 정보는 통상적으로 프레임으로 지칭되는 이진 비트의 블록 또는 비트의 시퀀스로서 표현된다. 이진 정보는 신호 파형으로 변조되어, 통신 채널을 통해 송신된다. 통신 채널은, 송신된 신호를 손상시키는 잡음 및 간섭을 도입하는 경향이 있다. 수신기에서, 수신된 정보는 손상될 수도 있고, 이 수신된 정보는 송신된 이진 정보의 추정이다. 비트 에러 또는 프레임 에러의 수는 통신 채널에서의 잡음 및 간섭의 양에 종속한다.
송신 채널 손상의 영향을 제거하기 위해서, 디지털 통신 시스템에서 종종 에 러 정정 코딩이 이용되어, 잡음 및 간섭으로부터 디지털 정보를 보호하고, 비트/프레임 에러의 수를 감소시킨다. 통상적으로, 채널 코딩은, 송신된 정보 스트림으로 중복 비트를 선택적으로 도입함으로써 달성된다. 이들 부가적인 비트는 수신된 데이터 스트림에서의 비트 에러의 검출 및 정정을 허용하고, 그에 따라 보다 신뢰성있는 송신을 제공하게 된다. 일 도전은 낮은 비트 에러 레이트를 달성하는 것인데, 낮은 비트 에러 레이트는, 하드웨어 및/또는 소프트웨어로 구현되기에 충분히 신속하며 충분히 단순한 에러 정정 코딩 방식을 이용하여, 낮은 프레임 에러 레이트로 번역된다.
통신 이론에서 잘 알려진 원리는, 충분히 큰 블록 길이 n 의 랜덤하게 선택된 코드가 섀넌 채널 용량 한계에 접근할 수 있다는 것이다. 이러한 코드의 최대-우도 (Maximum-Likelihood: ML) 디코딩은, n 에 따라, 디코딩이 물리적으로 실현할 수 없게 되는 지점까지 기하급수적으로 증가한다. 따라서, 또다른 도전은, 큰 동등한 블록 길이를 갖지만, 실제 디코딩이 가능하기에 충분한 구조를 포함하는 에러 정정 코드를 개발하는 것이다.
일 타입의 에러 정정 코드는, 근접-섀넌-한계 에러 정정 성능을 갖는 것으로 공지되어 있는 터보 코드로서 잘 알려진 병렬 연쇄 코드 (parallel concatenated code) 이다. 터보 코딩의 기초는, 채널을 통해 송신될 데이터에 중복성을 도입하는 것이다. 중복 데이터는 수신된 데이터로부터 오리지널 데이터를 복구하는 것을 돕는다.
터보 코드의 일 구현은, 랜덤 인터리버에 의해 분리된 구성요소 인코더들 또 는 2 개의 구성요소 콘볼루션 코드의 병렬 연쇄를 제공한다. 부분적으로, "랜덤" 출현 (random appearance) 을 제공하는 의사 랜덤 인터리버로 인해, 터보 코드는 섀넌 채널 용량의 1 dB 내로 송신 성능을 달성할 수 있다. 그러나, 이러한 인터리버의 설계시 문제점은, 이진 데이터를 재배열하여 랜덤하게 출현시킴으로써, 송신된 중복 데이터의 거리 스펙트럼 (distance spectrum) 을 향상시키는 방식을 결정하는 것이다.
개 요
본 발명의 일 특징은, 낮은 프레임 에러 레이트를 갖는 터보 코드를 제공하는 것이다. 일 구현에 있어서, 병렬 연쇄 인코더 및 블록 인터리버를 갖는 터보 인코더는, 입력 비트 또는 심볼의 순서를 재배열하여, 송신된 중복 데이터의 거리 스펙트럼을 향상시키도록 구성된다.
또다른 구현은, (1) 이진 데이터 스트림을 수신하고, 이진 데이터 스트림을 처리하여 하나 이상의 심볼들의 제 1 출력을 제공하도록 구성된 제 1 구성요소 인코더; (2) 복수의 소정의 치환 방정식 (permutation equation) 들에 따라 이진 데이터 스트림의 순서를 재배열하도록 구성된 터보 인터리버; 및 (3) 터보 인터리버에 통신가능하게 연결되어, 재배열된 이진 데이터 스트림을 수신하고, 재배열된 이진 데이터 스트림을 처리하여 하나 이상의 심볼들의 제 2 출력을 제공하는 제 2 구성요소 인코더를 포함하는 터보 인코더를 제공한다. 터보 인코더는, 제 1 구성요소 인코더 및 제 2 구성요소 인코더에 통신가능하게 연결되어, 제 1 출력 및 제 2 출력을 수신하고, 제 1 출력 및 제 2 출력에서의 하나 이상의 심볼들을 캐리어 신호로 매핑하는 심볼 매퍼를 더 포함할 수도 있다. 터보 인터리버는 또한, (1) 값들
Figure 112010003624066-pct00001
를 갖는
Figure 112010003624066-pct00002
치환 행렬 (permutation matrix) 을 발생시키고, (2) 치환 행렬을, 재배열된 이진 데이터 스트림의 순서를 정의하는 치환 벡터 (permutation vector) 로 변환하도록 구성될 수도 있고, 여기서
Figure 112010003624066-pct00003
,
Figure 112010003624066-pct00004
이고,
Figure 112010003624066-pct00005
=
Figure 112010003624066-pct00006
이고,
Figure 112010003624066-pct00007
는 이진 데이터의 블록 길이에 대응하는 정수이고, 복수의 소정의 치환 방정식들은 치환 행렬 값들
Figure 112010003624066-pct00008
를 정의한다.
일 실시예에 있어서,
Figure 112010003624066-pct00009
치환 행렬에서의 치환 행렬 값들
Figure 112010003624066-pct00010
는, 복수의 소정의 치환 방정식들:
Figure 112008033387512-pct00011
에 의해 정의되고, 여기서
Figure 112010003624066-pct00012
Figure 112010003624066-pct00013
는 소수 (素數) 계수들이다. 각종 구현에 있어서, 다음의 블록 길이
Figure 112010003624066-pct00014
에 대해, 이들 치환 방정식들의 파라미터들은,
Figure 112008033387512-pct00015
= 512 비트,
Figure 112008033387512-pct00016
= 8,
Figure 112008033387512-pct00017
= 64, {
Figure 112008033387512-pct00018
} = {11, 19, 31, 37}, {
Figure 112008033387512-pct00019
} = {5, 11, 19, 31} 이고;
Figure 112008033387512-pct00020
= 1024 비트,
Figure 112008033387512-pct00021
= 8,
Figure 112008033387512-pct00022
= 128, {
Figure 112008033387512-pct00023
} = {11, 19, 31, 37}, {
Figure 112008033387512-pct00024
} = {5, 11, 19, 31} 이고;
Figure 112008033387512-pct00025
= 2048 비트,
Figure 112008033387512-pct00026
= 8,
Figure 112008033387512-pct00027
= 256, {
Figure 112008033387512-pct00028
} = {13, 23, 31, 37}, {
Figure 112008033387512-pct00029
} = {7, 13, 23, 31} 이고;
Figure 112008033387512-pct00030
= 3072 비트,
Figure 112008033387512-pct00031
= 8,
Figure 112008033387512-pct00032
= 384, {
Figure 112008033387512-pct00033
} = {31, 41, 67, 79}, {
Figure 112008033387512-pct00034
} = {13, 23, 29, 41} 이고;
Figure 112008033387512-pct00035
= 4096 비트,
Figure 112008033387512-pct00036
= 8,
Figure 112008033387512-pct00037
= 512, {
Figure 112008033387512-pct00038
} = {31, 47, 67, 83}, {
Figure 112008033387512-pct00039
} = {13, 23, 31, 47} 이다.
또다른 실시예는, (1) 이진 데이터 스트림을 수신하는 입력 인터페이스; (2) 입력 인터페이스에 통신가능하게 연결되어, 이진 데이터 스트림을 샘플링하고, 입력 블록들로 분할하도록 구성된 데이터 샘플러; 및 (3) 데이터 샘플러에 통신가능하게 연결되어, 복수의 소정의 치환 방정식들에 따라 입력 블록들에서의 이진 데이터 스트림의 순서를 재배열하고, 재배열된 이진 데이터 스트림을 갖는 출력 블록들을 제공하는 처리 유닛을 포함하는 인터리버를 제공한다.
일 구현은 이진 정보를 인코딩하는 방법을 제공하는데, 이 이진 정보의 인코딩 방법은, (1) 제 1 구성요소 인코더로 이진 데이터 스트림을 제공하는 단계; (2) 제 2 구성요소 인코더에 연결된 터보 인터리버로 이진 데이터 스트림을 제공하는 단계로서, (3) 터보 인터리버는, (a) 값들
Figure 112010003624066-pct00040
를 갖는 치환 벡터를 발생시키고, (b) 치환 벡터 값들
Figure 112010003624066-pct00041
에 따라 이진 데이터 스트림의 순서를 재배열하도록 구성되고, 여기서
Figure 112010003624066-pct00042
이고,
Figure 112010003624066-pct00043
는 이진 데이터의 블록 길이에 대응하는 정수인, 터보 인터리버로 이진 데이터 스트림을 제공하는 단계; 및 (4) 재배열된 이진 데이터 스트림을 제 2 구성요소 인코더로 제공하는 단계를 포함한다. 이 이진 정보의 인코딩 방법은, (5) 제 1 구성요소 인코더에서 이진 데이터 스트림을 처리하여, 하나 이상의 심볼들의 제 1 출력을 발생시키는 단계; (6) 제 2 구성요소 인코더에서 재배열된 이진 데이터 스트림을 처리하여, 하나 이상의 심볼들의 제 2 출력을 발생시키는 단계; 및 (7) 제 1 출력 및 제 2 출력을 캐리어 신호로 변조하는 단계를 더 포함할 수도 있다. 제 1 구성요소 인코더 및 제 2 구성요소 인코더는, 순환적 시스터매틱 콘볼루션 인코더 (recursive systematic convolutional encoder) 들일 수도 있다. 터보 인터리버는 또한, (1) 값들
Figure 112010003624066-pct00044
를 갖는
Figure 112010003624066-pct00045
치환 행렬을 발생시키고, (2) 치환 행렬을 치환 벡터로 변환하도록 구성될 수도 있고, 여기서
Figure 112010003624066-pct00046
,
Figure 112010003624066-pct00047
이고,
Figure 112010003624066-pct00048
=
Figure 112010003624066-pct00049
이다.
일 실시예에 있어서, 치환 행렬을 치환 벡터로 변환하는 것은, 치환 행렬에서의 모든 값들이 치환 벡터로 판독될 때까지, 2 개의 인접 행렬 행들로부터의 치환 행렬 값들을, 좌에서 우로, 또한 위에서 아래로, 한번에 하나의 행렬 열에 대해 취함으로써 달성된다.
또한, 일 구현은, (1) 이진 데이터 스트림을 수신하는 입력부; 및 (2) (a) 이진 데이터 스트림을 입력 블록들로 파싱 (parsing) 하고, (b) 소정의 치환 값들에 따라 입력 블록에서의 이진 데이터 스트림의 순서를 재배열하고, (c) 재배열된 이진 데이터 스트림을 갖는 출력 블록을 제공하도록 구성된 회로를 포함하는 프로세서를 제공한다.
또다른 구현은, (a) 제 1 신호를 수신하는 입력 인터페이스; 및 (b) 제 1 신호에서의 제 2 심볼들 세트의 인터리빙된 버전들인 제 1 신호에서의 제 1 심볼들 세트를 식별함으로써, 제 1 신호를 디코딩하도록 구성된 처리 유닛을 포함하는 디코더를 제공하는데, 제 1 심볼들 세트는 소정의 치환 방정식들 세트에 따라 블록 인터리빙된다.
또다른 구현은 이진 데이터 스트림을 인코딩하기 위한 하나 이상의 명령들을 갖는 머신 판독가능 매체를 제공하는데, 이들 명령들은, 프로세서에 의해 실행되는 경우, 프로세서로 하여금, (a) 수신된 이진 데이터 스트림을 제 1 코딩 함수 (coding function) 로 인코딩하여, 제 1 출력을 발생시키도록 하고; (b) 값들
Figure 112010003624066-pct00050
를 갖는 치환 벡터를 발생시키도록 하고; (c) 치환 벡터 값들
Figure 112010003624066-pct00051
에 따라 이진 데이터 스트림의 순서를 재배열하도록 하고; (d) 재배열된 이진 데이터 스트림을 제 2 코딩 함수로 인코딩하여, 제 2 출력을 발생시키도록 하고, (e) 제 1 출력 및 제 2 출력을 캐리어 신호로 매핑하도록 하고, 여기서
Figure 112010003624066-pct00052
이고,
Figure 112010003624066-pct00053
는 이진 데이터의 블록 길이에 대응하는 정수이다.
도면의 간단한 설명
도 1 은 터보 코드 인코더를 갖는 디지털 통신 시스템을 도시한 도면이다.
도 2 는 터보 인코더의 일 구현의 블록도이다.
도 3 은 터보 인코더에서 이진 정보를 인코딩하는 방법을 도시한 도면이다.
도 4 는 인터리버의 일 구현의 블록도이다.
도 5 는 인코딩 프로세서의 일 구현의 블록도이다.
도 6 은 디코더의 일 구현의 블록도이다.
도 7 은 터보 코드 구현의 일 실시예에 따라 인터리버를 동작시키는 방법을 도시한 도면이다.
도 8 은 대표적인 터보 인터리버의 각종 정보 블록 길이
Figure 112010003624066-pct00054
에 대한 치환 파라미터
Figure 112010003624066-pct00055
Figure 112010003624066-pct00056
의 값을 도시한 도면이다.
도 9 는 터보 인터리버의 특정 정보 블록 길이에 대한 대표적인 파라미터 세트
Figure 112008033387512-pct00057
Figure 112008033387512-pct00058
를 도시한 표이다.
도 10 은 터보 인터리버에서 치환 넘버 (permutation number)
Figure 112010003624066-pct00059
Figure 112010003624066-pct00060
행렬로 어떻게 배열되는지의 일 실시예를 도시한 도면이다.
도 11 은 치환 벡터를 형성하기 위해서 치환 넘버가 판독되는 대표적인 순서를 도시한 도면이다.
도 12 는 터보 인코더의 일 구현에서 대표적인 인터리버에 의해 입력 비트의 순서가 어떻게 재배열되는지를 도시한 도면이다.
도 13 은 종래의 HDR (High Data Rate) 터보 코드와 비교하여 본 발명의 터보 코드의 성능을 도시한 그래프이다.
상세한 설명
다음의 설명에 있어서, 이들 실시형태의 완전한 이해를 제공하기 위해서 특정 상세가 제공된다. 그러나, 이들 실시형태가 이들 특정 상세 없이 실시될 수도 있다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 이해될 것이다. 예를 들어, 불필요한 상세로 이들 실시형태를 모호하지 않게 하기 위해서, 회로가 블록도로 도시될 수도 있다. 다른 실시예에 있어서, 이들 실시형태를 모호하지 않게 하기 위해서, 잘 알려진 회로, 구조 및 기술이 상세하게 도시될 수도 있다.
또한, 플로우차트, 흐름도, 구조도 또는 블록도로 도시되는 프로세스로서 이들 실시형태가 설명될 수도 있다는 것이 주목된다. 플로우차트가 동작을 순차적인 프로세스로서 설명할 수도 있음에도 불구하고, 다수의 동작은 병렬로 또는 동시에 수행될 수 있다. 또한, 동작 순서는 재배열될 수도 있다. 이들 동작이 완료되면, 프로세스가 종료된다. 프로세스는, 방법, 함수, 절차, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 함수에 대응하는 경우, 그 종료는 호출 함수 또는 메인 함수에 대한 이 함수의 복귀에 대응한다.
또한, 저장 매체는, ROM (Read Only Memory), RAM (Random Access Memory), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스 및/또는 정보를 저장하기 위한 다른 머신 판독가능 매체를 포함하여, 데이터를 저장하기 위한 하나 이상의 디바이스를 나타낼 수도 있다. "머신 판독가능 매체" 라는 용어는, 명령(들) 및/또는 데이터를 저장, 포함, 및/또는 유지할 수 있는 휴대용 또는 고정형 저장 디바이스, 광학 저장 디바이스, 무선 채널 및 각종 다른 매체를 포함하지만, 이에 제한되지는 않는다.
또한, 이들 실시형태는, 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현되는 경우, 필요한 태스크를 수행하기 위한 프로그램 코드 또는 코드 세그먼트는, 저장 매체 또는 다른 스토리지(들)와 같은 머신 판독가능 매체에 저장될 수도 있다. 프로세서가 필요한 태스크를 수행할 수도 있다. 코드 세그먼트는, 절차, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조 또는 프로그램 명령문의 임의의 조합을 나타낼 수도 있다. 코드 세그먼트는, 정보, 데이터, 인수, 파라미터, 또는 메모리 콘텐츠를 전달 및/또는 수신함으로써, 또다른 코드 세그먼트 또는 하드웨어 회로에 연결될 수도 있다. 정보, 인수, 파라미터, 데이터 등은, 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신 등을 포함하여, 임의의 적합한 수단을 통해 전달, 포워딩 또는 송신될 수도 있다.
본 발명의 일 특징은, 낮은 프레임 에러 레이트를 갖는 터보 코드를 제공하는 것이다. 일 구현에 있어서, 병렬 연쇄 인코더 및 블록 인터리버를 갖는 터보 인코더는, 입력 비트 또는 심볼의 순서를 재배열하여, 송신된 중복 데이터의 거 리 스펙트럼을 향상시키도록 구성된다.
도 1 은 터보 코드 인코더가 구현될 수도 있는 디지털 통신 시스템을 도시한 도면이다. 데이터 소스 (102) 는 디지털 형태의 데이터를 인코더 (104) 로 제공한다. 인코더 (104) 는, 일 구현에 따라 터보 코드를 구현하는 터보 인터리버를 포함한다. 그 다음에, 인코딩된 데이터는 송신 채널 (예를 들어, 유선 및/또는 무선 채널) 을 통해 수신기로 송신된다. 수신기는, 수신된 데이터에 대해 터보 디코더를 적용하는 터보 디코더 (106) 를 포함한다. 그 다음에, 디코딩된 데이터는 그 수신지 (108) 로 제공된다.
도 2 는 터보 인코더의 일 구현의 블록도이다. 터보 인코더는 제 1 구성요소 인코더 (202) 및 제 2 구성요소 인코더 (206) 를 포함한다. 이진 데이터 스트림 (210 ;
Figure 112010003624066-pct00061
) 이 제 1 구성요소 인코더 (202) 및 터보 인터리버 (204) 모두로 송신된다. 이진 데이터 스트림 (210 ;
Figure 112010003624066-pct00062
) 은 샘플링되고/되거나 입력 블록으로 분할될 수도 있다. 터보 인터리버 (204) 는 이진 데이터 스트림 (210 ;
Figure 112010003624066-pct00063
) 을 블록 또는 프레임으로서 처리할 수도 있다. 수신된 모든 N 데이터 비트는 길이
Figure 112010003624066-pct00064
를 갖는 블록으로 고려된다. 각 특정 블록 길이
Figure 112010003624066-pct00065
에 대해, 터보 코드 인터리버 (204) 는, 소정의 치환 방정식에 따라 이진 데이터 스트림 (
Figure 112010003624066-pct00066
) 을 재순서화한다. 그 다음에, 재순서화되거나 인터리빙된 이진 데이터 스트림 비트는 제 2 구성요소 인코더 (206) 로 송신된다. 그 다음에, 제 1 구성요소 인코더 (202) 및 제 2 구성요소 인코더 (206) 로부터의 비트는, 병렬 인코더 (202 및 206) 로부터의 중복 비트 또는 심볼을 캐리어 신호로 매핑 또는 변조하는 비트-대-신호/심볼 매퍼 (208) 로 샘플링된다. 제 2 구성요소 인코더 (206) 로부터의 출력 비트의 순서를 재배열함으로써, 캐리어 신호에서의 중복 비트의 거리 스펙트럼이 증가하고, 그에 따라 비트 또는 프레임 에러 레이트를 감소시키게 된다.
각종 구현에 있어서, 병렬 구성요소 인코더 (202 및 206) 중 하나 또는 이들 모두는, 순환적 시스터매틱 콘볼루션 인코더 또는 다른 공지된 타입의 인코더일 수도 있다. 터보 인코더 (104) 의 다른 실시예에 있어서, 3 이상의 병렬 연쇄 인코더 및 2 이상의 인터리버가 채택될 수도 있다.
도 3 은 터보 인코더에서 이진 정보를 인코딩하는 방법을 도시한 도면이다. 이진 데이터 스트림이 제 1 구성요소 인코더로 제공된다 (단계 302). 제 1 구성요소 인코더에서 이진 데이터 스트림이 처리되어, 하나 이상의 심볼의 제 1 출력을 발생시킨다 (단계 304). 또한, 이진 데이터 스트림은 제 2 구성요소 인코더에 연결된 터보 인터리버로 제공된다 (단계 306). 터보 인터리버는, (a) 값
Figure 112010003624066-pct00067
(여기서,
Figure 112010003624066-pct00068
이고,
Figure 112010003624066-pct00069
는 이진 데이터의 블록 길이에 대응하는 정수임) 를 갖는 치환 벡터를 발생시키도록 (단계 308), (b) 치환 벡터 값
Figure 112010003624066-pct00070
에 따라 이진 데이터의 순서를 재배열하도록 (단계 310), 또한 (c) 재배열된 이진 데이터를 제 2 구성요소 인코더로 제공하도록 (단계 312) 구성될 수도 있다. 제 2 구성요소 인코더에서 재배열된 이진 데이터를 처리하여, 하나 이상의 심볼의 제 2 출력을 발생시킨다 (단계 314). 제 1 출력 및 제 2 출력은 캐리어 신호로 매핑된다 (단계 316). 또한, 터보 인터리버는, (a) 값
Figure 112010003624066-pct00071
를 갖는
Figure 112010003624066-pct00072
치환 행렬 (여기서,
Figure 112010003624066-pct00073
,
Figure 112010003624066-pct00074
이고,
Figure 112010003624066-pct00075
=
Figure 112010003624066-pct00076
임) 을 발생시키도록 (단계 318), 또한 (b) 치환 행렬을 치환 벡터로 변환하도록 (단계 320) 구성될 수도 있다.
도 4 는 인터리버의 일 구현의 블록도이다. 인터리버 (402) 는, 이진 데이터 스트림 (406) 을 수신하기 위한 입력 인터페이스 (404), 입력 인터페이스 (404) 에 통신가능하게 연결된 데이터 샘플러 (408), 및 데이터 샘플러 (408) 에 통신가능하게 연결된 처리 회로 (410) 를 포함한다. 데이터 샘플러 (408) 는 이진 데이터 스트림을 샘플링하여, 입력 블록으로 분할하도록 구성된다. 다음에, 처리 회로 (410) 가 데이터 샘플러 (408) 에 통신가능하게 연결되어, 복수의 소정의 치환 방정식에 따라 입력 블록에서의 이진 데이터의 순서를 재배열하고, 재배열된 이진 데이터를 갖는 출력 블록을 제공한다. 처리 회로 (410) 는, 값
Figure 112010003624066-pct00077
를 갖는
Figure 112010003624066-pct00078
치환 행렬을 발생시킬 수도 있는데, 여기서
Figure 112010003624066-pct00079
,
Figure 112010003624066-pct00080
이고,
Figure 112010003624066-pct00081
=
Figure 112010003624066-pct00082
이고,
Figure 112010003624066-pct00083
는 이진 데이터의 블록 길이에 대응하는 정수이다. 복수의 소정의 치환 방정식은 치환 행렬 값
Figure 112010003624066-pct00084
를 정의할 수도 있다. 처리 회로 (410) 는, 치환 행렬을, 재배열된 이진 데이터의 순서를 정의하는 치환 벡터로 변환한다.
도 5 는 인코딩 프로세서의 일 구현의 블록도이다. 인코딩 프로세서 (502) 는, 이진 데이터 스트림 (506) 을 수신하기 위한 입력 인터페이스 (504), 및 처리 회로 (508) 를 포함한다. 처리 회로 (508) 는, 이진 데이터 스트림 (506) 을 입력 블록으로 분할하도록, 소정의 치환 값에 따라 입력 블록에서의 이진 데이터의 순서를 재배열하도록, 또한 재배열된 이진 데이터를 갖는 출력 블록을 제공하도록 구성될 수도 있다. 처리 회로 (508) 는, 값
Figure 112010003624066-pct00085
를 갖는
Figure 112010003624066-pct00086
치환 행렬을 발생시킬 수도 있는데, 여기서
Figure 112010003624066-pct00087
,
Figure 112010003624066-pct00088
이고,
Figure 112010003624066-pct00089
=
Figure 112010003624066-pct00090
이고,
Figure 112010003624066-pct00091
는 입력 블록 길이에 대응하는 정수이다. 복수의 소정의 치환 방정식은 치환 행렬 값
Figure 112010003624066-pct00092
를 정의한다. 처리 회로 (508) 는, 이 치환 행렬을, 재배열된 이진 데이터의 순서를 정의하는 치환 벡터로 변환한다.
도 6 은 디코더의 일 구현의 블록도이다. 디코더 (602) 는, 제 1 신호 (606) 를 수신하기 위한 입력 인터페이스 (604), 및 제 1 신호 (606) 를 처리하기 위한 처리 유닛 (608) 을 포함한다. 처리 유닛 (608) 은, 제 1 신호 (606) 에서의 제 2 심볼 세트의 인터리빙된 버전인 제 1 신호 (606) 에서의 제 1 심볼 세트를 식별함으로써, 제 1 신호 (606) 를 디코딩하도록 구성될 수도 있는데, 제 1 심볼 세트는 소정의 치환 방정식 세트에 따라 블록 인터리빙된다.
도 1, 도 2, 도 4, 도 5 및/또는 도 6 에 도시된 하나 이상의 컴포넌트 및 기능은, 본 발명으로부터 벗어나지 않으면서, 단일 컴포넌트로 재배열 및/또는 결합될 수도 있고, 또는 다수의 컴포넌트로 구현될 수도 있다. 또한, 본 발명을 벗어나지 않으면서, 부가적인 엘리먼트 또는 컴포넌트가 부가될 수도 있다.
도 7 은 터보 코드 구현의 일 실시예에 따라 인터리버를 동작시키는 방법을 도시한 도면이다. 수신된 이진 데이터 스트림 (
Figure 112010003624066-pct00093
) 은 데이터 블록
Figure 112010003624066-pct00094
비트 길이로 배열된다 (단계 702). 그 다음에, 각 데이터 블록은
Figure 112010003624066-pct00095
치환 행렬로 재배열되는데 (단계 704), 여기서
Figure 112010003624066-pct00096
은 행렬에서의 행의 개수를 나타내고,
Figure 112010003624066-pct00097
는 행렬에서의 열의 개수를 나타낸다. 치환 행렬의 각 행 i (여기서,
Figure 112010003624066-pct00098
) 에 대해, 각 열 j (여기서,
Figure 112010003624066-pct00099
) 에 대한 치환 넘버
Figure 112010003624066-pct00100
가 계산된다 (단계 706).
Figure 112010003624066-pct00101
행렬에서의 치환 넘버
Figure 112010003624066-pct00102
가 치환 벡터
Figure 112010003624066-pct00103
(여기서,
Figure 112010003624066-pct00104
) 로 판독 또는 변환된다 (단계 708). 일 구현에 따라, 치환 넘버
Figure 112010003624066-pct00105
가 사전-계산될 수도 있고, 저장될 수도 있고, 또한 이들이 데이터 스트림에 적용되는 경우에 검색될 수도 있다는 것이 주목된다. 즉, 데이터 스트림이 처리되는 것과 동시에 치환 넘버
Figure 112010003624066-pct00106
가 결정될 필요는 없다.
도 8 은 터보 인터리버의 각종 정보 블록 길이
Figure 112010003624066-pct00107
에 대한 치환 파라미터
Figure 112010003624066-pct00108
Figure 112010003624066-pct00109
의 값을 도시한 도면이다. 즉, 512, 1024, 2048, 3072 및 4096 비트의 블록 길이에 대해, 행의 개수
Figure 112010003624066-pct00110
은 8 로 선택될 수도 있는 한편, 열의 개수
Figure 112010003624066-pct00111
는 각각 64, 128, 256, 384 및 512 이다.
각 행 i (여기서,
Figure 112010003624066-pct00112
) 에 대해, 각 열 j (여기서,
Figure 112010003624066-pct00113
) 에 대한 치환 넘버
Figure 112010003624066-pct00114
가 계산된다. 일 구현은, 치환 행렬의 8 개의 행 각각에 대해 다음의 치환 방정식을 제공한다:
Figure 112008033387512-pct00115
도 9 는 터보 인터리버의 특정 정보 블록 길이에 대한 대표적인 파라미터 세트
Figure 112010003624066-pct00116
Figure 112010003624066-pct00117
를 도시한 표이다. (전술한) 특정 치환 방정식, 파라미터
Figure 112010003624066-pct00118
Figure 112010003624066-pct00119
(도 8 참조), 및 소수
Figure 112010003624066-pct00120
Figure 112010003624066-pct00121
의 값과 그 조합 (도 9 참조) 이 실험적으로 결정되어, 최적의 거리 스펙트럼 및 개선된 터보 코드 성능을 제공하게 된다. 치환 넘버
Figure 112010003624066-pct00122
을 이용하여, 터보 인터리버에 의해 입력 비트 또는 심볼 (예를 들어,
Figure 112010003624066-pct00123
) 의 순서 또는 시퀀스가 재배열된다. 이는, 제 2 구성요소 인코더 (206) 가, 제 1 구성요소 인코더 (202) 와 상이한 순서 또는 시퀀스로 입력 비트 또는 심볼 (예를 들어,
Figure 112010003624066-pct00124
) 을 수신한다는 것을 보증한다.
치환 넘버
Figure 112010003624066-pct00125
(여기서,
Figure 112010003624066-pct00126
,
Figure 112010003624066-pct00127
) 는
Figure 112010003624066-pct00128
행렬로 재배열된다. 도 10 은 각 행
Figure 112010003624066-pct00129
및 열
Figure 112010003624066-pct00130
에 따라 치환 넘버
Figure 112010003624066-pct00131
Figure 112010003624066-pct00132
행렬 (1000) 로 어떻게 배열되는지의 일 실시예를 도시한 도면이다.
도 10 에 도시된 치환 넘버
Figure 112010003624066-pct00133
는 치환 벡터
Figure 112010003624066-pct00134
(여기서,
Figure 112010003624066-pct00135
) 로 판독된다. 도 11 은 치환 벡터를 형성하기 위해서 행렬 (1100) 에서의 치환 넘버
Figure 112010003624066-pct00136
가 판독되는 대표적인 순서를 도시한 도면이다. 이 실시예에 따르면, 행렬 (1100) 에서의 치환 넘버
Figure 112010003624066-pct00137
는 점선으로 표시된 시퀀스로 벡터
Figure 112010003624066-pct00138
(여기서,
Figure 112010003624066-pct00139
) 로 판독된다. 위치 (1102) 에서의 치환 넘버에서 시작하여, 2 개의 행 (1104 및 1106) 으로부터, 좌에서 우로, 치환 넘버가 취해지고, 그 다음에 다음의 2 개의 행 (1108 및 1110) 으로부터, 좌에서 우로, 치환 넘버가 취해지고, 이는 최종 치환 넘버 (1112) 까지 계속된다. 다른 구현에 있어서, 행렬로부터 벡터로 치환 넘버가 판독되는 시퀀스는 상이할 수도 있다.
도 12 는 터보 인코더 (1200) 의 일 구현에서 대표적인 인터리버에 의해 입력 비트의 순서가 어떻게 재배열되는지를 도시한 도면이다. 치환 벡터
Figure 112010003624066-pct00140
(여기서,
Figure 112010003624066-pct00141
) 는, 터보 인터리버에 의해 출력된
Figure 112010003624066-pct00142
비트가 터보 인터리버로 입력된 입력 정보 블록의
Figure 112010003624066-pct00143
비트가 되도록 이루어진다. 즉, 치환 벡터는 비트의 재배치를 지시한다. 이와 같이, 블록 인터리버는 입력 비트의 순서를 재배열하여, 송신된 중복 데이터의 거리 스펙트럼을 향상시킨다.
터보 인코딩된 데이터 신호를 디코딩하기 위해서, 수신기에서 역 동작이 수행되어, 캐리어 신호를 분해하고, 송신된 정보를 추출한다. 즉, 수신기에서 역 치환 벡터가 결정 및 적용되어, 오리지널 비트 시퀀스를 복구한다.
도 13 은 종래의 HDR (High Data Rate) 터보 코드와 비교하여 본 발명의 터 보 코드 (신규 코드) 의 성능을 도시한 그래프이다. 이 실시예는, 터보 디코더에서 8 번의 디코딩 반복으로 1024 비트/프레임의 송신을 나타낸다. 레이트 1/3 QPSK 송신에 있어서, 동일한 신호대 잡음 (Eb/N0) 비에 대해, 개선된 터보 코드 라인 (1302) 은, 종래의 터보 코드 라인 (1304) 보다 낮은 프레임 에러 레이트 (FER) 를 나타낸다. 예를 들어, 1.4 dB 의 동일한 신호대 잡음비에 대해, 개선된 터보 코드 라인 (1302) 은, 대략 2×10-4 의 FER 을 갖는 종래의 터보 코드 라인 (1304) 으로 달성할 수 없는 5×10-7 의 FER 을 나타낸다. 유사하게, 레이트 2/3 QPSK 송신에 있어서, 3 dB 의 동일한 신호대 잡음비에 대해, 개선된 터보 코드 라인 (1306) 은 3×10-6의 FER 을 나타내는 한편, 종래의 터보 코드 라인 (1308) 은 2×10-4 의 FER 을 갖는다. 레이트 1/2 8PSK 송신에 있어서, 3.8 dB 의 동일한 신호대 잡음비에 대해, 개선된 터보 코드 라인 (1310) 은 4×10-7의 FER 을 나타내는 한편, 종래의 터보 코드 라인 (1312) 은 4×10-5 의 FER 을 갖는다. 유사하게, 레이트 1/2 16QAM 송신에 있어서, 4.6 dB 의 동일한 신호대 잡음비에 대해, 개선된 터보 코드 라인 (1314) 은 1×10-6의 FER 을 나타내는 한편, 종래의 터보 코드 라인 (1316) 은 2×10-5 의 FER 을 갖는다. 따라서, 본 발명의 개선된 터보 코드는 종래기술보다 훨씬 더 낮은 에러 플로어 (error floor) 를 제공한다. 이는, 낮은 프레임 에러 레이트를 요구하는 애플리케이션에 대해 실용적인 터보 코딩 방식을 제공한다.
전술한 실시형태는 단지 예시이고, 본 발명을 제한하는 것으로서 구성되지 않는다는 것이 주목되어야 한다. 이들 실시형태의 설명은 예시적인 것으로 의도되고, 특허청구범위의 범위를 제한하는 것으로 의도되지는 않는다. 이와 같이, 본 발명의 사상은 다른 타입의 장치에 손쉽게 적용될 수 있고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 다수의 대안, 변형 및 변경은 자명하다.

Claims (26)

  1. 이진 데이터 스트림을 수신하고, 상기 이진 데이터 스트림을 처리하여 하나 이상의 심볼들의 제 1 출력을 제공하도록 구성된 제 1 구성요소 인코더;
    복수의 소정의 치환 방정식 (permutation equation) 들에 따라 상기 이진 데이터 스트림의 순서를 재배열하도록 구성된 터보 인터리버로서, 상기 소정의 치환 방정식들은 상기 재배열된 이진 데이터 스트림의 순서를 정의하는 치환 벡터 (permutation vector) 의 치환 행렬 (permutation matrix) 값들을 결정하고, 상기 치환 벡터는 열 (column) 의 순서대로 치환 행렬의 적어도 2 개의 인접하는 행들로부터 연속적으로 상기 치환 행렬 값들을 판독함에 의해 발생되는, 상기 터보 인터리버; 및
    상기 터보 인터리버에 통신가능하게 연결되어, 상기 재배열된 이진 데이터 스트림을 수신하고, 상기 재배열된 이진 데이터 스트림을 처리하여 하나 이상의 심볼들의 제 2 출력을 제공하는 제 2 구성요소 인코더를 포함하는, 터보 인코더.
  2. 제 1 항에 있어서,
    상기 제 1 구성요소 인코더 및 상기 제 2 구성요소 인코더에 통신가능하게 연결되어, 상기 제 1 출력 및 상기 제 2 출력을 수신하고, 상기 제 1 출력 및 상기 제 2 출력에서의 상기 하나 이상의 심볼들을 캐리어 신호로 매핑하는 심볼 매퍼를 더 포함하는, 터보 인코더.
  3. 제 1 항에 있어서,
    상기 터보 인터리버는 또한,
    값들
    Figure 112010003624066-pct00144
    를 갖는
    Figure 112010003624066-pct00145
    치환 행렬로서 상기 치환 행렬을 발생시키고,
    상기 치환 행렬을, 상기 재배열된 이진 데이터 스트림의 순서를 정의하는 상기 치환 벡터로 변환하도록 구성되고,
    여기서,
    Figure 112010003624066-pct00146
    ,
    Figure 112010003624066-pct00147
    이고,
    Figure 112010003624066-pct00148
    =
    Figure 112010003624066-pct00149
    이고,
    Figure 112010003624066-pct00150
    는 이진 데이터의 블록 길이에 대응하는 정수이고, 상기 복수의 소정의 치환 방정식들은 상기 치환 행렬 값들
    Figure 112010003624066-pct00151
    를 정의하는, 터보 인코더.
  4. 제 3 항에 있어서,
    상기 복수의 소정의 치환 방정식들은,
    Figure 112010003624066-pct00152
    로서 정의되고,
    여기서,
    Figure 112010003624066-pct00153
    ,
    Figure 112010003624066-pct00154
    이고,
    Figure 112010003624066-pct00155
    Figure 112010003624066-pct00156
    는 소수 (素數) 들인, 터보 인코더.
  5. 제 4 항에 있어서,
    상기 블록 길이
    Figure 112008033387512-pct00157
    = 512 비트,
    Figure 112008033387512-pct00158
    = 8,
    Figure 112008033387512-pct00159
    = 64, {
    Figure 112008033387512-pct00160
    } = {11, 19, 31, 37}, 및 {
    Figure 112008033387512-pct00161
    } = {5, 11, 19, 31} 인, 터보 인코더.
  6. 제 4 항에 있어서,
    상기 블록 길이
    Figure 112008033387512-pct00162
    = 1024 비트,
    Figure 112008033387512-pct00163
    = 8,
    Figure 112008033387512-pct00164
    = 128, {
    Figure 112008033387512-pct00165
    } = {11, 19, 31, 37}, 및 {
    Figure 112008033387512-pct00166
    } = {5, 11, 19, 31} 인, 터보 인코더.
  7. 제 4 항에 있어서,
    상기 블록 길이
    Figure 112008033387512-pct00167
    = 2048 비트,
    Figure 112008033387512-pct00168
    = 8,
    Figure 112008033387512-pct00169
    = 256, {
    Figure 112008033387512-pct00170
    } = {13, 23, 31, 37}, 및 {
    Figure 112008033387512-pct00171
    } = {7, 13, 23, 31} 인, 터보 인코더.
  8. 제 4 항에 있어서,
    상기 블록 길이
    Figure 112008033387512-pct00172
    = 3072 비트,
    Figure 112008033387512-pct00173
    = 8,
    Figure 112008033387512-pct00174
    = 384, {
    Figure 112008033387512-pct00175
    } = {31, 41, 67, 79}, 및 {
    Figure 112008033387512-pct00176
    } = {13, 23, 29, 41} 인, 터보 인코더.
  9. 제 4 항에 있어서,
    상기 블록 길이
    Figure 112008033387512-pct00177
    = 4096 비트,
    Figure 112008033387512-pct00178
    = 8,
    Figure 112008033387512-pct00179
    = 512, {
    Figure 112008033387512-pct00180
    } = {31, 47, 67, 83}, 및 {
    Figure 112008033387512-pct00181
    } = {13, 23, 31, 47} 인, 터보 인코더.
  10. 이진 정보를 인코딩하는 방법으로서,
    제 1 구성요소 인코더로 이진 데이터 스트림을 제공하는 단계;
    제 2 구성요소 인코더에 연결된 터보 인터리버로 상기 이진 데이터 스트림을 제공하는 단계로서, 상기 터보 인터리버는,
    값들
    Figure 112010003624066-pct00241
    를 갖는
    Figure 112010003624066-pct00242
    치환 행렬 (permutation matrix) 을 발생시키고,
    상기 치환 행렬로부터 연속적으로 2 개의 인접하는 행들을 판독함에 의해 상기 치환 행렬을 값들
    Figure 112010003624066-pct00243
    를 갖는 치환 벡터 (permutaion vector) 로 변환하도록 구성되고, 상기 2 개의 인접하는 행들은, 상기 치환 행렬의 모든 값들이 상기 치환 벡터에 포함될 때까지 하나의 행렬 열을 위에서 아래로, 좌측 열부터 우측 열로 판독되며, 여기서
    Figure 112010003624066-pct00244
    ,
    Figure 112010003624066-pct00245
    이고,
    Figure 112010003624066-pct00246
    =
    Figure 112010003624066-pct00247
    이고,
    Figure 112010003624066-pct00248
    는 이진 데이터의 블록 길이에 대응하는 정수이며,
    Figure 112010003624066-pct00249
    인, 상기 터보 인터리버로 상기 이진 데이터 스트림을 제공하는 단계; 및
    재배열된 상기 이진 데이터 스트림을 상기 제 2 구성요소 인코더로 제공하는 단계를 포함하는, 이진 정보의 인코딩 방법.
  11. 제 10 항에 있어서,
    상기 제 1 구성요소 인코더에서 상기 이진 데이터 스트림을 처리하여, 하나 이상의 심볼들의 제 1 출력을 발생시키는 단계;
    상기 제 2 구성요소 인코더에서 상기 재배열된 이진 데이터 스트림을 처리하여, 하나 이상의 심볼들의 제 2 출력을 발생시키는 단계; 및
    상기 제 1 출력 및 상기 제 2 출력을 캐리어 신호로 매핑하는 단계를 더 포함하는, 이진 정보의 인코딩 방법.
  12. 제 10 항에 있어서,
    상기 제 1 구성요소 인코더 및 상기 제 2 구성요소 인코더는, 순환적 시스터매틱 콘볼루션 인코더 (recursive systematic convolutional encoder) 들인, 이진 정보의 인코딩 방법.
  13. 삭제
  14. 삭제
  15. 이진 데이터 스트림을 인코딩하여, 하나 이상의 심볼들의 제 1 출력을 제공하기 위한 제 1 수단;
    복수의 소정의 치환 방정식 (permutation equation) 들에 따라 이진 데이터 스트림의 순서를 재배열하도록 인터리빙하기 위한 수단으로서, 상기 소정의 치환 방정식들은 상기 재배열된 이진 데이터 스트림의 순서를 정의하는 치환 벡터 (permutation vector) 에 포함되는 치환 값들을 결정하고, 상기 치환 벡터는 열 (column) 의 순서대로 치환 행렬 (permutation matrix) 의 적어도 2 개의 인접하는 행들로부터 계속해서 상기 치환 값들을 판독함에 의해 발생되는, 상기 인터리빙하기 위한 수단; 및
    상기 인터리빙된 이진 데이터 스트림을 인코딩하여, 하나 이상의 심볼들의 제 2 출력을 제공하기 위한 제 2 수단을 포함하는, 터보 인코더.
  16. 제 15 항에 있어서,
    상기 제 1 출력 및 상기 제 2 출력을 캐리어 신호로 매핑하기 위한 수단을 더 포함하는, 터보 인코더.
  17. 이진 데이터 스트림을 수신하는 입력 인터페이스;
    상기 입력 인터페이스에 통신가능하게 연결되어, 상기 이진 데이터 스트림을 샘플링하고, 입력 블록들로 분할하도록 구성된 데이터 샘플러; 및
    상기 데이터 샘플러에 통신가능하게 연결되어, 복수의 소정의 치환 방정식 (permutation equation) 들에 따라 상기 입력 블록들에서의 상기 이진 데이터 스트림의 순서를 재배열하고, 상기 재배열된 이진 데이터 스트림을 갖는 출력 블록들을 제공하는 처리 유닛으로서, 상기 소정의 치환 방정식은 상기 재배열된 이진 데이터스트림의 순서를 정의하는 치환 벡터 (permutation vector) 의 치환 행렬 (permutation matrix) 값들을 결정하고, 상기 치환 벡터는 열 (column) 의 순서대로 치환 행렬의 적어도 2 개의 인접하는 행들로부터 연속적으로 상기 치환 행렬 값들을 판독함에 의해 형성되는, 상기 처리 유닛을 포함하는, 인터리버.
  18. 제 17 항에 있어서,
    상기 처리 유닛은 또한,
    값들
    Figure 112010003624066-pct00192
    를 갖는
    Figure 112010003624066-pct00193
    치환 행렬로서 상기 치환 행렬을 발생시키고,
    상기 치환 행렬을, 상기 재배열된 이진 데이터 스트림의 순서를 정의하는 상기 치환 벡터로 변환하고,
    여기서,
    Figure 112010003624066-pct00194
    ,
    Figure 112010003624066-pct00195
    이고,
    Figure 112010003624066-pct00196
    =
    Figure 112010003624066-pct00197
    이고,
    Figure 112010003624066-pct00198
    는 이진 데이터의 블록 길이에 대응하는 정수이고, 상기 복수의 소정의 치환 방정식들은 상기 치환 행렬 값들
    Figure 112010003624066-pct00199
    를 정의하는, 인터리버.
  19. 제 17 항에 있어서,
    상기 복수의 소정의 치환 방정식들은,
    Figure 112010003624066-pct00200
    로서 정의되고,
    여기서,
    Figure 112010003624066-pct00201
    ,
    Figure 112010003624066-pct00202
    이고,
    Figure 112010003624066-pct00203
    Figure 112010003624066-pct00204
    는 소수 (素數) 들인, 인터리버.
  20. 이진 데이터 스트림을 수신하는 입력부; 및
    상기 이진 데이터 스트림을 입력 블록들로 분할하고, 열 (column) 의 순서대로 치환 행렬 (permutation matrix) 의 적어도 2 개의 인접한 행들로부터 순차적으로 판독되는 치환 값들을 포함하는 치환 벡터 (permutation vector) 의 소정의 치환 값들에 따라 입력 블록에서의 상기 이진 데이터 스트림의 순서를 재배열하고, 상기 재배열된 이진 데이터 스트림을 갖는 출력 블록을 제공하도록 구성된 회로를 포함하는, 프로세서.
  21. 제 20 항에 있어서,
    상기 회로는 또한,
    값들
    Figure 112010003624066-pct00205
    를 갖는
    Figure 112010003624066-pct00206
    치환 행렬로서 상기 치환 행렬을 발생시키고,
    상기 치환 행렬을, 상기 재배열된 이진 데이터 스트림의 순서를 정의하는 상기 치환 벡터로 변환하도록 구성되고,
    여기서,
    Figure 112010003624066-pct00207
    ,
    Figure 112010003624066-pct00208
    이고,
    Figure 112010003624066-pct00209
    =
    Figure 112010003624066-pct00210
    이고,
    Figure 112010003624066-pct00211
    는 입력 블록 길이에 대응하는 정수이고, 복수의 소정의 치환 방정식들이 상기 치환 행렬 값들
    Figure 112010003624066-pct00212
    를 정의하고,
    상기 치환 행렬 값들
    Figure 112010003624066-pct00213
    는, 다음의 상기 복수의 소정의 치환 방정식들:
    Figure 112010003624066-pct00214
    에 기초하여 계산되고,
    여기서,
    Figure 112010003624066-pct00215
    ,
    Figure 112010003624066-pct00216
    이고,
    Figure 112010003624066-pct00217
    Figure 112010003624066-pct00218
    는 소정의 소수 (素數) 들인, 프로세서.
  22. 제 1 신호를 수신하는 입력 인터페이스; 및
    상기 제 1 신호에서의 제 2 심볼들 세트의 인터리빙된 버전들인 상기 제 1 신호에서의 제 1 심볼들 세트를 식별함으로써, 상기 제 1 신호를 디코딩하도록 구성된 처리 유닛을 포함하고,
    상기 제 1 심볼들 세트는 소정의 치환 방정식 (permutation equation) 들 세트에 따라 블록 인터리빙되고, 상기 소정의 치환 방정식들 세트는 치환 행렬 (permutation matrix) 과 연관되는 치환 행렬 값들을 확립하고, 상기 치환 행렬은 열 (column) 의 순서대로 상기 치환 행렬의 적어도 2 개의 인접 행들을 연속적으로 판독함에 의해 형성되는 치환 벡터 (permutation vector) 를 생성하기 위해 이용되는, 디코더.
  23. 제 22 항에 있어서,
    상기 소정의 치환 방정식들 세트는,
    Figure 112010003624066-pct00219
    로서 정의되고,
    여기서,
    Figure 112010003624066-pct00220
    ,
    Figure 112010003624066-pct00221
    이고,
    Figure 112010003624066-pct00222
    Figure 112010003624066-pct00223
    는 소정의 소수 (素數) 들인, 디코더.
  24. 제 1 신호를 수신하기 위한 수단; 및
    상기 제 1 신호에서의 제 2 심볼들 세트의 인터리빙된 버전들인 상기 제 1 신호에서의 제 1 심볼들 세트를 식별함으로써, 상기 제 1 신호를 처리하기 위한 수단을 포함하고,
    상기 제 1 심볼들 세트는, 소정의 치환 방정식 (permutation equation) 들 세트에 따라 블록 인터리빙되고, 상기 소정의 치환 방정식들 세트는 치환 행렬 (permutation matrix) 과 연관되는 치환 행렬 값들을 결정하고, 상기 치환 행렬은 열 (column) 의 순서대로 상기 치환 행렬의 적어도 2 개의 인접 행들을 연속적으로 판독함에 의해 형성되는 치환 벡터 (permutation vector) 를 생성하기 위해 이용되는, 디코더.
  25. 이진 데이터 스트림을 인코딩하기 위한 하나 이상의 명령들을 갖는 머신 판독가능 매체로서,
    상기 명령들은, 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    수신된 이진 데이터 스트림을 제 1 코딩 함수 (coding function) 로 인코딩하여, 제 1 출력을 발생시키도록 하고;
    값들
    Figure 112010003624066-pct00224
    를 갖는 치환 벡터 (permutation vector) 를 발생시키도록 하고;
    상기 치환 벡터 값들
    Figure 112010003624066-pct00225
    에 따라 상기 이진 데이터 스트림의 순서를 재배열하도록 하고;
    상기 재배열된 이진 데이터 스트림을 제 2 코딩 함수로 인코딩하여, 제 2 출력을 발생시키도록 하고,
    여기서,
    Figure 112010003624066-pct00226
    이고,
    Figure 112010003624066-pct00227
    는 이진 데이터의 블록 길이에 대응하는 정수고, 상기 치환 벡터는 열 (column) 의 순서대로 치환 행렬 (permutation matrix) 의 적어도 2 개의 인접한 행들로부터 연속적으로 상기 값들
    Figure 112010003624066-pct00250
    을 판독함에 의해 확립되는, 머신 판독가능 매체.
  26. 제 25 항에 있어서,
    실행되는 경우, 상기 프로세서로 하여금, 상기 제 1 출력 및 상기 제 2 출력을 캐리어 신호로 매핑하도록 하는 하나 이상의 명령들을 더 포함하는, 머신 판독가능 매체.
KR1020087011297A 2005-10-12 2006-10-12 낮은 프레임 에러 레이트를 위한 개선된 터보 코드인터리버 KR100963463B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/249,293 2005-10-12
US11/249,293 US7512863B2 (en) 2005-10-12 2005-10-12 Turbo code interleaver for low frame error rate

Publications (2)

Publication Number Publication Date
KR20080067650A KR20080067650A (ko) 2008-07-21
KR100963463B1 true KR100963463B1 (ko) 2010-06-17

Family

ID=37603131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087011297A KR100963463B1 (ko) 2005-10-12 2006-10-12 낮은 프레임 에러 레이트를 위한 개선된 터보 코드인터리버

Country Status (6)

Country Link
US (1) US7512863B2 (ko)
EP (1) EP1938460A1 (ko)
JP (1) JP2009512353A (ko)
KR (1) KR100963463B1 (ko)
CN (1) CN101326728A (ko)
WO (1) WO2007047472A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873897B2 (en) * 2007-09-17 2011-01-18 Industrial Technology Research Institute Devices and methods for bit-level coding and decoding of turbo codes
CN101931419B (zh) * 2009-06-24 2013-04-03 中兴通讯股份有限公司 一种turbo码内交织器的计算方法及装置
KR20120071511A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 이동통신 시스템의 데이터 레이트 매칭 방법 및 장치
FR3037746B1 (fr) 2015-06-19 2020-10-02 Inst Mines Telecom Procede de construction d'un entrelaceur pour turbo-encodeur
WO2017132487A1 (en) * 2016-01-29 2017-08-03 Massachusetts Institute Of Technology Apparatus and method for multi-code distributed storage
FR3064138B1 (fr) 2017-03-20 2021-05-07 Orange Procedes et dispositifs de codage a rendement compatible
EP3656058B1 (en) 2017-08-23 2022-07-27 Huawei Technologies Co., Ltd. Device and method for generating a multi-kernel polar code
CN112165337B (zh) * 2020-09-30 2024-01-26 电子科技大学 基于线性约束的卷积码随机交织序列交织关系估计方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020159423A1 (en) 2001-02-28 2002-10-31 Iwen Yao Interleaver for turbo decoder

Family Cites Families (6)

* 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
US6442728B1 (en) * 1999-01-11 2002-08-27 Nortel Networks Limited Methods and apparatus for turbo code
CA2298919C (en) * 1999-02-19 2006-04-18 Ntt Mobile Communications Network Inc. Interleaving and turbo encoding using prime number permutations
JP4364405B2 (ja) * 2000-06-12 2009-11-18 三菱電機株式会社 通信装置および通信方法
KR100393608B1 (ko) * 2000-09-29 2003-08-09 삼성전자주식회사 유.엠.티.에스시스템내 터보부호화기의 내부 인터리버 및인터리빙 수행 방법
US7239667B2 (en) * 2003-03-18 2007-07-03 Broadcom Corporation 8 PSK rotationally invariant turbo trellis coded modulation without parallel transitions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020159423A1 (en) 2001-02-28 2002-10-31 Iwen Yao Interleaver for turbo decoder

Also Published As

Publication number Publication date
WO2007047472A1 (en) 2007-04-26
CN101326728A (zh) 2008-12-17
US20070083803A1 (en) 2007-04-12
US7512863B2 (en) 2009-03-31
EP1938460A1 (en) 2008-07-02
JP2009512353A (ja) 2009-03-19
KR20080067650A (ko) 2008-07-21

Similar Documents

Publication Publication Date Title
KR100963463B1 (ko) 낮은 프레임 에러 레이트를 위한 개선된 터보 코드인터리버
US8543884B2 (en) Communications channel parallel interleaver and de-interleaver
JP5506879B2 (ja) 低密度パリティ検査符号を使用する通信システムのチャネル復号化装置及び方法
US8453037B2 (en) Turbo coding having combined turbo de-padding and rate matching de-padding
US8751769B2 (en) Efficient address generation for pruned interleavers and de-interleavers
WO2007029114A2 (en) System, transmitter, receiver, method, and computer program product for structured interleaved zigzag coding
US7640462B2 (en) Interleaver and de-interleaver
KR20080067987A (ko) 큐피피 인터리브를 갖는 병렬 터보 디코딩을 위한 공식적플렉서블 충돌 방지 메모리 억세싱
KR101611631B1 (ko) 데이터 복호화 방법, 데이터 인터리브 방법, 데이터 복호화 장치, 인터리버 테이블 생성 장치 및 데이터 인터리브 장치
KR20080112088A (ko) 인터리빙 수행 방법
KR100369561B1 (ko) 터보 코드용 인코더 및 디코더
US8024636B2 (en) Serially concatenated convolutional code decoder with a constrained permutation table
KR101110201B1 (ko) 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치
US7873897B2 (en) Devices and methods for bit-level coding and decoding of turbo codes
KR102159242B1 (ko) 송신 장치 및 그의 신호 처리 방법
KR100912600B1 (ko) 임의 개수의 정보 비트들을 위한 테일바이팅 터보 코드
US7725798B2 (en) Method for recovering information from channel-coded data streams
JP4420925B2 (ja) 情報ビット系列を符号化する方法および符号化器
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
LAPS Lapse due to unpaid annual fee