KR20090017382A - 오류검출부호의 부가를 고려한 코드블록 분할 방법 및코드블록 개수 계산방법 - Google Patents

오류검출부호의 부가를 고려한 코드블록 분할 방법 및코드블록 개수 계산방법 Download PDF

Info

Publication number
KR20090017382A
KR20090017382A KR1020070120389A KR20070120389A KR20090017382A KR 20090017382 A KR20090017382 A KR 20090017382A KR 1020070120389 A KR1020070120389 A KR 1020070120389A KR 20070120389 A KR20070120389 A KR 20070120389A KR 20090017382 A KR20090017382 A KR 20090017382A
Authority
KR
South Korea
Prior art keywords
code
length
code blocks
block
crc
Prior art date
Application number
KR1020070120389A
Other languages
English (en)
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 EP17160374.9A priority Critical patent/EP3240217B1/en
Priority to BRPI0815159-8A priority patent/BRPI0815159B1/pt
Priority to PCT/KR2008/004744 priority patent/WO2009022874A1/en
Priority to CN201310359229.XA priority patent/CN103441816B/zh
Priority to JP2010520945A priority patent/JP5228047B2/ja
Priority to US12/191,939 priority patent/US8219877B2/en
Priority to ES17160374T priority patent/ES2764425T3/es
Priority to CN2008801115679A priority patent/CN101821980B/zh
Priority to EP20080793258 priority patent/EP2183867B1/en
Priority to EP13179786.2A priority patent/EP2663004B1/en
Priority to PT08793258T priority patent/PT2183867E/pt
Priority to PL08793258T priority patent/PL2183867T3/pl
Priority to KR20107002033A priority patent/KR101221915B1/ko
Priority to ES08793258.8T priority patent/ES2486940T3/es
Publication of KR20090017382A publication Critical patent/KR20090017382A/ko
Priority to US13/488,332 priority patent/US9154162B2/en
Priority to US13/757,691 priority patent/US9246513B2/en
Priority to JP2013055156A priority patent/JP5466317B2/ja
Priority to US14/964,270 priority patent/US9912444B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 무선 접속 시스템에서 코드블록을 분할하는 방법에 관한 것으로서, 오류검출부호의 길이를 고려하여 데이터 블록을 분할하는 경우 코드블록의 개수를 구하는 방법에 관한 것이다. 상기 방법은 입력비트의 길이 및 코드블록들이 가질 수 있는 최대 길이에 대한 정보를 획득하는 단계와 상기 입력비트의 길이가 상기 코드블록들이 가질 수 있는 최대 길이보다 길면, 상기 코드블록들 각각에 포함될 오류검출부호의 길이를 고려하여, 상기 코드블록들의 개수를 계산하는 단계와 상기 입력비트를 상기 계산된 코드블록들의 개수로 분할하는 단계를 포함할 수 있다. 상기 본 발명은 CRC 부호의 길이를 고려하여 코드블록을 분할하는 방법 및 코드블록의 개수를 구하는 방법을 제공함으로써, 입력되는 데이터블록을 정확하게 분할하고 CRC 부호를 부가할 수 있다.
오류검출부호, CRC 패리티 비트, 블록 분할, 코드블록

Description

오류검출부호의 부가를 고려한 코드블록 분할 방법 및 코드블록 개수 계산방법{Method of dividing code block considering CRC attachment and computing the number of code blocks}
본 발명은 무선접속 시스템에서 코드블록을 분할하는 방법에 관한 것으로서, 오류검출부호의 길이를 고려하여 데이터 블록을 분할하는 방법 및 코드블록의 개수를 구하는 방법에 관한 것이다.
데이터를 전송하는 경우에 데이터 전송 효율과 데이터의 신뢰성 있는 전송은 모두 중요한 문제이다. 일반적으로 사용되는 기술에서, 데이터 전송 효율을 높이기 위해 데이터를 분할하여 전송하는 방법과 데이터에 오류가 있는지 여부를 검사하기 위한 오류검출부호를 사용하는 다양한 방법들이 사용되고 있다.
오류제어란 데이터 전송 중에 발생하는 오류를 검출하고 보정하는 메커니즘을 말한다. 오류제어방식은 오류검출 후 재전송(ARQ: Automatic Retransmission reQuest) 방식, 전진오류수정(FEC: Forward Error Correction) 방식 및 후진오류수정(BEC: Backward Error Correction) 방식 등이 있다.
ARQ 기법은 통신회선 상에서 신뢰성 있는 데이터를 전송을 위해 수신측에서 수신긍정확인(ACK) 신호 및 타임아웃이라는 수단으로 오류발생 유무를 점검하고, 송신측은 오류가 발생한 프레임을 재전송하는 오류제어 방식을 말한다. 오류검출 후 재전송 방식은 자동 재전송방식이라고도 불리며, 수신측에서 오류 발생을 점검하고 오류 발생 부분에 대해 재전송을 요구하는 방식이다. 전진오류수정(FEC) 방식은 송신측이 전송할 문자나 프레임에 부가적 정보(Redundancy)를 첨가하여 전송함으로써, 수신측에서 오류를 발견하는 경우 수신측이 부가적 정보를 이용하여 오류검출 및 오류정정을 하는 방식을 말한다. 후진오류수정(BEC) 방식은 오류를 검출할 수 있을 정도의 부가적인 정보를 부가하여 오류발생 데이터에 대해 송신측에 재전송(ARQ)을 요구하는 방식을 말한다.
오류검출은 단지 전송중에 발생한 오류의 존재 여부만을 수신측이 알 수 있도록 하는 기술을 말하며, 오류검출코드는 오류검출기술을 지원하는 코드를 의미한다. 오류검출을 위한 주요 방식으로 패리티검사(Parity Check), 검사합 (Checksum), 순환중복검사(CRC) 및 가중치코드 방식 등이 있다.
오류정정코드란 수신기가 전송되는 문자가 무엇인가를 추론할 수 있도록 전송되는 데이터 블록에 충분한 여분의 정보(Redundancy)를 포함하는 부호화(코드화) 방식을 말한다. OSI 계층모델의 관점에서 보면, 주로 데이터링크 계층에서 이와 같은 작업이 이루어진다. 한편, 오류검출코드(Error Detecting Code)는 수신기가 오류가 발생했다는 사실만을 추론가능하게 하여 재전송요구를 할 수 있도록 여분의 정보를 포함시켜 코드화하는 방식이다.
오류정정코드에는 일정길이의 정보(신호)에 일정길이의 부가정보를 부가하여 수신측에서 오류를 정정할 수 있도록 하는 채널 부호인 블록부호(Block Code) 방식과 부호화기가 메모리를 갖고 있어 코드화시킬 때 현재 입력되는 신호에 과거에 입력되었었던 일부 신호를 함께 활용하는 길쌈부호(Convolutional Code) 방식이 있다.
블록부호는 선형부호(Linear Code)로서 해밍부호(Hamming Code) 등이 있고, 순환부호(Cyclic Code)로서 리드-솔로몬(Reed-Solomon) 부호, BCH(Bose Chaudhuri-Hocquenghem) 부호, CRC(Cyclic Redundancy Check) 부호 등이 있다. 길쌈부호로는 비터비 부호(Viterbi Code) 및 터보 부호(Turbo Code) 등이 있다.
패리티 검사란 정보비트 수가 적고 오류 발생 확률이 낮은 경우 가장 일반적으로 사용하는 오류검출방식이다. 패리티 부호는 구현이 간단하여 비동기 통신에 많이 이용되나, 짝수 개의 오류가 발생하면 오류검출이 어려운 단점이 있다. 패리티 검사의 종류에는 패리티 비트를 부호화된 문자의 '1'의 개수가 전부 합하여 홀수가 되도록 정하는 기수(odd) 패리티 검사 방식과 패리티 비트를 부호화된 문자의 '1'의 개수가 전부 합하여 짝수가 되도록 정하는 방식 우수(even) 패리티 검사 방식이 있다.
또한, 순환중복검사(CRC: Cyclic Redundancy Check) 방식은 오류검출방법 중의 하나로 송신측에서 전송된 데이터로부터 다항식에 의해 추출된 결과를 여분의 오류검사필드(FCS: Frame Check Sequence)에 덧붙여 보내면, 수신측에서는 동일한 방법으로 추출한 결과와의 일치성으로 오류검사를 하는 기술이다. CRC는 강력하면서도 하드웨어로 구현하기 쉽다. 송신측에서 전송할 원래 데이터 프레임을 CRC 다 항식으로 나누면 나머지 값이 나오는데, 상기 나머지 값이 FCS(Frame Check Sequence)가 된다. FCS를 생성하기 위해서는 나눗셈을 위한 젯수(Divisor)인 CRC 다항식이 필요하다. FCS는 결과 프레임(원래의 데이터 + FCS)이 미리 정의된 다항식에 의하여 정확하게 나누어떨어질 수 있도록 원래의 데이터 프레임의 뒤에 붙여서 송신된다(원래의 프레임에 대해 계산한 FCS를 프레임 끝에 추가). 여기서, 미리 정의된 다항식을 젯수(Divisor) 또는 CRC 다항식(CRC Polynomial)이라고 한다.
수신측에서는 결과 프레임을 수신한 후에 CRC 검사를 한다. 수신측은 수신한 데이터 프레임을 전송시 사용한 것과 같은 CRC 다항식으로 나누어서 나머지를 검사한다. 수신측에서의 오류검출은, 수신단에서 잉여분과 함께 전송된 데이터를 원래의 데이터를 나눈값으로 나누었을 때 나머지가 '0'인지 검사해서 오류를 검출한다. 이때, 나머지가 '0'이 아닌 수가 되면 전송시에 오류가 발생한 것으로 판단한다.
도 1은 일반적으로 사용되는 CRC 부가기 및 데이터 블록 분할기와 각 부분에서 수행되는 단계를 나타내는 도면이다.
도 1을 참조하여 일반적으로 사용되는 CRC 부가기 및 데이터 블록 분할기에 대하여 설명한다. 데이터 블록(100)은 필요에 의하여 여러 개의 코드블록(160)으로 나누어질 수 있다. 여기서 코드블록(160)은 입력되는 데이터 블록(100)이 분할되어 생성되는 것을 나타낸다.
개략적으로 사용자가 데이터 블록(100)을 입력으로 하면, CRC 부가기(120)는 데이터 블록에 대하여 CRC를 부가한다. CRC가 부가된 데이터 블록은 데이터 블록 분할기(140)에 의해서 필요한 길이의 데이터 블록으로 나누어지고, 하나 또는 여러 길이의 코드블록(160)을 구성하게 된다. 도 1의 우측 단계별로 살펴본다.
CRC 부가기(120)는 임의의 길이를 갖는 데이터 블록(100)에 CRC를 부가하여 수신측에서 데이터 블록의 오류 검출을 위한 용도로 사용할 수 있도록 한다. 이를 위해 CRC 부가기는 입력되는 데이터 블록을 기반으로 CRC 생성식을 이용하여 임의의 길이의 CRC 패리티 비트를 생성한다(S101). 이후 CRC 부가기는 정방향 데이터 블록에 CRC 패리티 비트를 정방향 또는 역방향으로 부착하여 직렬로 연결된 형태의 출력을 구성한다(S102).
CRC가 부가된 데이터 블록은 데이터 블록 분할기(140)에 의하여 하나 또는 여러개의 코드블록으로 분할된다. 데이터 블록 분할기는 다음과 같은 네 가지 과정을 통해 입력된 데이터 블록을 하나 이상의 코드블록들로 분할한다.
데이터 블록 분할기는 CRC가 부가된 데이터 블록의 길이를 코드블록이 가질수 있는 최대 길이로 나눈 후 올림 한 정수 값으로 코드블록의 개수를 정한다 (S103).
데이터 블록 분할기는 상기 S103 단계에서 정해진 코드블록의 개수에 맞추어서 각각의 코드블록의 길이를 계산한다(S104).
상기 S104 단계에서 모든 코드블록의 길이를 합한 값이 CRC가 부가된 데이터 블록의 길이보다 길어지는 경우가 발생할 수 있다. 이런 경우에는 상기 모든 코드블록의 길이를 합한 값에서 CRC가 부가된 데이터 블록의 길이를 뺀 값을 구하고 이를 채움 비트의 길이로 계산한다(S105).
데이터 블록 분할기는 코드블록의 개수와 길이 및 채움 비트의 길이가 정해 지면, CRC가 부가된 데이터 블록을 분할하고 각 코드블록에 데이터를 할당한다(S106). 상기 S106 단계에서 코드블록 중 첫 번째 블록의 앞 부분에는 채움 비트 및 데이터를 순차적으로 할당하고, 두 번째 블록부터는 다음 데이터를 순차적으로 할당한다.
도 2는 데이터 블록이 코드블록으로 변화하는 과정을 나타내는 도면이다.
도 2에서는 도 1에서의 장치들 및 방법이 사용될 수 있다.
도 2를 참조하면, CRC 부가기(220)에 데이터 블록(200)이 입력된다. CRC 부가기에 의해서 데이터 블록(200)에 CRC 비트가 부가되어 CRC 비트가 부가된 데이터 블록(230)이 생성된다. CRC 비트가 부가된 데이터 블록은 데이터 블록 분할기(240)에 입력되어 코드블록들로 분할된다. 첫 번째 코드블록(260)의 앞 부분에는 채움비트가 할당되며, 나머지 부분에 데이터가 할당된다. 두 번째 코드블록 이후에는 데이터가 순차적으로 할당된다.
일반적으로 사용되는 CRC 부가 방법 및 데이터 블록 분할 방법은 입력되는 데이터 블록에 하나의 CRC를 부가한 후에 데이터 블록을 분할하여 코드블록의 형태로 전송한다. 이때, 입력되는 데이터 블록에 CRC를 부가한 후 분할하여 전송하는 경우에는, 수신측에서 분할된 모든 블록들을 수신한 후에 순서대로 코드블록들을 조합하고 CRC 확인을 통하여 복구된 데이터 블록에 오류가 있는지를 판단할 수 있 다. 따라서, 복구된 데이터 블록의 오류를 판단할 수 있는 시점은 모든 코드블록들이 순서대로 복구된 이후가 되므로 신속한 오류검출을 할 수 없다.
또한, 수신된 원본 데이터 블록의 임의의 위치에 오류가 있다면, 코드블록이 많을수록 수신측 입장에서는 복구에 필요한 처리과정이 부담으로 작용할 수 있다.
또한, 코드블록의 개수 및 그 길이를 계산하는 과정에서 코드블록마다 CRC가 부가되는 것을 고려해야 하는데, 일반적으로 쓰이는 데이터 블록 분할기에서의 코드블록의 개수 및 길이를 계산하는 방법은 코드블록에 CRC가 부가되는 것을 고려하지 않는 문제점이 있다.
본 발명은 상기한 바와 같은 일반적 기술의 문제점을 해결하기 위하여 안출된 것으로서, 데이터 블록을 분할하여 생성된 각각의 코드블록당 오류검출부호를 부가하여 데이터 처리 효율을 높이는 방법에 관한 것이다.
본 발명의 목적은 코드블록마다 부가되는 오류검출부호의 길이를 고려하여 데이터 블록을 분할하는 방법을 제공하는 것이다.
본 발명의 다른 목적은, 코드블록마다 오류검출부호의 길이를 고려하여 데이터 블록을 분할하는 경우, 코드블록들의 개수를 계산하는 방법을 제공하는 것이다.
본 발명의 또 다른 목적은, 오류검출부호의 길이를 고려하여 코드블록마다 데이터를 할당하는 경우 코드블록들의 개수, 코드블록들의 길이 정보 및/또는 오류검출부호의 길이를 고려하여 데이터를 할당하는 다양한 방법을 제공하는 것이다.
상기의 기술적 과제를 해결하기 위해, 본 발명은 무선 접속 시스템에서 데이 터 블록 분할방법에 관한 것으로서, 오류검출부호의 길이를 고려하여 데이터 블록을 분할하는 방법 및 코드블록에 오류검출부호를 부가하는 방법에 관한 것이다.
본 발명의 일 양태로서, 입력비트의 길이 및 코드블록들이 가질 수 있는 최대 길이에 대한 정보를 획득하는 단계와 상기 입력비트의 길이가 상기 코드블록들이 가질 수 있는 최대 길이보다 길면, 상기 코드블록들 각각에 포함될 오류검출부호의 길이를 고려하여, 상기 코드블록들의 개수를 계산하는 단계와 상기 입력비트를 상기 계산된 코드블록들의 개수로 분할하는 단계를 포함할 수 있다.
상기 방법의 상기 코드블록의 개수를 계산하는 단계에서, 상기 코드블록의 개수는 상기 입력비트의 길이, 상기 코드블록들이 가질 수 있는 최대 길이 및 상기 코드블록들에 포함될 오류검출부호의 길이를 이용하여 계산할 수 있다. 이때, 상기 코드블록들의 개수는 바람직하게 상기 입력비트의 길이를 상기 코드블록들이 가질 수 있는 최대 길이에서 상기 코드블록들에 포함될 오류검출부호의 길이를 뺀 값으로 나눈 값을 올림한 정수값으로 계산될 수 있다.
또한 상기 방법에서 상기 입력비트는 바람직하게 상기 입력비트에 대한 제 1 오류검출부호를 미리 포함하고 있으며, 상기 코드블록들 각각에 포함될 제 2 오류검출부호는 바람직하게 상기 코드블록들 각각의 오류 여부 검출을 위해 추가적으로 부가될 수 있다.
또한 상기 방법의 상기 코드블록들의 개수를 계산하는 단계에서, 상기 입력비트의 길이가 상기 코드블록들이 가질 수 있는 최대 길이 이하이면, 상기 코드블록의 개수는 바람직하게 1로 설정될 수 있다.
또한 상기 방법은 바람직하게 상기 코드블록들의 개수, 상기 입력비트의 길이 및 상기 오류검출부호의 길이 중 하나 이상을 이용하여 상기 코드블록들의 길이를 계산하는 단계를 더 포함할 수 있다. 이때, 상기 코드블록들의 길이는 바람직하게 상기 코드블록들의 개수 및 상기 코드블록들의 길이를 곱한 값이 상기 코드블록의 개수와 상기 코드블록에 포함될 오류검출부호의 길이를 곱한 값과 상기 입력비트의 길이를 더한 값 이상이다. 이때, 상기 코드블록들 중 제 1 코드블록의 길이는 상기 코드블록들 중 가장 짧은 길이를 갖고, 상기 코드블록들 중 제 2 코드블록의 길이는 상기 제 1 코드블록보다 짧은 길이 중 최대 길이를 가질 수 있다.
또한 상기 방법은 바람직하게, 상기 코드블록들의 길이를 모두 더한 값에서 상기 코드블록들의 개수와 상기 코드블록에 포함될 오류검출부호의 길이를 곱한 값에 상기 입력비트의 길이를 더한 계산값과의 차이값에 해당하는 길이만큼 임의의 비트를 상기 코드블록들 중 첫 번째 코드블록에 할당하는 단계를 더 포함할 수 있다.
또한 상기 방법은 바람직하게, 상기 코드블록들 중 첫 번째 코드블록에는, 상기 차이값을 제외한 영역에 데이터 및 상기 첫 번째 코드블록에 대한 오류검출부호를 할당하고, 상기 코드블록들 중 두 번째 코드블록부터는, 상기 데이터 및 각각의 코드블록에 대한 오류검출부호를 할당하는 단계를 더 포함할 수 있다.
이때, 상기 입력비트의 길이가 상기 코드블록들이 가질 수 있는 최대 길이 이하이면, 상기 입력비트에 포함된 상기 입력비트에 대한 오류검출부호의 길이를 제외한 영역에 데이터를 할당하는 단계를 더 포함할 수 있다.
본 발명의 다른 양태로서 상기 방법은 입력비트의 길이가 코드블록들이 가질 수 있는 최대 길이보다 크면, 상기 코드블록들에 포함되는 상기 오류검출부호의 길이를 고려하여 상기 입력비트를 분할해서 생성되는 상기 코드블록의 개수를 계산하는 단계와 상기 코드블록의 개수와 상기 오류검출부호의 길이를 곱하고 상기 입력비트를 더한 값을, 상기 코드블록의 개수로 나눠 상기 코드블록의 길이를 계산하는 단계를 포함할 수 있다.
본 발명에 따르면 다음과 같은 효과가 있다.
첫째, 일반적인 방법에서는 모든 코드블록들을 수신하여 원래 데이터로 복원한 후에 수신한 데이터의 오류 여부를 판단할 수 있는 반면에, 본 발명은 코드블록들을 수신할 때마다 오류 여부를 판단할 수 있어 효율적인 오류 복구 처리과정을 수행할 수 있는 장점이 있다.
둘째, 일반적인 코드블록 분할기는 코드블록들에 부가되는 오류검출부호(CRC 부호)의 길이를 고려하지 않고 입력되는 데이터 블록을 분할하므로, 본 발명의 실시예들에서는 사용할 수 없다. 따라서, 본 발명은 CRC 부호의 길이를 고려하여 코드블록을 분할하는 방법 및 코드블록의 개수를 구하는 방법을 제공함으로써, 데이터 블록을 정확하게 분할 및 CRC 부호를 부가할 수 있다.
셋째, 본 발명은 데이터 블록을 코드블록들로 분할하는 과정에서, CRC 길이를 고려하여 코드블록들의 개수를 구한 후에 각 코드블록들에 데이터를 할당하는 다양한 방법을 제공함으로써, 데이터의 처리효율을 높일 수 있다.
본 발명은 무선접속 시스템에서 코드블록을 분할하는 방법에 관한 것으로서, 오류검출부호의 길이를 고려하여 데이터 블록을 분할하는 방법 및 코드블록의 개수를 구하는 방법에 관한 것이다.
본 발명은 데이터 블록을 분할하여 코드블록들을 생성하는 경우, 코드블록마다 부가되는 오류검출부호의 길이를 고려하여 코드블록들의 개수 및 길이를 결정할 수 있다. 또한 본 발명은, 데이터 블록이 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우에 분할될 코드블록의 길이를 결정하고 데이터를 할당할 수 있다. 또한 본 발명은, 오류검출부호의 길이가 고려된 코드블록들의 개수 및 길이를 이용하여 데이터를 부가하는 다양한 방법을 제공하여 데이터 처리의 효율을 증가시킬 수 있다.
본 발명은 데이터 블록이 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우를 제외하고, 데이터 블록을 분할하여 각각의 코드블록마다 오류검출부호를 부가함으로써, 수신측에서 오류검출을 수행하는 경우 데이터 처리의 효율성을 증가시키는 또 다른 장점이 있다.
이하에서 첨부된 도면을 참조하여 설명되는 본 발명의 실시예들에 의해 본 발명의 구성, 작용 및 다른 특징들이 용이하게 이해될 수 있을 것이다. 첨부된 도면에서 동일하게 사용된 도면 부호들은 같은 부분을 나타낸다. 하기 설명에서 사용되는 특정(特定)용어들은 본 발명의 이해를 돕기 위해서 제공되는 것이며, 이러한 특정용어는 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경할 수 있다.
본 발명의 실시예들에서는 데이터 블록 분할기에서 코드블록에 부가될 수 있는 바람직한 오류검출부호들 중의 하나로서 CRC 방식을 사용하는 일례를 설명한다. 또한, 본 발명의 실시예들에서 사용되는 용어 중 데이터 블록은 데이터 블록 분할기에 입력되는 데이터 블록으로서 제 1 데이터 블록이라 부를 수 있으며, 데이터 블록이 분할되면 코드블록 또는 제 2 데이터 블록이 생성된다.
<제 1 실시예 >
도 3은 본 발명의 일 실시예로서, 코드블록들에 부가될 CRC 길이를 고려한 데이터 블록 분할장치에 대한 블록 다이어그램 및 방법에 대한 흐름도를 나타내는 도면이다.
도 3을 참조하면, 데이터 블록(예를 들어, 제 1 데이터 블록, 300)은 데이터 블록 분할기(320)에 입력되어 하나 이상의 코드블록(예를 들어, 제 2 데이터 블록)들로 분할되고, 각각의 코드블록들에 데이터가 순차적으로 부가된다. 각각의 코드블록들은 CRC 부가기(340)에 입력된다.
CRC 부가기는 데이터 블록이 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우(예를 들어, 데이터 블록의 길이가 코드블록이 가질 수 있는 최대 길이보다 작거나 같은 경우)를 제외하고, 각각의 코드블록의 개수 및 길이에 따라 CRC 생성식을 이용하여 CRC를 생성하고 각각의 코드블록들에 CRC를 부가한다. 이와 같이 데이터 블록(300)은 데이터 블록 분할기(320) 및 CRC 부가기(340)를 통해 코드블록들(360)로 분할된다. 도 3에서 코드블록(360)은 하나 이상의 분할된 데이터 블록들을 의미한다.
도 3을 참조하면, 데이터 블록(300)이 데이터 블록 분할기(320)로 입력되면, 데이터 블록 분할기는 입력되는 데이터에 대하여 코드블록의 개수를 계산한다. 이때, 데이터 블록 분할기는 최종 코드블록들 각각에 부가될 CRC의 길이를 고려하여 코드블록들의 개수를 계산할 수 있다(S301).
이하에서는 본 발명의 일 실시예에 따라, S301 단계에서 사용되는 코드블록들의 개수를 구하는 다양한 방법들을 설명한다.
(1). 본 발명의 일 실시예에 따라 상기 S301 단계에서 코드블록들의 개수를 구하는 방법을 설명한다.
다음 수학식 1은 코드블록들의 개수(C)를 구하는 일례를 나타낸다.
Figure 112007084508400-PAT00001
데이터 블록 분할기는 데이터 블록의 길이(B)를 코드블록이 가질 수 있는 최대 길이(Z)로 나눈 값을 올림한 정수값을 구하여 임시값(C')으로 정한다. 코드블록 의 개수(C)는, 상기 임시값(C')과 CRC의 길이(L)를 곱한 값에 데이터 블록의 길이(B)를 더한 값이 임시값(C')과 코드블록이 가질 수 있는 최대 길이(Z)를 곱한 값보다 크면 임시값(C')에 '1'을 더한 정수값으로 결정되고, 그렇지 않으면 임시값(C')으로 결정된다.
한편 다음 수학식 2는 데이터 블록 분할기에 입력되는 데이터 블록의 길이(B)가 코드블록이 가질 수 있는 최대 길이(Z)와 같거나 작은 경우에 사용될 수 있다.
Figure 112007084508400-PAT00002
수학식 1 및 수학식 2에서는 코드블록의 개수(C)를 구하기 위해 임시값(C')을 사용하였다. 즉, 코드블록의 개수를 계산하는 과정에서 데이터 블록 분할 기(320)에 입력되는 데이터 블록을 코드블록이 가질 수 있는 최대 길이로 나눈값을 올림한 값으로 임시값(C')을 계산함으로써 코드블록의 개수를 정확하게 구할 수 있다.
다음 수학식 3 및 수학식 4를 이용하여 수학식 1 및 수학식 2를 다른 형태로 나타 낼 수 있다. 즉, 임시값(C')을 사용하지 않고 바로 코드블록의 개수를 계산하는 방법이다.
Figure 112007084508400-PAT00003
한편 다음 수학식 4는 데이터 블록 분할기에 입력되는 데이터 블록의 길이(B)가 코드블록이 가질 수 있는 최대 길이(Z) 이하인 경우에 사용될 수 있다.
Figure 112007084508400-PAT00004
(2). 본 발명의 일 실시예에 따라 상기 S301 단계에서 코드블록들의 개수를 구하는 다른 방법을 설명한다.
다음 수학식 5는 중간값(B')을 이용하여 코드블록들의 개수(C)를 구하는 방법을 나타낸다.
Figure 112007084508400-PAT00005
수학식 5를 참조하면, 코드블록의 개수(C)를 구하기 위해 우선 중간값(B')을 구한다. 이때, 데이터 블록의 길이(B)를 코드블록이 가질 수 있는 최대 길이(Z)로 나눈 값을 올림한 정수값에 코드블록에 포함될 오류검출부호의 길이(L)을 곱하고 데이터 블록의 길이(B)를 더한 값을 'M'이라 가정한다. 또한, 데이터 블록의 길이(B)를 코드블록이 가질 수 있는 최대 길이(Z)로 나눈 값을 올림한 정수값에 코드블록이 가질 수 있는 최대 길이(Z)를 곱한 값을 'N'이라 가정한다.
만약 'M' 값이 'N' 값보다 크면, 코드블록의 개수 및 길이를 구하기 위한 중간값(B')은 데이터 블록의 길이(B)를 코드블록이 가질 수 있는 최대 길이(Z)로 나눈 값을 올림한 정수값에 '1'을 더한 값에 오류검출부호의 길이(L)를 곱한 후 데이터 블록의 길이(B)를 더한값이 된다.
만약 'M' 값이 'N' 값보다 작으면, 중간값(B')은 데이터 블록의 길이(B)를 코드블록이 가질 수 있는 최대 길이(Z)로 나눈 값을 올림한 정수값에 코드블록에 포함될 오류검출부호(예를 들어, CRC)의 길이(L)를 곱한 후 데이터 블록의 길이(B)를 더한값이 된다.
따라서, 코드블록의 개수(C)는 코드블록의 개수 및 길이를 구하기 위한 중간값(B')을 코드블록이 가질 수 있는 최대 길이(Z)로 나눈 값을 올림한 정수값으로 결정될 수 있다.
한편 데이터 블록 분할기에 입력되는 데이터 블록(B)의 크기가 코드블록이 가질 수 있는 최대 길이(Z)보다 작거나 같은 경우에 다음 수학식 6이 사용될 수 있다.
Figure 112007084508400-PAT00006
수학식 5 및 수학식 6은 수학식 1 및 수학식 2의 경우와 다르게 임시값(C')을 사용하지 않고 중간값(B')을 사용하여 코드블록의 개수(C)를 구하는 방법을 개시한다. 즉, 코드블록의 개수(C)를 길이를 나타내는 중간값(B')을 이용하여 구할 수 있다.
(3). 본 발명의 일 실시예에 따라 상기 S301 단계에서 코드블록들의 개수를 구하는 또 다른 방법을 설명한다.
다음 수학식 7은 코드블록들의 개수(C)를 구하는 바람직한 방법 중 또 다른 하나는 다음과 같다.
Figure 112007084508400-PAT00007
코드블록들의 개수(C)는 데이터 블록의 길이(B)를 코드블록이 가질 수 있는 최대 길이(Z)에서 오류검출부호의 길이(L)을 뺀 값으로 나눈값을 올림한 정수값으로 결정될 수 있다.
한편 데이터 블록 분할기에 입력되는 데이터 블록(B)의 크기가 코드블록이 가질 수 있는 최대 길이(Z)와 같거나 작은 경우에는 다음 수학식 8이 사용될 수 있다.
Figure 112007084508400-PAT00008
상기 수학식 7 및 8은 코드블록의 개수(C)를 구하는 경우에 코드블록에 포함될 코드블록에 대한 오류검출부호의 길이(L)를 고려하여 코드블록의 개수(C)를 구하는 방법을 나타낸다. 즉, 입력되는 데이터 블록의 길이(B)를 코드블록이 가질 수 있는 최대 길이(Z)에서 코드블록에 포함될 오류검출부호의 길이(L)를 뺀 값으로 나눔으로써, 데이터 블록의 길이(B)를 분할할 때 오류검출부호의 길이(L)를 고려할 수 있다. 이를 통해 데이터 블록을 사용자의 요구사항에 따라 정확하게 분할할 수 있다.
(4). 본 발명의 일 실시예에 따라 상기 S301 단계에서 코드블록들의 개수를 구하는 또 다른 방법을 설명한다.
다음 수학식 9에서는 코드블록들이 가질 수 있는 최대 길이(Z)가 가변할 수 있는 경우를 나타낸다.
Figure 112007084508400-PAT00009
데이터 분할기는 데이터 블록의 길이(B)를 코드블록이 가질 수 있는 최대 길이 값(Z)보다 작은 값(Z')으로 나눈 값을 올림한 정수값으로 코드블록의 개수(C)를 결정할 수 있다. Z'값을 산출할 때는 Z에서 자연수 a를 뺄 수 있다. 여기에서 a는 오류검출부호(예를 들어, CRC)의 길이(L) 또는 시스템 상황에 따라 필요에 의한 길이가 될 수 있다.
한편, 데이터 블록 분할기에 입력되는 데이터 블록(B)의 크기가 코드블록이 가질 수 있는 최대 길이(Z) 이하인 경우에 다음 수학식 10을 사용할 수 있다.
Figure 112007084508400-PAT00010
(5). 본 발명의 일 실시예에 따라 상기 S301 단계에서 코드블록들의 개수를 구하는 또 다른 방법을 설명한다.
데이터 분할기는 코드블록이 가질 수 있는 최대 길이(Z)를 특정값(x)으로 대체하여, 데이터 블록의 길이(B)를 특정값(x)으로 나눈값을 올림한 정수값으로 코드블록의 개수(C)를 결정할 수 있다.
다음 수학식 11은 코드블록들의 개수(C)를 구하는 일례를 나타낸다.
Figure 112007084508400-PAT00011
한편 데이터 블록 분할기에 입력되는 데이터 블록(B)의 크기가 코드블록이 가질 수 있는 최대 길이(Z) 이하인 경우에 다음 수학식 12가 사용될 수 있다.
Figure 112007084508400-PAT00012
상기 수학식 11 및 12는 코드블록이 가질 수 있는 최대 길이(Z)가 가변적인 경우에 사용될 수 있는 방법이다. 즉, 시스템의 상황에 따라 코드블록이 가질 수 있는 최대 길이가 변경될 수 있으며, 이에 유연하게 대처하기 위한 것이다.
다시 도 3을 참조하면, 상기 S301 단계에서 코드블록들의 개수(C)가 결정되면, 코드블록들의 개수(C) 및 중간값(B') 중 하나 이상을 이용하여 각 코드블록의 길이와 특정 길이를 갖는 코드블록의 개수를 계산할 수 있다(S302).
이하에서는 본 발명의 일 실시예에 따라, S302 단계에서 각 코드블록의 길이를 구하는 다양한 방법들에 대하여 설명한다.
코드블록의 길이(K)는 시스템의 요구사항에 따라 다양한 크기를 가질 수 있다. 본 발명의 일 실시예에서는 코드블록의 길이(K)가 균일한 경우 또는 크게 'K+' 및 'K-'의 두 가지 크기를 갖는 경우를 가정한다. 물론, 다양한 형태의 코드블록의 길이를 이용할 수 있음은 자명하다. 본 발명의 실시예들에서 코드블록이란 데이터 블록(또는, 입력비트)을 분할하여 생성되는 것으로서, 세그먼트(segment)라고 불릴 수 있다.
(1). 상기 S302 단계에서 각 코드블록의 길이가 동일한 경우에 코드블록의 길이(K)를 구하는 방법에 대하여 설명한다.
수학식 13은 각 코드블록들이 균등한 길이를 갖는 경우에, 각 코드블록들의 길이(K)를 구하는 바람직한 일례를 나타낸다.
Figure 112007084508400-PAT00013
수학식 13의 경우는 코드블록의 길이가 모두 균일한 길이를 갖는 경우의 계산 방법을 나타낸다. 즉, 'K'의 길이를 갖는 코드블록은 중간값(B')을 코드블록의 개수(C)로 나눈값을 올림한 정수값으로 계산한다. 이때, 중간값(B')은 코드블록의 개수 및 길이를 구하기 위한 임시값이다.
만약, S301 단계에서 코드블록의 개수 및 길이를 구하기 위한 중간값(B')을 계산하지 않은 경우에는 코드블록의 개수(C)와 코드블록에 포함될 오류검출부호의 길이(L)을 곱한값에 데이터 블록의 길이(B)를 더한 값을 중간값(B')으로 이용할 수 있다.
(2). S302 단계에서 코드블록의 길이(K)가 특정한 길이(K+ 및 K-)를 갖는 경우에 'K+' 값을 갖는 코드블록의 길이를 구하는 방법에 대하여 설명한다.
다음 수학식 14는 특정 코드블록의 길이(K+)를 구하는 바람직한 일례를 나타낸다.
Figure 112007084508400-PAT00014
'K+'의 길이를 갖는 코드블록은 이하 표 1에 나타난 K 값을 이용한다. 이때, K 값의 조건은 코드블록의 개수(C)와 K 값을 곱한값이 코드블록의 개수(C)와 코드블록에 포함될 오류검출부호의 길이(L)를 곱한값에 데이터 블록의 길이(B)를 더한 값보다 크거나 같은 경우를 만족하는 것이다. 또한, K 값의 다른 조건으로서, 코드블록의 개수(C)와 K 값을 곱한 값이 중간값(B') 이상인 경우를 만족하는 경우이다. 즉, 상기 'K+' 값은 수학식 14의 두 가지 조건 중 어느 하나를 만족하는 K 값 중에서 최소값을 가질 수 있다.
수학식 14와 같은 방법을 사용하여 코드블록의 길이를 구하면 코드블록에 포함될 오류검출부호의 길이(L)를 고려하여 코드블록의 길이를 구할 수 있으므로, 입력되는 데이터 블록(또는, 입력비트)을 사용자가 원하는 길이로 정확하게 분할할 수 있다.
다음 수학식 15는 특정 코드블록의 길이(K+)를 구하는 바람직한 다른 일례를 나타낸다.
Figure 112007084508400-PAT00015
수학식 15에서 'K+'의 길이를 갖는 코드블록은 이하 표 1에서 다음의 조건을 만족하는 'K'의 최소값을 이용한다. 즉, 코드블록의 개수(C)와 'K' 값에서 오류검출부호의 길이(L)를 뺀 값을 곱한값이 중간값(B') 보다 크거나 같은 경우를 만족하는 가장 작은 'K' 값을 'K+' 값으로 사용한다.
다음 수학식 16은 상기 수학식 15에서 중간값(B')이 코드블록의 총 개수 및 코드블록에 포함되는 오류검출부호의 길이를 곱한 값에 입력비트의 길이를 더한 값으로 설정되는 경우에 사용될 수 있다.
Figure 112007084508400-PAT00016
수학식 16에서 'K+'의 길이를 갖는 코드블록은 이하 표 1에서 나타난 K값을 이용할 수 있다.
다음 표 1은 수학식 13 내지 16에서 사용될 수 있는 'K' 값에 대한 파라미터를 나타낸다.
Figure 112007084508400-PAT00017
표 1에서 파라미터 f1 및 f2는 입력 데이터의 길이인 K 값에 따라 달라질 수 있다.
(3). S302 단계에서 코드블록의 길이(K)가 특정한 길이(K+ 및 K-)를 갖는 경우에 'K-' 값을 갖는 코드블록의 길이를 구하는 방법에 대하여 설명한다.
'K-' 값은 수학식 14 내지 수학식 16 중 어느 하나에서 계산한 'K+' 값보다 작은 K 값 중 최대값으로 설정할 수 있다. 이때, K 값은 표 1의 값을 사용할 수 있다. 다음 수학식 17은 'K-' 값을 구하는 방법을 나타낸다.
Figure 112007084508400-PAT00018
표 1에 나타나는 값과 수학식 17을 이용하여 'K-'값을 계산하면, 코드블록에 포함되는 오류검출부호의 길이를 고려할 수 있으므로 사용자의 요구사항에 따라 입력되는 데이터 블록(또는, 입력비트)을 정확하게 분할할 수 있다.
상기 수학식 14 내지 17을 통해 코드블록의 길이가 특정한 길이를 갖는 경우에, 각 코드블록의 길이(K+ 및 K-)를 구하는 방법을 살펴보았다. 이때, 입력되는 데이터 블록을 정확하게 분할하기 위해 각 코드블록의 길이를 갖는 코드블록의 개수(C+ 및 C-)를 구할 필요가 있다.
(1). 이하, S302 단계에서 특정 길이(K-)를 갖는 코드블록의 개수(C-)를 구하는 바람직한 방법에 대하여 설명한다.
다음 수학식 18은 'K-'의 길이를 갖는 코드블록의 개수(C-)를 구하는 일례를 나타낸다.
Figure 112007084508400-PAT00019
'K-'의 길이를 갖는 코드블록의 개수(C-)는, 코드블록의 개수(C)와 코드블록의 길이(K+)를 곱한값에서 중간값(B')을 뺀 후, K+와 K-의 차이값(ΔK)으로 나눈값을 내림한 정수값으로 계산할 수 있다. 이때, 상기 중간값(B')은 코드블록의 개수 및 길이를 구하기 위한 임시값이다.
수학식 18을 참조하면, 중간값(B')을 이용하여 'K-'의 길이를 갖는 코드블록의 개수(C-)를 구하면, 코드블록 각각에 포함되는 오류검출부호의 길이를 고려하여 입력되는 데이터블록(또는, 입력비트)을 정확하게 분할할 수 있다. 이를 통해, 사용자가 원하는 길이의 코드블록 개수를 구할 수 있는 장점이 있다.
수학식 18은 다음 수학식 19와 같은 표현 방법으로 나타낼 수 있다.
Figure 112007084508400-PAT00020
즉, 수학식 19는 중간값(B')이 코드블록의 개수(C)와 오류검출부호의 길이(L)를 곱한값에 데이터 블록의 길이(B)를 더한 값으로 설정되는 경우를 나타낸다.
(2). 상기 S302 단계에서 특정 길이(K-)를 갖는 코드블록의 개수(C-)를 구하는 다른 방법을 설명한다.
다음 수학식 20은 'K-'의 길이를 갖는 코드블록의 개수(C-)를 구하는 일례를 나타낸다.
Figure 112007084508400-PAT00021
'K-'의 길이를 갖는 코드블록의 개수(C-)는, 다른 코드블록의 길이(K+)에서 오류검출부호의 길이(L)를 뺀 값에 코드블록의 개수(C)를 곱한값에서 중간값(B')을 뺀 후, 'K+'와 'K-'의 차이값(D)으로 나눈값을 내림한 정수값으로 계산할 수 있다. 이때, 상기 중간값(B')는 코드블록의 개수 및 길이를 구하기 위한 임시값이다.
즉, 수학식 20은 'K+' 길이를 갖는 코드블록에 포함될 오류검출부호의 길이(L)를 고려하여 'K-'길이를 갖는 코드블록의 개수(C-)를 구하는 방법에 관한 것이다.
다음 수학식 21은 수학식 20을 중간값(B')을 이용하여 표현한 경우를 나타낸다. 즉, 중간값이 코드블록의 개수(C)와 오류검출부호의 길이(L)를 곱한값에 데이터 블록의 길이(B)를 더한 값으로 설정되는 경우를 나타낸다.
Figure 112007084508400-PAT00022
(3). S302 단계에서 특정 길이(K+)를 갖는 코드블록의 개수(C+)를 구하는 방법은 다음 수학식 22와 같다.
Figure 112007084508400-PAT00023
수학식 22를 참조하면, 코드블록의 총 개수(C)에서 수학식 19 내지 수학식 21에서 계산한 코드블록의 개수(C-)를 빼면, 특정 길이(K+)를 갖는 코드블록의 개수(C+)를 구할 수 있다.
다시 도 3을 참조하면, 상기 S302 단계에서 계산되는 데이터 블록들의 길 이(K)는 서로 균등하거나 서로 다른 특정한 길이(예를 들어, K+ 또는 K-)를 가질 수 있으며, 이는 시스템의 요구사항에 따라 결정될 수 있다.
데이터 블록을 분할하는 과정에서, 모든 코드블록들의 길이를 합한 값이 코드블록의 개수 및 길이를 구하기 위한 중간값(B')보다 커지는 경우가 발생할 수 있다. 이런 경우에는 모든 코드블록들의 길이를 합한 값에서 상기 중간값(B')의 차에 해당하는 채움비트의 길이(F)를 계산한다(S303). 채움비트는 입력되는 데이터 블록을 분할하여 생성되는 각 코드블록에 오류검출부호를 붙이는 경우, 최초 입력되는 데이터 블록과 각 코드블록의 총 길이를 같도록 하기 위한 것이다. 이때, 코드블록의 개수(C)가 '0'인 경우에는 채움비트의 길이(F) 또한 '0'이 된다.
이하, S303 단계에서 채움비트의 길이(F)를 구하는 방법에 대하여 설명한다.
(1). 채움비트의 길이(F)는 코드블록의 개수(C)에 코드블록의 길이(K)를 곱한 값에서, 코드블록의 개수 및 길이를 구하기 위한 중간값(B')을 빼서 계산할 수 있다.
다음 수학식 23은 채움비트의 길이(F)를 구하는 일례를 나타낸다.
Figure 112007084508400-PAT00024
수학식 23은 입력되는 데이터 블록이 모두 같은 길이의 코드블록들로 분할되는 경우에 채움비트를 구하는 방법을 나타내는 것이다.
다음 수학식 24는 상기 수학식 23의 중간값(B')이 코드블록의 개수(C)에 코 드블록에 포함될 오류검출부호의 길이(L)를 곱한 후 데이터 블록의 길이(B)를 더한 값으로 설정되는 경우에 채움비트를 계산하는 방법을 나타낸다.
Figure 112007084508400-PAT00025
(2). S303 단계에서 채움비트의 길이(F)를 구하는 다른 일례는 다음과 같다.
다음 수학식 25는 채움비트의 길이(F)를 구하는 바람직한 방법의 일례를 나타낸다. 즉, 수학식 25는 입력되는 데이터 블록(또는, 입력비트)이 특정 길이(예를 들어, K+ 또는 K-)를 갖는 경우에 채움비트를 계산하는 방법을 나타낸다.
Figure 112007084508400-PAT00026
채움비트의 길이(F)는 모든 코드블록들의 길이의 합에서 코드블록의 개수 및 길이를 구하기 위한 중간값(B')을 빼서 계산할 수 있다. 즉, 특정 길이를 갖는 제 1 코드블록의 개수(C+) 및 제 1 코드블록의 길이(K+)를 곱한값과 제 2 코드블록의 개수(C-) 및 제 2 코드블록의 길이(K-)를 곱한값을 더한 값에서 중간값(B')을 뺀값으로 채움비트(F)를 계산할 수 있다.
수학식 25를 이용하면, 입력되는 데이터 블록이 분할되어 생성되는 코드블록들의 길이가 다양한 경우에도 본 발명의 실시예를 적용할 수 있다. 또한, 오류검출부호가 포함되는 경우의 채움비트를 계산할 수 있으므로, 더욱 정확하게 코드블록 들을 생성할 수 있다.
다음 수학식 26는 상기 수학식 25에서 중간값(B')이 코드블록들에 포함되는 오류검출부호(L)의 길이와 코드블록의 총 개수(C)를 곱한값에 입력되는 데이터 블록(또는, 입력비트)의 길이(B)를 곱한 값으로 설정되는 경우를 나타낸다.
Figure 112007084508400-PAT00027
다시 도 3을 참조하면 코드블록들의 개수, 코드블록들의 길이 및 채움비트의 길이가 결정되면 데이터 블록 분할기(320)는 코드블록들에 순차적으로 데이터를 할당할 수 있다(S304).
만약 S304 단계에서, 데이터 블록(300)이 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우에는, 데이터 블록에(300) 데이터가 할당된 후 CRC 부가기(340)를 거치지 않는다. 이때는, 입력되는 데이터 블록(300)이 코드블록(360)이 가질 수 있는 최대 길이보다 작거나 같은 경우이다. 따라서, 데이터 블록 분할기(320)에서 데이터 블록(300)이 분할되고, 분할된 데이터 블록 각각에 CRC가 부가되는 단계가 생략된다. 즉, 입력되는 데이터 블록(300)이 최종적으로 코드블록(360)으로 사용된다. 그러므로, 상기 코드블록(360)에는 데이터 블록(300)에 원래 포함된 CRC만이 존재하고, CRC 부가기(340)에서 생성된 CRC를 다시 부가할 필요가 없다.
코드블록들에 데이터가 할당되면, 코드블록들은 CRC 부가기(340)에 입력된 다. CRC 부가기(340)는 코드블록들을 기반으로 CRC 생성식을 이용하여 임의 길이의 CRC 패리티 비트를 생성한다(S305).
CRC 부가기는 상기 S305 단계에서 생성한 CRC 패리티 비트를 코드블록들의 뒷부분에 정방향 또는 역방향의 순서대로 부착한다. 이를 통해, 최종적으로 CRC 부호가 부가된 코드블록들이 생성된다(S306).
<제 2 실시예 >
도 4는 본 발명의 다른 실시예에 따라, 도 3의 방법을 사용하여 데이터 블록을 분할하면서 코드블록들에 CRC를 부가하는 방법을 나타내는 도면이다.
도 4에서 데이터 블록(제 1 데이터 블록, 400)이 데이터 블록 분할기(420)에 입력되어 코드블록(제 2 데이터 블록)들로 분할되고, CRC 길이가 고려된 코드블록들(430)이 CRC 부가기(440)에 입력되어 CRC가 부가된 코드블록(460)이 생성되는 것은 도 3의 방법과 유사하다. 다만, 본 발명의 다른 실시예에서는, 도 3의 S304 단계 및 S306 단계에서 차이가 있다.
본 발명의 다른 실시예는 CRC 부가기에 입력되는 CRC 길이가 고려된 코드블록(430)의 길이와 출력되는 CRC가 할당된 코드블록(460)의 길이가 같은 경우이다. 이는 CRC 부가기에 입력되는 코드블록의 길이에 CRC의 길이가 포함되어 있는 경우를 나타낸다. 따라서, 데이터 블록 분할기는 입력되는 데이터에 대하여 코드블록들의 개수 및 길이를 계산할 때 코드블록 내에 부가될 CRC 부호의 길이를 고려하는 것이 바람직하다.
코드블록들의 개수(C), 코드블록들의 길이(K) 및 채움비트의 길이(F)가 결정 되면, 데이터 블록 분할기(420)는 코드블록들에 순차적으로 데이터를 할당한다. 이때, 코드블록들 중 첫 번째 블록에는 채움비트와 데이터를 할당한다.
다만, 본 발명의 다른 실시예에서는 코드블록들에 데이터를 할당하는 경우에 CRC 부가기에서 부가될 CRC의 길이(L)를 고려하여 데이터를 할당한다. 따라서, 첫 번째 코드블록에는 채움비트와 데이터가 할당되고, 그 뒤에 소정의 CRC 부호의 길이만큼 '0' 또는 '1'의 값이 비트별로 할당되어 CRC 영역을 나타낼 수 있다. 다만, CRC 영역을 나타낼 뿐 CRC 영역에 CRC 부호가 부가된 것은 아니다.
두 번째 코드블록부터 마지막 코드블록까지는 순차적으로 데이터가 할당된다. 또한, 각 코드블록마다 CRC 영역을 나타내는 '0' 또는 '1'로 구성된 값이 비트별로 할당되어 CRC 영역을 확보한다.
CRC 부가기에서는 입력되는 코드블록들에 CRC 부호를 부가한다. 이때, 코드블록들에 포함된 '0' 또는 '1'로 채워진 CRC 영역이 있는데 이 영역만큼의 CRC 패리티 비트를 생성하고, 정방향 또는 역방향의 순서로 CRC 패리티 비트를 부착한다. 이 과정은 코드블록들 개수만큼 반복하여 수행된다. 이때, CRC 부호의 길이(L)은 바람직하게 24 비트의 길이를 가질 수 있다.
상술한 방법을 통해 임의의 길이를 갖는 데이터 블록은 데이터 블록 분할기(420) 및 CRC 부가기(440)를 거쳐서 CRC가 부가된 코드블록들로 나누어진다.
다만, 데이터 블록(400)이 코드블록이 가질 수 있는 최대 길이보다 작거나 같은 경우에는 데이터 블록 분할기(420) 및 CRC 부가기(440)의 단계를 통과하지 않는다. 즉, 데이터 블록(400)이 오류검출부호(CRC)를 포함하는 하나의 코드블록으로 구성되는 경우에는, 데이터 블록(400)이 이미 CRC 부호를 포함하고 있으므로 데이터 블록(400)에 데이터만 할당되고 CRC 부가기에서 CRC 부호가 다시 부가되지 않는다.
본 발명의 일 실시예에 따른, CRC 부가기에 입력되는 코드블록을 구성하는 경우 CRC 길이가 코드블록에 포함되는 구체적인 일례는 다음과 같다.
표 2는 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
구문 내용
for k = 0 to F-1
O0k = 0 or 1
end for
k = F
s = 0
for r = 0 to C- 1
if r < C-
Kr = K-
else
Kr = K+
end if
while (k < Kr)
if(k < Kr - L)
Ork = bs
s = s + 1
else
Ork = 0 or 1
end if
k = k + 1
end while
k = 0
end for
표 3은 입력되는 데이터 블록이 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우 및 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
구문 내용
if C = 1
L = 0
end if
for k = 0 to F-1
O0k = 0 or 1
end for
k = F
s = 0
for r = 0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
while(k < Kr)
if(k < Kr-L)
Ork = bs
s = s + 1
else
Ork = 0 or 1
end if
k = k + 1
end while
k = 0
end for
표 2 및 표 3에서 사용되는 주요 파라미터는 다음과 같다. 'F'는 채움비트의 길이를 나타내며, 데이터 블록 분할기의 출력을 나타내는 파라미터는 'Ork'이다. 이때 'r'은 코드블록의 번호를 나타내며, 'k'는 r 번째 블록의 비트 번호를 나타내는 파라미터이다.
코드블록의 길이는 'K+' 및 'K-'의 두 가지 길이를 갖는 것으로 가정한다. 이때, 'K-'는 'K+'값보다 작은 코드블록의 길이를 나타낸다. 'C+'및 'C_'는 특정 코드블록의 개수를 나타내는 파라미터로서, 각각 'K+' 및 'K-'의 길이를 갖는 코드블록의 개수를 나타낸다. 상기 표 2 및 표 3에 포함되는 파라미터 중 'L'은 코드블록당 부가될 CRC의 길이를 나타내고, 'Kr'은 코드블록에 적용될 길이를 나타내는 파라미터이다.
CRC 길이를 고려하여 생성되는 코드블록에 CRC를 부가하는 일례는 다음 수학식 27과 같다.
Figure 112007084508400-PAT00028
만약, 데이터 블록의 크기(B)가 코드블록이 가질 수 있는 최대 길이(Z) 이하인 경우에는, CRC의 길이(L)를 고려하여 생성되는 코드블록에 대해 CRC를 부가하는 일례는 다음 수학식 28과 같다.
Figure 112007084508400-PAT00029
CRC 부가를 위한 파라미터를 계산하면, 코드블록에 적용되는 길이는 Kr이고, 코드블록당 부가될 CRC의 길이는 L을 가정한다. 이때, 입력되는 입력비트는 Or0, Or1, Or2,...,OrKr -1로 구성될 수 있다. 또한, CRC 패리티 비트는 pr0, pr1, pr2,...,prL -1로 구성될 수 있다. 이때, CRC 패리티 비트는 입력비트들을 기반으로 CRC 생성식을 이용하여 생성될 수 있다. 또한, CRC가 부가된 후의 비트들은 Or0, Or1, Or2,...,OrKr -1로 구성될 수 있고, Cr0, Cr1, Cr2,..., CrKr -1로 구성될 수 있다. 즉, 같은 공간에 구성되거나 다른 공간에 구성될 수 있다. 또한, 시스템의 요구 사항에 따라 CRC 패리티 비트는 코드블록의 정방향 또는 역방향으로 부가될 수 있다.
<제 3 실시예 >
도 5는 본 발명의 다른 실시예에 따라, 도 3의 방법을 사용하여 데이터 블록을 분할하되, 코드블록들에 CRC를 부가하는 다른 일례를 나타내는 도면이다.
도 5에서는 CRC 부가기(540)에 입력되는 코드블록(530)의 길이가 출력되는 코드블록(560)의 길이에서 CRC의 길이(L)를 뺀 값을 갖는 경우를 나타낸다. 데이터 블록(제 1 데이터 블록, 500)을 분할하기 위한 데이터 블록 분할기의 동작은 도 3 및 도 4의 방법과 유사하지만, 코드블록(제 2 데이터 블록)에 데이터를 할당하는 방법과 CRC 부호가 부가된 블록을 생성하는 방법은 도 3 및 도 4의 경우와 차이가 있다.
즉, 데이터 블록을 분할하는 경우에 CRC 길이를 고려한다는 면에서는 유사하나, 도 4의 경우와 다르게 도 5에서는 CRC 부가기에 입력되는 코드블록들의 길이에 는 CRC 영역이 확보되지 않은 경우이다.
도 5를 참조하면, 원본 데이터 블록(500)이 데이터 블록 분할기(520)에 입력되어 코드블록(530)으로 분할되고, 코드블록(530)이 CRC 부가기(540)에 입력되어 CRC 비트가 부가된 코드블록(560)이 생성된다.
도 5에서 데이터 블록(500)이 데이터 블록 분할기(520)로 입력되면, 데이터 블록 분할기에서는 부가될 CRC 길이를 고려하여 코드블록의 개수(C) 및 코드블록의 길이(K)를 계산한다. 또한, 코드블록의 개수 및 길이를 이용하여 채움 비트(F)를 계산한다. 데이터 블록 분할기는 코드블록들(530) 중 첫 번째 블록에 채움 비트 및 데이터를 할당한다. 이때, 데이터는 코드블록의 길이에서 CRC 길이(L)를 제외한 길이만큼 순차적으로 할당된다. 또한, CRC 길이(L)는 바람직하게는 24 비트의 길이를 가질 수 있다.
또한, 데이터 블록 분할기는 두 번째 코드블록에 코드블록의 길이에서 CRC 길이를 제외한 길이만큼 데이터를 순차적으로 할당하고, 데이터를 할당하는 과정은 코드블록의 개수만큼 반복된다. 데이터를 할당하는 과정을 통해 CRC 부가기로 입력되는 코드블록들을 구성한다.
즉, 데이터 블록 분할기에서 코드블록의 개수를 구할 때, 부가될 CRC의 길이를 고려하여 코드블록의 개수를 계산한다. 다만, 상기 계산값은 CRC 부가기로 전달되고 CRC 부가기에서 코드블록들에 CRC를 부가할 때 사용된다. CRC 부가기에 입력되는 코드블록들의 길이가 균등한 경우를 가정할 때, 입력되는 전체 데이터 블록의 길이(B)는 코드블록의 길이(K)에서 CRC 부호의 길이(L)를 뺀 값에 코드블록의 개 수(C)를 곱한값 또는 코드블록의 길이(K)에서 CRC 부호의 길이(L)를 뺀 값을 갖는 코드블록 길이의 합으로 구할 수 있다.
도 5에서 설명한 본 발명의 일 실시예에 따라 CRC 부가기에 입력되는 데이터 블록의 전체 길이를 구하면, 도 4의 방법에 비하여 각 코드블록에 부가될 CRC 길이만큼 짧은 길이를 갖는 것을 확인할 수 있다.
도 5를 참조하면, CRC 부가기는 입력되는 코드블록들과 코드블록의 개수 정보를 기반으로 CRC 생성식을 이용하여 임의 길이의 CRC 패리티 비트를 생성한다.
또한, 데이터 블록 분할기로부터 제공받은 CRC 부가가 고려된 코드블록의 개수를 이용하여 CRC 부가기로 입력된 블록들의 길이와 데이터를 구분한 다음, 각 코드블록의 뒷부분에 패리티 비트를 정방향 또는 역방향의 순서로 부착한다. 이 과정을 CRC 부가기에 입력으로 들어오는 코드블록의 개수만큼 반복한다.
도 5를 통해 설명한 방법을 이용하면, 임의의 길이를 갖는 데이터 블록은 데이터 블록 분할기와 CRC 부가기를 거쳐서 CRC가 부가된 코드블록으로 구성된다.
다만, 데이터 블록이 오류검출부호를 포함하는 하나의 코드블록으로 구성이 되는 경우에는 데이터가 할당된 후에, CRC 부가기(540)의 단계를 거치지 않는다. 즉, 데이터 블록의 길이가 코드블록이 가질 수 있는 최대 길이보다 작거나 같으면, 데이터 블록이 분할될 필요가 없으며, 이때는 데이터 블록에 원래 포함되어 있는 CRC를 이용하면 되므로 다시 CRC 부가기를 통해 CRC를 중복해서 부가할 필요가 없는 것이다.
본 발명의 다른 실시예에 따른, CRC 부가기에 입력되는 코드블록을 구성시, CRC 길이가 코드블록 생성시에 고려되지만 코드블록에 포함되지 않는 경우의 구체적인 일례를 설명한다.
다음 표 4는 CRC 길이를 고려하여 생성되지만 CRC 길이는 포함되지 않는 코드블록의 구성식을 나타낸다.
구문 내용
for k = 0 to F-1
O0k = 0 or 1
end for
k = F
s = 0
for r = 0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
while (k < Kr-L)
Ork = bs
k = k+1
s = s+1
end while
k = 0
end for
다음 표 5는 데이터 블록이 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우에, CRC 부호의 길이를 고려하여 생성되지만 CRC 길이는 포함되지 않는 경우의 코드블록의 구성식을 나타낸다.
구문 내용
if C = 1
L = 0
end if
for k = 0 to F-1
O0k = 0 or 1
end for
k = F
s = 0
for r = 0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
while(k < Kr-L)
Ork = bs
k = k+1
s = s+1
end while
k = 0
end for
표 4 및 표 5에서 사용되는 주요 파라미터는 다음과 같다. 'F'는 채움비트의 길이를 나타내며, 데이터 블록 분할기의 출력을 나타내는 파라미터는 'Ork'이다. 이때 'r'은 코드블록의 번호를 나타내며, 'k'는 r 번째 블록의 비트 번호를 나타내는 파라미터이다.
코드블록의 길이는 'K+'및 'K-'의 두 가지 길이를 갖는 것으로 가정한다. 이때, 'K-'는 'K+' 값보다 작은 코드블록의 길이를 나타낸다. 'C+' 및 'C_'는 코드블록의 개수를 나타내는 파라미터로서, 각각 'K+' 및 'K-'의 길이를 갖는 코드블록의 개수를 나타낸다. 상기 표 4 및 표 5에 포함되는 파라미터 중 'L'은 코드블록당 부가될 CRC의 길이를 나타내고, 'Kr'은 코드블록에 적용될 길이를 나타내는 파라미터이다.
도 5를 참조하면, CRC 길이를 고려하여 생성되지만 CRC 길이는 포함되지 않는 코드블록을 구성하고, 상기 코드블록에 CRC를 부가하기 위해 상기 수학식 27을 이용할 수 있다.
또한, 데이터 블록이 분할되지 않고 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우에, CRC 길이를 고려하여 생성되지만 CRC 길이는 포함되지 않는 코드블록을 구성하고, 상기 코드블록에 CRC를 부가하기 위해 수학식 28을 이용할 수 있다.
또한, CRC가 부가된 후의 비트들은 Or0, Or1, Or2, …, OrKr -1로 구성될 수 있고, 또는 Cr0, Cr1, Cr2, …, CrKr -1로도 구성될 수 있다. 즉, 같은 공간이나 다른 공간에 구성될 수 있다.
<제 4 실시예 >
도 6은 본 발명의 또 다른 실시예에 따라, CRC 부가기 및 데이터 블록 분할기가 하나의 장치로서 이루어지는 구성을 나타내며, 또한 부가될 CRC의 길이를 고려한 데이터 블록의 분할 및 CRC의 부가 방법을 나타낸다.
도 6은 임의의 길이를 갖는 데이터 블록(제 1 데이터 블록, 600)을 데이터 블록 분할과 오류검출부호를 부가하는 기능을 동시에 갖는 하나의 기능모듈(데이터 블록 분할 및 CRC 부가기, 620)에 입력하여 코드블록(제 2 데이터 블록, 640)을 생성하는 방법을 나타낸다. 이때, 데이터 블록(600)은 기능모듈에 입력되기 전에 미리 데이터 블록에 대한 오류검출부호를 포함할 수 있다.
도 6을 참조하면, 데이터 블록(600)이 기능모듈(620)에 입력되면, 기능모듈은 코드블록에 부가될 CRC 길이(L)를 고려하여 코드블록의 개수(C)를 계산할 수 있다(S601). 또한, 기능모듈은 코드블록의 개수(C)를 이용하여 코드블록의 길이(K)를 계산할 수 있다(S602). 또한, 기능모듈은 코드블록의 개수 및 길이를 이용하여 채움비트의 길이(F)를 계산할 수 있다(S603).
상기 S601 내지 S603 단계에서 사용되는 코드블록의 개수 및 길이를 계산하는 방법과 채움비트를 계산하는 방법은 도 3 내지 도 5에서 사용한 방법과 동일한 방법을 사용할 수 있다. 다만, 도 6에서 설명하는 코드블록들에 데이터를 할당하고 CRC 부호를 할당하는 단계(S604)는 도 3 내지 도 5에서 설명한 방법과 차이가 있다. 이때, CRC 부호의 길이(L)는 바람직하게 24 비트의 길이를 가질 수 있다.
도 6을 참조하면, 본 발명의 또 다른 실시예에서 코드블록들에 데이터 및 CRC 부호를 할당하는 S604 단계는 다음과 같다.
분할된 코드블록들 중 첫 번째 블록의 앞 부분에 채움비트(F)를 할당하고, 코드블록의 길이(K)에서 부가될 CRC 길이(L)를 제외한 길이만큼의 데이터를 할당할 때, 코드블록의 길이(K)에서 채움비트의 길이(F)와 부가될 CRC 길이를 제외한 길이(L)만큼의 데이터 또는 부가될 CRC 길이(L)를 제외한 길이만큼의 데이터를 CRC 생성기를 이용하여 임의 길이의 패리티 비트를 생성할 수 있다. 이때, 각 코드블록의 길이(K)는 서로 동일한 값을 갖거나 또는 특정 값(예를 들어, K+ 또는 K-)을 가질 수 있다. 'K+'값 및 'K-'값은 K 값의 미소 변화량을 나타낸다.
S604 단계에서, 첫 번째 코드블록에 채움 비트(F)를 할당하고, 첫 번째 코드블록의 길이에서 부가될 CRC 길이를 제외한 길이만큼 데이터의 할당이 끝나면, CRC부호를 첫 번째 코드블록의 뒷부분에 정방향 또는 역방향의 순서로 부착할 수 있다. 두 번째 코드블록에는, 두 번째 코드블록의 길이에서 부가될 CRC 길이를 제외한 길이만큼 데이터를 할당하고, CRC 부호를 두 번째 코드블록의 뒷부분에 정방향 또는 역방향 순서로 부착할 수 있다. 두 번째 코드블록의 구성 과정은 부가될 CRC 길이를 고려하여 계산된 코드블록의 개수만큼 반복할 수 있다(S604).
도 6의 방법을 이용하면 임의의 길이를 갖는 데이터 블록은 기능모듈(620)을 거쳐서 CRC가 부가된 코드블록(640)으로 구성이 될 수 있다. 다만, 데이터 블록이 분할되지 않고 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우에는 데이터를 할당한 후에 다시 CRC를 부가하지 않는다. 이때는, 이미 데이터 블록이 CRC 부호를 포함하고 있으므로 중복해서 CRC를 부가할 필요가 없기 때문이다.
도 7은 도 6의 방법에 의해, CRC의 길이를 고려하여 데이터 블록이 코드블록으로 변화하는 과정을 나타내는 도면이다.
도 7을 참조하면, 데이터 블록(제 1 데이터 블록, 700)이 기능모듈(CRC 부가 및 데이터 블록 분할기, 720)에 입력되면, 오류검출부호인 CRC의 길이(L)가 고려되어 코드블록(제 2 데이터 블록, 740)들로 변환되는 것을 알 수 있다. 도 7에서 CRC 부가 및 데이터 블록 분할기에서 데이터 블록을 코드블록으로 변환하는 과정은 도 6의 방법을 사용할 수 있다. 또한, 도 7에서 데이터 블록(700)은 기능모듈에 입력되기 전에 미리 데이터 블록에 대한 CRC 부호를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른, 데이터 블록의 분할과 CRC의 부가가 하나의 기능모듈에서 이루어지는 경우의 구체적 일례를 설명한다.
다음 표 6은 데이터 블록의 분할과 CRC의 부가가 하나의 기능모듈(CRC 부가 및 데이터 블록 분할기, 720)에서 이루어지는 경우, 데이터 블록의 분할 및 CRC 부가를 위한 데이터 블록 구성식을 나타낸다.
구문 내용
for k = 0 to F-1
O0k = 0 or 1
end for
k = F
s = 0
for r=0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
while (k < Kr)
if(k < Kr - L)
Ork = bs bs를 Ork에 할당시 패리티 비트를 생성(동시 처리)
s = s+1
else
Ork = p(L-1-(k-( Kr -L)))
end if
k = k+1
end while
k = 0
end for
다음 표 7은 데이터 블록이 분할되지 않고, 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우(즉, C=1인 경우) 및 데이터 블록의 분할과 CRC의 부가가 하나의 기능모듈(720)에서 이뤄지는 경우에 데이터 블록의 분할 및 CRC 부가를 위한 데이터 블록 구성식을 나타낸다.
구문 내용
if C=1
L=0
end if
for k = 0 to F-1
O0k = 0 or 1
end for
k = F
s = 0
for r=0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
while (k < Kr)
if(k < Kr - L)
if C = 1
Ork = bs bs를 Ork에 할당시 패리티 비트를 생성(동시 처리)
else
Ork = bs
end if
s = s+1
else
Ork = pr(Kr-k-1)
end if
k = k+1
end while
k = 0
end for
표 6 및 표 7에서 사용되는 주요 파라미터는 다음과 같다. 'F'는 채움비트의 길이를 나타내며, 데이터 블록 분할기의 출력을 나타내는 파라미터는 'Ork'이다. 이때 'r'은 코드블록의 번호를 나타내며, 'k'는 r 번째 블록의 비트 번호를 나타내는 파라미터이다.
코드블록의 길이는 'K+' 및 'K-'의 두 가지 길이를 갖는 것으로 가정한다. 이때, 'K-'값은 'K+'값보다 작은 코드블록의 길이를 나타낸다. 'C+' 및 'C_'는 코드블록의 개수를 나타내는 파라미터로서, 각각 'K+'및 'K-'의 길이를 갖는 코드블록의 개수를 나타낸다. 또한, 상기 표 6 및 표 7에 포함되는 파라미터 중 'L'은 코드블록당 부가될 CRC의 길이를 나타내고, Kr은 최종 코드블록에 적용될 길이를 나타내는 파라미터이다.
CRC 부가를 위한 파라미터를 계산하면, CRC 패리티 비트는 pr0, pr1, pr2,...,prL-1로 구성될 수 있다. 이때, CRC 패리티 비트는 입력블록들을 기반으로 CRC 생성식을 이용하여 생성될 수 있다. 또한, 데이터 할당 및 CRC가 부가된 후의 비트들은 Or0, Or1, Or2,...,OrKr -1로 구성될 수 있고, Cr0, Cr1, Cr2,..., CrKr -1로 구성될 수도 있다. 즉, 같은 공간이나 다른 공간에서 구성될 수 있다.
<제 5 실시예 >
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 4 실시예에서 설명한 방법들을 조합하여 구성할 수 있다.
데이터들이 큰 사이즈를 갖는 경우, 상기 데이터를 효과적으로 전달하기 위해 시스템의 요구사항에 따라 적합한 크기로 나누어 전송할 수 있다. 따라서, 입력되는 데이터 블록을 적절한 방법으로 분할할 필요가 발생한다. 이때, 데이터 블록을 분할하는 방법에 있어서 어떠한 방법으로 분할할 것인지가 중요한 문제가 될 수 있다.
본 발명의 또 다른 실시예에 따른 데이터 블록 분할 및 오류검출부호 부가기는 논리적인 데이터 블록(또는, 입력비트)을 분할하고 CRC 부호를 부가하는 기능을 수행하는 하나의 기능모듈(이하, 기능모듈)이다. 이때, 상기 기능모듈은 입력되는 데이터 블록을 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할할 수 있다.
단, 입력비트 시퀀스를 코드블록(또는, 세그먼트)들로 분할하는 경우에는, 코드블록의 길이(K)는 시스템의 요구사항에 따라 최대로 분할할 수 있는 길이(Z)가 정해질 수 있다. 본 발명의 실시예들에서 코드블록이 가질 수 있는 최대 길이(Z)는 바람직하게 6144 비트이다.
기능모듈에 입력되는 입력비트(또는, 데이터 블록)의 시퀀스는 b0, b1, b2,..., bB -1로써 나타낼 수 있다. 이때, 입력비트의 크기는 'B'로서 나타낼 수 있고 B의 크기는 1 이상인 것을 가정한다. 만약, B가 코드블록이 가질 수 있는 최대 크기(Z)보다 크다면, 입력비트 시퀀스의 분할은 CRC의 크기가 고려되어 분할될 수 있다. 이때 CRC 비트의 크기(L)는 바람직하게 24 비트일 수 있다. 즉, 입력비트 시퀀스가 분할되어 생성되는 각 코드블록에는 오류검출부호 중 하나인 24 비트의 CRC가 부가될 수 있다.
만약, 이하 상술할 채움비트(Filler bit)의 길이가 '0'이 아니면, 채움비트는 첫 번째 코드블록의 시작부분에 부가될 수 있다. 또한, 입력비트의 길이(B)가 40 비트보다 작은 경우, 채움비트는 상기 코드블록의 시작부분에 부가된다. 채움비트는 상기 기능모듈의 입력부분에서 영(null)으로 설정된다.
입력비트가 분할되어 생성되는 코드블록들의 총 개수(C)는 다음 수학식 29과 같이 계산하여 구할 수 있다.
Figure 112007084508400-PAT00030
수학식 29에서 B는 입력되는 입력비트(또는, 데이터 블록)의 길이를 나타내고, B'는 코드블록의 개수(C)와 오류검출부호(CRC)의 길이(L)를 곱한 값에 입력비트(B)의 길이를 더한 값을 나타낸다. 즉, 코드블록의 개수 및 길이를 구하기 위한 임시적인 중간값을 나타낸다.
수학식 29를 참조하면, 입력비트의 길이(B)가 코드블록이 가질 수 있는 최대길이(Z) 이하이면, 코드블록에 부가될 오류검출부호의 길이는 0 비트로, 코드블록의 총 개수(C)는 1로 설정될 수 있다. 또한, 중간값(B')의 길이는 입력비트의 길이(B)와 같게 설정될 수 있다.
만약, 입력비트의 길이(B)가 코드블록이 가질 수 있는 최대 길이(Z)보다 크 면, 코드블록에 부가될 오류검출부호의 길이는 24 비트로, 코드블록의 총 개수(C)는 입력비트의 길이(B)를 코드블록이 가질 수 있는 최대길이(Z)에서 오류검출부호의 길이를 뺀 값으로 나눈값을 올림한 값으로 설정될 수 있다. 또한, 중간값의 길이(B')는 코드블록의 총 개수(C)와 오류검출부호의 길이(L)를 곱한 값에 입력비트의 길이(B)를 더한 값으로 설정될 수 있다.
코드블록의 개수가 0이 아닌 경우, 상기 기능블록에서 출력되는 코드블록들은 cr0, cr1, cr2, cr3,...,cr ( Kr -1)로 나타낼 수 있다. 이때, 'r'은 코드블록의 번호를 나타내고, 'Kr'은 'r'번째 코드블록의 길이를 나타낸다.
상기 기능모듈에서, 수학식 29를 통해 코드블록의 개수를 구한 다음에 각 코드블록의 길이를 구해야 한다. 입력비트는 서로 동일한 길이를 갖는 코드블록들로 분할될 수 있으며, 특정 길이(예를 들어, 'K+' 또는 'K-')를 갖는 코드블록들로 분할될 수 있다. 이때, 시스템 또는 사용자의 요구사항에 따라 코드블록들은 다양한 길이를 가질 수 있음은 자명하다.
본 발명의 다른 실시예에서, 코드블록들 각각의 길이는 'K+' 와 'K-'의 크기를 가질 수 있다. 이때, 코드블록의 개수는 0 개가 아니어야 한다.
본 발명의 실시예에서 제 1 코드블록(또는, 제 1 세그먼트)의 길이는 'K+'로 나타낼 수 있다.'K+'의 길이는 표 1의 K 값에서 정해질 수 있다. 이때, 코드블록의 총 개수(C)와 코드블록의 길이(K)를 곱한 값이 중간값(B') 이상인 경우를 만족하는 K 값 중 최소의 K 값이 'K+' 값으로 정해질 수 있다.
만약, 코드블록의 개수(C)가 1이라면 'K+'의 길이를 갖는 코드블록의 개수 'C+'는 1개이고, 'K-'의 길이를 갖는 코드블록의 개수'C-'는 0 개이다.
만약, 코드블록의 개수가 두 개 이상(C>1)이라면 제 2 코드블록(또는, 제 2 세그먼트)의 길이(K-)는 표 1의 K 값에서 정해질 수 있으며, 바람직하게는 상기 'K+'보다 작은 K 값들 중 최대값을 갖는 것을 특징으로 한다. 이때, K 값의 변화량(ΔK)은 'K+'와 'K-'의 차이값을 나타낸다.
'K-'의 길이를 갖는 제 2 코드블록들의 개수(C-)는, 총 코드블록의 개수(C)와 제 1 코드블록의 길이(K+)를 곱한 값에서 중간값(B')을 뺀 값을 K 값의 변화량(ΔK)으로 나눈 값을 내림하여 구할 수 있다.
또한, 'K+'의 길이를 갖는 제 1 코드블록들의 개수(C+)는, 코드블록의 총 개수(C)에서 제 2 코드블록들의 개수(C-)를 뺀 값으로 계산할 수 있다.
코드블록의 개수(C) 및 코드블록의 길이(K)를 계산하는 과정에서 코드블록에 포함되는 오류검출부호의 길이(L)를 고려하기 때문에, 코드블록들을 모두 합한 길이가 중간값(B')보다 커지는 경우가 발생할 수 있다. 이러한 경우에는 그 차이만큼 채움 비트(Filler bit)를 계산하여 분할된 코드블록의 최초 코드블록에 부가할 수 있다.
본 발명의 또 다른 실시예에서는, 제 1 코드블록의 개수(C+)와 제 1 코드블록의 길이(K+)를 곱한 값과 제 2 코드블록의 개수(C-)와 제 2 코드블록의 길이(K-)를 곱한 값을 더한 값과 중간값(B')과의 차이 값을 채움 비트로 계산할 수 있다.
표 8은 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
구문 내용
for k = 0 to F-1
c0k = <NULL>
end for
k = F
s = 0
for r = 0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
while (k < Kr-L)
crk = bs
k = k + 1
s = s + 1
end while
if C > 1
while k < Kr
crk = pr ( Kr -k-1) The sequence cro, cr1, cr2,...,cr ( Kr -1) is used to calculate the CRC parity bits pr0, pr1, pr2,..., pr (L-1) according to subclause 5.1.1
k = k + 1
end while
end if
k = 0
end for
표 8을 참조하면, 상기 기능모듈에서 코드블록을 구성하는 경우, CRC 길이를 코드블록에 포함하여 구성하는 과정을 알 수 있다. 표 8에서 cro, cr1, cr2,...,cr( Kr -1)로 표현되는 코드블록 시퀀스는 CRC 패리티 비트(pr0, pr1, pr2,..., pr (L-1))를 계산하는 데 사용될 수 있다.
본 발명의 또 다른 실시예에서 입력되는 데이터 블록에 미리 포함되어 있는 오류검출부호는 TB CRC(Transport Block CRC 또는 제 1 오류검출부호)로 불릴 수 있으며, 분할될 코드블록들에 포함되는 오류검출부호는 CB CRC(Code Block CRC 또는 제 2 오류검출부호)로 불릴 수 있다.
상술한 제 5 실시예에서 입력되는 데이터 블록이 분할되지 않는 경우(즉, C=1 인 경우)에는 최초의 입력 데이터 블록이 TB CRC를 포함하는 최종 코드블록으로 구성될 수 있다. 다만, 사용자의 요구사항 및 발명의 실시 형태에 따라 TB CRC를 제외하고 CB CRC 부호를 부가하여 최종 코드블록을 구성할 수 있다.
< 제 6 실시예 >
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 4 실시예에서 설명된 방법들을 조합하여 구성할 수 있다.
본 발명의 또 다른 실시예에 따른 논리적인 데이터 블록 분할 및 오류검출부호 부가기는 하나의 기능모듈(이하, 기능모듈)로서, 입력되는 데이터 블록을 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할할 수 있다. 단, 입력비트 시퀀스를 코드블록들로 분할하는 경우에는 시스템의 요구사항에 따라 최대로 분할할 수 있는 크기가 정해 진다. 본 발명의 실시예들에서 코드블록이 가질 수 있는 최대 길이(Z)는 바람직하게 6144 비트이다.
기능모듈에 입력되는 입력비트(또는 데이터 블록)의 시퀀스는 b0, b1, b2,..., bB -1로써 나타낼 수 있다. 이때, 입력비트의 크기(B)는 1 이상인 것을 가정한다. 만약, 입력비트의 크기(B)가 코드블록이 가질 수 있는 최대 길이(Z)보다 크다면, 입력비트 시퀀스는 분할된다. 입력비트를 분할할 때, 코드블록들에 부가될 오류검출부호의 길이를 고려할 수 있다.
만약, 이하 상술할 채움 비트(Filler bit)의 길이가 '0'이 아니면, 채움 비트는 첫 번째 코드블록의 시작부분에 부가될 수 있다. 채움 비트는 상기 기능모듈의 입력부분에서 항상 영(null)으로 설정된다.
입력비트가 분할되어 생성되는 코드블록들의 개수(C)는 다음 수학식 30을 이용하여 구할 수 있다.
Figure 112007084508400-PAT00031
수학식 30에서 B는 입력되는 입력비트(또는, 데이터 블록)의 길이를 나타내고, 중간값(B')은 코드블록의 개수(C)와 오류검출부호(CRC)의 길이(L)를 곱한 값에 입력비트(B)의 길이를 더한 값이다. 즉, B'는 코드블록의 길이(K)를 구하기 위한 임시적인 중간값을 나타낸다.
코드블록의 개수가 0이 아닌 경우, 상기 기능블록에서 출력되는 코드블록들은 cr0, cr1, cr2, cr3,...,cr ( Kr -1)로 나타낼 수 있다. 이때, 'r'은 코드블록의 번호를 나타내고, 'Kr'은 'r'번째 코드블록의 길이를 나타낸다.
상기 기능모듈에서, 수학식 30를 통해 코드블록의 개수를 구한 후에 각 코드블록의 길이를 구해야 한다. 코드블록들 각각의 길이는 'K+' 와 'K-'의 크기를 가질 수 있다. 이때, 코드블록의 개수는 0 개가 아니어야 한다.
본 발명의 실시예에서 제 1 코드블록의 길이는 'K+'로 나타낼 수 있다.'K+'의 길이는 표 1의 K 값에서, 바람직하게는 중간값(B')을 코드블록의 개수(C)로 나눈값보다 크거나 같은 K 값들 중 최소값을 갖는 것을 특징으로 한다.
만약, 코드블록의 개수(C)가 '1'이라면 'K+'의 길이를 갖는 제 1 코드블록의 개수 'C+'는 1개이고, 'K-'의 길이를 갖는 코드블록의 개수는 0 개이다.
만약, 코드블록의 개수가 두 개 이상(C>1)이라면, 제 2 코드블록의 길이(K-)는 표 1의 K 값에서, 바람직하게는 'K+'보다 작은 K 값들 중 최대값을 갖는 것을 특징으로 한다. 이때, K 값의 변화량(Δk)은 'K+'와 'K-'의 차이값을 나타낸다.
'K-'의 길이를 갖는 제 2 코드블록들의 개수(C-)는, 총 코드블록의 개수(C) 와 제 1 코드블록의 길이(K+)를 곱한 값에서 중간값(B')을 뺀 값을 K값의 변화량(Δk)으로 나눈 값을 내림하여 구할 수 있다. 또한, 'K+'의 길이를 갖는 제 1 코드블록들의 개수(C+)는, 총 코드블록의 개수(C)에서 제 2 코드블록들의 개수(C-)를 뺀 값으로 계산할 수 있다. 이때, CRC 패리티 비트의 길이(L)는 24 비트로 설정할 수 있다.
코드블록의 개수 및 코드블록의 길이를 계산하는 과정에서 오류검출부호의 길이를 고려하기 때문에, 총 코드블록의 길이가 입력비트의 길이보다 커지는 경우가 발생할 수 있다. 이러한 경우에는 그 차이만큼 채움 비트(filler bit)를 계산하여 분할된 코드블록의 최초 코드블록에 부가할 수 있다.
본 발명의 또 다른 실시예에서는, 제 1 코드블록의 개수(C+)와 제 1 코드블록의 길이(K+)를 곱한 값과 제 2 코드블록의 개수(C-)와 제 2 코드블록의 길이(K-)를 곱한 값을 더한 값과 중간값(B')과의 차이 값을 채움 비트로 계산할 수 있다.
표 9는 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
구문 내용
for k = 0 to F-1
c0k = <NULL>
end for
k = F
s = 0
for r = 0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
while (k < Kr-L)
crk = bs
k = k + 1
s = s + 1
end while
if C > 1
while k < Kr The sequence cro, cr1, cr2,...,cr ( Kr -1) is used to calculate the CRC parity bits pr0, pr1, pr2,..., pr (L-1) according to subclause 5.1.1
crk = pr ( Kr -k-1)
k = k + 1
end while
end if
k = 0
end for
표 9를 참조하면, 상기 기능모듈에서 코드블록을 구성하는 경우, CRC 길이를 코드블록에 포함하여 구성하는 과정을 알 수 있다. 표 8에서 cro, cr1, cr2,...,cr( Kr -1)로 표현되는 코드블록 시퀀스는 CRC 패리티 비트(pr0, pr1, pr2,..., pr (L-1))를 계산하는 데 사용될 수 있다.
< 제 7 실시예 >
본 발명의 도 다른 실시예는 제 1 실시예 내지 제 4 실시예에서 설명된 방법들을 조합하여 구성할 수 있다.
본 발명의 또 다른 실시예에서는 CRC 비트를 부가하고 입력비트를 분할하는 기능을 수행하는 기능모듈을 정의한다. 상기 기능모듈은 입력되는 데이터 블록을 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할할 수 있다. 단, 입력비트 시퀀스를 코드블록들로 분할하는 경우에는 시스템의 요구사항에 따라 최대로 분할할 수 있는 크기가 정해 진다. 본 발명의 실시예들에서 코드블록이 가질 수 있는 최대 길이(Z)는 바람직하게 6144 비트이다.
상기 기능모듈에 입력되는 입력비트를 분할하여 생성되는 코드블록들을 b0, b1, b2,...,bB -1로 나타낼 수 있다. 입력비트의 길이(B)가 코드블록이 가질 수 있는 최대 길이(Z)보다 큰 경우에 입력비트의 분할이 수행될 수 있다.
만약, 입력비트의 길이(B)가 0이 아니고, 이하 계산될 채움 비트(filler bit)가 0이 아니면, 채움비트(F)는 상기 분할된 코드블록 중 최초의 코드블록에 부가된다. 또한, 입력비트의 길이(B)가 40 비트보다 작은 경우에는, 채움 비트는 상기 코드블록의 시작부분에 부가된다. 상기 채움비트는 영(null)으로 설정되어야 한다.
다음 수학식 31은 입력비트를 분할하여 생성되는 코드블록들의 개수를 구하는 방법을 나타낸다.
Figure 112007084508400-PAT00032
수학식 31을 참조하면, 입력비트의 길이(B)가 코드블록이 가질 수 있는 최대 길이(Z)보다 작거나 같은 경우에는 입력비트의 길이(B)가 중간값(B')과 같다. B가 Z보다 큰 경우에는 중간값(B')을 구하는 방법은 다음과 같다.
만약, B를 Z로 나눈값을 올림한 값에 CRC 비트의 길이(L)를 곱한 후 B를 더한 값이 B를 Z로 나눈 값을 올림한 값에 Z를 곱한 값보다 크면, 중간값(B')은 B를 Z로 나눈 값을 정수로 올림한 값에 1을 더한 후 CRC 비트의 길이(L)를 곱한 값에 B를 더한 값이 되고, 그렇지 않으면 중간값(B')은 B를 Z로 나눈값을 올림한 값에 L을 곱한 값에 B를 더한 값으로 결정된다.
상기 과정을 거쳐서 중간값(B')을 계산하면, 코드블록의 총 개수(C)는 중간 값(B')을 코드블록이 가질 수 있는 최대 길이(Z)로 나눈값을 정수로 올림한 값으로 결정될 수 있다. 이때, 상기 기능모듈로부터 분할된 입력비트들은 cr0, cr1, cr2,...,cr ( Kr -1)로 나타낼 수 있다. 이때, 'r'은 코드블록의 번호를 나타내고, 'Kr'은 'r' 번째 코드블록의 길이를 나타낸다.
상기 기능모듈에서, 수학식 31을 통해 코드블록의 개수를 구한 다음에 각 코드블록의 길이를 구해야 한다. 코드블록들 각각의 길이는 'K+' 와 'K-'의 크기를 가질 수 있다. 이때, 코드블록의 개수는 0 개가 아니어야 한다.
본 발명의 실시예에서 제 1 코드블록의 길이는 'K+'로 나타낼 수 있다.'K+'의 길이는 표 1의 K 값에서, 바람직하게는 중간값(B')을 코드블록의 개수(C)로 나눈값보다 크거나 같은 K 값들 중 최소값을 갖는 것을 특징으로 한다.
만약, 코드블록의 개수(C)가 '1'이라면 'K+'의 길이를 갖는 제 1 코드블록의 개수 'C+'는 1개이고, 'K-'의 길이를 갖는 코드블록의 개수는 0 개이다.
만약, 코드블록의 개수가 두 개 이상(C > 1)이라면, 제 2 코드블록의 길이(K-)는 표 1의 K 값에서, 바람직하게는 'K+'보다 작은 K 값들 중 최대값을 갖는 것을 특징으로 한다. 이때, K 값의 변화량(Δk)은 'K+'와 'K-'의 차이값을 나타낸다.
'K-'의 길이를 갖는 제 2 코드블록들의 개수(C-)는, 총 코드블록의 개수(C) 와 제 1 코드블록의 길이(K+)를 곱한 값에서 중간값(B')을 뺀 값을 K값의 변화량(Δk)으로 나눈 값을 내림하여 구할 수 있다. 또한, 'K+'의 길이를 갖는 제 1 코드블록들의 개수(C+)는, 총 코드블록의 개수(C)에서 제 2 코드블록들의 개수(C-)를 뺀 값으로 계산할 수 있다. 이때, CRC 패리티 비트의 크기는 24 비트로 설정할 수 있다.
코드블록의 개수 및 코드블록의 길이를 계산하는 과정에서 오류검출부호의 길이를 고려하기 때문에, 총 코드블록의 길이가 입력비트의 길이보다 커지는 경우가 발생할 수 있다. 이러한 경우에는 그 차이만큼 채움 비트(filler bit)를 계산하여 분할된 코드블록의 최초 코드블록에 부가할 수 있다.
본 발명의 또 다른 실시예에서는, 제 1 코드블록의 개수(C+)와 제 1 코드블록의 길이(K+)를 곱한 값과 제 2 코드블록의 개수(C-)와 제 2 코드블록의 길이(K-)를 곱한 값을 더한 값과 중간값(B')과의 차이 값을 채움 비트로 계산할 수 있다.
다음 표 10은 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
구문 내용
for k = 0 to F-1
c0k = <NULL>
end for
k = F
s = 0
for r = 0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
if(C > 1)
Kr = Kr-L
end
while k < Kr
crk = bs
k = k + 1
s = s + 1
end while
k = 0
end for
표 10을 참조하면, 상기 기능모듈에서 입력비트를 분할하여 코드블록을 구성하는 경우, CRC 길이를 고려하여 코드블록을 구성하는 과정을 알 수 있다.
<제 8 실시예 >
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 4 실시예에 설명된 방법들을 조합하여 구성할 수 있다.
데이터가 큰 사이즈를 갖는 경우, 상기 데이터를 효과적으로 전달하기 위해 시스템의 요구사항에 따라 상기 데이터를 적합한 크기로 나누어 전송할 수 있다. 따라서, 입력되는 데이터 블록을 적절한 방법으로 분할할 필요가 발생한다. 이때, 데이터 블록을 분할하는 방법에 있어서 어떠한 방법으로 분할할 것인지가 중요한 문제가 될 수 있다.
본 발명의 또 다른 실시예에 따른 논리적인 데이터 블록 분할 및 오류검출부호 부가기는 하나의 기능모듈(이하, 기능모듈)로서, 입력되는 데이터 블록을 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할하는 기능을 갖는다. 단, 입력비트 시퀀스를 코드블록들로 분할하는 경우에는 시스템의 요구사항에 따라 최대로 분할할 수 있는 크기가 정해질 수 있다. 본 발명의 실시예들에서 코드블록이 가질 수 있는 최대 길이는 바람직하게 6144 비트이다.
기능모듈에 입력되는 입력비트(또는, 데이터 블록)의 시퀀스는 b0, b1, b2,..., bB -1로써 나타낼 수 있다. 이때, 입력비트의 크기는 'B'로서 나타낼 수 있고 B의 크기는 1 이상인 것을 가정한다. 만약, B가 코드블록이 가질 수 있는 최대 길이(Z)보다 크다면, 입력비트 시퀀스의 분할은 CRC의 크기가 고려되어 분할될 수 있다. 이때 CRC 비트의 길이는 바람직하게 24 비트일 수 있다. 즉, 입력비트 시퀀스가 분할되어 생성되는 각 코드블록에는 오류검출부호 중 하나인 24 비트의 CRC가 부가될 수 있다.
만약, 이하 상술할 채움 비트(Filler bit)의 길이가 '0'이 아니면, 채움 비트는 첫 번째 코드블록의 시작부분에 부가될 수 있다. 또한, 입력비트의 길이(B)가 40 비트보다 작은 경우, 채움 비트는 상기 코드블록의 시작부분에 부가된다. 채움 비트는 상기 기능모듈의 입력부분에서 영(null)으로 설정된다.
입력비트가 분할되어 생성되는 코드블록들의 개수(C)는 다음 수학식 32와 같이 계산하여 구할 수 있다.
Figure 112007084508400-PAT00033
수학식 32에서 'B'는 입력되는 입력비트(또는, 데이터 블록)의 길이를 나타내고, 중간값 B'는 코드블록의 개수(C)와 오류검출부호(CRC)의 길이(L)를 곱한 값에 입력비트(B)의 길이를 더한 값이다. 즉, 코드블록의 개수 및 길이를 구하기 위한 임시적인 중간값을 나타낸다.
코드블록의 개수가 0이 아닌 경우, 상기 기능블록에서 출력되는 코드블록들은 cr0, cr1, cr2, cr3,...,cr ( Kr -1)로 나타낼 수 있다. 이때, 'r'은 코드블록의 번호를 나타내고, 'Kr'은 'r'번째 코드블록의 길이를 나타낸다.
상기 기능모듈에서, 수학식 32를 통해 코드블록의 개수를 구한 다음에 각 코드블록의 길이를 구해야 한다. 코드블록들 각각의 길이는 'K+' 와 'K-'의 크기를 가질 수 있다. 이때, 코드블록의 개수는 1개 이상이어야 한다.
본 발명의 실시예에서 제 1 코드블록의 길이는 'K+'로 나타낼 수 있다.'K+'의 길이는 표 1의 K 값에서, 바람직하게는 중간값(B')을 코드블록의 개수(C)로 나눈값보다 크거나 같은 K 값들 중 최소값을 갖는 것을 특징으로 한다. 만약, 코드블록의 개수가 '1'이라면 'K+'의 길이를 갖는 코드블록의 개수 'C+'는 1개이고, 'K-'의 길이를 갖는 코드블록의 개수는 0 개이다.
만약, 코드블록의 개수가 두 개 이상(C>1)이라면, 제 2 코드블록의 길이(K-)는 표 1의 K 값에서, 바람직하게는 'K+'보다 작은 K 값들 중 최대값을 갖는 것을 특징으로 한다. 이때, K 값의 변화량(ΔK)은 'K+'와 'K-'의 차이값을 나타낸다.
'K-'의 길이를 갖는 제 2 코드블록들의 개수(C-)는, 총 코드블록의 개수(C)와 제 1 코드블록의 길이(K+)를 곱한 값에서 중간값(B')을 뺀 값을 K값의 변화량(ΔK)으로 나눈 값을 내림하여 구할 수 있다. 또한, 'K+'의 길이를 갖는 제 1 코드블록들의 개수(C+)는, 총 코드블록의 개수(C)에서 제 2 코드블록들의 개수(C-)를 뺀 값으로 계산할 수 있다.
코드블록의 개수 및 코드블록의 길이를 계산하는 과정에서 오류검출부호의 길이를 고려하기 때문에, 총 코드블록의 길이가 입력비트의 길이보다 커지는 경우가 발생할 수 있다. 이러한 경우에는 그 차이만큼 채움 비트(Filler bit)를 계산하여 분할된 코드블록의 최초 코드블록에 부가할 수 있다.
본 발명의 또 다른 실시예에서는, 제 1 코드블록의 개수(C+)와 제 1 코드블록의 길이(K+)를 곱한 값과 제 2 코드블록의 개수(C-)와 제 2 코드블록의 길이(K-)를 곱한 값을 더한 값과 중간값(B')과의 차이 값을 채움 비트로 계산할 수 있다.
다음 표 11은 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
구문 내용
for k = 0 to F-1
c0k = <NULL>
end for
k = F
s = 0
for r = 0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
while (k < Kr-L)
crk = bs
k = k + 1
s = s + 1
end while
if C > 1
while k < Kr
crk = pr ( Kr -k-1) The sequence cro, cr1, cr2,...,cr ( Kr -1) is used to calculate the CRC parity bits pr0, pr1, pr2,..., pr (L-1) according to subclause 5.1.1
k = k + 1
end while
end if
k = 0
end for
표 11을 참조하면, 상기 기능모듈에서 코드블록을 구성하는 경우, CRC 길이를 코드블록에 포함하여 구성하는 과정을 알 수 있다. 표 11에서 cro, cr1, cr2,...,cr ( Kr -1)로 표현되는 코드블록 시퀀스는 CRC 패리티 비트(pr0, pr1, pr2,..., pr (L-1))를 계산하는 데 사용될 수 있다.
< 제 9 실시예 >
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 4 실시예에 설명된 방법들을 조합하여 구성할 수 있다.
제 9 실시예에서 설명하는 방법은 제 8 실시예에서 개시하는 방법과 유사하다. 즉, 입력비트를 분할하여 생성되는 코드블록의 개수를 계산하는 방법은 제 8 실시예에서 설명한 방법을 사용할 수 있다. 또한, 채움 비트를 계산하는 방법과 코드블록들의 길이 및 각 길이에 해당하는 코드블록의 개수를 구하는 방법도 제 8 실시예와 유사하다. 이하 분할된 코드블록을 구성하는 방법에서 차이가 있는 부분만을 설명한다.
다음 표 12는 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
구문 내용
for k = 0 to F-1
c0k = <NULL>
end for
k = F
s = 0
for r = 0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
while k < Kr
if (k < Kr - L)
crk = bs
s = s + 1
else
crk = pr ( Kr -k-1) The sequence cro, cr1, cr2,...,cr ( Kr -1) is used to calculate the CRC parity bits pr0, pr1, pr2,..., pr (L-1) according to subclause 5.1.1
end if
k = k + 1
end while
k = 0
end for
표 12를 참조하면, 상기 기능모듈에서 코드블록을 구성하는 경우, CRC 길이를 코드블록에 포함하여 구성하는 과정을 알 수 있다. 표 12에서 cro, cr1, cr2,...,cr(Kr-1)로 표현되는 코드블록 시퀀스는 CRC 패리티 비트(pr0, pr1, pr2,..., pr(L-1))를 계산하는 데 사용될 수 있다.
<제 10 실시예 >
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 4 실시예에서 설명한 방법들을 조합하여 구성할 수 있다.
제 10 실시예는 제 5 실시예와 유사하다. 즉, 제 5 실시예에서 설명한 코드블록의 개수를 구하는 방법, 코드블록의 길이를 구하는 방법, 채움비트를 계산하는 방법은 동일하다. 다만, 각 코드블록에 데이터를 할당함과 동시에 오류검출부호를 부가하는 방법에 있어서 차이가 있다.
다음 표 13은 CRC 부호를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
구문 내용
for k = 0 to F-1
c0k = <NULL>
end for
k = F
s = 0
for r = 0 to C-1
if r < C-
Kr = K-
else
Kr = K+
end if
while (k < Kr-L)
crk = bs
k = k + 1
s = s + 1
end while
if C > 1
while k < Kr The sequence cro, cr1, cr2,...,cr ( Kr -L-1) is used to calculate the CRC parity bits pr0, pr1, pr2,..., pr (L-1) according to subclause 5.1.1 with the generator polynomial gCRCB(D). For CRC calculation it is assumed that filler bits, if present, have the value 0.
crk = pr(k+L- Kr )
k = k + 1
end while
end if
k = 0
end for
표 13에서 기본적인 설명인 표 8에 대한 설명과 유사하다. 따라서 중복되는 부분은 표 8에 대한 설명을 참조하기로 한다.
표 13을 참조하면, 코드블록의 개수(C)가 1개 이상인 경우, 각 코드블록에 CRC 패리티 비트를 할당한다. 이때, 코드블록 시퀀스(예를 들어, cro, cr1, cr2,...,cr(Kr-L-1))는 CRC 패리티 비트(pr0, pr1, pr2,..., pr (L-1))를 계산하는 데 사용될 수 있다. 또한, CRC 패리티 비트는, 코드블록에 포함될 CRC 패리티 비트의 자리에 정방향 또는 역방향으로 부착될 수 있다. 다만, 본 발명의 실시예에서는 CRC 패리티 비트가 정방향으로 부착되는 경우를 가정한다.
다음 수학식 33은 표 13에서 CRC 패리티 비트가 정방향으로 부착되는 것을 나타낸다.
Figure 112007084508400-PAT00034
수학식 33을 참조하면, 코드블록에 입력되는 CRC 패리티 비트(pr (k+L- Kr ))가 정방향으로 부착되는 것을 알 수 있다. 즉, 하나의 코드블록에 데이터가 입력된 후에 CRC 부호가 입력되고, 다른 코드블록에 데이터가 입력된 후에 CRC 부호가 입력된다. 이러한 과정을 통해 코드블록들에 데이터 및 CRC 부호를 동시에 할당할 수 있다.
도 8은 본 발명의 바람직한 실시예를 상세하게 설명하기 위한 흐름도이다.
전송하려 하는 데이터들이 큰 사이즈를 갖는 경우, 시스템의 요구사항에 따라 상기 데이터를 적합한 크기로 나누어 전송할 수 있다. 따라서, 입력되는 데이터 블록을 적절한 방법으로 분할할 필요가 발생한다. 이때, 데이터 블록을 분할하는 방법에 있어서 어떠한 방법으로 분할할 것인지가 중요한 문제가 될 수 있다.
본 발명의 바람직한 실시예에 따른 논리적인 데이터 블록 분할 및 오류검출부호 부가기는 하나의 기능모듈(이하, 기능모듈)로서, 입력되는 데이터 블록을 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할하는 기능을 갖는다. 단, 입력비트 시퀀스를 코드블록들로 분할하는 경우에는 시스템의 요구사항에 따라 최대로 분할할 수 있는 크기가 정해질 수 있다.
도 8을 참조하면, 기능모듈에 분할하기 위한 데이터 블록(B)이 입력된다(S801). 이때, 데이터 블록(B)에는 이미 제 1 CRC 부호가 포함되어 있을 수 있으며, 제 1 CRC 부호는 입력비트에 대한 오류검출부호를 나타낸다.
기능모듈은 입력된 데이터 블록(또는, 입력비트)의 크기(B)를 코드블록이 가질 수 있는 최대 길이(Z)와 비교한다(S802).
S802 단계에서 B가 Z보다 크면, 기능모듈은 코드블록에 부가될 CRC 길이를 고려하여 입력된 데이터 블록이 분할되어 생성되는 총 코드블록의 개수(C)를 계산할 수 있다(S803).
S803 단계에서 기능모듈은 코드블록의 개수(C)를 계산한 후에 각 코드블록들의 길이(K+ 또는 K-)를 계산한다(S804).
S804 단계에서 각 코드블록들의 길이는 다양한 방법으로 계산될 수 있다. 즉, 제 1 실시예 내지 제 9 실시예에서 설명한 코드블록의 길이를 구하는 방법을 이용할 수 있다. 일례로서 중간값(B')을 구한 후에 이를 이용하여 각 코드블록들의 길이를 계산할 수 있다.
S805 단계에서 기능모듈은 CRC 부호의 길이를 고려하여 코드블록의 개수 및 길이를 구한 후에, 코드블록들의 총 길이에서 중간값(B')을 뺀 차이값을 채움 비트(filler bit)로 사용할 수 있다(S805).
상기 S803 내지 S805 단계를 거쳐 코드블록들의 개수 및 길이를 계산한 후에, 기능모듈에서는 데이터와 제 2 CRC 부호를 할당한다(S806). 이때, 제 2 CRC 부호는 데이터 블록(B)에 포함되어 있는 제 1 CRC 부호와는 다른 역할을 수행한다. 즉, 제 1 CRC 부호는 데이터 블록에 대한 오류검출부호이며, 제 2 CRC 부호는 데이터 블록이 분할되어 형성되는 코드블록들에 대한 오류검출부호이다.
S802 단계에서 입력된 데이터 블록의 크기(B)가 코드블록이 가질 수 있는 최대 길이(Z)보다 작으면 데이터 블록을 분할할 필요가 없다. 즉, 코드블록의 개수(C)는 '1'로 설정되고, 코드블록의 길이를 계산하는 단계와 채움비트를 계산하는 단계가 생략된다. 따라서, 입력된 데이터 블록에 바로 데이터를 할당할 수 있다(S807). 이때, 데이터 블록에 포함된 제 1 CRC 부호를 그대로 사용할 수 있고, 새로이 제 2 CRC 부호를 다시 부가하지 않는다.
도 9는 본 발명의 바람직한 실시예에서 사용될 수 있는 코드블록의 개수(C)를 구하는 방법을 나타내는 흐름도이다.
도 9에서 S901 단계 내지 S902 단계는 도 8의 S801 단계 내지 S802 단계와 유사하다. 따라서 이에 대한 설명은 도 8에 갈음한다.
도 9를 참조하면 S901 단계에서 B가 Z보다 긴 경우에 총 코드블록의 개수(C) 는, 입력된 데이터 블록의 길이(B)를 코드블록이 가질 수 있는 최대 길이(Z) 및 코드블록에 부가될 제 2 CRC 부호의 길이(L)와의 차이값으로 나눈값을 올림한 값으로 계산할 수 있다(S903).
만약, S902 단계에서 B가 Z보다 짧은 경우에는 입력된 데이터 블록을 분할할 필요가 없으며, 따라서 코드블록의 개수(C)는 1로 설정될 수 있다(S904).
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
도 1은 일반적으로 사용되는 CRC 부가기 및 데이터 블록 분할기와 각 부분에서 수행되는 단계를 나타내는 도면이다.
도 2는 데이터 블록이 코드블록으로 변화하는 과정을 나타내는 도면이다.
도 3은 본 발명의 일 실시예로서, 코드블록들에 부가될 CRC 길이를 고려한 데이터 블록 분할장치에 대한 블록 다이어그램 및 방법에 대한 흐름도를 나타내는 도면이다.
도 4는 본 발명의 다른 실시예에 따라, 도 3의 방법을 사용하여 데이터 블록을 분할하되, 코드블록들에 CRC를 부가하는 일례를 나타내는 도면이다.
도 5는 본 발명의 다른 실시예에 따라, 도 3의 방법을 사용하여 데이터 블록을 분할하되, 코드블록들에 CRC를 부가하는 다른 일례를 나타내는 도면이다.
도 6은 본 발명의 또 다른 실시예에 따라, CRC 부가기 및 데이터 블록 분할기가 하나의 장치로서 이루어지는 구성을 나타내고, 이에 따라 부가될 CRC의 길이를 고려한 데이터 블록의 분할 및 CRC의 부가 방법을 나타내는 도면이다.
도 7은 도 6의 방법에 의해, CRC의 길이를 고려하여 데이터 블록이 코드블록으로 변화하는 과정을 나타내는 도면이다.
도 8은 본 발명의 바람직한 실시예를 상세하게 설명하기 위한 흐름도이다.

Claims (13)

  1. 입력비트의 길이 및 코드블록들이 가질 수 있는 최대 길이에 대한 정보를 획득하는 단계;
    상기 입력비트의 길이가 상기 코드블록들이 가질 수 있는 최대 길이보다 길면, 상기 코드블록들 각각에 포함될 오류검출부호의 길이를 고려하여, 상기 코드블록들의 개수를 계산하는 단계; 및
    상기 입력비트를 상기 계산된 코드블록들의 개수로 분할하는 단계를 포함하는, 코드블록 분할방법.
  2. 제 1항에 있어서,
    상기 코드블록들의 개수를 계산하는 단계에서,
    상기 코드블록들의 개수는 상기 입력비트의 길이, 상기 코드블록들이 가질 수 있는 최대 길이 및 상기 코드블록들에 포함될 오류검출부호의 길이를 이용하여 계산하는 것을 특징으로 하는 코드블록 분할방법.
  3. 제 1항 또는 제 2항에 있어서,
    상기 코드블록들의 개수는,
    상기 입력비트의 길이를 상기 코드블록들이 가질 수 있는 최대 길이에서 상기 코드블록들에 포함될 오류검출부호의 길이를 뺀 값으로 나눈 값을 올림한 정수 값으로 계산되는 것을 특징으로 하는 코드블록 분할방법.
  4. 제 3항에 있어서,
    상기 코드블록들에 포함될 오류검출부호의 길이는 24 비트인 것을 특징으로 하는 코드블록 분할방법.
  5. 제 1항에 있어서,
    상기 입력비트에는 상기 입력비트에 대한 제 1 오류검출부호를 미리 포함하고 있으며,
    상기 코드블록들 각각에 포함될 제 2 오류검출부호는 상기 코드블록들 각각의 오류 여부 검출을 위해 추가적으로 부가되는 것을 특징으로 하는 코드블록 분할방법.
  6. 제 1항에 있어서,
    상기 코드블록들의 개수를 계산하는 단계에서,
    상기 입력비트의 길이가 상기 코드블록들이 가질 수 있는 최대 길이 이하이면, 상기 코드블록의 개수는 1로 설정되는 것을 특징으로 하는 코드블록 분할방법.
  7. 제 1항에 있어서,
    상기 코드블록들의 개수, 상기 입력비트의 길이 및 상기 오류검출부호의 길 이 중 하나 이상을 이용하여 상기 코드블록들의 길이를 계산하는 단계를 더 포함하는, 코드블록 분할방법.
  8. 제 7항에 있어서,
    상기 코드블록들의 길이는,
    상기 코드블록들의 개수 및 상기 코드블록들의 길이를 곱한 값이 상기 코드블록의 개수와 상기 코드블록에 포함될 오류검출부호의 길이를 곱한 값과 상기 입력비트의 길이를 더한 값 이상인 조건을 만족하는 것을 특징으로 하는 코드블록 분할방법.
  9. 제 8항에 있어서,
    상기 코드블록들 중 제 1 코드블록의 길이는 상기 코드블록들 중 가장 짧은 길이를 갖고,
    상기 코드블록들 중 제 2 코드블록의 길이는 상기 제 1 코드블록보다 짧은 길이 중 최대 길이를 갖는 것을 특징으로 하는, 코드블록 분할 방법.
  10. 제 7항에 있어서,
    상기 코드블록들의 길이를 모두 더한 값에서 상기 코드블록들의 개수와 상기 코드블록에 포함될 오류검출부호의 길이를 곱한 값에 상기 입력비트의 길이를 더한 계산값과의 차이값에 해당하는 길이만큼 임의의 비트를 상기 코드블록들 중 첫 번 째 코드블록에 할당하는 단계를 더 포함하는, 코드블록 분할방법.
  11. 제 10항에 있어서,
    상기 코드블록들 중 첫 번째 코드블록에는, 상기 차이값을 제외한 영역에 데이터 및 상기 첫 번째 코드블록에 대한 오류검출부호를 할당하고,
    상기 코드블록들 중 두 번째 코드블록부터는, 상기 데이터 및 각각의 코드블록에 대한 오류검출부호를 할당하는 단계를 더 포함하는, 코드블록 분할방법.
  12. 제 6항에 있어서,
    상기 입력비트의 길이가 상기 코드블록들이 가질 수 있는 최대 길이 이하이면,
    상기 입력비트에 포함된 상기 입력비트에 대한 오류검출부호의 길이를 제외한 영역에 데이터를 할당하는 단계를 더 포함하는, 코드블록 분할방법.
  13. 무선접속시스템에서 오류검출부호를 고려한 코드블록 분할방법에 있어서,
    입력비트의 길이가 코드블록들이 가질 수 있는 최대 길이보다 길면, 상기 코드블록들에 포함되는 상기 오류검출부호의 길이를 고려하여 상기 입력비트를 분할해서 생성되는 상기 코드블록의 개수를 계산하는 단계; 및
    상기 코드블록의 개수와 상기 오류검출부호의 길이를 곱하고 상기 입력비트를 더한 값을, 상기 코드블록의 개수로 나눠 상기 코드블록의 길이를 계산하는 단 계를 포함하는, 코드블록 분할방법.
KR1020070120389A 2007-08-14 2007-11-23 오류검출부호의 부가를 고려한 코드블록 분할 방법 및코드블록 개수 계산방법 KR20090017382A (ko)

Priority Applications (18)

Application Number Priority Date Filing Date Title
EP13179786.2A EP2663004B1 (en) 2007-08-14 2008-08-14 Method of segmenting a transport block into multiple code blocks when one CRC is added to each code block
ES08793258.8T ES2486940T3 (es) 2007-08-14 2008-08-14 Método de transmisión de datos
EP20080793258 EP2183867B1 (en) 2007-08-14 2008-08-14 Method of transmitting data
CN201310359229.XA CN103441816B (zh) 2007-08-14 2008-08-14 在无线接入系统中发送数据的装置及信道编码方法
JP2010520945A JP5228047B2 (ja) 2007-08-14 2008-08-14 データ伝送方法
US12/191,939 US8219877B2 (en) 2007-08-14 2008-08-14 Method and apparatus for transmitting uplink data in a wireless access system
ES17160374T ES2764425T3 (es) 2007-08-14 2008-08-14 Método de segmentación de un bloque de transporte en múltiples bloques de código cuando se añade una CRC a cada bloque de código
CN2008801115679A CN101821980B (zh) 2007-08-14 2008-08-14 一种发送数据的方法
PCT/KR2008/004744 WO2009022874A1 (en) 2007-08-14 2008-08-14 Method of transmitting data
EP17160374.9A EP3240217B1 (en) 2007-08-14 2008-08-14 Method of segmenting a transport block into multiple code blocks when one crc is added to each code block
PL08793258T PL2183867T3 (pl) 2007-08-14 2008-08-14 Sposób transmisji danych
PT08793258T PT2183867E (pt) 2007-08-14 2008-08-14 Método para transmitir dados
KR20107002033A KR101221915B1 (ko) 2007-08-14 2008-08-14 데이터 전송방법
BRPI0815159-8A BRPI0815159B1 (pt) 2007-08-14 2008-08-14 Método de transmissão dados em sistema de acesso sem fio
US13/488,332 US9154162B2 (en) 2007-08-14 2012-06-04 Method and apparatus for transmitting uplink data in a wireless access system
US13/757,691 US9246513B2 (en) 2007-08-14 2013-02-01 Method and apparatus for transmitting uplink data in a wireless access system
JP2013055156A JP5466317B2 (ja) 2007-08-14 2013-03-18 データ伝送方法
US14/964,270 US9912444B2 (en) 2007-08-14 2015-12-09 Method and apparatus for transmitting uplink data in a wireless access system

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
KR1020070082032 2007-08-14
KR20070082032 2007-08-14
KR20070082236 2007-08-16
KR1020070082236 2007-08-16
US95706307P 2007-08-21 2007-08-21
US60/957,063 2007-08-21
US95733407P 2007-08-22 2007-08-22
US95736907P 2007-08-22 2007-08-22
US60/957,369 2007-08-22
US60/957,334 2007-08-22
US95745407P 2007-08-23 2007-08-23
US60/957,454 2007-08-23

Publications (1)

Publication Number Publication Date
KR20090017382A true KR20090017382A (ko) 2009-02-18

Family

ID=40686212

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020070120389A KR20090017382A (ko) 2007-08-14 2007-11-23 오류검출부호의 부가를 고려한 코드블록 분할 방법 및코드블록 개수 계산방법
KR1020070120390A KR20090017383A (ko) 2007-08-14 2007-11-23 오류검출부호의 부가를 고려한 코드블록 분할 방법 및코드블록 길이 계산방법
KR1020070120391A KR20090017384A (ko) 2007-08-14 2007-11-23 오류검출부호의 부가를 고려한 코드블록 분할 방법

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020070120390A KR20090017383A (ko) 2007-08-14 2007-11-23 오류검출부호의 부가를 고려한 코드블록 분할 방법 및코드블록 길이 계산방법
KR1020070120391A KR20090017384A (ko) 2007-08-14 2007-11-23 오류검출부호의 부가를 고려한 코드블록 분할 방법

Country Status (2)

Country Link
KR (3) KR20090017382A (ko)
RU (1) RU2448417C2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190025902A (ko) * 2016-07-08 2019-03-12 샤프 가부시키가이샤 기지국 장치, 단말 장치, 통신 방법, 및 집적 회로
US11405823B2 (en) 2016-11-23 2022-08-02 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Data processing method, and terminal device and network device

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2017003569A (es) * 2014-09-25 2017-07-14 Sony Corp Dispositivo de comunicacion inalambrica, metodo de comunicacion inalambrica, y programa.
RU2631142C2 (ru) * 2016-02-29 2017-09-19 Федеральное государственное бюджетное образовательное учреждение высшего образования "Владимирский Государственный Университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Способ диагностики циклических кодов
US10425190B2 (en) 2017-09-08 2019-09-24 Huawei Technologies Co., Ltd. Channel encoding method and apparatus in wireless communications
CN108418658B (zh) * 2017-09-08 2019-03-26 华为技术有限公司 编码方法及装置
RU2711354C1 (ru) * 2019-02-20 2020-01-16 Акционерное общество "Воентелеком" Способ передачи данных по асинхронным сетям связи с возможностью восстановления данных при их потере из-за наличия ошибок соединения в сетях связи

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL118832A (en) * 1992-01-16 1998-03-10 Qualcomm Inc Method and device for data integration and transmission and overuse
KR100434463B1 (ko) * 1999-01-07 2004-06-05 삼성전자주식회사 부호분할다중접속 통신시스템의 데이터 통신 장치 및 방법
KR101000388B1 (ko) * 2003-05-15 2010-12-13 엘지전자 주식회사 이동 통신 시스템 및 이 이동 통신 시스템에서 신호를처리하는 방법
JP3880542B2 (ja) * 2003-05-19 2007-02-14 松下電器産業株式会社 誤り訂正符号化/復号化装置および誤り訂正符号化/復号化方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190025902A (ko) * 2016-07-08 2019-03-12 샤프 가부시키가이샤 기지국 장치, 단말 장치, 통신 방법, 및 집적 회로
US11405823B2 (en) 2016-11-23 2022-08-02 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Data processing method, and terminal device and network device
US11974165B2 (en) 2016-11-23 2024-04-30 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Methods, terminal device and network device for code block segmentation

Also Published As

Publication number Publication date
KR20090017384A (ko) 2009-02-18
KR20090017383A (ko) 2009-02-18
RU2010109431A (ru) 2011-09-20
RU2448417C2 (ru) 2012-04-20

Similar Documents

Publication Publication Date Title
KR101221915B1 (ko) 데이터 전송방법
US10063347B2 (en) Signal segmentation method and CRC attachment method for reducing undetected error
KR20090017382A (ko) 오류검출부호의 부가를 고려한 코드블록 분할 방법 및코드블록 개수 계산방법
KR101283724B1 (ko) 무선 통신 시스템에서 다단 순환 중복 검사 코드
US7992069B2 (en) Error correction coding apparatus and error correction decoding apparatus
US7293222B2 (en) Systems and processes for fast encoding of hamming codes
JP5474256B2 (ja) 入力ビット誤り率推定方法、及びその装置
CN101572554B (zh) 生成码率兼容ldpc码及harq方案的方法及装置
EP0600078B1 (en) Apparatus and method for checking messages in packet form with header constituted by routing information and a crc check sequence
CN1756090B (zh) 信道编码装置和方法
JP3639184B2 (ja) 通信システムにおける制御情報の符号化方法
JP2023519407A (ja) データ通信のためのコーディング方法および装置
JP3173713B2 (ja) エラー訂正符号化方法および送受信装置
ES2764425T3 (es) Método de segmentación de un bloque de transporte en múltiples bloques de código cuando se añade una CRC a cada bloque de código