KR101297060B1 - 서브 블록 인터리버 및 디-인터리버를 가진 다차원 블록인코더 - Google Patents

서브 블록 인터리버 및 디-인터리버를 가진 다차원 블록인코더 Download PDF

Info

Publication number
KR101297060B1
KR101297060B1 KR1020067020947A KR20067020947A KR101297060B1 KR 101297060 B1 KR101297060 B1 KR 101297060B1 KR 1020067020947 A KR1020067020947 A KR 1020067020947A KR 20067020947 A KR20067020947 A KR 20067020947A KR 101297060 B1 KR101297060 B1 KR 101297060B1
Authority
KR
South Korea
Prior art keywords
block
matrix
sub
values
positions
Prior art date
Application number
KR1020067020947A
Other languages
English (en)
Other versions
KR20060135018A (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 KR20060135018A publication Critical patent/KR20060135018A/ko
Application granted granted Critical
Publication of KR101297060B1 publication Critical patent/KR101297060B1/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/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
    • 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/2703Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/2721Coding, 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 the interleaver involves a diagonal direction, e.g. by using an interleaving matrix with read-out in a diagonal direction
    • 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/2757Interleaver with an interleaving rule not provided for in the subgroups H03M13/2703 - H03M13/2753
    • 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/2778Interleaver using block-wise interleaving, e.g. the interleaving matrix is sub-divided into sub-matrices and the permutation is performed in blocks of sub-matrices
    • 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/2906Coding, 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 using block codes
    • H03M13/2909Product 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/2906Coding, 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 using block codes
    • H03M13/2918Coding, 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 using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube

Abstract

인터리버는 맵핑을 발생하는 일반화된 방법을 사용한다. 그 맵핑은 데이터 블록 비트들 및 연관된 에러 검출/정정 정보를 인터리빙하기 위해 발생된다. 그 데이터 블록이 길이 N×N이고, 에러 검출/정정 정보의 길이가 P이다. (N+P)×(N+P) 스퀘어 매트릭스가 형성되고 서브-블록들로 나누어지고, 여기서 매트릭스의 한 부분이 에러 검출/정정 정보와 연관되고 나머지 부분이 데이터 블록의 데이터와 연관된다. 매트릭스의 새로운 위치들이 발생기 시드(seed) 쌍 및 오리지널 위치 시드 쌍에 기초하여 서브-블록 단위로 시간 시퀀스에서 발생된다. 시간 시퀀스가 출력 인터리빙된 블록의 위치들에 또한 대응한다. 그 새로운 위치 시퀀스가 일단 발생되면, 매트릭스는 대응하는 시간 시퀀스에 기초하여 데이터 및 에러 검출/정정 정보로서 실장된다(populate). 디-인터리버가 인터리버의 역맵핑을 수행한다.
인터리버, 디-인터리버, 시퀀스, 매트릭스, 맵핑

Description

서브 블록 인터리버 및 디-인터리버를 가진 다차원 블록 인코더{Multidimensional block encoder with sub-block interleaver and de-interleaver}
본 발명은 통신 시스템에서 데이터의 인코딩, 검출, 및 디코딩에 관한 것이고, 특히, 수신기에 의한 프로덕트 코드 에러 검출 및 정정용 인터리버 및 디-인터리버에 관한 것이다.
다수의 디지털 송신 시스템들은 일반적으로 심벌들의 시퀀스에 의해 표현된 디지털 데이터의 검출을 위한 기술들을 이용한다. 심벌 비트들이 송신(즉, 통신) 채널을 통해 신호로서 전송되고, 채널에서 일반적으로 송신되는 신호에 잡음이 부가된다. 예를 들어, 자기 기록 시스템들(magnetic recording systems)은 우선 데이터를 심벌 비트들로 인코딩하고, 이는 자기 매체(magnetic medium) 상에 기록된다. 자기 매체에 데이터를 기록하고, 자기 매체에 데이터를 저장하고, 자기 매체로부터 데이터를 판독하는 것은 연관된 주파수 응답을 갖는 송신 채널을 통해서 발생하는 것으로 고려될 수 있다. 이와 유사하게, 유선, 광, 무선, 및 셀룰러 통신 시스템들이 또한 채널을 통해 인코딩된 데이터를 전송하고, 그 인코딩된 데이터가 수신기에 의해 검출 및 디코딩된다. 신호는, 송신되는 인코딩된 데이터를 나타내는 샘플링된 신호(즉, 샘플값들의 시퀀스)로서 채널로부터 판독될 수 있다. 처리의 편리성을 위해, 인코딩 및 디코딩 처리가 데이터의 블록들에 인가되고, 각각의 블록은 오리지널 데이터 시퀀스의 일부를 나타낸다.
데이터를 2-차원 이상의 블록 코드들로 인코딩하고 다음으로 인코딩된 데이터를 디코딩하는 것은 디코더의 상대적으로 높은 코딩 이득 및 단순한 구조로 인해 다수의 시스템들에서 이용된다. 데이터의 인코딩을 위해, 2개 이상의 단순한 코드들(컴포넌트 코드들로 공지됨)이 더 강력한 인코딩 스킴들을 생성하기 위해 결합되는 프로덕트 코드들(product codes)이 이용될 수 있다. 코드의 차원은 컴포넌트 코드들의 수에 관련될 수 있다.
예를 들어, 프로덕트 코드는 패리티-비트 검사 코드를 이용할 수 있고, 이는 2-차원의 경우에 N 정보 비트들을 2-차원 데이터 워드들(예컨대, n1 워드들은 n2정보 비트들을 갖거나, n2 워드들이 n1 정보 비트들을 가짐)로서 인코딩한다. 각각의 데이터 워드는 벡터를 대응하는 차원으로 표현하고, n1 및 n2 는 0보다 큰 정수들이다. 데이터(즉, N 정보 비트들)를 인코딩하는 프로덕트 코드는 직사각형(rectangular) 매트릭스 u에서 정렬되고, 그 인코딩은 직사각형 매트릭스 u를 형성하기 위해, 열 벡터(예를 들어, n1 정보 비트들)와 행 벡터(예를 들어, n2 정보 비트들)의 조합일 수 있다. 그 조합은 2진 값들의 갈로아체(Galois field; GF)(2) 가산, 승산, 또는 선형 연산일 수 있다. 예를 들어, N 정보 비트들(예를 들어, 데이터 블록)의 시퀀스는 정보 비트들의 (n1Xn2) 매트릭스로서 형성될 수 있고, N=n12이다. 데이터를 인코딩하는 프로덕트 코드는 또한 행 및 열방향 패리티 비트들 P 및 P를 각각 에러 검출 및 정정 정보로서 포함한다. 수평 행들은 레이트 R1=(n1/k1)를 갖는 (n1,k1) 블록 코드 C의 n2 코드 워드들로부터 형성된다(여기서, k1은 행의 총길이이고, 각각의 행에 대한 패리티 비트 정보의 길이는 k1-n1 이다). 수직 열들은 레이트 R2=(n2/k2)를 갖는 (n2,k2) 블록 코드 C의 n1 코드 워드로부터 형성된다(여기서, k2는 열의 총길이이고, 각각의 열에 대한 패리티 비트 정보의 길이는 k2-n2 이다).
프로덕트 코드로 인코딩된 데이터 블록은 일반적으로 인코딩된 데이터의 직렬 블록으로서 송신된다. 단일-비트 패리티 검사 코드들이 차원 단위로 이용될 때, 프로덕트 코드들은 일반적으로 단일의 1 비트 에러들을 정정할 시에 코딩 이득에 대해 최적의 성능을 보여준다. 행 또는 열에서 발생하는 짝수의 에러들로부터 야기되는 패리티-검사 취소 및 다수의 1 비트 에러들과 연관된 패리티-검사 위치적 모호성들(ambiguities)로 인해, 단지 단일의, 1 비트 에러들 밖에 검출 및 정정될 수 없다. 단일-비트 패리티 검사 코드들을 갖는 스퀘어, 프로덕트 코드 매트릭스에서 상기 위치적 모호성의 예를 위해, 제 1 행의 제 1 성분을 에러로 하고, 제 2 행의 제 2 성분을 에러로 한다(전방향 대각선에 따른 에러들). 제 1 및 2 행방향 및 제 1 및 2 열방향 패리티 비트들이 에러를 표시하지만, 제 1 행의 제 2 성분 및 제 2 행의 제 1 성분이 에러(역방향 대각선에서의 에러들)인 경우에도 에러를 표시한다. 소프트 정보의 가용성이 소프트 디코딩에서 이러한 유형의 모호성을 구별하기 위해 도움이 될 수 있다.
더 많은 수의 에러들, 특히 더 많은 수의 연속하는 에러들의 검출 및 정정은 에러 검출 정보(예를 들어, 패리티 비트들)에 관한 과잉의 오버헤드가 부가되어, 전체 시스템 처리량을 감소시킬 수 있다. 수신기에서의 데이터의 에러들은, 신호 저하(signal degradation)로 인한 검출 및/또는 디코딩 처리의 부정확한 결정에 의해 야기된다. 신호 저하는 신호가 통신 채널을 통과함에 따라 부가되는 랜덤 및/또는 버스트 잡음으로부터 발생한다.
일부 프로덕트 코드들에 대해서, 결과적인 출력 시퀀스가, 검출 에러에 특히 발생하기 쉬운 심벌 패턴들을 포함할 수 있다. 예를 들어, 모든 "1"의 시퀀스는 수신기의 샘플 타이밍이 시퀀스 심벌 타이밍과 위상을 달리하는 경우에, 검출하기 어렵다. 결과적으로, 인터리버 설계는 이러한 패턴들을 회피하는 논리를 포함한다.
일부 통신 채널들의 특징은 "버스티(bursty)" 잡음의 부가이다. 이러한 잡음은 몇 개의 송신된 심벌들(데이터 또는 인코딩된 데이터 중 하나)의 기간과 동등한 시간 기간에 대해 송신된 신호를 손상(corrupt)시킬 수 있다. 버스티 잡음은 수신된 데이터에서 버스트 에러들을 야기할 수 있다. 버스트 에러들을 최소화하기 위해, 다수의 통신 시스템들은 송신기에서는 인터리버를 및 수신기에서는 대응하는 디-인터리버를 포함한다. 인터리빙은 일반적으로 BLK 값들(즉, BLK는 블록 길이이고, BLK는 1 이상의 정수)을 갖는 데이터의 블록을 수신하는 것과, 블록에서 BLK 값들의 순서를 재배열하는 것을 포함하는 맵핑
Figure 112011052871201-pct00027
이다. 인터리빙은 예를 들어, 데이터 스트림에서 값들의 비-랜덤 시퀀스들을 제거하기 위해 또한 이용될 수 있다. 채널을 통한 송신에 앞서 데이터의 블록 내의 심벌들을 인터리빙함으로써, 디-인터리빙 처리는 디-인터리빙된 블록 전체에 버스트 에러들을 분산시킨다.
용어 "출력 채널 샘플(output channel sample)"은 수신기의 샘플링 처리를 통해 발생된 송신 채널로부터의 인코딩된 데이터의 샘플을 말한다. 수신기는 출력 채널 샘플들로부터의 인코딩된 데이터를 표현하는 심벌 비트들의 시퀀스를 검출하는 검출기를 포함한다. 디코더는 검출된 심벌 시퀀스를 검출기로부터 수신하고, 심벌 비트들의 시퀀스를 디코딩하여 데이터를 재구성한다. 디코더는 인코딩 처리를 역방향으로 하는 단순한 디코더, 또는 최대 비트-에러 레이트(BER) 임계값과 같이, 미리 결정된 디코딩 메트릭(metric)이 만족될 때까지 데이터를 반복적으로 디코딩하는 반복 디코더(iterative decoder)일 수 있다. 검출기는 일반적으로 부분 응답, 최우(partial response, maximum-likelihood; PRML) 알고리즘(예컨대, 비터비 알고리즘(Viterbi algorithm; VA)), 최대 사후(maximum a posteriori ; MAP) 알고리즘, 또는 소프트-출력 비터비 알고리즘(soft-output Viterbi algorithm; SOVA)을 이용할 수 있다. 디코더는 일반적으로 검출기로부터 발생되는 소프트 정보를 이용할 수 있고 소프트 디코딩 스킴들을 이용할 수 있다.
검출기들 및/또는 디코더들에 의해 이용되는 이러한 알고리즘들은 일반적으로 상태들의 트렐리스(trellis)를 통하는 최우 경로(maximum-likelihood path)를 결정한다. 그 경로는 수신된 출력 채널 샘플들에 대응하는 심벌들에 대한 결정들의 시퀀스를 표현한다. 그러나, 수신된 신호가 낮은 신호-대-잡음비(signal-to-noise ratio; SNR)를 갖는 상황들에서, 알고리즘은 트렐리스를 통하는 부정확한 경로를 결정할 수도 있어서, 대응하는 출력 채널 샘플들의 시퀀스에 대해 부정확한 결정들의 시퀀스를 발생할 수도 있다. 이러한 에러들의 시퀀스는 일반적으로 검출 알고리즘의 "에러 이벤트(error event)"로 불리운다. 어떠한 에러 이벤트들에 대해서는, 수신된 비트들의 시퀀스에 대한 결정이, 긴 에러들의 시퀀스를 발생할 수 있어, 이는 디코딩 전에 검출되어 인코딩된 데이터로 삽입될 수도 있다. 특정의 구현에서 이용되는 어떠한 검출 알고리즘들은, 채널 메모리, SNR, 및 임펄스 응답에 기초하여 최적화되고, 및 간접적으로는 주요한(dominant) 에러 이벤트들에 대해 최적화된다.
결과적으로, 인터리버는 ⅰ) 단일 에러 이벤트 검출 및 정정, ⅱ) 복수의 에러 이벤트 검출 및 정정, 및 ⅲ) 일반적인 프로덕트 코드 에러 패턴들의 회피를 위해 양호한 성능을 가져야 한다.
본 발명에 따라, 인터리버는 맵핑을 발생하는 일반화된 방법을 이용한다. 맵핑은 데이터 블록 비트들 및 연관된 에러 검출/정정 정보를 인터리빙하기 위해 발생된다. 매트릭스가 형성되어 서브-블록들로 분할되고, 매트릭스의 한 부분이 에러 검출/정정 정보와 연관되고, 다른 부분이 데이터 블록의 데이터와 연관된다. 매트릭스는 D 차원들을 갖고, D는 1보다 큰 정수이고, 차원 d가 길이 (N+P)를 갖고, 여기서 P가 양의 정수이고, 데이터 블록은 길이
Figure 112012042739945-pct00176
를 갖는다. 매트릭스 내의 위치들은 발생기 시드(seed) 세트 및 오리지널 위치 시드 세트에 기초하여 서브-블록 단위로 시간 시퀀스에서 발생된다. 각각의 발생기 시드 세트값은 대응하는 서브-블록 차원 길이에 대해 서로 유일하도록(relatively unique), 서로소(relatively prime)이도록 선택된다. 시간 시퀀스는 또한 출력 인터리빙된 블록 내의 위치들에 대응한다. 위치들의 시퀀스가 일단 발생되면, 매트릭스는 시간 시퀀스에 기초하여 데이터 및 에러 검출/정정 정보로서 실장된다(populate). 디-인터리버가 인터리버의 역맵핑을 수행한다.
본 발명의 다른 측면들, 특성들, 및 장점들은 다음의 상세한 설명, 첨부된 청구항들, 및 첨부 도면들로부터 더 완전히 명백해진다.
도 1은 본 발명의 예시된 실시예에 따라 인터리빙하는 방법의 도시도.
도 2는 도 1의 방법에 따라 형성된 매트릭스 도시도.
도 3은 서브-블록들로 분할되고 데이터 및 에러 검출/정정 정보와 연관된 부분들을 갖는 도 2의 매트릭스 도시도.
도 4는, N이 3이고 P가 1일 때, 도 1의 방법에 따라 형성되는 예시된 매트릭스 도시도.
도 5는 시간 시퀀스 및 연관된 위치들을 포함하는 도 4의 매트릭스에 대해 형성된 예시되는 새로운 매트릭스 도시도.
도 6은 도 2의 매트릭스를 실장하는 예시된 방법 도시도.
도 7은 본 발명의 예시된 실시예에 따라 동작하는 인터리버의 예시된 구현의 도시도.
도 8은 도 7의 행 인코딩 논리 도시도.
도 9는 도 7의 열 인코딩 논리 도시도.
도 10은 본 발명의 예시된 실시예에 따라 동작하는 인터리버를 포함하는 송 신기의 도시도.
도 11은 본 발명의 예시된 실시예에 따라 동작하는 인터리버 및 디-인터리버를 포함하는 수신기의 도시도.
도 1은 본 발명의 예시된 실시예에 따른 인터리빙하는 방법을 도시한다. 방법(100)은 단계들(101 내지 107)을 포함한다. 단계들(101 내지 104)은 예시적인 인터리버 구현을 위해 맵핑을 발생시키기 위한 설계에 의해 이용될 수 있는 반면에, 단계들(105 내지 107)은 예시적인 인터리버에 의해 동작 동안 이용될 수 있다. 본 발명의 예시적인 실시예에 따라 동작하는 디-인터리버의 소정의 구현은 대응하는 인터리버 맵핑의 (역맵핑이라 불리는) 반대의 맵핑을 이용할 수 있다. 본 발명의 예시적인 실시예에 따라 발생되는 맵핑이 제공되고, 역맵핑이 용이하게 발생된다.
단계(101)에서, 방법은 길이 NM을 갖는 데이터 블록(입력 데이터 블록)을 수신하고, 여기서 N 및 M은 1 보다 큰 양의 정수들이다. 도 1의 예시적인 실시예에서, N=M=N2 이고, 방법은 2-차원 매트릭스들을 이용한다. 데이터의 블록은 값들의 시퀀스이고, 여기서 각각의 값은 시퀀스에서 대응하는 위치를 갖는다. 그 위치는 수치로 표시될 수 있고, 이는 또한 시간의 단위와 연관될 수 있다(예를 들어, 위치 4의 값이 T=4로 수신된다)된다. 데이터 블록은 프로덕트 코드들을 인코딩함으로써 유저 데이터로부터 발생될 수 있고, 이러한 인코딩이 본 발명의 실행으로 결부될 수 있다.
단계(102)에서, 방법(100)은 크기 (N+P)by(N+P), 또는 (N+P)X(N+P)의 스퀘어 매트릭스
Figure 112011052871201-pct00037
를 형성하며, 여기서 P는 0 보다 큰 양의 정수이다. 매트릭스
Figure 112011052871201-pct00177
의 P 행들 및 P 열들은 바람직하게 에러 검출 및/또는 정정 정보(예를 들어, 패리티 비트)와 연관되고, 반면에 N 행들 및 N 열들은 바람직하게 데이터 블록의 데이터와 연관된다. k=0,...,P-1인 위치들 (k,j) 및 (i,k)의 값들이 제로로 설정될 수 있다. 단계(103)에서 (N+P)X(N+P) 매트릭스
Figure 112011052871201-pct00178
는 (L)X(L) 서브-블록 매트릭스들("서브-블록들")로 나누어지고, L은 양의 정수이고, 여기서 L로 나누어지는 (N+P)는 나머지가 없는 정수값을 산출한다. 편의를 위해, 다음의 표기법이 사용되고: 행들은 0 내지 (N+P-1)로 번호가 매겨지고, 열들은 0 내지 (N+P-1)로 번호가 매겨지고, (N+P)X(N+P) 매트릭스
Figure 112011052871201-pct00179
에서의 위치는 i번째 행 및 j번째 열에서 (i,j)로서 규정된다.
매트릭스
Figure 112011052871201-pct00180
가 2차원 스퀘어 매트릭스로서 도면들에 도시되지만, 본 발명은 이에 제한되지 않는다. 매트릭스
Figure 112011052871201-pct00181
는 2차원들 이상으로 확장될 수 있고, 각각의 차원은 본 명세서에 설명된 2차원의 매트릭스
Figure 112011052871201-pct00182
의 경우와 유사한 방식으로 구성될 수 있다.
도 2는 도 1의 단계(101 및 102)에 따라서 형성된 9개의 서브-블록들(진한 선들로 그리드내에 표시된 경계들을 갖는)을 갖는 예시적인 (N+P)X(N+P) 매트릭스
Figure 112011052871201-pct00183
를 도시하고, 여기서 (N+P)는 18이고 L은 6이다. 도 3은 도 2의 매트릭스
Figure 112011052871201-pct00184
를 도시하고, 여기서 P=1이다. 도 3에 도시한 바와 같이, 패리티 비트들은 제 1 행 및 제 1 열의 위치들과 연관된다. 위치(i=0, j=0)는 정보를 포함하지 않으며 제로로 설정된다. SB(m,n)로 표시되는 9개 서브-블록들이 형성되고, 여기서 1≤m, n≤3이다. 서브-블록들 SB(1,n) 및 SB(m,1)은 패리티 비트들 및 데이터 비트들과 연관된 공간들을 포함하는 반면에, 나머지의 서브-블록들은 데이터 비트들에만 연관된 공간들을 포함한다.
단계(104)에서, (N+P)X(N+P) 매트릭스
Figure 112011052871201-pct00185
에서, 위치들 (i,j)가 시간 시퀀스로 발생된다. 이 시간 시퀀스에서의 위치는 수치(numerical value) 또는 시퀀스 번호에 의해 표시될 수 있고, 이는 또한 시간의 단위와 연관될 수 있다(예컨대, 위치 4의 값은 T=4로 수신된다). 결과적으로, 주어진 위치 (i,j)에 대해, 발생되는 위치들의 시퀀스 내의 대응하는 시퀀스 번호는 출력 인터리빙된 블록 내의 위치에 대응한다. 출력되는 위치들의 시퀀스는 다음과 같이 서브-블록 단위로 발생된다.
각각의 서브-블록 SB(m,n)에 대해, 행/열 발생기 시드 쌍 {a,b}SB(m,n) 및 오리지널 위치 시드 쌍 (ps1,ps2)SB(m,n)이 할당된다. 매트릭스
Figure 112011052871201-pct00186
가 2 차원보다 높은 차원이면, 발생기 시드 세트의 성분들의 수 및 오리지널 위치 시드 세트의 성분들의 수는 등가이고, 매트릭스
Figure 112011052871201-pct00187
의 차원의 자릿수와 동일하다. 발생기 시드 쌍 {a,b}의 a 및 b는 각각 행 및 열 위치 증가값들에 대응한다. 그러므로, a=1이면, (i,j)에 대한 새로운 위치 i를 계산하는 연산이 완료될 때, i가 1(즉, i=(i+1))씩 증가한다. 비슷하게, b=1이면, (i,j)에 대한 새로운 위치 j를 계산하는 연산이 완료될 때, j가 1(즉, j=(j+1))씩 증가한다. a 및 b의 값들을 선택할 때, a 및 b는 L에 서로소(relatively prime)이도록 선택되는 것이 바람직하다. a 및 b의 값들은 각각의 서브-블록에 대해 서로 유일하도록 선택되는 것이 바람직하다. (n-1)≥ps1, ps2≥0인, 오리지널 위치 시드 쌍 (ps1,ps2)SB(m,n)는, 서브-블록 SB(m,n) 내의 초기 개시 위치이다. 결과적으로, 계산을 개시하기 위해 서브-블록 SB(m,n)에서 선택되는 제 1 위치(i,j)는 (i=ps1, j=ps2)이다. 오리지널 위치 시드 쌍 (ps1,ps2)SB(m,n)의 값들을 선택할 때, 상기 값들은 랜덤하게 발생되거나 미리 결정될 수 있다. 그러나, k=0,...,P-1인, (k,j) 및 (i,k)의 위치들은 선택되지 않는다(이러한 위치값들은 서브-블록 SB(1,1)에서 제로로 설정된다).
{a,b}SB(m,n) 및 (ps1,ps2)SB(m,n)를 각각의 서브-블록 SB(m,n)에 주어지게 되면, 행 인덱스 i는 식(1)에서와 같이 발생되고, 열 인덱스 j는 식(2)에서와 같이 발생된다:
Figure 112011052871201-pct00188
(1)
Figure 112011052871201-pct00189
(2)
여기서 k는 0 내지 L-1까지 변한다. 식(1) 및 식(2)에서 "
Figure 112012042739945-pct00190
" 는 수학상의 모듈러스(modulus) 함수이고,
Figure 112012042739945-pct00191
는 수학상의 플로어(floor) 함수(여기서 플로어(x, y) = x를 y로 나눈 정수부)이다. 위치들 (i,j)가 k=0 내지 L-1에 대해 발생된 후, L 위치들이 발생되었고 ps1은 식(3)에서와 같이 갱신된다:
Figure 112011052871201-pct00192
(3)
ps2의 값은 일정하게 된다.
ps1의 값이 갱신된 후, 다른 L 위치들을 발생하기 위해 식(1) 및 (2)은 k=0 내지 L-1에 대해 평가된다. 그 처리는 서브-블록 SB(m,n)의 모든 위치에 대해 반복한다. 초기 계산으로 식들 (1) 및 (2)를 평가하고 ps1을 L-1 회 갱신하는 계산하는 처리는 서브-블록에 대해 L2 위치들을 발생한다.
시간 T의 각각의 위치 (i,j)는 출력 인터리빙된 블록 내의 위치에 또한 대응하는 각각의 서브-블록에 대해 발생된다. 그러므로, 예를 들어, 시간 T=1 내지 T=L2 에 대해 L2 위치들 (i,j)의 시퀀스를 발생하는 것은, 매트릭스
Figure 112011052871201-pct00193
내의 위치들을 식별하고 그 매트릭스의 값들은 시간/위치 T=1 내지 T=L2에서 출력 인터리빙된 블록에 삽입된다(출력 인터리빙된 블록이 1차원 시퀀스이므로, 시간 단위들은 출력 인터리빙된 블록 내의 위치들과 동일할 수 있다).
도 4는, N이 3이고 P가 1일 때, 도 1의 방법에 따라 형성되는 예시적인 매트릭스를 도시한다. 이런 경우에, 각각의 서브-블록은 단일 비트값을 포함한다. 상기 설명한 바와 같이, 식 (1),(2), 및 (3)을 평가하는 것은, 시간 T=1에서 위치(1,1)를, 시간 T=2에서 위치(2,2)를, 같은 방식으로 도 5에 도시된 바와 같이 얻을 수 있다. 위치(0,0)의 값은 일반적으로 출력 인터리빙된 블록에 포함되지 않는다.
도 1을 참조하면, 단계(105)에서 방법은 (N+P)X(N+P) 매트릭스
Figure 112011052871201-pct00194
를 데이터로 채운다. 몇 개의 방법들이 그 매트릭스
Figure 112011052871201-pct00195
의 위치들을 데이터 비트들로 실장하기 위해(연관시키기 위해) 사용될 수 있다. 각각의 실장 방법은, ⅰ) 데이터 블록에서 서로 인접하는 비트를 새로운 매트릭스에서 분배하고, 및/또는 ⅱ) 출력 블록에서 높은-에러 비트 패턴을 회피할 때 서로 다른 성능을 제공할 수 있다. 예를 들어, 데이터 비트들은 제 1 서브-블록의 위치들에 순차적으로 삽입되고, 다음으로 제 2 서브-블록의 위치들에 순차적으로 삽입되고, 같은 방식으로 모든 서브-블록이 채워질 때까지 삽입될 수 있다. 대안적으로, 도 6은 도 2의 매트릭스를 실장하는 예시적인 방법을 도시하며, 여기서 입력 블록 시퀀스 내의 데이터 비트들은, 제 1 서브-블록의 제 1 위치를 시작으로, 제 2 서브-블록의 제 1 위치, 같은 방식으로 모든 서브-블록의 제 1 위치들이 채워질 때까지 새로운 매트릭스에 순차적으로 삽입된다. 다음으로, 데이터 비트들은 제 1 서브-블록의 제 2 위치를 시작으로, 제 2 서브-블록의 제 2 위치, 같은 방식으로 모든 서브-블록의 제 2 위치들이 채워질 때까지 새로운 매트릭스에 순차적으로 삽입된다. 이는 모든 서브 블록이 채워질 때까지 계속된다.
도 4 및 5의 예를 참조하면, 데이터 비트들(b1 내지 b9)은 다음과 같이 매트릭스에 삽입된다. 데이터 비트 값들(b1 내지 b3)은 T=1 내지 T3에 대해 식별된 위치들에 삽입된다. 그러나, T=4에서 매트릭스 내의 위치는 패리티 비트(p1)와 연관되어, T=4에서의 위치는 p1를 위해 예약된다. 다음으로 데이터 비트들(b4 및 b5)이 T=5 및 T6에서의 위치에 삽입된다. T=7에서의 위치는 패리티 비트(p6)와 연관되어, T=7에서의 위치는 p6를 위해 예약된다. 비슷한 방식으로 나머지 데이터 비트들이 삽입되고 나머지 패리티 비트들이 예약된다.
단계(106)에서, 각각의 행 및 열에 대한 에러 검출 및 정정 정보(예를 들어, 패리티값)가 생성되어, 새로운 매트릭스 내의 대응하는 위치들과 연관된다. 단계(107)에서 매트릭스
Figure 112011052871201-pct00196
내의 각각의 위치와 연관된 값들(예를 들어, 패리티 또는 데이터 비트값들)이 순차적으로 판독되어 출력 인터리빙된 블록을 형성한다. 위치(i=0, j=0)에서의 제로값은 출력 인터리빙된 블록으로 삽입되기보다는 버려질 수 있다.
도 7은 본 발명의 예시적인 실시예에 따라 동작하는 인터리버(700)의 예시적인 구현을 도시하고, 여기서, 크기 L2의 서브-블록을 갖는 매트릭스(예컨대, 도 4 및 5의 예와 같이, 여기서 L=N=3, 및 P=1)에 대해 a=b=ps1=ps2=1이다. 입력 데이터 블록의 각각의 데이터 비트가 카운터(701)에 인가되어, L2 데이터 비트들만이 존재할지라도, 그것이 1부터 L2+2L까지의 카운터(701)의 범위를 커버한다. 카운터(701)는 맵핑된 비트값을 발생하고, 그 값의 위치는 행 인코딩 논리(702) 및 열 인코딩 논리(703)에 의해 결정된다. 행 패리티 검사값 계산기(706)는 매트릭스의 L 행들의 각각에 대한 패리티 검사값을 발생하고, 열 패리티 검사값 계산기(707)는 매트릭스의 L 열들 각각에 대한 패리티 검사값을 발생한다. 맵핑된 비트 위치값들 뿐만 아니라 행 및 열 패리티 검사값들은 패리티 어드레스 맵핑 논리에 인가된다. 다음으로 패리티 어드레스 맵핑 논리(704)는 맵핑된 비트 위치값들에 따라서, 입력 데이터 비트들 및 행 및 열 패리티 비트값들로 (길이 L2+2L의) 레지스터(705)를 채움는 것을 조정한다.
도 8은 로그(L+1) 비트를 발생하는 모듈로(modulo)(L+1) 계산기(801) 및 각각의 로그(L+1) 비트를 L 비트로 변환하는 로그 L to L 맵핑 모듈(Log L to L mapping module; 802)을 이용하는 도 7의 행 인코딩 논리(702)를 도시한다. 예를 들어, L=3일 때, 계산기(801)로부터의 출력이 1(10진수)이고, 로그 L to L 맵핑 모듈(802) 이후에 2진 포맷으로 b'01이면, 이는 b'0001에 맵핑되고, 처음의 3개의 0이 출력들 P_행_2, P_행_3, P_행_4를 동작불능으로 되게 하고, 마지막 1이 패리티 검사값 계산기(706)의 출력 P_행_1을 동작가능하게 한다. 비슷하게, b'10이 b'0010에 맵핑되어 P_행_2만을 동작가능하게 하고, b'11이 b'0100에 맵핑되어 P_행_3만을 동작가능하게 한다.
도 9는 모듈로(L+1) 계산기(901) 및 비트 시프터 로그(L+1) 모듈(902)을 이용하는 도 7의 열 인코딩 논리(703)를 도시한다. 모듈로(L+1) 계산기(901) 및 비트 시프터 로그(L+1) 모듈(902)의 출력들이 결합기(905)에서 결합되고, 그것의 출력은 모듈로(L+1) 계산기(901)에 인가되고, 이는 로그(L+1) 비트를 발생한다. 각각의 로그(L+1) 비트는 로그 L to L 맵핑 모듈(904)에 의해 L 비트로 변환된다.
도 10은 본 발명의 예시적인 실시예에 따라 동작하는 인터리버(1002)를 포함하는 송신기(1000)를 도시한다. 도 10에 도시한 바와 같이, 송신기(1000)는 인터리버(1002)에 인가되는 길이 N2의 데이터 블록을 발생하는 데이터 발생기(1001)를 포함한다. 데이터 발생기(1001)는 프로덕트 코드에 따라 데이터 블록을 발생하는 인코더를 포함할 수 있고, 또는 인터리버(1002)가 프로덕트 코드에 따른 인코더를 실장할 수 있다. 인터리버(1002)는 본 발명의 예시적인 구현에 따른 맵핑에 의해 인터리빙된 블록을 발생한다. 다음으로, 인터리빙된 블록은 변조기(1003)에 의해 이용되어, 자기 기록, 광, 또는 무선 송신 매체와 같은 통신 매체를 통해 송신용의 변조된 신호를 발생한다.
도 11은 본 발명의 예시적인 실시예에 따라, 맵핑 및 역맵핑을 각각 이용하는 인터리버(1106) 및 디-인터리버(1102 및 1111)를 포함하는 수신기(1100)를 도시한다. 수신기(1100)는 도 10의 송신기(1000)에 의해 발생된 신호를 수신 및 디코딩하기 위해 이용될 수 있다. 수신기(1100)는 수신된 신호의 샘플들 y를 발생하고, 이는 검출기(1101)에 인가된다. 검출기(1101)는 샘플들 y로부터 입력 심벌을 검출하기 위해 소프트 출력 비터비 알고리즘(SOVA)을 이용하고, 여기서 SOVA 알고리즘은 ⅰ) 검출된 심벌에 대한 하드 결정들(hard decisions; HD들) 및 ⅱ) 대응하는 소프트 결정에 대한 신뢰도 정보(예를 들어, 로그 공산비(Log Likelihood Ratios) 또는 LLR들)를 발생한다. (선험적 신뢰도 정보(priori reliability information) 또는 소프트 결정(SD)으로 보이는) HD들 및 신뢰도 정보는 디-인터리버(1102)에 인가되어, 송신기(1000)의 인터리버(1002)에 의한 인터리빙을 반대로 되게 하는 역맵핑을 적용한다. 송신기(1001)의 데이터 발생기(1001)가 K 프로덕트 코드의 프로덕트 코딩을 이용하면, 수신기는 반복 디코딩 방법을 이용할 수 있다. 결과적으로, HD들 및 신뢰도 정보는, 소프트 디코더들(1103(1) 내지 1103(K))에 의해 구현되는 K 소프트 디코딩(각각의 프로덕트 코드당 하나)의 시퀀스에 인가된다.
소프트 디코더(1103(K))의 출력은 후천적 신뢰도 정보(posteriori reliability information)로 보이는 HD들에 대한 대응하는 신뢰도 값들의 세트와 함께, 디코딩된 데이터에 대한 하드 결정들(HD들)의 세트를 포함한다. 이들 HD들 및 후천적 신뢰도 값들은 디코딩의 제 1 반복 출력을 포함한다. 다음으로, 디코딩의 제 2 반복이 구현된다. 다음으로 HD들 및 후천적 신뢰도 값들이 송신기(1000)의 인터리버(1002)에 의해 이용된 동일한 맵핑에 따라서 인터리빙되어, HD들 및 후천적 신뢰도 값들이 지연(1109)으로부터 제공되는 입력 샘플들 y의 심벌들과 순차적으로 정렬된다. 입력 샘플들 y, 인터리빙된 HD들, 및 입력 샘플들에 대한 새로운 선험적 신뢰도 값들은 검출기(1108)에 인가된다(이들은 또한 SOVA 알고리즘에 따라 검출될 수 있음). 새로운 선험적 신뢰도 값들은, 검출기(1101)로부터의 (선험적) LLR들 및 인터리버(1106)로부터의 인터리빙된 후천적 신뢰도 값들로부터 (결합기(1107)에 의해) 생성된다.
검출기(1108)는 대응하는 새로운 신뢰도 값들과 함께 입력 샘플들 y에 대한 새로운 HD들의 세트를 발생시킨다. 새로운 SD들은 결합기(1107)에서 발생된 선험적 신뢰도 값을 삭제함으로써 (결합기(1110)에서) 변형된다. 변형된 새로운 신뢰도 값들 및 대응하는 HD들이 디-인터리버(1111)에 의해 디-인터리빙되고, 이는 디-인터리버(1102)와 비슷한 역맵핑을 인가한다. 디-인터리버(1111)로부터의 디-인터리빙된 신뢰도 값들(SD들) 및 대응하는 HD들이 소프트 디코더들(1112(1) 내지 1112(K))에 의한 제 2 반복 디코딩을 하게 되지만, 이는 소프트 디코더들(1103(1) 내지 1103(K))에 대해 상기 설명된 것과 비슷한 방법으로 디코딩될 수 있다. 소프트 디코더(1112(K))의 출력은 디코딩된 데이터 스트림으로서 제공되는 새로운 HD들의 세트이다.
본 명세서에서 본 발명은 2차원의 스퀘어 매트릭스들을 이용해서 맵핑을 발생하는 것으로 설명되었지만, 본 발명은 이에 제한되지 않으며 각각의 차원의 길이가 상이할 수 있는 D 차원들로 확장될 수 있다. 그러므로, 데이터 블록이 길이
Figure 112012042739945-pct00197
이면, 여기서 각각의 Nd는 양의 정수이고, Nd들이 반드시 같지 않고, 길이 (Nd+Pd)를 갖는 차원 d를 갖는 D 차원들의 매트릭스가 발생될 수 있다. 비슷하게, 각각의 차원이 동일한 값 P에 의해 증가될 필요는 없으나, 대응하는 값 Pd에 의해 증가될 필요가 있고, 여기서 1≤d≤D이다. 또한, 서브-블록들은 길이 L로서 스퀘어로 될 필요는 없으나, 오히려
Figure 112012042739945-pct00133
매트릭스(또는 더 높은 차원의 차원 길이 Ld의)일 필요가 있다. 본 기술에 숙련된 자에게는 명백하듯이, 본 명세서에서 설명된 여러 실시예들에 대한 여러 식들은 예시적인 것이고, 특정 매트릭스 크기, 차원, 및 서브-블록 크기에 기초하여 변형될 수 있다.
본 발명의 예시된 구현에 따라 인터리빙은 향상된 단일 및 복수의 비트 에러 검출 및 정정을 버스티 채널들에 대해 허여한다. 인터리빙 맵핑을 설계하는 일반적인 구조가 주어진 구현을 가능하게 하여 소정의 에러 발생 패턴을 회피하고, 인터리버를 위한 맵핑을 발생하기 위해 상대적으로 큰 유연성을 허용한다.
본 발명은 통신 매체 또는 채널을 통해 데이터를 통과시키는 임의의 유형의 송신 시스템에서 사용될 수 있다. 본 발명은 자기 또는 광 기록 중 어느 하나, 또는 유선/무선/광/비-광 네트워크들에 대해 이용될 수 있다.
본 기술에 숙련된 자에게 명백하듯이, 인터리버 또는 디-인터리버의 여러 기능들은 회로 소자들로 구현될 수 있거나 소프트웨어 프로그램에서 처리 단계들처럼 디지털 영역에서 또한 구현될 수 있다. 그런 소프트웨어는 예를 들어, 디지털 신호 프로세서, 마이크로-제어기, 또는 범용 컴퓨터에서 사용될 수 있다.
본 발명은 그 방법들을 실시하는 방법들 및 장치들에서 구체화될 수 있다. 본 발명은 플로피 디스켓들, CD-ROM들, 하드 드라이브들, 또는 다른 기계-판독가능한 저장 매체와 같은 유형의 매체로 구현되는 프로그램 코드 형태로 또한 구현될 수 있고, 여기서, 그 프로그램 코드가 컴퓨터와 같은 기계로 로드되고 그 기계에 의해 실행될 때, 그 기계가 본 발명을 실시하는 장치로 된다. 본 발명은 프로그램 코드 형태로 또한 구체화될 수 있고, 예를 들어, 저장 매체에 저장되고, 기계로 로드되거나/로드되고 그 기계에 의해 실행되거나, 전기 배선 또는 케이블링 위에서 또는 광섬유들을 통해, 또는 전자기 방사를 통해서와 같이 송신 매체 위에서 송신되면, 여기서, 그 프로그램 코드가 컴퓨터와 같은 기계로 로드되고 그 기계에 의해 실행될 때, 그 기계가 본 발명을 실시하는 장치로 된다. 범용 프로세서에서 구현시, 프로그램 코드 세그먼트들이 그 프로세서와 결합해서 특정 논리 회로들에 유사하게 동작하는 유일한 장치를 제공한다.
본 발명의 특성을 설명하기 위해 설명 및 예시되었던 부분들의 상세한 설명들, 재료들 및 배열들의 각종 변화가 다음의 청구항에서 표현했듯이 본 발명의 원리 및 범위를 벗어남이 없이 본 기술에 숙련된 자에 의해 이루어질 수 있다.

Claims (24)

  1. 신호-처리 애플리케이션에서, 데이터 블록의 비트들을 인터리빙(interleaving)하는 방법에 있어서:
    a) 맵핑에 따라서, 상기 데이터 블록의 값들을 매트릭스의 위치들의 세트와 연관시키는 단계로서, 상기 매트릭스는 D 차원들을 갖고, D는 1보다 큰 정수이고, 차원 d는 길이 (Nd+Pd)를 갖고, 여기서 Pd는 패리티 비트들의 수를 나타내는 양의 정수(positive integer)이고, 상기 매트릭스의 각각의 위치는 대응하는 시간 시퀀스 위치를 갖고, 상기 데이터 블록은 길이
    Figure 112013008586331-pct00198
    를 갖고, 각각의 Nd는 정보 비트들의 수를 나타내는 양의 정수인, 상기 데이터 블록의 값들을 매트릭스의 위치들의 세트와 연관시키는 단계;
    b) 상기 매트릭스의 위치들의 제 2 세트와 연관된 에러 검출/정정 정보를 생성하는 단계; 및
    c) 상기 시간 시퀀스 위치들에 따라서 상기 매트릭스의 위치들로부터 값들을 출력하는 단계를 포함하고,
    상기 맵핑은,
    d) 상기 매트릭스의 복수의 (L)X(L) 서브-블록들 중 하나 이상에 대해, 발생기 시드 세트 및 오리지널 위치 시드 세트에 기초하여 서브-블록 단위로 상기 시간 시퀀스에서 위치들의 시퀀스를 생성하는 단계로서, 여기서 L은 1보다 큰 정수인, 상기 위치들의 시퀀스를 생성하는 단계에 의해 규정되고,
    상기 맵핑은, 상기 매트릭스의 각각의 서브-블록내에서, 상기 데이터 블록의 값들이 시퀀스대로 있지 않도록(out of sequence) 상기 데이터 블록의 값들을 연관시키는, 데이터 블록의 비트들을 인터리빙하는 방법.
  2. 제 1 항에 있어서,
    단계 a)에 대해서, D는 2이고, P1=P2=P이고, N1=N2이고, 상기 매트릭스는 (N+P)X(N+P) 스퀘어 매트릭스(square matrix)이고, 상기 데이터 블록은 길이 N2이고,
    단계 d)에 대해서, 각각의 서브-블록은 (L)X(L) 매트릭스이고, L로 나누어진 (N+P)는 양의 정수인, 데이터 블록의 비트들을 인터리빙하는 방법.
  3. 제 2 항에 있어서,
    단계 d)에 대해서, 상기 위치들의 시퀀스는 각각의 서브-블록 SB(m,n)에 대해 발생기 시드 세트 {a,b}SB(m,n) 및 오리지널 위치 시드 세트 (ps1,ps2)SB(m,n)을 이용하여 생성되고, 각각의 위치의 행 인덱스 i 및 열 인덱스 j가
    Figure 112012042739945-pct00199
    Figure 112012042739945-pct00200
    처럼 생성되고, 여기서 k는 0부터 L-1까지 변하고, "
    Figure 112012042739945-pct00201
    "는 수학상의 모듈러스 함수(modulus function)이고,
    Figure 112012042739945-pct00202
    는 수학상의 플로어 함수(floor function)이고, 위치들 (i,j)가 k=0 내지 L-1에 대해 생성된 후에, L 위치들의 합계가 생성되고, ps1이
    Figure 112012042739945-pct00203
    처럼 갱신되는, 데이터 블록의 비트들을 인터리빙하는 방법.
  4. 제 3 항에 있어서,
    단계 d)는, a 및 b에 대한 값들이 L에 대해 서로소(relatively prime)이도록, 그리고 각각의 서브-블록에 대해 서로 유일하도록, a 및 b에 대한 값들을 선택하는 단계를 포함하는, 데이터 블록의 비트들을 인터리빙하는 방법.
  5. 제 1 항에 있어서,
    단계 d)는, 상기 발생기 시드 세트의 값들이 대응하는 서브-블록의 차원 길이 Ld에 대해 서로소이도록, 그리고 각각의 서브-블록에 대해 서로 유일하도록, 상기 발생기 시드 세트의 값들을 선택하는 단계로서, 각각의 서브-블록은 (L)X(L) 매트릭스이고 Ld는 양의 정수인, 상기 선택하는 단계를 포함하는, 데이터 블록의 비트들을 인터리빙하는 방법.
  6. 제 1 항에 있어서,
    단계 a)에 대해서, 상기 에러 검출/정정 정보가 행방향 및 열방향 패리티 비트들을 포함하고,
    단계 d)는 하나 이상의 초기 행 및 열 위치값들을 0으로 설정하는 단계를 포함하는, 데이터 블록의 비트들을 인터리빙하는 방법.
  7. 제 1 항에 있어서,
    단계 a)는 상기 매트릭스의 상기 서브-블록들에 기초하여 상기 데이터 블록의 값들을 연관시키는, 데이터 블록의 비트들을 인터리빙하는 방법.
  8. 제 7 항에 있어서,
    단계 a)는 (i) 미리 규정된 순서의 서브-블록들 및 (ii) 각각의 서브-블록에 대해 미리 규정된 순서의 위치 번호들 중 적어도 하나에서 상기 매트릭스의 각각의 서브-블록에 대한 위치들의 시퀀스에 기초하여 상기 데이터 블록의 값들을 연관시키는, 데이터 블록의 비트들을 인터리빙하는 방법.
  9. 신호-처리 애플리케이션에서, 통신 채널을 통해 신호로서 통과한 후 인터리빙되어 인코딩된 데이터의 블록을 디-인터리빙하는 방법에 있어서:
    (a) 상기 인터리빙되어 인코딩된 데이터의 블록을 나타내는 값들의 세트를 검출하는 단계;
    (b) 역맵핑(inverse of mapping)에 따라 상기 인터리빙되어 인코딩된 데이터의 블록을 디-인터리빙하는 단계를 포함하고,
    상기 인코딩된 데이터의 블록은:
    c1) 길이
    Figure 112013008586331-pct00204
    (각각의 Nd는 정보 비트들의 수를 나타내는 양의 정수)를 갖는 데이터 블록의 값들을 상기 맵핑에 따라서 매트릭스의 위치들의 세트와 연관시키는 단계로서:
    ⅰ) 상기 매트릭스의 각각의 위치는 대응하는 시간 시퀀스 위치를 갖고,
    ⅱ) 상기 매트릭스는 D 차원들을 갖고, D는 1보다 큰 정수이고, 차원 d는 길이 (Nd+Pd)를 갖고, 여기서 Pd는 패리티 비트들의 수를 나타내는 양의 정수인, 상기 데이터 블록의 값들을 상기 맵핑에 따라서 매트릭스의 위치들의 세트와 연관시키는 단계,
    c2) 상기 매트릭스의 위치들의 제 2 세트와 연관된 에러 검출/정정 정보를 생성하는 단계; 및
    c3) 인코딩된 데이터의 상기 인터리빙된 블록을 형성하기 위해 상기 시간 시퀀스 위치들에 따라 상기 매트릭스의 위치들로부터 값들을 출력하는 단계에 의해 인터리빙되고,
    상기 맵핑은, 상기 매트릭스의 복수의 (L)X(L) 서브-블록들 중 하나 이상에 대해, 발생기 시드 세트 및 오리지널 위치 시드 세트에 기초하여 서브-블록 단위로 상기 시간 시퀀스에서 위치들의 시퀀스를 생성하는 단계에 의해 규정되고, 여기서 L은 1보다 큰 정수이고,
    상기 발생기 시드 세트는 서브-블록 내의 위치 증가 값들을 나타내고, 상기 오리지널 위치 시드 세트는 서브-블록 내의 초기 시작 위치를 나타내며,
    상기 맵핑은, 상기 매트릭스의 각각의 서브-블록내에서, 상기 데이터 블록의 값들이 시퀀스대로 있지 않도록 상기 데이터 블록의 값들을 연관시키는, 디-인터리빙하는 방법.
  10. 신호-처리 애플리케이션에서, 데이터 블록의 비트들을 인터리빙하는 장치에 있어서:
    a) 맵핑에 따라서, 상기 데이터 블록의 값들을 매트릭스의 위치들의 세트와 연관시키는 수단으로서, 상기 매트릭스는 D 차원들을 갖고, D는 1보다 큰 정수이고, 차원 d는 길이 (Nd+Pd)를 갖고, 여기서 Pd는 패리티 비트들의 수를 나타내는 양의 정수이고, 상기 매트릭스의 각각의 위치는 대응하는 시간 시퀀스 위치를 갖고, 상기 데이터 블록은 길이
    Figure 112013008586331-pct00205
    를 갖고, 각각의 Nd는 정보 비트들의 수를 나타내는 양의 정수인, 상기 데이터 블록의 값들을 매트릭스의 위치들의 세트와 연관시키는 수단;
    b) 상기 매트릭스의 위치들의 제 2 세트와 연관된 에러 검출/정정 정보를 생성하는 수단; 및
    c) 상기 시간 시퀀스 위치들에 따라 상기 매트릭스의 위치들로부터 값들을 출력하는 수단을 포함하고,
    상기 맵핑은,
    d) 상기 매트릭스의 복수의 (L)X(L) 서브-블록들 중 하나 이상에 대해, 발생기 시드 세트 및 오리지널 위치 시드 세트에 기초하여 서브-블록 단위로 상기 시간 시퀀스에서 위치들의 시퀀스를 생성하는 수단으로서, 여기서 L은 1보다 큰 정수인, 상기 위치들의 시퀀스를 생성하는 수단에 의해 규정되고,
    상기 맵핑은, 상기 매트릭스의 각각의 서브-블록내에서, 상기 데이터 블록의 값들이 시퀀스대로 있지 않도록 상기 데이터 블록의 값들을 연관시키는, 인터리빙 장치.
  11. 신호-처리 애플리케이션에서, 통신 채널을 통해 신호로서 통과한 후 인터리빙되어 인코딩된 데이터의 블록을 디-인터리빙하는 장치에 있어서:
    (a) 상기 인터리빙되어 인코딩된 데이터의 블록을 나타내는 값들의 세트를 검출하는 수단;
    (b) 역맵핑에 따라서 상기 인터리빙되어 인코딩된 데이터의 블록을 디-인터리빙하는 수단을 포함하고,
    상기 인코딩된 데이터의 블록은:
    c1) 길이
    Figure 112013008586331-pct00206
    (각각의 Nd는 정보 비트들의 수를 나타내는 양의 정수)를 갖는 데이터 블록값들을 상기 맵핑에 따라서 매트릭스의 위치들의 세트와 연관시키는 수단으로서:
    ⅰ) 상기 매트릭스의 각각의 위치는 대응하는 시간 시퀀스 위치를 갖고,
    ⅱ) 상기 매트릭스는 D 차원들을 갖고, D는 1보다 큰 정수이고, 차원 d는 길이 (Nd+Pd)를 갖고, 여기서 Pd는 패리티 비트들의 수를 나타내는 양의 정수이고,
    ⅲ) 상기 맵핑은, 상기 매트릭스의 복수의 (L)X(L) 서브-블록들 중 하나 이상에 대해, 발생기 시드 세트 및 오리지널 위치 시드 세트에 기초하여 서브-블록 단위로 상기 시간 시퀀스에서 위치들의 시퀀스를 생성하는 수단으로서, 여기서 L은 1보다 큰 정수인, 상기 생성 수단에 의해 규정되는, 상기 연관시키는 수단;
    c2) 상기 매트릭스의 위치들의 제 2 세트와 연관된 에러 검출/정정 정보를 생성하는 수단; 및
    c3) 인코딩된 데이터의 상기 인터리빙된 블록을 형성하기 위해 상기 시간 시퀀스 위치들에 따라 상기 매트릭스의 위치들로부터 값들을 출력하는 수단에 의해 인터리빙되고,
    상기 맵핑은 상기 매트릭스의 각각의 서브-블록내에서, 상기 데이터 블록의 값들이 시퀀스대로 있지 않도록 상기 데이터 블록의 값들을 연관시키는, 디-인터리빙 장치.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
KR1020067020947A 2004-04-09 2004-04-09 서브 블록 인터리버 및 디-인터리버를 가진 다차원 블록인코더 KR101297060B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2004/011097 WO2005109653A1 (en) 2004-04-09 2004-04-09 Multidimensional block encoder with sub-block interleaver and de-interleaver

Publications (2)

Publication Number Publication Date
KR20060135018A KR20060135018A (ko) 2006-12-28
KR101297060B1 true KR101297060B1 (ko) 2013-08-19

Family

ID=34957398

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067020947A KR101297060B1 (ko) 2004-04-09 2004-04-09 서브 블록 인터리버 및 디-인터리버를 가진 다차원 블록인코더

Country Status (5)

Country Link
US (1) US7640462B2 (ko)
EP (1) EP1733477B1 (ko)
JP (1) JP4551445B2 (ko)
KR (1) KR101297060B1 (ko)
WO (1) WO2005109653A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8042188B2 (en) * 2005-07-15 2011-10-18 Sony Corporation Information processing apparatus, information recording medium manufacturing apparatus, information recording medium, method and computer program
TWI449301B (zh) * 2006-06-01 2014-08-11 Exaflop Llc 用於資料中心之配電系統,包含其之模組處理系統、以及其操作方法、架構和電腦程式產品,以及便於資料處理之方法
US8707139B2 (en) 2006-10-18 2014-04-22 Kencast, Inc. Systems, methods, apparatus, and computer program products for providing forward error correction with low latency
US8209582B1 (en) 2006-11-07 2012-06-26 Marvell International Ltd. Systems and methods for optimizing a product code structure
CN101159510B (zh) * 2007-11-16 2011-09-28 海能达通信股份有限公司 一种提高信息比特传输可靠性的方法
US8165595B2 (en) * 2008-01-25 2012-04-24 Samsung Electronics Co., Ltd. System and method for multi-stage antenna training of beamforming vectors
US8051037B2 (en) * 2008-01-25 2011-11-01 Samsung Electronics Co., Ltd. System and method for pseudorandom permutation for interleaving in wireless communications
US8418034B2 (en) * 2008-02-08 2013-04-09 Kencast, Inc. Systems, methods, apparatus and computer program products for highly reliable file delivery using compound and braided FEC encoding and decoding
KR101456299B1 (ko) * 2008-02-11 2014-11-03 엘지전자 주식회사 무선통신 시스템에서 인터리빙 방법
US8280445B2 (en) * 2008-02-13 2012-10-02 Samsung Electronics Co., Ltd. System and method for antenna training of beamforming vectors by selective use of beam level training
KR101311504B1 (ko) 2009-12-14 2013-09-25 연세대학교 산학협력단 다중 입력 다중 출력 반복 수신기의 반복 결정 방법 및 장치
US8621319B2 (en) * 2009-12-14 2013-12-31 Electronics And Telecommunications Research Institute Method and apparatus for iterative determination of MIMO iterative receiver
KR20120059806A (ko) * 2010-12-01 2012-06-11 한국전자통신연구원 에러 정정 부호의 생성방법, 복호 방법 및 그 장치
EP2688211A4 (en) * 2011-07-29 2014-08-06 Huawei Tech Co Ltd NESTING AND NESTING METHODS, NESTING AND DECORATING
US8910028B1 (en) 2011-10-27 2014-12-09 Marvell International Ltd. Implementation of LLR biasing method in non-binary iterative decoding
CN102427398B (zh) * 2011-12-31 2014-05-14 兆讯恒达微电子技术(北京)有限公司 一种基于双向奇偶校验的纠检错方法和系统及装置
US9300329B2 (en) * 2012-11-08 2016-03-29 Sk Hynix Memory Solutions Inc. Turbo-product codes (TPC) with interleaving
US9160370B2 (en) * 2014-01-02 2015-10-13 Oracle International Corporation Single component correcting ECC using a reducible polynomial with GF(2) coefficients
KR101673892B1 (ko) 2015-07-15 2016-11-08 숭실대학교산학협력단 분산 거리를 보장하는 2차원 인터리빙 방법, 이를 수행하기 위한 기록 매체 및 장치
CN106559859B (zh) * 2015-09-30 2021-01-29 华为技术有限公司 一种终端接入方法及装置
US11716097B2 (en) * 2021-12-29 2023-08-01 Western Digital Technologies, Inc. Signal correction using soft information in a data channel

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0481752A1 (en) * 1990-10-17 1992-04-22 Canon Kabushiki Kaisha Error correction code encoder and decoder

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262030A (ja) * 1994-03-17 1995-10-13 Toshiba Corp 誤り訂正符号化装置および誤り訂正符号化方法
EP0674395A3 (en) * 1994-03-17 1996-01-17 Toshiba Kk Device for coding an error correction code and method for coding error correction.
DE69527525T2 (de) * 1995-08-21 2003-04-03 Alcatel Sa Verfahren zur Schachtelung von Datenrahmen, Übertragungsfehlerkorrekturanordnung und Modulator damit
JPH1115642A (ja) * 1997-06-26 1999-01-22 Sony Corp スクランブル装置およびデスクランブル装置ならびにその方法
US6823488B1 (en) * 1998-08-27 2004-11-23 Texas Instruments Incorporated Packet binary convolutional codes
WO2000069079A1 (fr) * 1999-05-10 2000-11-16 Ntt Mobile Communications Network, Inc. Procede et dispositif de multiplexage, et procede et dispositif de transmission de signaux de donnees
KR100611954B1 (ko) * 1999-07-08 2006-08-11 삼성전자주식회사 고밀도 디스크를 위한 에러 정정방법
US7242726B2 (en) * 2000-09-12 2007-07-10 Broadcom Corporation Parallel concatenated code with soft-in soft-out interactive turbo decoder
US6973611B2 (en) * 2001-04-17 2005-12-06 Texas Instruments Incorporated Interleaved coder and method
US6392572B1 (en) * 2001-05-11 2002-05-21 Qualcomm Incorporated Buffer architecture for a turbo decoder
EP1359672A1 (en) * 2002-05-03 2003-11-05 Siemens Aktiengesellschaft Method for improving the performance of concatenated codes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0481752A1 (en) * 1990-10-17 1992-04-22 Canon Kabushiki Kaisha Error correction code encoder and decoder

Also Published As

Publication number Publication date
EP1733477B1 (en) 2013-06-19
EP1733477A1 (en) 2006-12-20
JP4551445B2 (ja) 2010-09-29
US20070266274A1 (en) 2007-11-15
KR20060135018A (ko) 2006-12-28
US7640462B2 (en) 2009-12-29
JP2007533202A (ja) 2007-11-15
WO2005109653A1 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
KR101297060B1 (ko) 서브 블록 인터리버 및 디-인터리버를 가진 다차원 블록인코더
US7434138B2 (en) Structured interleaving/de-interleaving scheme for product code encoders/decorders
US7849388B2 (en) Signal decoding method and device, and signal storage system
US8205123B2 (en) Interleaver and de-interleaver for iterative code systems
US6637000B2 (en) Turbo code interleaver using linear congruential sequences
KR101110586B1 (ko) 연결된 반복 및 대수 코딩
JP4282192B2 (ja) 反復式ターボ符号復号装置及び該装置の性能を最適化する方法
JP4788650B2 (ja) Ldpc復号装置およびその復号方法、並びにプログラム
US8239711B2 (en) QPP interleaver/de-interleaver for turbo codes
US8044832B1 (en) Interleaver for turbo equalization
CN110915141A (zh) 基于极化码的turbo乘积码
US6606718B1 (en) Product code with interleaving to enhance error detection and correction
JP2008219892A (ja) データを符号化および復号化する方法および装置
US20090132897A1 (en) Reduced State Soft Output Processing
KR20080067987A (ko) 큐피피 인터리브를 갖는 병렬 터보 디코딩을 위한 공식적플렉서블 충돌 방지 메모리 억세싱
EP2238690A2 (en) Efficient address generation for pruned interleavers and de-interleavers
US8913336B2 (en) Constrained on-the-fly interleaver address generator circuits, systems, and methods
WO2003103152A2 (en) Soft decoding of linear block codes
Panem et al. Polynomials in error detection and correction in data communication system
US7392454B2 (en) Error locating methods and devices for algebraic geometric codes
US9374109B2 (en) QPP interleaver/DE-interleaver for turbo codes
JP2004511179A (ja) 断片的脱インターリーブ
JP4935790B2 (ja) 通信システム
WO2005053165A1 (en) Interleaving method for low density parity check encoding
KR20040054206A (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: 20160801

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 6