KR20160073725A - 적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치 - Google Patents
적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치 Download PDFInfo
- Publication number
- KR20160073725A KR20160073725A KR1020140182379A KR20140182379A KR20160073725A KR 20160073725 A KR20160073725 A KR 20160073725A KR 1020140182379 A KR1020140182379 A KR 1020140182379A KR 20140182379 A KR20140182379 A KR 20140182379A KR 20160073725 A KR20160073725 A KR 20160073725A
- Authority
- KR
- South Korea
- Prior art keywords
- interleaving
- depth
- blocks
- codewords
- interleaving depth
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2703—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
- H03M13/2707—Simple row-column interleaver, i.e. pure block interleaving
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2703—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2789—Interleaver providing variable interleaving, e.g. variable block sizes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6356—Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
적응적(adaptively)으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치가 제공된다. 인터리빙 방법 및 장치는 최대 인터리빙 깊이(maximum interleaving depth)를 및 패킷의 하나 이상의 코드워드(codeword)들의 개수에 기초하여 하나 이상의 인터리빙 블록들의 인터리빙 깊이를 적응적으로 결정하고, 인터리빙 깊이에 따라 인터리빙 블록들에 대해 인터리빙 할 수 있다.
Description
아래의 실시예들은 인터리빙 방법 및 장치에 관한 것으로, 보다 상세하게는 적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법에 관한 것이다.
비이상적인 채널 환경을 극복하고자 노력하였으며, 더 빠른 속도 및 더 높은 신뢰도를 가진 송수신 신호 처리에 대한 다양한 기법이 연구되었다. 특히, 보내고자 하는 디지털 비트 정보를 보다 효과적인 변복조 기법을 사용하여 송수신하는 연구가 많이 진행되었다.
또한, 디지털 통신 시스템에서 통신 신뢰도를 향상시킬 수 있는 효과적인 기술 중의 하나로, 오류 정정 부호(error correcting code) 기술이 있다. 랜덤 노이즈 등을 비롯한 다양한 비이상적인 통신 채널 환경으로 인해 송신된 비트 정보가 그대로 수신기에 수신되지 못하고 에러가 발행할 수 있다. 이 경우, 에러 발생을 검출하고 정정함으로써, 원래 송신하고자 했던 비트 정보를 복원하게 되며, 이로 인해 통신의 신뢰도가 향상될 수 있다.
아울러, 코드워드(codeword)의 블록(block)을 인터리빙(interleaving)하는 기법 또한 디지털 통신 시스템에서 통신 신뢰도를 향상시킬 수 있는 방법 중 하나이다. 인터리빙 기법은, 기 설정된 인터리빙 깊이로 코드워드 블록을 인터리빙하여 송신함으로써 에러 발생에 강인한 디지털 통신을 가능하게 한다.
일 측면에 따른, 인터리빙 방법은 최대 인터리빙 깊이 및 패킷의 하나 이상의 코드워드(codeword)들의 개수에 기초하여 하나 이상의 인터리빙 블록들의 인터리빙 깊이를 적응적으로(adaptively) 결정하는 단계 및 상기 인터리빙 깊이에 따라 상기 인터리빙 블록들에 대해 인터리빙 하는 단계를 포함한다.
상기 최대 인터리빙 깊이는 상기 인터리빙 블록들을 송신하는 송신기 및 상기 인터리빙 블록들을 수신하는 수신기에 대해 미리 약속된 값일 수 있다.
상기 인터리빙 깊이를 적응적으로 결정하는 단계는 미리 결정된 기본 인터리빙 깊이와 상기 코드워드들의 개수를 모듈로(modulo) 연산하여 잔여 코드워드의 개수를 계산하는 단계 및 상기 잔여 코드워드의 개수에 기반하여 상기 기본 인터리빙 깊이를 조절함으로써 상기 인터리빙 블록들의 인터리빙 깊이를 결정하는 단계를 포함할 수 있다.
상기 인터리빙 방법은 상기 기본 인터리빙 깊이를 상기 인터리빙 블록들이 전송되는 통신 채널의 환경에 기반하여 결정하는 단계를 더 포함할 수 있다.
상기 인터리빙 깊이를 결정하는 단계는 상기 잔여 코드워드의 개수 및 상기 기본 인터리빙 깊이의 합에 기반하여 상기 인터리빙 블록들의 인터리빙 깊이를 결정할 수 있다.
상기 인터리빙 깊이를 결정하는 단계는, 상기 합이 상기 최대 인터리빙 깊이 이하인 경우, 생성될 마지막 인터리빙 블록의 인터리빙 깊이를 상기 합으로 결정하고, 나머지 인터리빙 블록들의 인터리빙 깊이를 상기 기본 인터리빙 깊이로 결정하는 단계를 포함할 수 있다.
상기 인터리빙 블록들에 대해 인터리빙 하는 단계는, 상기 마지막 인터리빙 블록을 상기 합의 개수만큼의 코드워드들을 이용하여 인터리빙 하고, 상기 나머지 인터리빙 블록들을 상기 기본 인터리빙 깊이의 개수만큼의 코드워드들을 이용하여 인터리빙 하는 단계를 포함할 수 있다.
상기 인터리빙 깊이를 결정하는 단계는, 상기 합이 상기 최대 인터리빙 깊이를 초과하는 경우, 상기 코드워드들의 개수에 기반하여 상기 코드워드들에 추가될 수 있는 최대 더미 코드워드의 개수를 결정하는 단계 및 상기 기본 인터리빙 깊이 및 상기 잔여 코드워드의 개수 간의 차이가 상기 최대 더미 코드워드의 개수 이하인 경우 상기 인터리빙 깊이를 상기 기본 인터리빙 깊이로 결정하는 단계를 포함할 수 있다.
상기 인터리빙 블록들에 대해 인터리빙 하는 단계는, 상기 차이만큼의 더미 코드워드를 상기 코드워드들에 추가함으로써 상기 인터리빙 블록들에 대해 인터리빙 하는 단계를 포함할 수 있다.
상기 더미 코드워드는 제로 패딩(zero padding)일 수 있다.
상기 인터리빙 깊이를 결정하는 단계는, 상기 합이 상기 최대 인터리빙 깊이를 초과하는 경우, 상기 코드워드들의 개수에 기반하여 상기 코드워드들에 추가될 수 있는 최대 더미 코드워드의 개수를 결정하는 단계, 상기 기본 인터리빙 깊이 및 상기 잔여 코드워드의 개수 간의 차이가 상기 최대 더미 코드워드의 개수를 초과하는 경우 상기 인터리빙 블록들을 두 개의 그룹들로 분류하는 단계; 및 상기 두 개의 그룹들 각각에 상이한 인터리빙 깊이를 결정하는 단계를 포함할 수 있다.
상기 인터리빙 블록들에 대해 인터리빙 하는 단계는, 상기 최대 더미 코드워드 개수만큼의 더미 코드워드를 상기 코드워드들에 추가하는 단계; 및 상기 두 개의 그룹들 각각에 결정된 상이한 인터리빙 깊이를 적용함으로써 상기 인터리빙 블록들에 대해 인터리빙 하는 단계를 포함할 수 있다.
상기 두 개의 그룹들 각각에 결정되는 상이한 두 개의 인터리빙 깊이들 간의 차이는 1일 수 있다.
상기 두 개의 그룹들 중 선행하는 그룹의 인터리빙 깊이가 후행하는 그룹의 인터리빙 깊이보다 더 클 수 있다.
상기 두 개의 그룹들 각각에 상이한 인터리빙 깊이를 결정하는 단계는, 상기 인터리빙 블록들 중 마지막 두 개의 블록들이 제1 그룹이고, 나머지 블록들이 제2 그룹인 경우, 상기 제2 그룹의 인터리빙 블록의 인터리빙 깊이를 상기 기본 인터리빙 깊이로 결정하는 단계; 및 상기 제1 그룹의 인터리빙 블록들 각각의 인터리빙 깊이를 상기 기본 인터리빙 깊이, 잔여 코드워드의 개수 및 상기 추가되는 더미 코드워드의 개수에 기반하여 결정하는 단계를 포함할 수 있다.
상기 기본 인터리빙 깊이, 잔여 코드워드의 개수 및 상기 추가되는 더미 코드워드의 개수의 합이 짝수인 경우, 상기 제1 그룹의 인터리빙 블록들의 인터리빙 깊이는 서로 동일하게 결정될 수 있다.
상기 인터리빙 깊이를 적응적으로 결정하는 단계는, 상기 코드워드들의 개수가 미리 결정된 기본 인터리빙 깊이 미만인 경우 상기 코드워드들에 추가되는 더미 코드워드의 개수를 결정하는 단계; 및 상기 코드워드들의 개수 및 상기 더미 코드워드의 개수의 합을 상기 인터리빙 블록들의 인터리빙 깊이로 결정하는 단계를 포함할 수 있다.
상기 인터리빙 블록들에 대해 인터리빙 하는 단계는, 상기 인터리빙 블록들은 하나이고, 상기 하나 이상의 코드워드들 및 상기 추가되는 더미 코드워드를 이용하여 상기 인터리빙 블록에 대해 인터리빙 하는 단계를 포함할 수 있다.
다른 일 측면에 따르면, 인터리빙 장치는 최대 인터리빙 깊이 및 패킷의 하나 이상의 코드워드(codeword)들의 개수에 기초하여 하나 이상의 인터리빙 블록들의 인터리빙 깊이를 적응적(adaptively)으로 결정하는 인터리빙 깊이 결정부 및 상기 인터리빙 깊이에 따라 상기 인터리빙 블록들에 대해 인터리빙 하는 인터리빙부를 포함한다.
또 다른 일 측면에 따르면, 디인터리빙 방법은 송신기로부터 하나 이상의 인터리빙 블록들을 수신하는 단계, 상기 수신한 인터리빙 블록 각각에 기반하여 상기 인터리빙 블록 각각에 대한 인터리빙 깊이를 검출하는 단계, 상기 인터리빙 깊이에 따라 디인터리빙(deinterleaving) 깊이를 적응적으로(adaptively) 결정하는 단계 및 상기 디인터리빙 깊이에 따라 상기 인터리빙 블록들을 디인터리빙 하는 단계를 포함한다.
또 다른 일 측면에 따르면, 디인터리빙 방법은 송신기로부터 하나 이상의 인터리빙 블록들을 수신하는 통신부, 상기 수신한 인터리빙 블록 각각에 기반하여 상기 인터리빙 블록 각각에 대한 인터리빙 깊이를 검출하는 인터리빙 깊이 검출부, 상기 인터리빙 깊이에 따라 디인터리빙(deinterleaving) 깊이를 적응적으로(adaptively) 결정하는 디인터리빙 깊이 결정부 및 상기 디인터리빙 깊이에 따라 상기 인터리빙 블록들을 디인터리빙 하는 디인터리빙부를 포함한다.
도 1은 일 예에 따른 인터리빙 블록을 전송하는 시스템을 도시한다.
도 2는 일 예에 따른 인터리빙 블록을 도시한다.
도 3은 일 실시예에 따른 인터리빙 장치의 구성도이다.
도 4는 일 예에 따른 인터리빙 방법의 흐름도이다.
도 5는 다른 일 예에 따른 인터리빙 방법의 흐름도이다.
도 6은 일 실시예에 따른 인터리빙 블록에 대해 인터리빙 하는 방법의 흐름도이다.
도 7은 일 예에 따른 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우 인터리빙 하는 방법의 흐름도이다.
도 8은 일 예에 따른 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우 생성된 인터리빙 블록들을 나타낸다.
도 9는 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수 이하인 경우 인터리빙 하는 방법의 흐름도이다.
도 10은 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수 이하인 경우 생성된 인터리빙 블록들을 나타낸다.
도 11은 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수를 초과하는 경우 인터리빙 하는 방법의 흐름도이다.
도 12는 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수를 초과하는 경우 생성된 인터리빙 블록들을 나타낸다.
도 13은 일 예에 따른 코드워드들의 개수가 미리 결정된 기본 인터리빙 깊이 미만인 경우 인터리빙 하는 방법의 흐름도이다.
도 14는 일 예에 따른 코드워드들의 개수가 미리 결정된 기본 인터리빙 깊이 미만인 경우 생성된 인터리빙 블록을 나타낸다.
도 15는 일 실시예에 따른 디인터리빙 장치의 구성도이다.
도 16은 일 실시예에 따른 디인터리빙 방법의 흐름도이다.
도 17은 일 예에 따른 수신기가 송신기로 피드백을 전달하는 방법의 흐름도이다.
도 2는 일 예에 따른 인터리빙 블록을 도시한다.
도 3은 일 실시예에 따른 인터리빙 장치의 구성도이다.
도 4는 일 예에 따른 인터리빙 방법의 흐름도이다.
도 5는 다른 일 예에 따른 인터리빙 방법의 흐름도이다.
도 6은 일 실시예에 따른 인터리빙 블록에 대해 인터리빙 하는 방법의 흐름도이다.
도 7은 일 예에 따른 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우 인터리빙 하는 방법의 흐름도이다.
도 8은 일 예에 따른 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우 생성된 인터리빙 블록들을 나타낸다.
도 9는 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수 이하인 경우 인터리빙 하는 방법의 흐름도이다.
도 10은 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수 이하인 경우 생성된 인터리빙 블록들을 나타낸다.
도 11은 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수를 초과하는 경우 인터리빙 하는 방법의 흐름도이다.
도 12는 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수를 초과하는 경우 생성된 인터리빙 블록들을 나타낸다.
도 13은 일 예에 따른 코드워드들의 개수가 미리 결정된 기본 인터리빙 깊이 미만인 경우 인터리빙 하는 방법의 흐름도이다.
도 14는 일 예에 따른 코드워드들의 개수가 미리 결정된 기본 인터리빙 깊이 미만인 경우 생성된 인터리빙 블록을 나타낸다.
도 15는 일 실시예에 따른 디인터리빙 장치의 구성도이다.
도 16은 일 실시예에 따른 디인터리빙 방법의 흐름도이다.
도 17은 일 예에 따른 수신기가 송신기로 피드백을 전달하는 방법의 흐름도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 예에 따른 인터리빙 블록을 전송하는 시스템을 도시한다.
인터리빙(interleaving) 블록을 전송하는 시스템(이하에서, 인터리빙 블록을 전송하는 시스템은 시스템으로 약술된다)은 송신기(110) 및 수신기(120)를 포함한다.
송신기(110)는 인터리버(112) 및 통신부(114)를 포함한다.
인터리버(112)는 전송할 패킷의 데이터를 이용하여 하나 이상의 인터리빙 블록들에 대해 인터리빙을 할 수 있다. 인터리버(112)는 인터리빙 장치(112)로 명명될 수 있다.
통신부(114)는 인터리빙된 하나 이상의 인터리빙 블록들을 수신기(120)로 전송한다.
일 측면에 따르면, 통신부(114)는 인터리빙 블록들을 심볼 코딩 방식을 이용하여 전송할 수 있다.
수신기(120)는 송신기(110)로부터 인터리빙된 하나 이상의 인터리빙 블록들을 수신할 수 있다. 예를 들어, 수신기(120)는 휴대용 단말과 같은 무선 통신 단말 또는 유선 통신 단말일 수 있다.
전송되는 하나 이상의 인터리빙 블록에는 전송 과정에서 발생할 수 있는 전송 오류를 효과적으로 검출할 수 있는 방법이 적용될 수 있다.
인터리빙 블록에 대해 인터리빙 하는 방법에 대해서, 아래의 도 2 내지 도 14를 참조하여 상세히 설명한다.
도 2는 일 예에 따른 인터리빙 블록을 도시한다.
코드워드(codeword)는 전송할 패킷의 데이터를 소정의 크기 단위로 나눈 것일 수 있다. 즉, 하나 이상의 코드워드들이 모여 전송 패킷을 구성할 수 있다.
예를 들어, 각 코드워드는 총 n 개의 비트들을 포함할 수 있다. n 개의 비트들 중 n-m 개의 비트들은 패킷의 데이터일 수 있다. 코드워드의 m 개의 비트들은 전송 시에 발생할 수 있는 오류를 검출하기 위한 패리티(parity) 비트일 수 있다. 여기서, n는 자연수를 의미하고, m은 0 이상의 정수를 의미한다.
패리티 비트의 개수가 늘어날수록 오류 검출 성능은 개선될 수 있다. 패리티 비트의 개수가 늘어날수록 데이터 전송률(data rate)은 상대적으로 감소하기 때문에 패리티 비트의 개수는 요구되는 오류 검출 성능과 데이터 전송률을 고려하여 결정될 수 있다.
오류 검출을 위해 패리티 비트를 이용하더라도, 연속 비트들에 대해 전송 오류가 발생하는 경우 오류가 검출되지 않을 수 있다. 오류가 검출되지 않으면 오류가 복원되지 않는다.
인터리빙 방식을 이용하는 경우, 연속 비트들에서 전송 오류가 발생하는 경우에도 오류를 검출할 수 있다.
전송될 데이터(210)는 복수 개의 코드워드들을 포함할 수 있다. 도 2에서는 5개의 코드워드들이 도시되었다.
첫 번째 코드워드(212)는 n 개의 비트들을 포함할 수 있다. 데이터가 정상적으로 읽히기(read) 위해서는 첫 번째 코드워드(212)의 b1,1으로부터 b1,n의 순서로 읽혀야 한다.
인터리빙 방식을 사용하는 경우, 복수의 코드워드들의 비트들의 전송 순서를 섞음으로써 연속되는 비트들에서 전송 오류가 발생하더라도 각 코드워드에서 전송 오류를 검출할 수 있다.
예를 들어, 인터리빙 방법은 전송될 데이터(210)의 각 코드워드의 첫 번째 열의 비트들을 연속적으로 전송할 수 있다.
복수 개의 코드워드들이 결합된 블록이 인터리빙 블록 또는 블록으로 명명될 수 있다. 생성된 인터리빙 블록은 열(column) 단위로 전송될 수 있다.
전송되는 열 단위는 인터리빙 깊이(depth) 또는 깊이로 정의된다. 최대 인터리빙 깊이는 인터리빙 장치(112)에서 최대로 처리할 수 있는 인터리빙 깊이로 정의된다.
위에서 설명한 바와 같이, 전송 오류를 줄이기 위한 파라미터(예를 들면, 패리티 비트의 개수 등) 및 데이터 전송률 관련 파라미터는 서로 트레이드-오프(trade-off)의 관계일 수 있다. 이러한 관계를 고려하는 인터리빙 방법에 대해, 아래에서 도 3 내지 도 14를 참조하여 상세히 설명한다.
도 3은 일 실시예에 따른 인터리빙 장치의 구성도이다.
일 측면에 따르면, 인터리빙 장치(112)는 최대 인터리빙 깊이 계산부(310), 인터리빙 깊이 결정부(320) 및 인터리빙부(330)를 포함한다.
최대 인터리빙 깊이 계산부(310), 인터리빙 깊이 결정부(320) 및 인터리빙부 (330)에 대해, 하기에서 도 4 내지 도 14를 참조하여 상세히 설명된다.
도 4는 일 예에 따른 인터리빙 방법의 흐름도이다.
일 측면에 따르면, 도 4에 개시된 단계들에 의해 3 가지의 결과 케이스들이 나타날 수 있다. 3 가지의 결과 케이스들은 A case, B case 및 C case 일 수 있다.
A case에 대해, 하기에서 도 6을 참조하여 상세히 설명된다.
B case에 대해, 하기에서 도 7 및 도 8을 참조하여 상세히 설명된다.
C case에 대해, 하기에서 도 9 내지 도 12를 참조하여 상세히 설명된다.
도 5는 다른 일 예에 따른 인터리빙 방법의 흐름도이다.
다른 일 측면에 따르면, 도 5에 개시된 단계들에 의해 4 가지의 결과 케이스들이 나타날 수 있다. 4 가지의 결과 케이스들은 A case, B case, D case 및 E case 일 수 있다.
A case 및 B case는 도 4에서 설명된 A case 및 B case와 동일할 수 있다.
D case에 대해, 하기에서 도 11 내지 도 12를 참조하여 상세히 설명된다.
E case에 대해, 하기에서, 도 13 내지 도 14를 참조하여 상세히 설명된다.
도 6은 일 실시예에 따른 인터리빙 블록에 대해 인터리빙 하는 방법의 흐름도이다.
단계(610)에서, 최대 인터리빙 깊이 저장부(310)는 최대 인터리빙 깊이(maximum interleaving depth)(dmax)를 저장한다. 예를 들어, 최대 인터리빙 깊이 저장부(310)는 인터리빙 장치(112)의 하드웨어의 성능에 기반하여 정해진 최대 인터리빙 깊이를 저장할 수 있다. 하드웨어의 성능은 인터리빙 장치(110)의 메모리의 처리 성능일 수 있다. 다른 예로, 최대 인터리빙 깊이는 구현에 따라 연산하여 결정되는 값일 수 있다.
일 측면에 따르면, 최대 인터리빙 깊이는 송신기(110) 및 수신기(120)에 미리 저장될 수 있다. 최대 인터리빙 깊이는 인터리빙 블록들을 송신하는 송신기(110) 및 인터리빙 블록들을 수신하는 수신기(120)에 대해 미리 약속된 값일 수 있다.
단계(620)에서, 인터리빙 깊이 결정부(320)는 기본 인터리빙 깊이(basic interleaving depth)(d)를 미리 결정할 수 있다. 기본 인터리빙 깊이는 최대 인터리빙 깊이 이하일 수 있다.
예를 들어, 인터리빙 깊이 결정부(320)는 기본 인터리빙 깊이를 인터리빙 블록들이 전송되는 통신 채널의 환경에 기반하여 결정할 수 있다. 인터리빙 깊이 결정부(320)는 통신 채널의 환경이 변화하는 경우 기본 인터리빙 깊이를 변화시킬 수 있다.
단계(630)에서, 인터리빙 깊이 결정부(320)는 하나 이상의 인터리빙 블록들의 인터리빙 깊이를 적응적(adaptively)으로 결정한다. 인터리빙 깊이 결정부(320)는 조건에 따라 기본 인터리빙 깊이를 조정함으로써 인터리빙 깊이를 적응적으로 결정할 수 있다.
예를 들어, 인터리빙 깊이 결정부(320)는 최대 인터리빙 깊이 및 패킷의 하나 이상의 코드워드(codeword)들의 개수에 기초하여 블록들의 인터리빙 깊이를 적응적으로 결정할 수 있다.
코드워드의 개수, 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 관계는 하기의 [수학식 1]로 나타낼 수 있다. 잔여 코드워드의 개수를 계산하는 방법은 하기의 단계(710)를 이용하여 상세히 설명된다.
여기에서, dR은 잔여 코드워드의 개수이고, Ncw는 코드워드들의 개수이고, d는 기본 인터리빙 깊이 일 수 있다.
NB는 잔여 코드워드의 수가 0이 아닌 경우, 기본 인터리빙 깊이를 이용하여 생성되는 하나 이상의 인터리빙 블록들의 개수일 수 있다.
<A case > 잔여 코드워드의 수가 0인 경우, 생성되는 하나 이상의 인터리빙 블록의 개수는 NB-1 개일 수 있다.
인터리빙 깊이를 적응적으로 결정하는 방법에 대해, 하기에서 도 7 내지 도 14를 참조하여 상세히 설명된다.
단계(640)에서, 인터리빙부(330)는 인터리빙 깊이에 따라 하나 이상의 인터리빙 블록들에 대해 인터리빙 한다.
디지털 통신 시스템에서, 다양한 비이상적인 특성을 가지는 채널 환경에서 높은 데이터 전송률 및 우수한 신뢰도 확보를 목표로 다양한 연구개발이 진행되고 있다. 그 중에서도, 다중 비트 변복조 기술 및 오류 정정 부호를 적절히 결합하면 전송률 및 신뢰도 향상의 측면에서 우수한 성능을 나타낼 수 있다. 다중 비트 변복조 기술 및 오류 정정 부호를 적절히 결합하지 못하는 경우 상기의 효과는 거의 발생하지 않을 수 있다.
일 측면에 따르면, 디지털 통신 시스템에서, 다중 비트 변복조 기법이 오류 정정 부호 기술과 효과적으로 결합될 수 있다. 상기의 결합에 의해 신뢰도가 최대화될 수 있다.
다른 일 측면에 따르면, 다양한 길이의 패킷을 전송 및 수신해야 하는 실제적인 통신 시스템에서, 특정 패킷 크기에서의 성능 열화 현상이 방지될 수 있다. 패킷 크기에 관계없이 균등한 신뢰도를 확보할 수 있다.
또 다른 일 측면에 따르면, 인접한 비트들간에 수신 오류가 발생하는 일반적인 오류 정정 부호 적용 시스템에서 적용될 수 있다.
<A case > 인터리빙부(330)는 잔여 코드워드의 수가 0인 경우, NB-1 개의 인터리빙 블록들을 인터리빙 할 수 있다.
블록들에 대해 인터리빙 하는 방법에 대해, 하기에서 도 7 내지 도 14를 참조하여 상세히 설명된다. 도 7 내지 도 14를 참조하여 설명되는 인터리빙 방법은 잔여 코드워드의 개수가 0인 아닌 경우일 수 있다.
앞서 도 1 내지 도 5를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
<B
case
: 잔여 코드워드가 존재하고, 잔여 코드워드의 개수 및 기본
인터리빙
깊이의 합이 최대
인터리빙
깊이 이하인 경우>
도 7은 일 예에 따른 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우 인터리빙 하는 방법의 흐름도이다.
도 7은 위에서 설명한 B case의 인터리빙 방법의 흐름도일 수 있다.
위에서 설명한 단계(630)는 하기의 단계들(710 내지 730)을 포함할 수 있다.
단계(710)에서, 인터리빙 깊이 결정부(320)는 기본 인터리빙 깊이와 코드워드들의 개수를 모듈로(modulo) 연산하여 잔여 코드워드의 개수를 계산할 수 있다.
모듈로 연산은 하기의 [수학식 2]와 같다.
여기에서, mod(x,y)는 x 및 y의 모듈로 연산을 의미한다.
단계(720)에서, 인터리빙 깊이 결정부(320)는 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합을 최대 인터리빙 깊이와 비교할 수 있다.
잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우 하기의 단계(730)가 수행될 수 있다.
잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합이 최대 인터리빙 깊이 를 초과하는 경우 하기의 단계(910)가 수행될 수 있다. 단계(910)에 대해, 하기에서 도 9를 참조하여 상세히 설명된다.
단계(730)에서, 인터리빙 깊이 결정부(320)는 생성될 마지막 인터리빙 블록의 인터리빙 깊이를 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합으로 결정할 수 있다. 인터리빙 깊이 결정부(320)는 나머지 인터리빙 블록들의 인터리빙 깊이를 기본 인터리빙 깊이로 결정할 수 있다.
예를 들어, 모든 인터리빙 블록들에 기본 인터리빙 깊이를 적용하여 생성되는 인터리빙 블록들의 개수가 4인 경우(즉, NB가 4인 경우), 단계(730)가 수행되면, 3번째 및 4번째 인터리빙 블록들이 병합되도록 마지막 블록의 인터리빙 깊이가 결정될 수 있다.
위에서 설명한 단계(640)는 하기의 단계(740)를 포함할 수 있다.
단계(740)에서, 인터리빙부(330)는 마지막 인터리빙 블록을 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합의 개수만큼의 코드워드들을 이용하여 인터리빙 할 수 있다.
인터리빙부(330)는 나머지 인터리빙 블록들을 기본 인터리빙 깊이의 개수만큼의 코드워드들을 이용하여 인터리빙 할 수 있다.
앞서 도 1 내지 도 6을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 8은 일 예에 따른 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하인 경우 생성된 인터리빙 블록들을 나타낸다.
예를 들어, 최대 인터리빙 깊이가 5이고, 기본 인터리빙 깊이가 3이고, 코드워드들의 개수가 10인 경우, 잔여 코드워드의 개수는 1일 수 있다.
블록들(810 내지 830)은 기본 인터리빙 깊이를 이용하여 생성된 인터리빙 블록들일 수 있다. 블록(830)은 잔여 코드워드를 포함한다.
잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합이 최대 인터리빙 깊이 이하이므로 마지막 블록(840)에 대해 인터리빙 깊이는 상기의 합으로 결정될 수 있다. 마지막 블록(840)은 블록들(820 및 830)이 병합됨으로써 생성될 수 있다.
앞서 도 1 내지 도 7을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
<C
case
: 마지막 블록이 모두 채워지도록 더미 코드워드가 추가되는 경우, 즉,
d
R
+
N
dummy
=d>
도 9는 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수 이하인 경우 인터리빙 하는 방법의 흐름도이다.
도 9는 위에서 설명한 C case의 인터리빙 방법의 흐름도일 수 있다.
위에서 설명한 단계(630)는 하기의 단계들(710, 720, 910, 920 및 930)을 포함할 수 있다.
단계(720)에서, 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 합이 최대 인터리빙 깊이를 초과하는 것으로 판단된 경우 단계(910)가 수행될 수 있다.
단계(910)에서, 인터리빙 깊이 결정부(320)는 코드워드들의 개수에 기반하여 코드워드들에 추가될 수 있는 최대 더미 코드워드의 개수(Nmax _ dummy)를 결정할 수 있다.
일 측면에 따르면, 인터리빙 깊이 결정부(320)는 추가할 수 있는 최대 더미 코드워드의 개수를 코드워드들을 전송하는 데이터 전송률이 미리 결정된 값 이상이 되도록 결정할 수 잇다.
더미 코드워드를 추가하여 발생하는 데이터 전송률 저하의 허용한계가 시스템 파라미터 A로 주어진 경우, 허용한계를 초과하지 않고 하기의 [수학식 3]을 만족하도록 최대 더미 코드워드의 개수가 결정될 수 있다.
여기에서, floor(x)는 x 보다 크지 않은 최대 정수의 값을 의미한다.
예를 들어, A가 0.2이고, Ncw가 10인 경우에는 최대 더미 코드워드의 개수는 2로 결정될 수 있다.
인터리빙 깊이 결정부(320)는 코드워드에 추가되는 더미 코드워드의 개수를 결정할 수 있다.
일 측면에 따르면, 인터리빙 깊이 결정부(320)는 하기의 [수학식 4], [수학식 5] 및 [수학식 6]을 만족하는 더미 코드워드의 개수를 결정할 수 있다.
여기서, Ndummy는 최종적으로 추가되는 더미 코드워드의 개수이다.
여기서, min(a,b)는 a 및 b 중 더 작은 값을 의미한다.
단계(920)에서, 인터리빙 깊이 결정부(320)는 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이를 최대 더미 코드워드의 개수와 비교할 수 있다.
예를 들어, 인터리빙 깊이 결정부(320)는 더미 코드워드를 잔여 코드워드에 추가함으로써 마지막 블록의 인터리빙 깊이를 기본 인터리빙 깊이로 결정할 수 있는지 여부를 판단할 수 있다.
기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수 이하인 경우 하기의 단계(930)가 수행될 수 있다.
기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수를 초과하는 경우 단계(1110)가 수행될 수 있다. 단계(1110)에 대해, 하기에서 도 11을 참조하여 상세히 설명된다.
단계(930)에서, 인터리빙 깊이 결정부(320)는 인터리빙 블록들의 깊이를 기본 인터리빙 깊이로 결정할 수 있다.
기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수 이하인 경우, 코드워드의 개수 및 더미 코드워드가 더해진 총 코드워드의 개수, 기본 인터리빙 깊이, 잔여 코드워드의 개수 및 더미 코드워드의 개수 간의 관계는 하기의 [수학식 7]로 나타낼 수 있다.
여기서, Ncw , dummy는 총 코드워드의 개수 이고, dR+Ndummy가 d인 경우 [수학식 7]은 하기의 [수학식 8]로 나타낼 수 있다.
위에서 설명한 단계(640)는 하기의 단계(940)를 포함할 수 있다.
단계(940)에서, 인터리빙부(330)는 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이만큼의 더미 코드워드를 코드워드들에 추가함으로써 인터리빙 블록들에 대해 인터리빙 할 수 있다. 예를 들어, 인터리빙부(330)는 상기의 차이만큼의 더미 코드워드를 잔여 코드워드에 추가함으로써 마지막 인터리빙 블록을 생성하고, 마지막 인터리빙 블록을 인터리빙 할 수 있다.
추가되는 더미 코드워드는 제로 패딩(zero padding)일 수 있다.
도 10은 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수 이하인 경우 생성된 인터리빙 블록들을 나타낸다.
예를 들어, 코드워드의 개수가 10이고, 기본 인터리빙 깊이가 4인 경우, 블록들(1010 내지 1030)이 생성될 수 있다.
잔여 코드워드의 개수가 2이고, 기본 인터리빙 깊이가 4인 경우 잔여 코드워드의 개수 및 기본 인터리빙 깊이의 차이는 2이다. 그리고, 최대 더미 코드워드의 개수가 2인 경우, 상기의 차이는 최대 더미 코드워드의 개수 이하이다.
인터리빙 깊이 결정부(320)는 모든 인터리빙 블록들에 대해 인터리빙 깊이를 기본 인터리빙 깊이인 4로 결정할 수 있다.
인터리빙부(330)는 2개의 더미코드(1035)를 잔여 코드워드(1030)에 추가함으로써 마지막 인터리빙 블록(1040)을 생성할 수 있다.
인터리빙부(330)는 블록들(1010, 1020 및 1040)을 인터리빙 할 수 있다.
<C case : 더미 코드워드를 추가하더라도 마지막 인터리빙 블록을 기본 인터리빙 깊이로 생성하지 못하는 경우 모든 인터리빙 블록들이 최대한 균일하게 코드워드를 포함하게 함> 및 <D case : 더미 코드워드를 추가하더라도 마지막 인터리빙 블록을 기본 인터리빙 깊이로 생성하지 못하는 경우 마지막 두 개의 인터리빙 블록들이 최대한 균일하게 코드워드를 포함하게 함>
도 11은 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수를 초과하는 경우 인터리빙 하는 방법의 흐름도이다.
도 11은 위에서 설명한 C case 및 D case의 인터리빙 방법의 흐름도일 수 있다.
위에서 설명한 단계(630)는 하기의 단계들(710, 720, 910, 920, 1110 및 1120)을 포함할 수 있다.
위에서 설명한 단계(920)에서, 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수를 초과하는 것으로 판단된 경우 하기의 단계(1110)가 수행될 수 있다.
단계(1110)에서, 인터리빙 깊이 결정부(320)는 인터리빙 블록들을 두 개의 그룹들로 분류할 수 있다.
단계(1120)에서, 인터리빙 깊이 결정부(320)는 두 개의 그룹들 각각에 상이한 인터리빙 깊이를 결정할 수 있다.
일 측면에 따르면, 두 개의 그룹들 각각에 결정되는 상이한 두 개의 인터리빙 깊이들 간의 차이는 1일 수 있다. 즉, 위에서 설명한 C case가 고려될 수 있다.
기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수를 초과하는 경우, 총 코드워드의 개수는 하기의 [수학식 9] 내지 [수학식 11]을 이용하여 표현될 수 있다.
[수학식 11]을 하기의 [수학식 12]로 변환할 수 있다.
인터리빙 깊이 결정부(320)는 [수학식 12]를 이용하여 q 개의 인터리빙 블록에는 p+1 개의 코드워드를 분배하고, 나머지 NB-q 개의 인터리빙 블록에는 p 개의 코드워드를 분배할 수 있다. 예를 들어, q개의 인터리빙 블록이 제1 그룹이고, 나머지 NB-q 개의 인터리빙 블록이 제2 그룹일 수 있다.
p+1 개의 코드워드가 분배되는 그룹은 인터리빙 깊이가 p+1로 조정될 수 있다. p 개의 코드워드가 분배되는 인터리빙 블록은 인터리빙 깊이가 p로 조정될 수 있다. p+1은 최대 인터리빙 깊이 이하일 수 있다. 예를 들어, p+1은 기본 인터리빙 깊이일 수 있다.
위에서 도 9 및 도 10을 참조하여 설명된 C case는 [수학식 12]에서q=0이고, p=d 인 경우로써, 도 9 및 도 10을 참조하여 설명된 C case는 도 11을 참조하여 설명되는 C case의 특별한 경우이다.
예를 들어, 인터리빙 깊이 결정부(320)는 하나 이상의 인터리빙 블록들 중 선행하는 블록들에게 후행하는 블록들에 비해 더 큰 인터리빙 깊이를 결정할 수 있다. 선행하는 블록들이 포함하는 코드워드의 개수 및 후행하는 블록들이 포함하는 코드워드의 개수의 차이는 1개일 수 있다.
다른 일 측면에 따르면, 위에서 설명한 단계(1110)에서 인터리빙 블록들 중 마지막 두 개의 블록들이 제1 그룹이고, 나머지 블록들이 제2 그룹으로 분류된 경우가 고려될 수 있다. 즉, 위에서 설명한 D case가 고려될 수 있다.
위의 경우에, 단계(1120)에서, 인터리빙 깊이 결정부(320)는 제2 그룹의 인터리빙 블록의 인터리빙 깊이를 기본 인터리빙 깊이로 결정할 수 있다.
인터리빙 깊이 결정부(320)는 제1 그룹의 인터리빙 블록들 각각의 인터리빙 깊이를 기본 인터리빙 깊이, 잔여 코드워드의 개수 및 추가되는 더미 코드워드의 개수에 기반하여 결정할 수 있다.
예를 들어, 인터리빙 깊이 결정부(320)는 기본 인터리빙 깊이, 잔여 코드워드의 개수 및 추가되는 더미 코드워드의 개수의 합이 짝수인 경우, 제1 그룹의 인터리빙 블록들의 인터리빙 깊이를 서로 동일하게 결정할 수 있다.
다른 예로, 인터리빙 깊이 결정부(320)는 기본 인터리빙 깊이, 잔여 코드워드의 개수 및 추가되는 더미 코드워드의 개수의 합이 홀수인 경우, 제1 그룹의 인터리빙 블록들 각각의 블록에 대해 상이하게 인터리빙 깊이를 결정할 수 있다.
기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수를 초과하는 경우에도 [수학식 7]이 적용될 수 있다.
[수학식 7]은 하기의 [수학식 13]으로 변형될 수 있다.
인터리빙 깊이 결정부(320)는 NB-2 개의 인터리빙 블록들을 포함하는 제2 그룹의 인터리빙 깊이를 기본 인터리빙 깊이로 결정할 수 있다. 인터리빙 깊이 결정부(320)는 마지막 두 개의 블록들을 포함하는 제1 그룹의 인터리빙 깊이를 d+dr+Ndummy 에 기반하여 결정할 수 있다.
예를 들어, d+dr+Ndummy 가 짝수인 경우, 제1 그룹의 인터리빙 블록들의 인터리빙 깊이가 (d+dr+Ndummy )/2 로 결정될 수 있다.
다른 예로, d+dr+Ndummy 가 홀수인 경우, 하나의 블록에는 floor((d+dr+Ndummy)/2)의 인터리빙 깊이가 결정되고, 나머지 블록에는 floor((d+dr+Ndummy)/2)+1의 인터리빙 깊이가 결정될 수 있다.
위에서 설명한 단계(640)는 하기의 단계들(1130 및 1140)을 포함할 수 있다.
단계(1130)에서, 인터리빙부(330)는 최대 더미 코드워드의 개수만큼의 더미 코드워드를 코드워드에 추가할 수 있다.
단계(1140)에서, 인터리빙부(330)는 두 개의 그룹들 각각에 결정된 상이한 인터리빙 깊이를 적용함으로써 인터리빙 블록들에 대해 인터리빙 할 수 있다.
일 측면에 따라 C case가 수행되는 경우, 인터리빙부(330)는 q 개의 인터리빙 블록에 대해 p+1 개의 코드워드를 이용하여 인터리빙 할 수 있다. 인터리빙부(330)는 나머지 NB-q 개의 인터리빙 블록에는 p 개의 코드워드를 이용하여 인터리빙 할 수 있다.
다른 일 측면에 따라 D case가 수행되는 경우, 인터리빙부(330)는 마지막 두 개의 블록들에 대해 결정된 인터리빙 깊이를 이용하여 마지막 두 개의 블록들을 인터리빙 할 수 있다. 인터리빙부(330)는 기본 인터리빙 깊이를 이용하여 나머지 블록들을 인터리빙 할 수 있다.
앞서 도 1 내지 도 10을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 12는 일 예에 따른 기본 인터리빙 깊이 및 잔여 코드워드의 개수 간의 차이가 최대 더미 코드워드의 개수를 초과하는 경우 생성된 인터리빙 블록들을 나타낸다.
예를 들어, 코드워드의 개수가 12이고, 기본 인터리빙 깊이가 4인 경우 블록들(1210 내지 1240)이 생성될 수 있다.
최대 더미 코드워의 개수가 1인 경우, 생성되는 마지막 블록(1240)이 불완전할 수 있다.
일 측면에 따라 C case가 수행되는 경우 상기의 [수학식 12]를 이용하면, p+1의 인터리빙 깊이가 결정되는 제1 그룹은 블록들(1250 및 1260)을 포함할 수 있다. p의 인터리빙 깊이가 결정되는 제2 그룹은 블록들(1270 및 1280)을 포함할 수 있다.
다른 일 측면에 따라 D case가 수행되는 경우 상기의 [수학식 13]을 이용하면, 기본 인터리빙 깊이로 인터리빙 깊이가 결정되는 제2 그룹은 블록들(1250 및 1260)을 포함할 수 있다. d+dr+Ndummy 에 기반하여 인터리빙 깊이가 결정되는 제1 그룹은 블록들(1270 및 1280)을 포함할 수 있다. 도 12의 예는 d+dr+Ndummy가 6이므로 짝수이므로, 블록들(1270 및 1280)의 인터리빙 깊이는 각각 3으로 동일하게 결정될 수 있다.
<E
case
: 코드워드들의 개수가 기본
인터리빙
깊이 미만인 경우>
도 13은 일 예에 따른 코드워드들의 개수가 미리 결정된 기본 인터리빙 깊이 미만인 경우 인터리빙 하는 방법의 흐름도이다.
도 13은 위에서 설명한 E case의 인터리빙 방법의 흐름도일 수 있다. E case는 하나의 인터리빙 블록을 인터리빙 하는 방법일 수 있다.
위에서 설명한 단계(630)는 하기의 단계들(1310 내지 1330)을 포함할 수 있다.
단계(1310)에서, 인터리빙 깊이 결정부(320)는 코드워드들의 개수 및 기본 인터리빙 깊이를 비교할 수 있다.
코드워드들의 개수가 기본 인터리빙 깊이 미만인 경우 하기의 단계(1320)가 수행될 수 있다.
코드워드들의 개수가 기본 인터리빙 깊이 미만이 아닌 경우 위에서 설명한 단계(710)가 수행될 수 있다.
단계(1320)에서, 인터리빙 깊이 결정부(320)는 코드워드들에 추가되는 더미 코드워드의 개수를 결정할 수 있다.
예를 들어, 인터리빙 깊이 결정부(320)는 [수학식 4] 내지 [수학식 6]을 이용하여 추가되는 더미 코드워드의 개수를 결정할 수 있다.
단계(1330)에서, 인터리빙 깊이 결정부(320)는 코드워드들의 개수 및 더미 코드워드의 개수의 합을 인터리빙 블록의 인터리빙 깊이로 결정할 수 있다.
위에서 설명한 단계(640)는 단계(1340)를 포함할 수 있다.
단계(1340)에서, 인터리빙부(330)는 코드워드들 및 추가되는 더미 코드워드를 이용하여 인터리빙 블록에 대해 인터리빙 할 수 있다.
도 14는 일 예에 따른 코드워드들의 개수가 미리 결정된 기본 인터리빙 깊이 미만인 경우 생성된 인터리빙 블록을 나타낸다.
예를 들어, 코드워드의 개수가 3이고, 기본 인터리빙 깊이가 4인 경우 블록(1410)이 생성될 수 있다.
추가되는 더미 코드워드의 개수는 1이고, 더미 코드워드가 추가된 인터리빙 블록(1410)은 1개 일 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
110: 송신기
112: 인터리빙 장치
120: 수신기
310: 최대 인터리빙 깊이 계산부
320: 인터리빙 깊이 결정부
330: 인터리빙부
112: 인터리빙 장치
120: 수신기
310: 최대 인터리빙 깊이 계산부
320: 인터리빙 깊이 결정부
330: 인터리빙부
Claims (15)
- 최대 인터리빙 깊이 및 패킷의 하나 이상의 코드워드(codeword)들의 개수에 기초하여 하나 이상의 인터리빙 블록들의 인터리빙 깊이를 적응적으로(adaptively) 결정하는 단계; 및
상기 인터리빙 깊이에 따라 상기 인터리빙 블록들에 대해 인터리빙 하는 단계
를 포함하는,
인터리빙 방법. - 제1항에 있어서,
상기 최대 인터리빙 깊이는 상기 인터리빙 블록들을 송신하는 송신기 및 상기 인터리빙 블록들을 수신하는 수신기에 대해 미리 약속된 값인,
인터리빙 방법.
- 제1항에 있어서,
상기 인터리빙 깊이를 적응적으로 결정하는 단계는,
미리 결정된 기본 인터리빙 깊이와 상기 코드워드들의 개수를 모듈로(modulo) 연산하여 잔여 코드워드의 개수를 계산하는 단계; 및
상기 잔여 코드워드의 개수에 기반하여 상기 기본 인터리빙 깊이를 조절함으로써 상기 인터리빙 블록들의 인터리빙 깊이를 결정하는 단계
를 포함하는,
인터리빙 방법.
- 제3항에 있어서,
상기 기본 인터리빙 깊이를 상기 인터리빙 블록들이 전송되는 통신 채널의 환경에 기반하여 결정하는 단계
를 더 포함하는,
인터리빙 방법.
- 제3항에 있어서,
상기 인터리빙 깊이를 결정하는 단계는 상기 잔여 코드워드의 개수 및 상기 기본 인터리빙 깊이의 합에 기반하여 상기 인터리빙 블록들의 인터리빙 깊이를 결정하는,
인터리빙 방법.
- 제5항에 있어서,
상기 인터리빙 깊이를 결정하는 단계는,
상기 합이 상기 최대 인터리빙 깊이 이하인 경우, 생성될 마지막 인터리빙 블록의 인터리빙 깊이를 상기 합으로 결정하고, 나머지 인터리빙 블록들의 인터리빙 깊이를 상기 기본 인터리빙 깊이로 결정하는 단계
를 포함하고,
상기 인터리빙 블록들에 대해 인터리빙 하는 단계는,
상기 마지막 인터리빙 블록을 상기 합의 개수만큼의 코드워드들을 이용하여 인터리빙 하고, 상기 나머지 인터리빙 블록들을 상기 기본 인터리빙 깊이의 개수만큼의 코드워드들을 이용하여 인터리빙 하는 단계
를 포함하는,
인터리빙 방법.
- 제5항에 있어서,
상기 인터리빙 깊이를 결정하는 단계는,
상기 합이 상기 최대 인터리빙 깊이를 초과하는 경우, 상기 코드워드들의 개수에 기반하여 상기 코드워드들에 추가될 수 있는 최대 더미 코드워드의 개수를 결정하는 단계; 및
상기 기본 인터리빙 깊이 및 상기 잔여 코드워드의 개수 간의 차이가 상기 최대 더미 코드워드의 개수 이하인 경우 상기 인터리빙 깊이를 상기 기본 인터리빙 깊이로 결정하는 단계
를 포함하고,
상기 인터리빙 블록들에 대해 인터리빙 하는 단계는,
상기 차이만큼의 더미 코드워드를 상기 코드워드들에 추가함으로써 상기 인터리빙 블록들에 대해 인터리빙 하는 단계
를 포함하는,
인터리빙 방법.
- 제7항에 있어서,
상기 더미 코드워드는 제로 패딩(zero padding)인,
인터리빙 방법.
- 제5항에 있어서,
상기 인터리빙 깊이를 결정하는 단계는,
상기 합이 상기 최대 인터리빙 깊이를 초과하는 경우, 상기 코드워드들의 개수에 기반하여 상기 코드워드들에 추가될 수 있는 최대 더미 코드워드의 개수를 결정하는 단계;
상기 기본 인터리빙 깊이 및 상기 잔여 코드워드의 개수 간의 차이가 상기 최대 더미 코드워드의 개수를 초과하는 경우 상기 인터리빙 블록들을 두 개의 그룹들로 분류하는 단계; 및
상기 두 개의 그룹들 각각에 상이한 인터리빙 깊이를 결정하는 단계
를 포함하고,
상기 인터리빙 블록들에 대해 인터리빙 하는 단계는,
상기 최대 더미 코드워드 개수만큼의 더미 코드워드를 상기 코드워드들에 추가하는 단계; 및
상기 두 개의 그룹들 각각에 결정된 상이한 인터리빙 깊이를 적용함으로써 상기 인터리빙 블록들에 대해 인터리빙 하는 단계
를 포함하는,
인터리빙 방법.
- 제9항에 있어서,
상기 두 개의 그룹들 각각에 결정되는 상이한 두 개의 인터리빙 깊이들 간의 차이는 1인,
인터리빙 방법.
- 제9항에 있어서,
상기 두 개의 그룹들 중 선행하는 그룹의 인터리빙 깊이가 후행하는 그룹의 인터리빙 깊이보다 더 큰,
인터리빙 방법.
- 제9항에 있어서,
상기 두 개의 그룹들 각각에 상이한 인터리빙 깊이를 결정하는 단계는,
상기 인터리빙 블록들 중 마지막 두 개의 블록들이 제1 그룹이고, 나머지 블록들이 제2 그룹인 경우, 상기 제2 그룹의 인터리빙 블록의 인터리빙 깊이를 상기 기본 인터리빙 깊이로 결정하는 단계; 및
상기 제1 그룹의 인터리빙 블록들 각각의 인터리빙 깊이를 상기 기본 인터리빙 깊이, 잔여 코드워드의 개수 및 상기 추가되는 더미 코드워드의 개수에 기반하여 결정하는 단계
를 포함하는,
인터리빙 방법.
- 제12항에 있어서,
상기 기본 인터리빙 깊이, 잔여 코드워드의 개수 및 상기 추가되는 더미 코드워드의 개수의 합이 짝수인 경우, 상기 제1 그룹의 인터리빙 블록들의 인터리빙 깊이는 서로 동일하게 결정되는,
인터리빙 방법.
- 제1항에 있어서,
상기 인터리빙 깊이를 적응적으로 결정하는 단계는,
상기 코드워드들의 개수가 미리 결정된 기본 인터리빙 깊이 미만인 경우 상기 코드워드들에 추가되는 더미 코드워드의 개수를 결정하는 단계; 및
상기 코드워드들의 개수 및 상기 더미 코드워드의 개수의 합을 상기 인터리빙 블록들의 인터리빙 깊이로 결정하는 단계
를 포함하고,
상기 인터리빙 블록들에 대해 인터리빙 하는 단계는,
상기 인터리빙 블록들은 하나이고, 상기 하나 이상의 코드워드들 및 상기 추가되는 더미 코드워드를 이용하여 상기 인터리빙 블록에 대해 인터리빙 하는 단계
를 포함하는,
인터리빙 방법.
- 최대 인터리빙 깊이 및 패킷의 하나 이상의 코드워드(codeword)들의 개수에 기초하여 하나 이상의 인터리빙 블록들의 인터리빙 깊이를 적응적(adaptively)으로 결정하는 인터리빙 깊이 결정부; 및
상기 인터리빙 깊이에 따라 상기 인터리빙 블록들에 대해 인터리빙 하는 인터리빙부
를 포함하는,
인터리빙 장치
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140182379A KR102265052B1 (ko) | 2014-12-17 | 2014-12-17 | 적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치 |
US14/944,428 US10063259B2 (en) | 2014-12-17 | 2015-11-18 | Interleaving method and apparatus for adaptively determining interleaving depth |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140182379A KR102265052B1 (ko) | 2014-12-17 | 2014-12-17 | 적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160073725A true KR20160073725A (ko) | 2016-06-27 |
KR102265052B1 KR102265052B1 (ko) | 2021-06-15 |
Family
ID=56130676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140182379A KR102265052B1 (ko) | 2014-12-17 | 2014-12-17 | 적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10063259B2 (ko) |
KR (1) | KR102265052B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015137712A1 (en) | 2014-03-14 | 2015-09-17 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling interleaving depth |
US11452003B1 (en) * | 2021-04-01 | 2022-09-20 | The Chinese University Of Hong Kong | Compatible packet separation for communication networks |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188905A1 (en) * | 2001-06-08 | 2002-12-12 | Broadcom Corporation | System and method for interleaving data in a communication device |
KR20050052184A (ko) * | 2003-11-29 | 2005-06-02 | 삼성전자주식회사 | 저밀도 패리티 검사 부호화를 위한 인터리빙 방법 |
US6959048B1 (en) * | 1999-10-19 | 2005-10-25 | Nokia Networks Oy | Optimizing link quality by space and time interleaving |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2236784T3 (es) | 1997-01-31 | 2005-07-16 | Alcatel | Metodo y dispositivo para intercalar y desintercalar datos digitales y sistema de comunicacion. |
US5928371A (en) * | 1997-07-25 | 1999-07-27 | Motorola, Inc. | Systems for programmably interleaving and de-interleaving data and method thereof |
GB9814960D0 (en) | 1998-07-10 | 1998-09-09 | Koninkl Philips Electronics Nv | Coding device and communication system using the same |
US6536001B1 (en) * | 1999-03-11 | 2003-03-18 | Globespanvirata, Inc. | Circuit and method for convolutional interleaving using a single modulo operation |
EP1098467A1 (en) | 1999-11-08 | 2001-05-09 | THOMSON multimedia | Methods and devices for initialising a convolutional interleaver/deinterleaver |
US7184468B2 (en) * | 2002-01-24 | 2007-02-27 | Broadcom Corporation | Method and system for implementing a conditional one's complement of partial address |
JP4166742B2 (ja) | 2004-09-22 | 2008-10-15 | 株式会社東芝 | 無線通信装置およびそのインタリーブ方法ならびにデインタリーブ方法 |
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 |
US7729384B1 (en) * | 2005-11-01 | 2010-06-01 | Metanoia Technologies, Inc. | Multiple channel digital subscriber line framer/deframer system and method |
US8381055B2 (en) * | 2006-09-13 | 2013-02-19 | Broadcom Corporation | System for communicating data in xDSL using data retransmission |
KR101290472B1 (ko) | 2006-11-22 | 2013-07-26 | 삼성전자주식회사 | 이동 통신 시스템에서 병렬 복호 방법 및 장치 |
KR101507782B1 (ko) | 2007-07-19 | 2015-04-24 | 엘지전자 주식회사 | 무선 통신 시스템에서의 데이터 처리 방법 및 송신기 |
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 |
US8379738B2 (en) | 2007-03-16 | 2013-02-19 | Samsung Electronics Co., Ltd. | Methods and apparatus to improve performance and enable fast decoding of transmissions with multiple code blocks |
US7873779B2 (en) | 2007-05-14 | 2011-01-18 | Qualcomm Incorporated | Memory page size auto detection |
US8015475B2 (en) * | 2007-07-26 | 2011-09-06 | Texas Instruments Incorporated | Erasure decoding for receivers |
KR100922734B1 (ko) | 2007-12-17 | 2009-10-22 | 한국전자통신연구원 | 무선 센서네트워크 보안을 위한 송수신 방법 및 송수신장치 |
KR20090094738A (ko) | 2008-03-03 | 2009-09-08 | 삼성전자주식회사 | 무선 디지털 방송 시스템에서 시그널링 정보를 부호화하는 장치 및 방법 |
US8930793B2 (en) * | 2009-08-27 | 2015-01-06 | Indian Space Research Organisation | Method of communicating signal data in GNSS using LDPC convolution codes and a system thereof |
-
2014
- 2014-12-17 KR KR1020140182379A patent/KR102265052B1/ko active IP Right Grant
-
2015
- 2015-11-18 US US14/944,428 patent/US10063259B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6959048B1 (en) * | 1999-10-19 | 2005-10-25 | Nokia Networks Oy | Optimizing link quality by space and time interleaving |
US20020188905A1 (en) * | 2001-06-08 | 2002-12-12 | Broadcom Corporation | System and method for interleaving data in a communication device |
KR20050052184A (ko) * | 2003-11-29 | 2005-06-02 | 삼성전자주식회사 | 저밀도 패리티 검사 부호화를 위한 인터리빙 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR102265052B1 (ko) | 2021-06-15 |
US20160182090A1 (en) | 2016-06-23 |
US10063259B2 (en) | 2018-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10666391B2 (en) | Method for encoding information bit sequence in communication network | |
KR102094719B1 (ko) | 서명 가능 폴라 인코더 및 디코더 | |
US11310000B2 (en) | Transport block segmentation for multi-level codes | |
KR101221915B1 (ko) | 데이터 전송방법 | |
US10050741B2 (en) | Method and apparatus for transmitting and receiving control information in a broadcasting/communication system | |
US9577675B1 (en) | System and method for encoding user data with low-density parity-check codes with flexible redundant parity check matrix structures | |
US8612842B2 (en) | Apparatus for generating a checksum | |
EP3713096B1 (en) | Method and device for decoding staircase code, and storage medium | |
US11018699B2 (en) | Method and apparatus for controlling interleaving depth | |
KR102265052B1 (ko) | 적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치 | |
US11128320B2 (en) | Encoding method, decoding method, encoding apparatus, and decoding apparatus | |
KR102203607B1 (ko) | Mac 계층 레벨에서의 데이터 송신 자원을 최적화하는 방법 및 방법을 구현하는 디바이스 | |
JP7314359B2 (ja) | インターリービング深度を調整するための装置及び方法 | |
KR102702147B1 (ko) | 데이터 처리 장치 및 데이터 처리 방법 | |
KR102197751B1 (ko) | 블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법 | |
RU2571605C2 (ru) | Способ помехоустойчивого кодирования и декодирования цифровых данных | |
Sharma et al. | Hamming Code for Error Detection and Corection using VHDL | |
KR101797835B1 (ko) | 속도에 기초한 에러 리질리언시의 적용 | |
Rahman et al. | Block decoding using the Dorsch Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |