KR20150107603A - 인터리빙 깊이를 조절하기 위한 장치 및 방법 - Google Patents

인터리빙 깊이를 조절하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20150107603A
KR20150107603A KR1020150023065A KR20150023065A KR20150107603A KR 20150107603 A KR20150107603 A KR 20150107603A KR 1020150023065 A KR1020150023065 A KR 1020150023065A KR 20150023065 A KR20150023065 A KR 20150023065A KR 20150107603 A KR20150107603 A KR 20150107603A
Authority
KR
South Korea
Prior art keywords
interleaving
depth
codewords
deinterleaving
interleaving depth
Prior art date
Application number
KR1020150023065A
Other languages
English (en)
Other versions
KR102370903B1 (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 삼성전자주식회사
Priority to JP2016574885A priority Critical patent/JP6739354B2/ja
Priority to CN202010078458.4A priority patent/CN111294156B/zh
Priority to EP15762096.4A priority patent/EP3117526A4/en
Priority to PCT/KR2015/002327 priority patent/WO2015137712A1/en
Priority to CN201580013983.5A priority patent/CN106134086B/zh
Priority to US14/657,159 priority patent/US10009042B2/en
Publication of KR20150107603A publication Critical patent/KR20150107603A/ko
Priority to US15/989,441 priority patent/US10693501B2/en
Priority to US16/884,286 priority patent/US11018699B2/en
Priority to JP2020124679A priority patent/JP7080933B2/ja
Application granted granted Critical
Publication of KR102370903B1 publication Critical patent/KR102370903B1/ko
Priority to JP2022085429A priority patent/JP7314359B2/ja

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • 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/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/2707Simple row-column interleaver, i.e. pure block interleaving
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes

Abstract

인터리빙 깊이 조절 장치 및 방법을 제공한다. 인터리빙 깊이 조절 방법은, 최대 인터리빙 깊이 이하로 선택된 인터리빙 깊이와 전체 코드워드의 수를 모듈로(modulo) 연산하여 잔여 코드워드의 수를 획득하고, 상기 잔여 코드워드의 수가 0이 아닌 경우, 상기 전체 코드워드의 수와 상기 인터리빙 깊이를 비교하여 상기 비교 결과에 따라 상기 인터리빙 깊이를 조절할 수 있다.

Description

인터리빙 깊이를 조절하기 위한 장치 및 방법{METHOD AND APPARATUS FOR CONTROLLING INTERLEAVING DEPTH}
인터리빙 깊이(Interleaving depth)를 조절하기 위한 장치 및 방법을 제공한다. 보다 구체적으로 디지털 통신 시스템에서 인터리빙을 수행 시 인터리빙 깊이를 조절하는 장치 및 방법을 제공한다.
디지털 무선 통신 시스템에 대한 연구는 노이즈를 비롯한 다양한 비이상적인 채널 환경을 극복하고자 노력하였으며, 더 빠른 속도 및 더 높은 신뢰도를 가진 송수신 신호 처리에 대한 다양한 기법이 연구되었다. 특히, 보내고자 하는 디지털 비트 정보를 보다 효과적인 변복조 기법을 사용하여 송수신하는 연구가 많이 진행되었다.
또한, 디지털 통신 시스템에서 통신 신뢰도를 향상시킬 수 있는 효과적인 기술 중의 하나로, 오류 정정 부호(error correcting code) 기술이 있다. 랜덤 노이즈 등을 비롯한 다양한 비이상적인 통신 채널 환경으로 인해 송신된 비트 정보가 그대로 수신기에 수신되지 못하고 에러가 발행할 수 있다. 이 경우, 에러 발생을 검출하고 정정함으로써, 원래 송신하고자 했던 비트 정보를 복원하게 되며, 이로 인해 통신의 신뢰도가 향상될 수 있다.
아울러, 코드워드(codeword)의 블록(block)을 인터리빙(interleaving)하는 기법 또한 디지털 통신 시스템에서 통신 신뢰도를 향상시킬 수 있는 방법 중 하나이다. 인터리빙 기법은, 기설정된 인터리빙 깊이로 코드워드 블록을 인터리빙하여 송신함으로써 에러 발생에 강인한 디지털 통신을 가능하게 한다.
일측에 따르면, 최대 인터리빙 깊이 이하로 선택된 인터리빙 깊이와 전체 코드워드의 수를 모듈로(modulo) 연산하여 잔여 코드워드의 수를 획득하는 단계, 상기 잔여 코드워드의 수가 0이 아닌 경우, 상기 전체 코드워드의 수와 상기 인터리빙 깊이를 비교하는 단계 및 상기 비교 결과에 따라 상기 인터리빙 깊이를 조절하는 단계를 포함하는 인터리빙 깊이 조절 방법을 제공한다.
일실시예에 따르면, 상기 인터리빙 깊이를 조절하는 단계는, 상기 인터리빙 깊이가 상기 전체 코드워드의 수 보다 큰 경우, 상기 인터리빙 깊이를 상기 잔여 코드워드의 수로 조절할 수 있다.
또한, 상기 인터리빙 깊이가 상기 전체 코드워드의 수 이하인 경우, 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합과 상기 최대 인터리빙 깊이를 비교하는 단계를 더 포함할 수 있다.
더불어, 상기 비교 결과에 기초하여, 상기 전체 코드워드에 대한 인터리빙 블록을 결정하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 이하인 경우, 상기 인터리빙 블록 중 최종 인터리빙 블록에 적용하는 인터리빙 깊이를 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합으로 조절하는 단계를 더 포함하며, 상기 최종 인터리빙 블록은, 상기 잔여 코드워드의 수와 조절되기 이전의 인터리빙 깊이의 합의 크기를 가질 수 있다.
반면에, 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 보다 큰 경우, 상기 인터리빙 블록 중 최종 2개의 인터리빙 블록 각각에 적용하는 인터리빙 깊이를, 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합에 기초하여 조절하는 단계를 더 포함할 수 있다.
또한, 상기 최종 2개의 인터리빙 블록 각각에 적용하는 인터리빙 깊이는, 상기 잔여 코드워드의 수와 상기 인터리빙 깊이의 평균 이상의 정수 중 가장 작은 수 및 상기 잔여 코드워드의 수와 상기 인터리빙 깊이의 평균 이하인 정수 중 가장 큰 정수로 조절될 수 있다.
일실시예에 따르면, 상기 인터리빙 깊이는, 단일 심볼에 맵핑되는 비트 수인 변조 크기(modulation size)에 기반하여 선택될 수 있다.
다른 일측에 따르면, 최대 디인터리빙(de-interleaving) 깊이 이하로 선택된 디인터리빙 깊이와 전체 코드워드의 수를 모듈로(modulo) 연산하여 잔여 코드워드의 수를 획득하는 단계, 상기 잔여 코드워드의 수가 0이 아닌 경우, 상기 전체 코드워드의 수와 상기 디인터리빙 깊이를 비교하는 단계 및 상기 비교 결과에 따라 상기 디인터리빙 깊이를 조절하는 단계를 포함하는 디인터리빙 깊이 조절 방법을 제공한다.
일실시예에 따르면, 상기 디인터리빙 깊이를 조절하는 단계는, 상기 디인터리빙 깊이가 상기 전체 코드워드의 수 보다 큰 경우, 상기 디인터리빙 깊이를 상기 잔여 코드워드의 수로 조절할 수 있다.
또한, 상기 디인터리빙 깊이가 상기 전체 코드워드의 수 이하인 경우, 상기 잔여 코드워드의 수 및 상기 디인터리빙 깊이의 합과 상기 최대 디인터리빙 깊이를 비교하는 단계를 더 포함할 수 있다.
더불어, 상기 비교 결과에 기초하여, 상기 전체 코드워드에 대한 디인터리빙 블록을 결정하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 잔여 코드워드의 수 및 상기 디인터리빙 깊이의 합이 상기 최대 디인터리빙 깊이 이하인 경우, 상기 디인터리빙 블록 중 최종 디인터리빙 블록에 적용하는 디인터리빙 깊이를 상기 잔여 코드워드의 수 및 상기 디인터리빙 깊이의 합으로 조절하는 단계를 더 포함하며, 상기 최종 디인터리빙 블록은, 상기 잔여 코드워드의 수와 조절되기 이전의 디인터리빙 깊이의 합의 크기를 가질 수 있다.
반면에, 상기 잔여 코드워드의 수 및 상기 디인터리빙 깊이의 합이 상기 최대 디인터리빙 깊이 보다 큰 경우, 상기 디인터리빙 블록 중 최종 2개의 디인터리빙 블록 각각에 적용하는 디인터리빙 깊이를, 상기 잔여 코드워드의 수 및 상기 디인터리빙 깊이의 합에 기초하여 조절하는 단계를 더 포함할 수 있다.
또한, 상기 최종 2개의 디인터리빙 블록 각각에 적용하는 디인터리빙 깊이는, 상기 잔여 코드워드의 수와 상기 디인터리빙 깊이의 평균 이상의 정수 중 가장 작은 수 및 상기 잔여 코드워드의 수와 상기 디인터리빙 깊이의 평균 이하인 정수 중 가장 큰 정수로 조절될 수 있다.
일실시예에 따르면, 상기 디인터리빙 깊이를 조절하는 단계는, 상기 디인터리빙 깊이를 상기 전체 코드워드에 적용된 인터리빙 깊이와 동일하게 조절할 수 있다.
또 다른 일측에 따르면, 적어도 하나의 코드워드의 수 및 최대 인터리빙 깊이(maximum interleaving depth)에 기초하여, 상기 적어도 하나의 코드워드에 대한 제 1 인터리빙 깊이를 선택하는 단계 및 상기 제 1 인터리빙 깊이를 적용하여, 상기 적어도 하나의 코드워드를 인터리빙하는 단계를 포함하는 인터리빙 방법을 제공한다.
일실시예에 따르면, 상기 제 1 인터리빙 깊이를 선택하는 단계는, 상기 적어도 하나의 코드워드의 수 및 기본 인터리빙 깊이(basic interleaving depth)에 대한 모듈로 연산 결과 값인 잔여 코드워드의 수를 획득하는 단계 및 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합과 최대 인터리빙 깊이의 비교 결과에 기초하여 상기 제 1 인터리빙 깊이를 선택하는 단계를 포함할 수 있다.
또한, 상기 비교 결과에 기초하여, 상기 전체 코드워드에 대한 인터리빙 블록을 결정하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 이하인 경우, 상기 인터리빙 블록 중 최종 인터리빙 블록에 적용하는 제1 인터리빙 깊이를 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합으로 선택하는 단계를 더 포함하며, 상기 최종 인터리빙 블록은, 상기 잔여 코드워드의 수와 상기 기본 인터리빙 깊이의 합의 크기를 가질 수 있다.
반면에, 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 보다 큰 경우, 상기 인터리빙 블록 중 최종 2개의 인터리빙 블록 각각에 적용하는 제1 인터리빙 깊이를, 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합에 기초하여 선택하는 단계를 더 포함할 수 있다.
또 다른 일측에 따르면, 최대 인터리빙 깊이 이하로 선택된 인터리빙 깊이와 전체 코드워드의 수를 모듈로(modulo) 연산하여 잔여 코드워드의 수를 획득하는 획득부, 상기 잔여 코드워드의 수가 0이 아닌 경우, 상기 전체 코드워드의 수와 상기 인터리빙 깊이를 비교하는 제1 비교부 및 상기 비교 결과에 따라 상기 인터리빙 깊이를 조절하는 깊이 조절부를 포함하는 인터리빙 깊이 조절 장치를 제공한다.
일실시예에 따르면, 상기 인터리빙 깊이가 상기 전체 코드워드의 수 이하인 경우, 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합과 상기 최대 인터리빙 깊이를 비교하는 제2 비교부를 더 포함할 수 있다.
도 1은 일실시예에 따른 인터리빙 깊이 조절 장치의 구성에 대한 블록도이다.
도 2는 일실시예에 따른 인터리빙 깊이 조절 방법을 나타내는 흐름도이다.
도 3은 일실시예에 따른 디인터리빙 깊이 조절 방법을 나타내는 흐름도이다.
도 4는 일실시예에 따른 인터리빙 방법을 나타내는 흐름도이다.
도 5는 일실시예에 따른 인터리빙 방법에 있어서 인터리빙 깊이 조절 방법을 나타내는 흐름도이다.
도 6은 일실시예에 따른 잔여 코드워드의 수 및 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우의 인터리빙 깊이 조절을 도시한다.
도 7은 일실시예에 따른 잔여 코드워드의 수 및 인터리빙 깊이의 합이 최대 인터리빙 깊이 보다 큰 경우의 인터리빙 깊이 조절을 도시한다.
도 8은 일 실시예에 따른 인터리빙 절차를 설명하기 위한 도면이다.
이하에서, 일부 실시예들를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 권리범위가 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
도 1은 일실시예에 따른 인터리빙 깊이 조절 장치의 구성에 대한 블록도이다.
인터리빙 깊이 조절 장치(100)는 다중 비트 변복조 기법을 오류 정정 부호 기술과 결합시키는 경우, 신뢰도를 최대화 시키기 위해 인터리빙 깊이(interleaving depth)를 조절할 수 있다.
다중 비트 변복조 기술은 복수 개의 비트 시퀀스를 한 심볼로 간주하고, 이 심볼을 다시 코드 시퀀스로 대역 확산시킬 수 있다. 이와 같은 다중 비트 변복조 기술을 통해 전송률 및 신뢰도가 향상될 수 있다.
한 개의 심볼 전송 시간 동안 복수 개의 비트 정보를 담아 전송하므로, 동일한 전송시간에 단일 비트만을 전송하는 방법에 비해 전송률이 향상될 수 있다. 또한, 각 심볼에 매칭되는 코드 시퀀스를 코릴레이션(correlation) 특성 등이 향상되도록 설계하여 신뢰도를 향상시킬 수 있다.
예를 들어, 전송 길이 2에 해당하는 서로 다른 비트 시퀀스 [0 0], [0 1], [1 0] 및 [1 1]을 전송하고자 할 때, 각각의 비트 시퀀스를 코드 길이 4에 해당하는 [1 1 1 1], [1 -1 1 -1]. [1 1 -1 -1] 및 [1 -1 -1 1]의 코드 시퀀스로 확산시켜 전송할 수 있다.
또한, 디지털 통신 시스템에서 통신 신뢰도를 향상 시킬 수 있는 기술 중 하나인 오류 정정 부호(error correcting code) 기술은 에러 발생을 검출하고 정정할 수 있다. 이를 통해 원래 송신하고자 했던 비트 정보를 복원할 수 있고, 통신의 신뢰도를 향상시킬 수 있다.
오류 정정 부호는 크게 블록 코드(block code) 및 컨볼루션 코드(convolution code)로 나눌 수 있다. 블록 코드는 광범위하게 사용되는 코드이며, 일정한 길이의 블록 단위로 부호화가 이루어질 수 있다. 보내고자 하는 일정한 길이의 메시지 비트 정보에 리던던트 비트(redundant bit)인 패리티 비트(parity bit)를 추가하여 일정한 길이의 인코딩된 비트 시퀀스를 구성할 수 있다.
예를 들어, 보내고자 하는 원래의 비트(original bit) 정보에 해당하는 k 개의 메시지 비트들에 리던던트 비트에 해당하는 n-k개의 패리티 비트들을 추가한 후, 전체적으로 n개의 비트 시퀀스 블록을 구성하여 송신할 수 있다.
상기 비트 시퀀스 블록은 (n, k) 블록 코드라고 표현할 수 있고, 코드워드(codeword)는 인코더(encoder)의 출력인 n 비트 시퀀스일 수 있다. 상술한 메시지 비트들은 변경되지 않고 패리티 비트들만 추가되는 형태로 송신되는데, 이를 조직 부호(systematic code)라 한다.
또한, 설계된 내용에 따라 각 오류 정정 부호는 오류 복원 능력이 정해질 수 있다. 예를 들어 n 개의 비트들로 구성된 하나의 코드워드가 수신기에 수신되는 경우, 노이즈 등 비이상적인 채널 환경으로 인해 오류 비트수가 최대 t개까지 발생해도 원래 송신하고자 하는 비트 정보를 완벽히 복원 가능할 수 있다. 이 경우 t-에러 복원 능력(t-error correcting capability)을 가진 오류 정정 부호라 할 수 있다.
오류 정정 부호는 인터리빙 신호처리를 거쳐 송신할 수 있다. 인터리빙은 복수 개의 코드워드들을 순차적으로 전송하지 않고, 뒤섞어서 전송하는 방식이다. 한 코드워드 내에서 복원 가능한 최대 오류 비트 수가 정해져 있으므로, 인접한 비트 들 간의 오류가 복원 가능한 최대 오류 비트 수 보다 많이 발생하는 경우, 인터리빙 방식을 적용하지 않으면 에러 복원이 제대로 수행되지 않을 수 있다.
예를 들어 한 개의 코드워드는 n 개의 비트를 가지고 있고, n 개의 비트를 가지는 코드워드 들이 d 개가 있는 경우, d 개의 코드워드들을 한 개의 인터리빙 블록으로 형성하여 d*n 인터리빙 블록에 대해 인터리빙을 수행할 수 있다. 여기에서 d 값은 인터리빙 깊이 이다.
인터리빙 깊이 조절 장치(100)는 획득부(110), 제1 비교부(120), 제2 비교부(130), 깊이 조절부(140), 인터리빙 블록 결정부(150) 및 인터리빙 수행부(160)를 포함할 수 있다.
획득부(110)는 최대 인터리빙 깊이 이하로 선택된 인터리빙 깊이와 전체 코드워드의 수를 모듈로(modulo) 연산하여 잔여 코드워드의 수(dR)를 획득할 수 있다. 최대 인터리빙 깊이(dmax)는 시스템에서 허용 가능한 최대의 인터리빙 깊이로 설정될 수 있다. 인터리빙을 수행하기 위한 인터리빙 깊이(d)는 상기 최대 인터리빙 깊이 이내에서 선택될 수 있다. 또한 다른 일실시예에 따르면, 인터리빙 깊이(d)는 단일 심볼에 맵핑되는 비트 수인 변조 크기(modulation size)에 기반하여 선택될 수 있다. 또한, 변조 크기(modulation size)가 복수 개인 경우, 최대 인터리빙 깊이는 복수 개의 변조 크기 중에서 크기가 가장 큰 변조 크기로 설정될 수 있다. 예를 들어, 변조 크기가 1, 2, 3, 및 5인 경우, 최대 인터리빙 깊이는 5로 설정될 수 있다. 상술하였듯이, 최대 인터리빙 깊이는 시스템에서 허용 가능한 범위에서 설정될 수 있다.
선택된 인터리빙 깊이를 통해 전체 코드워드에 대해 인터리빙을 수행할 수 있다. 전체 코드워드 수(MB)가 인터리빙 깊이의 정수 배인 경우, 인터리빙 깊이를 조절하지 않더라도, 전체 코드워드에 대해 인터리빙 깊이를 적용하여 인터리빙을 수행할 수 있다.
다만, 전체 코드워드 수가 인터리빙 깊이의 정수 배가 아닌 경우, 인터리빙이 수행되는 인터리빙 블록 중 잔여 코드워드가 포함되는 잔여 인터리빙 블록에 대해서는 인터리빙 깊이를 적용하지 못할 수 있다.
이 경우, 인터리빙 깊이를 조절하지 않는 다면, 잔여 코드워드에 대해 인터리빙을 수행하지 않거나 제로 패딩 코드워드 등을 사용하여 인터리빙을 수행하게 되므로 전송률 및 신뢰도 측면에서 효율적이지 않을 수 있다. 따라서, 전체 코드워드 수와 인터리빙 깊이를 수학식 1과 같이 모듈로(modulo) 연산하여 잔여 코드워드 수를 구할 필요가 있다.
[수학식 1]
dR = mod(MB, d)
제1 비교부(120)는 상기 잔여 코드워드의 수가 0이 아닌 경우, 상기 전체 코드워드의 수와 상기 인터리빙 깊이를 비교할 수 있다. 상술한 바와 같이, 잔여 코드워드의 수가 0이 아닌 경우 인터리빙 깊이를 조절할 필요가 있다.
반면에, 잔여 코드워드의 수가 0인 경우, 인터리빙 깊이를 조절할 필요 없이, 인터리빙 수행부(160)는 기존의 인터리빙 깊이를 적용하여 전체 코드워드에 대해 인터리빙을 수행할 수 있다.
따라서, 인터리빙 깊이 조절 여부를 판단하기 위해 제1 비교부(120)는 전체 코드워드의 수와 상기 인터리빙 깊이를 비교할 수 있다.
조절부(140)는 상기 제1 비교부(120)의 비교 결과에 따라 인터리빙 깊이를 조절할 수 있다. 비교 결과 인터리빙 깊이가 상기 전체 코드워드의 수 보다 큰 경우, 상기 인터리빙 깊이를 상기 잔여 코드워드의 수로 조절할 수 있다. 이를 통해 잔여 코드워드의 수로 조절된 인터리빙 깊이를 상기 잔여 코드워드에 적용하여 인터리빙을 수행할 수 있다.
제2 비교부(130)는 인터리빙 깊이가 전체 코드워드의 수 이하인 경우, 잔여 코드워드의 수 및 인터리빙 깊이의 합과 최대 인터리빙 깊이를 비교할 수 있다.
인터리빙 깊이가 전체 코드워드의 수 보다 큰 경우, 인터리빙이 수행되는 인터리빙 블록이 하나만 존재할 수 있다. 따라서, 상술한 바와 같이 조절부(140)는 인터리빙 깊이를 잔여 코드워드의 수로 조절하여 상기 인터리빙 블록에 적합한 인터리빙 깊이로 조절할 수 있다.
반면에, 인터리빙 깊이가 전체 코드워드의 수 이하인 경우, 인터리빙이 수행되는 인터리빙 블록이 적어도 두 개가 존재할 수 있다. 따라서, 제2 비교부(130)의 잔여 코드워드의 수 및 인터리빙 깊이 합과 최대 인터리빙 깊이를 비교 결과에 기초하여, 깊이 조절부(140)는 인터리빙 깊이를 상이하게 조절할 수 있다.
인터리빙 블록 결정부(150)는 인터리빙 깊이가 전체 코드워드의 수 보다 큰 경우, 전체 코드워드를 하나의 인터리빙 블록으로 결정할 수 있다.
반면에, 인터리빙 깊이가 전체 코드워드의 수 이하인 경우, 인터리빙 블록 결정부(150)는 인터리빙 깊이 또는 잔여 코드워드의 수 와 인터리빙 깊이의 합과 상기 최대 인터리빙 깊이를 비교 결과에 기초하여 인터리빙 블록을 결정할 수 있다.
조절부(140)는 잔여 코드워드의 수(dR) 및 인터리빙 깊이(d)의 합이 최대 인터리빙 깊이(dmax) 이하인 경우, 인터리빙 블록 중 최종 인터리빙 블록에 적용하는 인터리빙 깊이를 상기 잔여 코드워드의 수 및 인터리빙 깊이의 합으로 조절할 수 있다.
잔여 코드워드의 수 및 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우, 인터리빙 블록 결정부(150)는 잔여 코드워드와 조절 이전의 인터리빙 깊이 크기만큼의 코드워드를 최종 인터리빙 블록(the last interleaving block)으로 결정할 수 있다. 여기에서, 조절 이전의 인터리빙 깊이 크기만큼의 코드워드는, 잔여 코드워드의 직전의 코드워드들일 수 있다. 최종 인터리빙 블록의 인터리빙 깊이가 최대 인터리빙 깊이 이하이기 때문에, 인터리빙 조절 장치(100)는 인터리빙 깊이를 잔여 코드워드의 수 및 인터리빙 깊이의 합으로 조절하여 최종 인터리빙 블록에 대해 인터리빙을 수행할 수 있다.
잔여 코드워드의 수 및 인터리빙 깊이의 합이 최대 인터리빙 깊이보다 큰 경우, 인터리빙 블록 결정부(150)는 잔여 코드워드를 두 개의 인터리빙 블록으로 결정할 수 있다. 여기에서, 결정된 두 개의 인터리빙 블록은 전체 코드워드 중 마지막에 대응되므로, 이하에서는 최종 2개의 인터리빙 블록이라고 명명하도록 한다.
잔여 코드워드의 수 및 인터리빙 깊이의 합이 최대 인터리빙 깊이 보다 큰 경우, 조절부(140)는 인터리빙 블록 중 최종 2개의 인터리빙 블록(the last two interleaving blocks) 각각에 적용하는 인터리빙 깊이를 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합에 기초하여 조절할 수 있다.
잔여 코드워드의 수 및 인터리빙 깊이의 합이 최대 인터리빙 깊이 보다 큰 경우에는 하나의 인터리빙 블록으로 형성하여 인터리빙을 수행할 수 없기 때문에, 블록을 구분할 필요가 있다.
이 경우, 구분되는 최종 2개의 인터리빙 블록 각각에 적용되는 인터리빙 깊이를 상기 잔여 코드워드의 수와 상기 인터리빙 깊이의 평균 이상의 정수 중 가장 작은 수 및 상기 잔여 코드워드의 수와 상기 인터리빙 깊이의 평균 이하인 정수 중 가장 큰 정수로 조절할 수 있다.
일례로, 인터리빙 깊이가 4이고, 잔여 코드워드의 수가 2이며, 최대 인터리빙 깊이가 5인 경우, 잔여 코드워드의 수와 인터리빙 깊이의 평균은 3이다. 이 경우, 최종 2개의 인터리빙 블록 각각에 적용되는 인터리빙 깊이는 3 및 3으로 조절될 수 있다.
다른 일례로, 인터리빙 깊이가 5이고, 잔여 코드워드의 수가 2이며, 최대 인터리빙 깊이가 5인 경우, 잔여 코드워드의 수와 인터리빙 깊이의 평균은 3.5이다. 이 경우, 최종 2개의 인터리빙 블록 각각에 적용되는 인터리빙 깊이는 4 및 3으로 조절될 수 있다.
상술한 바와 같이 인터리빙 깊이 조절 장치(100)는 최대 허용 가능한 최대 인터리빙 깊이를 활용하되, 불필요하게 인터리빙 깊이를 증가시킨다면 송수신간의 시간 지연(time delay) 증가로 이어지므로 지양하도록 할 수 있다.
또한, 잔여 코드워드로 인한 특정 인터리빙 블록의 인터리빙 깊이가 최초 설정된 인터리빙 깊이 대비 지나치게 감소되는 것을 방지함으로써 패킷 오류율 저하를 극복할 수 있다.
일실시예에 따른 인터리빙 방법의 일실시예는 표 1과 같이 나타낼 수 있다.
Figure pat00001
여기에서 dR=mod(MB, d)이고,
Figure pat00002
이며,
Figure pat00003
Figure pat00004
보다 크거나 같은 정수 중 가장 작은 수이며,
Figure pat00005
Figure pat00006
보다 작거나 같은 정수 중 가장 큰 정수이다. 표 1에 제시된 인터리빙 절차를 적용하면, 예를 들어 MB=14, d=3, dmax=5 인 경우, dR=2, NB=5가 얻어진다. 따라서, 처음 3개의 인터리빙 블록은 모두 인터리빙 깊이가 3으로 설정되고, 마지막 한 개의 인터리빙 블록은 인터리빙 깊이가 d+ dR인 5로 설정되어 인터리빙이 수행될 수 있다.
각 인터리빙 블록에서의 인터리빙 깊이 값들을 로우 벡터(row vector)로 표현하고 이를 인터리빙 깊이 시퀀스(interleaving depth sequence)로 간략화하여 표현한다면 표 2와 같다.
Figure pat00007
여기에서 ones(m)은 m개의 원소를 같는 올-원 로우 벡터(all-one row vector)이다.
표 2에서 제시된 인터리빙 깊이 시퀀스를 적용하면, 예를 들어, 인터리빙 깊이 시퀀스가 [dㆍones(NB-2), d+ dR]인 경우, 처음 NB-2개의 인터리빙 블록들은 인터리빙 깊이를 d로 적용하고, 마지막 인터리빙 블록은 인터리빙 깊이를 d+ dR로 적용할 수 있다.
인터리빙 수행부(160)는 인터리빙 깊이 및 조절된 인터리빙 깊이를 적용하여, 상기 적어도 하나의 코드워드를 인터리빙할 수 있다.
상술한 바와 같은 인터리빙 깊이 조절 장치(100)는 인터리빙이 수행되는 송신단을 중심으로 설명하였으나 이에 제한되는 것은 아니다. 수신단에서는 송신단에서 수행되는 인터리빙과 반대되는 신호처리에 해당하는 디인터리빙(deinterleaving)을 수행할 수 있으며, 디인터리빙 깊이 조절 장치의 구성 및 방법은 송신단과 동일할 수 있다.
도 2는 일실시예에 따른 인터리빙 깊이 조절 방법을 나타내는 흐름도이다.
단계(210)에서 인터리빙 깊이(d) 및 최대 인터리빙 깊이(dmax)를 설정할 수 있다. 최대 인터리빙 깊이는 시스템에서 허용 가능한 최대의 인터리빙 깊이로 설정될 수 있다. 인터리빙을 수행하기 위한 인터리빙 깊이는 상기 최대 인터리빙 깊이 이내에서 설정될 수 있다. 예를 들어, 변조 크기(modulation size)가 복수 개인 경우, 최대 인터리빙 깊이는 복수 개의 변조 크기 중에서 크기가 가장 큰 변조 크기로 설정될 수 있다. 예를 들어, 변조 크기가 1, 2, 3, 및 5인 경우, 최대 인터리빙 깊이는 5로 설정될 수 있다.
또한 다른 일실시예에 따르면, 인터리빙 깊이는 단일 심볼에 맵핑되는 비트 수인 변조 크기에 기반하여 설정될 수 있다. 인터리빙이 수행되기 전 설정되는 인터리빙 깊이를 기본 인터리빙 깊이(basic interleaving depth)라 할 수 있다.
단계(220)에서 인터리빙 깊이(d)와 전체 코드워드의 수(MB)를 모듈로 연산하여 잔여 코드워드의 수(dR)를 획득할 수 있다. 잔여 코드워드의 수가 0인 경우, 상기 설정된 인터리빙 깊이를 조절하지 않더라도, 전체 코드워드에 대해 상기 인터리빙 깊이를 적용하여 인터리빙을 수행할 수 있다.
다만, 전체 코드워드 수가 0이 아닌 경우, 인터리빙이 수행되는 인터리빙 블록 중 최종 블록에 포함되는 잔여 코드워드에 대해서는 상기 인터리빙 깊이(d)로는 인터리빙을 효율적으로 수행 할 수 없다. 잔여 코드워드에 대해 인터리빙을 수행하지 않는 경우에는 잔여 코드워드에 대해 패킷 오류가 발생할 수 있다. 또한, 제로 패딩 코드워드를 이용하여 인터리빙을 수행하는 경우에는 무의미한 비트정보를 추가로 보내야 하므로 전송률 측면에서 손해가 발생할 수 있다.
따라서, 전체 코드워드 수와 인터리빙 깊이를 모듈로 연산하여 잔여 코드워드 수를 구하여 인터리빙 깊이를 조절할 필요가 있다. 최대 인터리빙 깊이 이내에서 잔여 코드워드가 포함되는 특정 인터리빙 블록에 대해 인터리빙 깊이를 조절함으로써, 잔여 코드워드 수로 조절된 인터립이 깊이를 적용하여 전체 코드워드에 대해 인터리빙을 수행할 수 있다.
단계(230)에서, 획득된 잔여 코드워드의 수(dR)가 0인지 여부를 판단할 수 있다. 잔여 코드워드의 수가 0인지 여부에 따라 인터리빙 깊이 조절 여부를 결정할 수 있다. 상술한 바와 같이 잔여 코드워드의 수가 0인 경우에는 인터리빙 깊이를 조절하지 않고, 인터리빙 깊이를 적용하여 전체 코드워드에 대해 인터리빙을 수행할 수 있다. 반면에, 잔여 코드워드의 수가 0이 아닌 경우에는 잔여 코드워드를 포함하는 특정 인터리빙 블록에 대해서 인터리빙 깊이를 조절할 수 있다.
단계(235)에서, 잔여 코드워드의 수가 0인 경우 전체 코드워드에 상기 인터리빙 깊이(d)를 적용할 수 있다. 상술한 바와 같이 잔여 코드워드의 수가 0인 경우는 전체 코드워드의 수가 인터리빙 깊이의 정수 배인 경우로서, 전체 코드워드가 n * d 인터리빙 블록으로 결정될 수 있다. 따라서, 각 인터리빙 블록에 대해 상기 인터리빙 깊이를 적용하여 인터리빙을 수행할 수 있다.
단계(240)에서, 잔여 코드워드의 수가 0이 아닌 경우, 인터리빙 깊이와 전체 코드워드의 수를 비교할 수 있다. 상술한 바와 같이, 잔여 코드워드의 수가 0이 아닌 경우에는 잔여 코드워드를 포함하는 잔여 인터리빙 블록에 대해서 인터리빙 깊이를 조절할 수 있다.
인터리빙 깊이와 전체 코드워드의 수를 비교함으로써 인터리빙 블록의 수가 한 개인지 또는 적어도 2개 인지를 판단할 수 있다. 상기 비교를 통해 인터리빙 깊이를 조절하는 하나의 기준으로 이용할 수 있다.
단계(245)에서, 인터리빙 깊이가 전체 코드워드의 수보다 큰 경우, 인터리빙 깊이를 잔여 코드워드의 수로 조절할 수 있다. 인터리빙 깊이가 전체 코드워드의 수보다 큰 경우에는 인터리빙 블록이 하나만 존재할 수 있다. 이 경우, 전체 코드워드의 수는 잔여 코드워드의 수와 일치하게 되므로 상기 인터리빙 깊이를 적용하여 효율적으로 인터리빙을 수행할 수 없다.
따라서, 인터리빙 깊이를 잔여 코드워드의 수로 조절할 수 있고, 상기 조절된 인터리빙 깊이를 적용하여 전체 코드워드에 대해 인터리빙을 수행할 수 있다.
단계(250)에서, 인터리빙 깊이가 전체 코드워드의 수 이하인 경우, 인터리빙 깊이 및 잔여 코드워드의 수의 합과 최대 인터리빙 깊이를 비교할 수 있다. 인터리빙 깊이가 전체 코드워드의 수 이하인 경우, 인터리빙이 수행되는 인터리빙 블록은 적어도 2 개가 존재할 수 있다.
이 경우, 인터리빙 깊이 및 잔여 코드워드의 수의 합과 최대 인터리빙 깊이의 비교를 통해 잔여 코드워드가 포함되는 잔여 인터리빙 블록과 잔여 인터리빙 블록의 전의 인터리빙 깊이가 적용되는 인터리빙 블록을 하나의 블록으로 합칠지 여부를 결정할 수 있다.
단계(255)에서, 인터리빙 깊이 및 잔여 코드워드의 수의 합이 최대 인터리빙 깊이 이하인 경우, 최종 인터리빙 블록에 적용되는 인터리빙 깊이를 인터리빙 깊이 및 잔여 코드워드의 수의 합으로 조절할 수 있다.
이 경우, 잔여 코드워드와 잔여 코드워드의 전의 기본 인터리빙 깊이 크기 만큼의 코드워드의 인터리빙 깊이 값을 합하더라도 최대 인터리빙 깊이 이하이므로, 해당 코드워드를 하나의 최종 인터리빙 블록으로 합쳐서 인터리빙을 수행할 수 있다.
따라서, 상기 최종 인터리빙 블록에 적용되는 인터리빙 깊이를 인터리빙 깊이 및 잔여 코드워드의 수의 합으로 조절하여 인터리빙을 수행할 수 있다.
단계(260)에서, 인터리빙 깊이 및 잔여 코드워드의 수의 합이 최대 인터리빙 깊이 보다 큰 경우, 최종 2개의 인터리빙 블록 각각에 적용되는 인터리빙 깊이를 인터리빙 깊이 및 잔여 코드워드의 수의 합에 기초하여 조절할 수 있다.
이 경우에는, 최종 2개의 인터리빙 블록을 합치더라도 한 번에 인터리빙을 수행할 수 없다. 따라서, 최종 2개의 인터리빙 블록 각각에 적용되는 인터리빙의 깊이를 최초 설정된 인터리빙 깊이 대비 지나치게 감소하지 않도록 조절할 수 있다.
구체적으로, 인터리빙 깊이 및 잔여 코드워드의 수의 합이 최대 인터리빙 깊이 보다 큰 경우, 최종 2개의 인터리빙 블록 각각에 적용되는 인터리빙 깊이는 (d+dR)/2 이상의 정수 중 가장 작은 정수 및 (d+dR)/2 이하의 정수 중 가장 큰 정수로 조절될 수 있다. (d+dR)/2는 잔여 코드워드의 수와 기본 인터리빙 깊이의 평균을 나타낸다.
이와 같이 조절되는 인터리빙 깊이 값이 최초 설정된 인터리빙 깊이 값에 비해 지나치게 감소하는 것을 방지함으로써 패킷 오류율 저하를 극복할 수 있다.
도 3은 일실시예에 따른 디인터리빙 깊이 조절 방법을 나타내는 흐름도이다.
단계(310)에서 디인터리빙 깊이 및 최대 디인터리빙 깊이를 설정할 수 있다. 최대 디인터리빙 깊이는 시스템에서 허용 가능한 최대의 디인터리빙 깊이로 설정될 수 있다. 예를 들어, 변조 크기(modulation size)가 복수 개인 경우, 최대 디인터리빙 깊이는 복수 개의 변조 크기 중에서 크기가 가장 큰 변조 크기로 설정될 수 있다. 디인터리빙을 수행하기 위한 디인터리빙 깊이는 상기 최대 디인터리빙 깊이 이내에서 설정될 수 있다. 또한 다른 일실시예에 따르면, 디인터리빙 깊이는 상기 전체 코드워드에 적용된 인터리빙 깊이와 동일하게 조절되어 설정될 수 있다.
단계(320)에서 디인터리빙 깊이와 전체 코드워드의 수를 모듈로 연산하여 잔여 코드워드의 수를 획득할 수 있다. 잔여 코드워드의 수가 0인 경우, 상기 설정된 디인터리빙 깊이를 조절하지 않더라도, 전체 코드워드에 대해 상기 디인터리빙 깊이로 디인터리빙을 수행할 수 있다.
단계(330)에서, 획득된 잔여 코드워드의 수(dR)가 0인지 여부를 판단할 수 있다. 잔여 코드워드의 수가 0인지 여부에 따라 디인터리빙 깊이 조절 여부를 결정할 수 있다.
단계(335)에서, 잔여 코드워드의 수가 0인 경우 디인터리빙 깊이를 최초 설정된 디인터리빙 깊이로 유지할 수 있다. 잔여 코드워드의 수가 0인 경우는 전체 코드워드의 수가 디인터리빙 깊이의 정수배인 경우로서, 전체 코드워드가 n * d 디인터리빙 블록으로 결정될 수 있다. 따라서, 각 디인터리빙 블록에 대해 상기 디인터리빙 깊이를 적용하여 디인터리빙을 수행할 수 있다.
단계(340)에서, 잔여 코드워드의 수가 0이 아닌 경우, 디인터리빙 깊이와 전체 코드워드의 수를 비교할 수 있다. 상술한 바와 같이, 잔여 코드워드의 수가 0이 아닌 경우에는 잔여 코드워드를 포함하는 특정 디인터리빙 블록에 대해서 인터리빙 깊이를 조절할 수 있다.
디인터리빙 깊이와 전체 코드워드의 수를 비교함으로써 디인터리빙 블록의 수가 한 개인지 또는 적어도 두 개인지를 판단할 수 있다. 상기 비교를 통해 디인터리빙 깊이를 조절하는 하나의 기준으로 이용할 수 있다.
단계(345)에서, 디인터리빙 깊이가 전체 코드워드의 수보다 큰 경우, 디인터리빙 깊이를 잔여 코드워드의 수로 조절할 수 있다. 디인터리빙 깊이가 전체 코드워드의 수보다 큰 경우에는 디인터리빙 블록이 하나만 존재할 수 있다. 이 경우, 전체 코드워드의 수는 잔여 코드워드의 수와 일치하게 되므로 상기 디인터리빙 깊이가 적용되는 디인터리빙 블록을 형성할 수 없다.
따라서, 디인터리빙 깊이를 잔여 코드워드의 수로 조절하여, 전체 코드워드에 대해 하나의 디인터리빙 블록을 형성할 수 있다. 잔여 코드워드의 수로 조절된 디인터리빙 깊이가 적용되는 디인터리빙 블록에 대해 디인터리빙을 수행할 수 있다.
단계(350)에서, 디인터리빙 깊이가 전체 코드워드의 수 이하인 경우, 디인터리빙 깊이 및 잔여 코드워드의 수의 합과 최대 디인터리빙 깊이를 비교할 수 있다. 디인터리빙 깊이가 전체 코드워드의 수 이하인 경우, 디인터리빙이 수행되는 디인터리빙 블록은 적어도 2 개가 존재할 수 있다.
단계(355)에서, 디인터리빙 깊이 및 잔여 코드워드의 수의 합이 최대 디인터리빙 깊이 이하인 경우, 최종 디인터리빙 블록에 적용되는 디인터리빙 깊이를 디인터리빙 깊이 및 잔여 코드워드의 수의 합으로 조절할 수 있다.
단계(360)에서, 디인터리빙 깊이 및 잔여 코드워드의 수의 합이 최대 디인터리빙 깊이 보다 큰 경우, 최종 2개의 디인터리빙 블록 각각에 적용되는 디인터리빙 깊이를 디인터리빙 깊이 및 잔여 코드워드의 수의 합에 기초하여 조절할 수 있다.
구체적으로, 단계(360)에서, 디인터리빙 깊이 및 잔여 코드워드의 수의 합이 최대 디인터리빙 깊이 보다 큰 경우, 최종 2개의 인터리빙 블록 각각에 적용되는 인터리빙 깊이는 (d+dR)/2 이상의 정수 중 가장 작은 정수 및 (d+dR)/2 이하의 정수 중 가장 큰 정수로 조절될 수 있다. 상술하였지만, (d+dR)/2는 잔여 코드워드의 수와 기본 인터리빙 깊이의 평균을 나타낸다.
일실시예에 따르면, 상술한바와 같이 수신단에서는 송신기에서 데이터를 기록하고 읽는 방향과 반대인 신호처리에 해당하는 디인터리빙을 수행할 수 있다. 디인터리빙 수행 시에도 디인터리빙 깊이 조절 방법은 인터리빙 깊이 조절 방법과 같이 수행될 수 있다.
도 4는 일실시예에 따른 인터리빙 방법을 나타내는 흐름도이다.
단계(410)에서, 적어도 하나의 코드워드의 수 및 최대 인터리빙 깊이에 기초하여 적어도 하나의 코드워드에 대한 제1 인터리빙 깊이를 선택할 수 있다. 상기 제1 인터리빙 깊이는 전체 또는 일부 코드워드에 대해 인터리빙을 수행하기 위해 조절되는 인터리빙 깊이일 수 있다. 상기 제1 인터리빙 깊이를 선택하는 구체적인 방법에 대해서는 도 5에서 후술한다.
단계(420)에서 상기 선택된 제1 인터리빙 깊이를 적용하여, 적어도 하나의 코드워드를 인터리빙할 수 있다. 상기 적어도 하나의 코드워드는 상기 제1 인터리빙 깊이에 대응하는 인터리빙 블록을 포함할 수 있고, 상기 인터리빙 블록에 대응하는 제1 인터리빙 깊이를 적용하여 인터리빙을 수행할 수 있다.
도 5는 일실시예에 따른 인터리빙 방법에 있어서 인터리빙 깊이 조절 방법을 나타내는 흐름도이다.
단계(510)에서, 적어도 하나의 코드워드 수 및 기본 인터리빙 깊이(basic interleaving depth)(d)에 대한 모듈로 연산 결과 값인 잔여 코드워드의 수(dR)를 획득할 수 있다. 상기 기본 인터리빙 깊이는 최대 인터리빙 깊이 이내에서 선택될 수 있다. 다른 일실시예에 따르면, 기본 인터리빙 깊이는 단일 심볼에 맵핑되는 비트 수인 변조 크기에 기반하여 선택될 수 있다.
단계(520)에서, 기본 인터리빙 깊이 및 잔여 코드워드의 수의 합과 최대 인터리빙 깊이를 비교할 수 있다. 기본 인터리빙 깊이 및 잔여 코드워드의 수의 합과 최대 인터리빙 깊이의 비교를 통해 잔여 코드워드가 포함되는 잔여 인터리빙 블록과 잔여 인터리빙 블록의 전 블록을 하나의 블록으로 합칠지 여부를 결정할 수 있다.
단계(530)에서, 상기 비교 결과에 관계없이 인터리빙 블록을 결정할 수 있다. 다만, 비교 결과에 따라 인터리빙 블록이 다르게 결정될 수 있다. 예를 들어, 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 이하인 경우, 잔여 코드워드를 포함하는 잔여 인터리빙 블록과 상기 잔여 인터리빙 블록 전의 인터리빙 블록이 합쳐질 수 있다.
반면에, 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 보다 큰 경우, 상기 잔여 인터리빙 블록과 상기 잔여 인터리빙 블록 전의 인터리빙 블록의 각각의 인터리빙 깊이를 조절하여 최종 2개의 인터리빙 블록으로 결정할 수 있다.
단계(550)에서 잔여 코드워드의 수 및 기본 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 이하인 경우, 상기 인터리빙 블록 중 최종 인터리빙 블록에 적용하는 제1 인터리빙 깊이를 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합으로 선택할 수 있다.
상술한 바와 같이 최종 인터리빙 블록은, 상기 잔여 인터리빙 블록과 상기 잔여 인터리빙 블록 전의 인터리빙 블록이 합쳐질 수 있다. 따라서, 최종 인터리빙 블록에 대해 인터리빙을 수행하기 위해서는 상기 잔여 코드워드의 수와 상기 기본 인터리빙 깊이의 합의 크기를 가지도록 제1 인터리빙 깊이가 조절될 수 있다.
단계(540)에서, 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 보다 큰 경우, 상기 인터리빙 블록 중 최종 2개의 인터리빙 블록 각각에 적용하는 제1 인터리빙 깊이를, 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합에 기초하여 선택할 수 있다. 보다 구체적으로, 단계(540)에서, 잔여 코드워드의 수 및 기본 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 보다 큰 경우, 최종 2개의 인터리빙 블록 각각에 적용되는 인터리빙 깊이는 (d+dR)/2 이상의 정수 중 가장 작은 정수 및 (d+dR)/2 이하의 정수 중 가장 큰 정수로 조절될 수 있다. 상술하였지만, (d+dR)/2는 잔여 코드워드의 수와 기본 인터리빙 깊이의 평균을 나타낸다.
이 경우에는, 최종 2개의 인터리빙 블록을 합치더라도 한번에 인터리빙을 수행할 수 없다. 따라서, 최종 2개의 인터리빙 블록 각각에 적용되는 인터리빙의 깊이를 최초 설정된 인터리빙 깊이 대비 지나치게 감소하지 않도록 조절할 수 있다.
일실시예에 따르면, 단일 심볼에 매핑되는 비트 수를 변조 크기가 1부터 5까지의 임의의 값을 가질 수 있는 다중 비트 변복조 시스템에서의 예를 설명한다. 이 경우, 인터리빙 깊이(d)의 값은 변조 크기로 설정하는 것이 효과적일 수 있으며, 최대 인터리빙 깊이(dmax)는 5로 설정할 수 있다.
이 경우, dR 값이 0이 아니고, MB > d인 경우에 한정하면 표 3과 같이 인터리빙 깊이를 나타낼 수 있다.
Figure pat00008
여기에서 N/A는 해당하는 순서의 인터리빙 블록이 존재하지 않음을 의미한다. 도 6 및 도 7에서는 일실시예에 따라 잔여 코드워드의 수 및 인터리빙 깊이의 합과 최대 인터리빙 깊이와의 비교에 따라 인터리빙 깊이를 조절하는 방법에 대해 구체적으로 설명한다.
도 6은 일실시예에 따른 잔여 코드워드의 수 및 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우의 인터리빙 깊이 조절을 도시한다.
전체 코드워드는 상기 인터리빙 깊이인 3이 적용되는 인터리빙 블록(610) 및 잔여 인터리빙 블록(620)으로 인터리빙 블록이 결정될 수 있다. 인터리빙 블록(610)은 3 로우(row)로 구성되어 있으므로 인터리빙 깊이가 적용되어 인터리빙이 수행될 수 있다.
다만, 잔여 인터리빙 블록(620)은 1 로우로 구성되어 인터리빙 깊이가 적용될 수 없다. 인터리빙을 수행하지 않고, 잔여 인터리빙 블록(610)을 전송하는 경우에는, 잔여 인터리빙 블록(620)의 패킷 오류율이 증가할 수 있다. 또한, 2 개의 제로 패딩 코드워드를 추가하여 3 로우로 구성한 뒤 인터리빙 깊이를 적용하여 인터리빙을 수행하는 경우에는 무의미한 코드워드를 전송하여 전송률이 감소할 수 있다.
일실시예에 따르면, 잔여 코드워드의 수 및 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우에는 인터리빙 깊이를 잔여 코드워드의 수 및 인터리빙 깊이의 합으로 조절할 수 있다.
이 경우, 잔여 코드워드의 수 및 인터리빙 깊이의 합인 4로 인터리빙 깊이를 조절할 수 있다. 이를 통해, 전체 코드워드를 4 로우의 인터리빙 블록(630)으로 구성하여 인터리빙을 수행할 수 있다. 인터리빙 깊이가 증가함에 따라 시간 지연이 발생할 수 있으나, 패킷 오류율 저하를 극복할 수 있다.
도 7은 일실시예에 따른 잔여 코드워드의 수 및 인터리빙 깊이의 합이 최대 인터리빙 깊이 보다 큰 경우의 인터리빙 깊이 조절을 도시한다.
도 7에서는 일실시예에 따라, 전체 코드워드의 수가 6이고, 인터리빙 깊이가 5이며 최대 인터리빙 깊이가 5인 경우의 인터리빙 깊이 조절 방법을 도시한다.
전체 코드워드는 상기 인터리빙 깊이인 5가 적용되는 인터리빙 블록(710) 및 잔여 인터리빙 블록(720)으로 인터리빙 블록이 결정될 수 있다. 인터리빙 블록(710)은 5 로우(row)로 구성되어 있으므로 인터리빙 깊이가 적용되어 인터리빙이 수행될 수 있다.
다만, 잔여 인터리빙 블록(720)은 1 로우로 구성되어 인터리빙 깊이가 적용될 수 없다. 인터리빙을 수행하지 않고, 잔여 인터리빙 블록(720)을 전송하는 경우에는, 잔여 인터리빙 블록(720)의 패킷 오류율이 증가할 수 있다. 또한, 4 개의 제로 패딩 코드워드를 추가하여 5 로우로 구성한 뒤 인터리빙 깊이를 적용하여 인터리빙을 수행하는 경우에는 무의미한 코드워드를 전송하여 전송률이 감소할 수 있다.
일실시예에 따르면, 잔여 코드워드의 수 및 인터리빙 깊이의 합이 최대 인터리빙 깊이 보다 큰 경우에는 2개의 인터리빙 블록(710, 720) 각각에 적용하는 인터리빙 깊이는 잔여 코드워드의 수와 기본 인터리빙 깊이의 평균 이상의 정수 중 가장 작은 수 및 잔여 코드워드의 수와 기본 인터리빙 깊이의 평균 이하인 정수 중 가장 큰 정수로 조절될 수 있다.
이 경우, 잔여 코드워드의 수 및 인터리빙 깊이의 평균인 3으로 인터리빙 깊이를 조절할 수 있다. 이를 통해, 전체 코드워드를 3 로우의 2 개의 인터리빙 블록(730, 740)으로 구성하여 인터리빙을 수행할 수 있다. 2개의 인터리빙 블록(710, 720) 각각에 적용되는 인터리빙의 깊이를 최초 설정된 인터리빙 깊이 대비 지나치게 감소하지 않도록 조절할 수 있다.
상술한 바와 같은 다중 비트 변복조 방식의 구체적인 시스템은 표 4와 같이 나타낼 수 있다.
Figure pat00009
여기에서 M은 다중 비트 변복조 시 심볼에 매핑되는 비트수를 나타내며, 기본 인터리빙 깊이(basic interleaving depth)는 M과 동일한 값으로 설정할 수 있다. 일실시예에 따른 기본 인터리빙 깊이(d)를 적용하여 인터리빙을 수행하는 신호처리 과정은 다음과 같다.
코드워드가 BCH 인코더로부터 획득되고 나면, 비트-레벨 인터리빙은 인코딩된 데이터 상에서 수행되고, 코드워드에 걸친 비트(bits across codewords)는 적절하게 선택된 깊이로 인터리빙될 수 있다. 상기 동작은 심볼 에러에 대해 비트 에러를 보호할 수 있다. 인터리빙 깊이는 변조 크기에 기반하여 선택될 수 있다.
일실시예에 따르면, 표 4에서 제시된 시스템에서 각 인터리빙 블록에서의 인터리빙 깊이 값들을 로우 벡터로 표현한 인터리빙 깊이 시퀀스는 표 5로 나타낼 수 있다.
Figure pat00010
도 8은 일 실시예에 따른 인터리빙 절차(interleaving procedure)를 설명하기 위한 도면이다.
일 실시예에 따른 비트-레벨 인터리빙은, 데이터 심볼 에러가 있는 경우, 인코딩된 데이터가 비트 에러에 견디도록(resilient to bit error) shortened BCH 코드와 함께 사용될 수 있다.
코드워드 길이가 Nshort이고, 인터리빙 깊이가 d인 경우, 일 실시예에 따른 인터리빙 절차는 다음과 같다.
(1) 코드워드들의 d 블록들을 수집(collect d blocks of codewords).
d개의 BCH 코드워드가 수집될 수 있고, 각각의 BCH 코드워드는 Nshort개의 비트를 가질 수 있다.
(2) d * Nshort 차원의 어레이(d * Nshort dimensional array)(810)에 BCH 코드워드의 비트를 로우-와이즈(row-wise)로 씀.
d개의 BCH 코드워드들 각각의 비트는 d * Nshort 차원의 어레이에 쓰여질 수 있다. d개의 BCH 코드워드들은 하나의 어레이(810)로 형성될 수 있다. 어레이(810)는 d개의 BCH 코드워드들의 비트들을 기초로 구성될 수 있다.
(3) 컬럼-와이즈(column-wise)로 어레이를 읽고, 순차적으로 데이터를 출력.
어레이(810)에 쓰여진 비트는 b1,1, b2,1,… bd,1, b1,2, b2,2,… bd,2, b1,3,… bd,Nshort(820)의 순서대로 전송된다. 비트가 읽혀지는 순서대로 비트는 수신기로 전송될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (23)

  1. 최대 인터리빙 깊이 이하로 선택된 인터리빙 깊이와 전체 코드워드의 수를 모듈로(modulo) 연산하여 잔여 코드워드의 수를 획득하는 단계;
    상기 잔여 코드워드의 수가 0이 아닌 경우, 상기 전체 코드워드의 수와 상기 인터리빙 깊이를 비교하는 단계; 및
    상기 비교 결과에 따라 상기 인터리빙 깊이를 조절하는 단계
    를 포함하는 인터리빙 깊이 조절 방법.
  2. 제1항에 있어서,
    상기 인터리빙 깊이를 조절하는 단계는,
    상기 인터리빙 깊이가 상기 전체 코드워드의 수 보다 큰 경우, 상기 인터리빙 깊이를 상기 잔여 코드워드의 수로 조절하는, 인터리빙 깊이 조절 방법.
  3. 제1항에 있어서,
    상기 인터리빙 깊이가 상기 전체 코드워드의 수 이하인 경우, 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합과 상기 최대 인터리빙 깊이를 비교하는 단계
    를 더 포함하는, 인터리빙 깊이 조절 방법.
  4. 제3항에 있어서,
    상기 비교 결과에 기초하여, 상기 전체 코드워드에 대한 인터리빙 블록을 결정하는 단계
    를 더 포함하는 인터리빙 깊이 조절 방법.
  5. 제4항에 있어서,
    상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 이하인 경우, 상기 인터리빙 블록 중 최종 인터리빙 블록에 적용하는 인터리빙 깊이를 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합으로 조절하는 단계
    를 더 포함하며,
    상기 최종 인터리빙 블록은, 상기 잔여 코드워드의 수와 조절되기 이전의 인터리빙 깊이의 합의 크기를 가지는 인터리빙 깊이 조절 방법.
  6. 제4항에 있어서,
    상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 보다 큰 경우,
    상기 인터리빙 블록 중 최종 2개의 인터리빙 블록 각각에 적용하는 인터리빙 깊이를, 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합에 기초하여 조절하는 단계
    를 더 포함하는, 인터리빙 깊이 조절 방법.
  7. 제6항에 있어서,
    상기 최종 2개의 인터리빙 블록 각각에 적용하는 인터리빙 깊이는,
    상기 잔여 코드워드의 수와 상기 인터리빙 깊이의 평균 이상의 정수 중 가장 작은 수 및 상기 잔여 코드워드의 수와 상기 인터리빙 깊이의 평균 이하인 정수 중 가장 큰 정수로 조절되는,
    인터리빙 깊이 조절 방법.
  8. 제1항에 있어서,
    상기 인터리빙 깊이는, 단일 심볼에 맵핑되는 비트 수인 변조 크기(modulation size)에 기반하여 선택되는, 인터리빙 깊이 조절 방법.
  9. 최대 디인터리빙(de-interleaving) 깊이 이하로 선택된 디인터리빙 깊이와 전체 코드워드의 수를 모듈로(modulo) 연산하여 잔여 코드워드의 수를 획득하는 단계;
    상기 잔여 코드워드의 수가 0이 아닌 경우, 상기 전체 코드워드의 수와 상기 디인터리빙 깊이를 비교하는 단계; 및
    상기 비교 결과에 따라 상기 디인터리빙 깊이를 조절하는 단계
    를 포함하는 디인터리빙 깊이 조절 방법.
  10. 제9항에 있어서,
    상기 디인터리빙 깊이를 조절하는 단계는,
    상기 디인터리빙 깊이가 상기 전체 코드워드의 수 보다 큰 경우, 상기 디인터리빙 깊이를 상기 잔여 코드워드의 수로 조절하는, 디인터리빙 깊이 조절 방법.
  11. 제9항에 있어서,
    상기 디인터리빙 깊이가 상기 전체 코드워드의 수 이하인 경우, 상기 잔여 코드워드의 수 및 상기 디인터리빙 깊이의 합과 상기 최대 디인터리빙 깊이를 비교하는 단계
    를 더 포함하는, 디인터리빙 깊이 조절 방법.
  12. 제11항에 있어서,
    상기 비교 결과에 기초하여, 상기 전체 코드워드에 대한 디인터리빙 블록을 결정하는 단계
    를 더 포함하는 디인터리빙 깊이 조절 방법.
  13. 제12항에 있어서,
    상기 잔여 코드워드의 수 및 상기 디인터리빙 깊이의 합이 상기 최대 디인터리빙 깊이 이하인 경우, 상기 디인터리빙 블록 중 최종 디인터리빙 블록에 적용하는 디인터리빙 깊이를 상기 잔여 코드워드의 수 및 상기 디인터리빙 깊이의 합으로 조절하는 단계
    를 더 포함하며,
    상기 최종 디인터리빙 블록은, 상기 잔여 코드워드의 수와 조절되기 이전의 디인터리빙 깊이의 합의 크기를 가지는 디인터리빙 깊이 조절 방법.
  14. 제12항에 있어서,
    상기 잔여 코드워드의 수 및 상기 디인터리빙 깊이의 합이 상기 최대 디인터리빙 깊이 보다 큰 경우,
    상기 디인터리빙 블록 중 최종 2개의 디인터리빙 블록 각각에 적용하는 디인터리빙 깊이를, 상기 잔여 코드워드의 수 및 상기 디인터리빙 깊이의 합에 기초하여 조절하는 단계
    를 더 포함하는, 디인터리빙 깊이 조절 방법.
  15. 제14항에 있어서,
    상기 최종 2개의 디인터리빙 블록 각각에 적용하는 디인터리빙 깊이는,
    상기 잔여 코드워드의 수와 상기 디인터리빙 깊이의 평균 이상의 정수 중 가장 작은 수 및 상기 잔여 코드워드의 수와 상기 디인터리빙 깊이의 평균 이하인 정수 중 가장 큰 정수로 조절되는,
    디인터리빙 깊이 조절 방법.
  16. 제9항에 있어서,
    상기 디인터리빙 깊이를 조절하는 단계는,
    상기 디인터리빙 깊이를 상기 전체 코드워드에 적용된 인터리빙 깊이와 동일하게 조절하는, 디인터리빙 깊이 조절 방법.
  17. 적어도 하나의 코드워드의 수 및 최대 인터리빙 깊이(maximum interleaving depth)에 기초하여, 상기 적어도 하나의 코드워드에 대한 제 1 인터리빙 깊이를 선택하는 단계; 및
    상기 제 1 인터리빙 깊이를 적용하여, 상기 적어도 하나의 코드워드를 인터리빙하는 단계
    를 포함하는 인터리빙 방법.
  18. 제17항에 있어서,
    상기 제 1 인터리빙 깊이를 선택하는 단계는,
    상기 적어도 하나의 코드워드의 수 및 기본 인터리빙 깊이(basic interleaving depth)에 대한 모듈로 연산 결과 값인 잔여 코드워드의 수를 획득하는 단계; 및
    상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합과 최대 인터리빙 깊이의 비교 결과에 기초하여 상기 제 1 인터리빙 깊이를 선택하는 단계
    를 포함하는 인터리빙 방법.
  19. 제18항에 있어서,
    상기 비교 결과에 기초하여, 상기 전체 코드워드에 대한 인터리빙 블록을 결정하는 단계
    를 더 포함하는 인터리빙 깊이 조절 방법.
  20. 제19항에 있어서,
    상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 이하인 경우, 상기 인터리빙 블록 중 최종 인터리빙 블록에 적용하는 제1 인터리빙 깊이를 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합으로 선택하는 단계
    를 더 포함하며,
    상기 최종 인터리빙 블록은, 상기 잔여 코드워드의 수와 상기 기본 인터리빙 깊이의 합의 크기를 가지는 인터리빙 깊이 조절 방법.
  21. 제19항에 있어서,
    상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합이 상기 최대 인터리빙 깊이 보다 큰 경우,
    상기 인터리빙 블록 중 최종 2개의 인터리빙 블록 각각에 적용하는 제1 인터리빙 깊이를, 상기 잔여 코드워드의 수 및 상기 기본 인터리빙 깊이의 합에 기초하여 선택하는 단계
    를 더 포함하는, 인터리빙 깊이 조절 방법.
  22. 최대 인터리빙 깊이 이하로 선택된 인터리빙 깊이와 전체 코드워드의 수를 모듈로(modulo) 연산하여 잔여 코드워드의 수를 획득하는 획득부;
    상기 잔여 코드워드의 수가 0이 아닌 경우, 상기 전체 코드워드의 수와 상기 인터리빙 깊이를 비교하는 제1 비교부; 및
    상기 비교 결과에 따라 상기 인터리빙 깊이를 조절하는 깊이 조절부
    를 포함하는 인터리빙 깊이 조절 장치.
  23. 제22항에 있어서,
    상기 인터리빙 깊이가 상기 전체 코드워드의 수 이하인 경우, 상기 잔여 코드워드의 수 및 상기 인터리빙 깊이의 합과 상기 최대 인터리빙 깊이를 비교하는 제2 비교부
    를 더 포함하는, 인터리빙 깊이 조절 장치.
KR1020150023065A 2014-03-14 2015-02-16 인터리빙 깊이를 조절하기 위한 장치 및 방법 KR102370903B1 (ko)

Priority Applications (10)

Application Number Priority Date Filing Date Title
CN202010078458.4A CN111294156B (zh) 2014-03-14 2015-03-11 用于控制交织深度的方法和设备
EP15762096.4A EP3117526A4 (en) 2014-03-14 2015-03-11 Method and apparatus for controlling interleaving depth
PCT/KR2015/002327 WO2015137712A1 (en) 2014-03-14 2015-03-11 Method and apparatus for controlling interleaving depth
CN201580013983.5A CN106134086B (zh) 2014-03-14 2015-03-11 用于控制交织深度的方法和设备
JP2016574885A JP6739354B2 (ja) 2014-03-14 2015-03-11 インターリービング深度を調整するための装置及び方法
US14/657,159 US10009042B2 (en) 2014-03-14 2015-03-13 Method and apparatus for controlling interleaving depth
US15/989,441 US10693501B2 (en) 2014-03-14 2018-05-25 Method and apparatus for controlling interleaving depth
US16/884,286 US11018699B2 (en) 2014-03-14 2020-05-27 Method and apparatus for controlling interleaving depth
JP2020124679A JP7080933B2 (ja) 2014-03-14 2020-07-21 インターリービング深度を調整するための装置及び方法
JP2022085429A JP7314359B2 (ja) 2014-03-14 2022-05-25 インターリービング深度を調整するための装置及び方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140030396 2014-03-14
KR1020140030396 2014-03-14

Publications (2)

Publication Number Publication Date
KR20150107603A true KR20150107603A (ko) 2015-09-23
KR102370903B1 KR102370903B1 (ko) 2022-03-08

Family

ID=54246042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150023065A KR102370903B1 (ko) 2014-03-14 2015-02-16 인터리빙 깊이를 조절하기 위한 장치 및 방법

Country Status (4)

Country Link
EP (1) EP3117526A4 (ko)
JP (3) JP6739354B2 (ko)
KR (1) KR102370903B1 (ko)
CN (2) CN106134086B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111030780B (zh) * 2019-12-16 2022-07-12 中国科学院国家空间科学中心 一种可配置并行比特分组交织器及交织方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050052184A (ko) * 2003-11-29 2005-06-02 삼성전자주식회사 저밀도 패리티 검사 부호화를 위한 인터리빙 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1314319B1 (it) * 1999-12-23 2002-12-09 Siemens Inf & Comm Networks Metodo di interlacciamento di un flusso di bit in un sistema ditelefonia radiomobile
US6337642B1 (en) * 1999-12-28 2002-01-08 Texas Instruments Incorporated Method for efficient interleaving of variable length packets with maximized block size
US6964005B2 (en) * 2001-06-08 2005-11-08 Broadcom Corporation System and method for interleaving data in a communication device
US7529984B2 (en) * 2004-11-16 2009-05-05 Infineon Technologies Ag Seamless change of depth of a general convolutional interleaver during transmission without loss of data
US7873893B2 (en) * 2007-02-28 2011-01-18 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
US7688908B2 (en) * 2007-03-12 2010-03-30 Samsung Electronics Co., Ltd. System and method for processing wireless high definition video data using a shortened last codeword
US9184874B2 (en) * 2008-03-31 2015-11-10 Qualcomm Incorporated Storing log likelihood ratios in interleaved form to reduce hardware memory
EP2525498A1 (en) * 2011-05-18 2012-11-21 Panasonic Corporation Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes
CN102437896B (zh) * 2011-11-10 2014-08-27 北京市北康晟电子技术有限公司 一种比特交织及星座映射的方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050052184A (ko) * 2003-11-29 2005-06-02 삼성전자주식회사 저밀도 패리티 검사 부호화를 위한 인터리빙 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE P802.15 wireless personal area networks (2013년)* *

Also Published As

Publication number Publication date
KR102370903B1 (ko) 2022-03-08
CN106134086A (zh) 2016-11-16
CN106134086B (zh) 2020-02-28
JP6739354B2 (ja) 2020-08-12
JP2017513425A (ja) 2017-05-25
JP2022116176A (ja) 2022-08-09
CN111294156B (zh) 2023-03-24
EP3117526A1 (en) 2017-01-18
EP3117526A4 (en) 2018-02-21
JP7314359B2 (ja) 2023-07-25
CN111294156A (zh) 2020-06-16
JP7080933B2 (ja) 2022-06-06
JP2020198613A (ja) 2020-12-10

Similar Documents

Publication Publication Date Title
CN108352844B (zh) 启用签名的极化编码器和解码器
JP5863200B2 (ja) フレキシブルなソースブロックのマッピングを伴う伸縮性符号を使用した符号化および復号
US20170179980A1 (en) Techniques for low complexity soft decoder for turbo product codes
US11018699B2 (en) Method and apparatus for controlling interleaving depth
US20040194006A1 (en) Algebraic geometric code adapted to error bursts
US8612842B2 (en) Apparatus for generating a checksum
JP7314359B2 (ja) インターリービング深度を調整するための装置及び方法
KR102265052B1 (ko) 적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치
US10129051B2 (en) Method and apparatus for iterative interference cancellation and channel estimation of system based on FTN communication including pilot
US9236890B1 (en) Decoding a super-code using joint decoding of underlying component codes
CN110287716B (zh) 数据存储方法及装置
KR102109589B1 (ko) 고속직렬인터페이스용 송수신 오류 정정기법이 포함된 오버헤드최소화 코딩 기법과 하드웨어 구현 방법
US9160364B1 (en) Code word formatter of shortened non-binary linear error correction code
US9467174B2 (en) Low complexity high-order syndrome calculator for block codes and method of calculating high-order syndrome
KR101795217B1 (ko) 패리티가 포함된 전송 패킷을 인코딩 또는 디코딩하는 장치 및 방법
JP6552776B1 (ja) 誤り訂正復号装置および誤り訂正復号方法
KR102118605B1 (ko) 블록 코드에 대하여 저복잡도로 고차 신드롬을 계산하는 고차 신드롬 계산기 및 고차 신드롬 계산 방법
KR101832054B1 (ko) 반복 복호를 사용하는 심볼 llr 연산 장치 및 방법
US8645771B2 (en) Forward error correction with configurable latency
KR101269851B1 (ko) 아이에스디비-티 차집합 코드의 복호장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant