KR101795217B1 - 패리티가 포함된 전송 패킷을 인코딩 또는 디코딩하는 장치 및 방법 - Google Patents
패리티가 포함된 전송 패킷을 인코딩 또는 디코딩하는 장치 및 방법 Download PDFInfo
- Publication number
- KR101795217B1 KR101795217B1 KR1020160026924A KR20160026924A KR101795217B1 KR 101795217 B1 KR101795217 B1 KR 101795217B1 KR 1020160026924 A KR1020160026924 A KR 1020160026924A KR 20160026924 A KR20160026924 A KR 20160026924A KR 101795217 B1 KR101795217 B1 KR 101795217B1
- Authority
- KR
- South Korea
- Prior art keywords
- parity
- data
- bits
- error
- bit
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
- H04L1/0042—Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting 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)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
본 발명의 일실시예에 따르면, N자리의 비트들로 구성된 데이터를 식별하는 단계, 상기 데이터에서 이웃하는 두 비트들을 연산하여 N-1자리의 비트들로 구성된 패리티를 생성하는 단계 및 상기 데이터와 패리티를 결합하여 전송 패킷을 생성하는 단계를 포함하는 인코딩 방법이 제공된다.
또한, 본 발명의 일실시예에 따르면, 데이터와 제1 패리티가 결합된 전송 패킷을 식별하는 전송 패킷 식별부 - 상기 제1 패리티는, N자리의 비트들로 구성된 데이터에서 이웃하는 두 비트들을 연산함으로써 도출된 N-1자리의 비트들을 포함함-, 상기 전송 패킷의 데이터에서 이웃하는 두 비트들을 연산하여 새로운 제2 패리티를 생성하는 패리티 생성부, 상기 제1 패리티와 상기 제2 패리티를 비교하여 상기 데이터에 오류가 발생했는지 여부를 판단하는 오류 판단부 및 상기 데이터에 오류가 발생된 경우, 상기 제1 패리티 및 상기 제2 패리티 간의 차이를 고려하여 상기 데이터의 오류를 정정하는 오류 정정부를 포함하는 디코딩 방법이 제공된다.
또한, 본 발명의 일실시예에 따르면, 데이터와 제1 패리티가 결합된 전송 패킷을 식별하는 전송 패킷 식별부 - 상기 제1 패리티는, N자리의 비트들로 구성된 데이터에서 이웃하는 두 비트들을 연산함으로써 도출된 N-1자리의 비트들을 포함함-, 상기 전송 패킷의 데이터에서 이웃하는 두 비트들을 연산하여 새로운 제2 패리티를 생성하는 패리티 생성부, 상기 제1 패리티와 상기 제2 패리티를 비교하여 상기 데이터에 오류가 발생했는지 여부를 판단하는 오류 판단부 및 상기 데이터에 오류가 발생된 경우, 상기 제1 패리티 및 상기 제2 패리티 간의 차이를 고려하여 상기 데이터의 오류를 정정하는 오류 정정부를 포함하는 디코딩 방법이 제공된다.
Description
본 발명은 데이터 통신에 관한 것으로, 보다 구체적으로는 디지털 방식에 따라 정보를 송신 및 수신하는 장치 및 방법에 관한 것이다.
전기적 방법으로 정보를 통신함에 있어서, 정보를 0 및 1로 인코딩한 디지털 신호를 전송하는 디지털 방식이 널리 이용되고 있다. 디지털 신호는 전송중에 노이즈의 영향을 받을 수 있다. 디지털 신호는 노이즈의 영향에도 불구하고, 특정 문턱 값(threshold value)을 초과하지 않는다면, 손상되지 않는다. 따라서, 디지털 방식은 아날로그 신호를 전송하는 아날로그 방식보다 노이즈의 영향을 덜 받는다.
그러나 디지털 방식 또한 노이즈의 영향을 완전히 제거할 수는 없으며, 노이즈로 인하여 디지털 신호가 손상되어 오류가 발생할 수 있다. 따라서, 전송 과정에서 발생하는 오류를 검출하고 정정하는 방법에 대한 연구가 수행되고 있다. 전송 과정에서 발생하는 오류를 검출하고 정정할 수 있는 방법 중에서, 오류의 검출 및 정정에 사용할 수 있는 패리티를 생성하고 전송하는 방법에 대한 연구가 수행되고 있다.
본 발명은 전송 과정에서 발생하는 오류를 검출하고 정정할 수 있는 패리티를 생성하는 인코딩 방법 및 장치를 제안한다.
본 발명은 보다 빠르게 전송 패킷의 오류를 검출하고 정정할 수 있는 디코딩 방법 및 장치를 제안한다.
본 발명의 일실시예에 따르면, N자리의 비트들로 구성된 데이터를 식별하는 단계, 상기 데이터에서 이웃하는 두 비트들을 연산하여 N-1자리의 비트들로 구성된 패리티를 생성하는 단계 및 상기 데이터와 패리티를 결합하여 전송 패킷을 생성하는 단계를 포함하는 인코딩 방법이 제공된다.
일실시예에 따르면, 상기 패리티를 생성하는 단계는, 상기 데이터에서 이웃하는 두 비트들을 XOR연산하여 상기 패리티를 생성하는 인코딩 방법이 제공된다.
본 발명의 일실시예에 따르면, 데이터와 제1 패리티가 결합된 전송 패킷을 식별하는 단계 - 상기 제1 패리티는, N자리의 비트들로 구성된 데이터에서 이웃하는 두 비트들을 연산함으로써 도출된 N-1자리의 비트들을 포함함-, 상기 전송 패킷의 데이터에서 이웃하는 두 비트들을 연산하여 새로운 제2 패리티를 생성하는 단계, 상기 제1 패리티와 상기 제2 패리티를 비교하여 상기 데이터에 오류가 발생했는지 여부를 판단하는 단계 및 상기 데이터에 오류가 발생된 경우, 상기 제1 패리티 및 상기 제2 패리티 간의 차이를 고려하여 상기 데이터의 오류를 정정하는 단계를 포함하는 디코딩 방법이 제공된다.
일실시예에 따르면, 상기 제2 패리티를 생성하는 단계는, 상기 데이터에서 이웃하는 두 비트들을 XOR연산하여 상기 제2 패리티를 생성하는 디코딩 방법이 제공된다.
일실시예에 따르면, 상기 데이터의 오류를 정정하는 단계는, 상기 제1 패리티의 비트 값 및 상기 제2 패리티의 비트 값이 서로 다른 자리를 탐지하는 단계를 포함하는 디코딩 방법이 제공된다.
일실시예에 따르면, 상기 데이터의 오류를 정정하는 단계는, 상기 제1 패리티 및 상기 제2 패리티의 제k 비트 및 제k+1 비트가 서로 다른 경우, 상기 데이터의 제k+1 비트를 플립(flip)하는 디코딩 방법이 제공된다.
일실시예에 따르면, 상기 데이터의 오류를 정정하는 단계는, 상기 제1 패리티 및 상기 제2 패리티의 제k 비트 및 제 k+2 비트가 서로 다른 경우, 상기 데이터의 제k+1 비트 및 제k+2비트를 플립하는 디코딩 방법이 제공된다.
본 발명의 일실시예에 따르면, N자리의 비트들로 구성된 데이터를 식별하는 데이터 식별부, 상기 데이터에서 이웃하는 두 비트들을 연산하여 N-1자리의 비트들로 구성된 패리티를 생성하는 패리티 생성부 및 상기 데이터와 패리티를 결합하여 전송 패킷을 생성하는 전송 패킷 생성부를 포함하는 인코딩 장치가 제공된다.
본 발명의 일실시예에 따르면, 데이터와 제1 패리티가 결합된 전송 패킷을 식별하는 전송 패킷 식별부 - 상기 제1 패리티는, N자리의 비트들로 구성된 데이터에서 이웃하는 두 비트들을 연산함으로써 도출된 N-1자리의 비트들을 포함함-, 상기 전송 패킷의 데이터에서 이웃하는 두 비트들을 연산하여 새로운 제2 패리티를 생성하는 패리티 생성부, 상기 제1 패리티와 상기 제2 패리티를 비교하여 상기 데이터에 오류가 발생했는지 여부를 판단하는 오류 판단부 및 상기 데이터에 오류가 발생된 경우, 상기 제1 패리티 및 상기 제2 패리티 간의 차이를 고려하여 상기 데이터의 오류를 정정하는 오류 정정부를 포함하는 디코딩 방법이 제공된다.
본 발명의 일실시예에 따르면, 전송 과정에서 발생하는 오류를 검출하고 정정할 수 있는 패리티를 생성할 수 있다.
본 발명의 일실시예에 따르면, 보다 빠르게 전송 패킷의 오류를 검출하고 정정할 수 있다.
도 1은 일실시예에 따른 인코딩 장치 및 디코딩 장치가 배치된 통신 시스템의 구조를 도시한 도면이다.
도 2는 일실시예에 따른 인코딩 장치가 수행하는 동작을 도시한 흐름도이다.
도 3은 일실시예에 따른 디코딩 장치가 수행하는 동작을 도시한 흐름도이다.
도 4는 일실시예에 따른 인코딩 장치가 데이터로부터 생성한 전송 패킷의 구조를 도시한 예시적인 도면이다.
도 5는 일실시예에 따른 디코딩 장치가 수신한 전송 패킷의 오류를 정정하는 과정을 설명하기 위한 예시적인 도면이다.
도 6a 내지 6b는 일실시예에 따른 인코딩 장치 및 디코딩 장치가 오류를 정정한 결과를 도시한 그래프이다.
도 2는 일실시예에 따른 인코딩 장치가 수행하는 동작을 도시한 흐름도이다.
도 3은 일실시예에 따른 디코딩 장치가 수행하는 동작을 도시한 흐름도이다.
도 4는 일실시예에 따른 인코딩 장치가 데이터로부터 생성한 전송 패킷의 구조를 도시한 예시적인 도면이다.
도 5는 일실시예에 따른 디코딩 장치가 수신한 전송 패킷의 오류를 정정하는 과정을 설명하기 위한 예시적인 도면이다.
도 6a 내지 6b는 일실시예에 따른 인코딩 장치 및 디코딩 장치가 오류를 정정한 결과를 도시한 그래프이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 인코딩 장치(110) 및 디코딩 장치(130)가 배치된 통신 시스템의 구조를 도시한 도면이다.
도 1을 참고하면, 일실시예에 따른 인코딩 장치(110)는 전송하고자 하는 정보가 디지털 신호로 인코딩된 데이터를 수신할 수 있다. 일실시예에 따른 인코딩 장치(110)는 N자리의 비트들로 구성된 데이터를 식별하는 데이터 식별부(111)를 포함할 수 있다. 데이터 식별부(111)가 식별한 데이터의 제k 비트를 Sk라 할 때에, 데이터 식별부(111)가 식별한 데이터를 S = {S1 S2 … SN}로 표현할 수 있다.
도 1을 참고하면, 일실시예에 따른 인코딩 장치(110)는 데이터에서 이웃하는 두 비트들을 연산하여 N-1자리의 비트들로 구성된 패리티를 생성하는 패리티 생성부(112)를 포함할 수 있다. 패리티 생성부(112)는 패리티의 각 비트를 데이터에서 이웃하는 두 비트를 XOR 연산하여 결정할 수 있다. 따라서, 인코딩 장치(110)를 구성하는 회로를 간단하게 설계할 수 있다. 더 나아가서, 인코딩 장치(110)는 빠른 속도로 인코딩을 수행할 수 있다.
도 1을 참고하면, 일실시예에 따른 인코딩 장치(110)는 데이터와 패리티를 결합하여 전송 패킷(120)을 생성하는 전송 패킷 생성부(113)를 포함할 수 있다. 데이터가 N자리의 비트로 구성되고, 패리티가 N-1자리의 비트로 구성되므로, 전송 패킷 생성부(113)가 생성한 패킷의 길이는 2N-1이다.
인코딩 장치(110)가 생성한 전송 패킷(120)은 통신 채널(121)을 통과한 다음, 디코딩 장치(130)로 전송된다. 전송 패킷(120)은 통신 채널(121)에서 노이즈의 영향을 받을 수 있다. 통신 채널(121)은 AWGN (Additive White Gaussian Noise) 통신 채널일 수 있다. 따라서, 디코딩 장치(130)가 수신한 전송 패킷(122)은 노이즈에 의한 오류로 인하여, 인코딩 장치(110)가 전송한 전송 패킷(120)과 다를 수 있다.
도 1을 참고하면, 일실시예에 따른 디코딩 장치(130)는 데이터와 제1 패리티가 결합된 전송 패킷을 식별하는 전송 패킷 식별부(131)를 포함할 수 있다. 이후 설명하는 바와 같이, 디코딩 장치(130)가 수신한 데이터로부터 별도의 패리티를 생성할 수 있으므로, 이하에서는 전송 패킷 식별부(131)가 전송 패킷으로부터 식별한 패리티를 제1 패리티로, 디코딩 장치(130)가 생성한 별도의 패리티를 제2 패리티로 서술한다. 디코딩 장치(130)는 전송 패킷을 분할하여 데이터 및 제1 패리티를 식별할 수 있다. 디코딩 장치(130)는 전송 패킷을 분할하는데 필요한 정보를 인코딩 장치(110)로부터 수신할 수 있다.
도 1을 참고하면, 일실시예에 따른 디코딩 장치(130)는 전송 패킷(122)의 데이터에서 이웃하는 두 비트들을 연산하여 새로운 제2 패리티를 생성하는 패리티 생성부(132)를 포함할 수 있다. 일실시예에 따르면, 디코딩 장치(130)는 인코딩 장치(110)의 패리티 생성부(112)가 패리티를 생성하는 것과 동일한 방식으로 제2 패리티를 생성할 수 있다. 따라서, 전송 패킷(122)이 오류를 포함하지 않는 경우, 제1 패리티 및 제2 패리티는 서로 동일할 수 있다. 하지만, 전송 패킷(122)이 오류를 포함한다면, 제1 패리티 및 제2 패리티는 서로 다를 것이다.
도 1을 참고하면, 일실시예에 따른 디코딩 장치(130)는 제1 패리티와 상기 제2 패리티를 비교하여 수신한 데이터에 오류가 발생했는지 여부를 판단하는 오류 판단부(133)를 포함할 수 있다. 앞서 설명한 바를 참고하면, 오류 판단부(133)는 제1 패리티 및 제2 패리티 간에 차이가 존재하는 지를 탐지함으로써, 수신한 데이터에 오류가 발생하였는지 탐지할 수 있다. 일실시예에 따르면, 오류 판단부(133)는 제1 패리티의 비트 값 및 제2 패리티의 비트 값이 서로 다른 자리를 탐지할 수 있다.
도 1을 참고하면, 일실시예에 따른 디코딩 장치(130)는 데이터에 오류가 발생된 경우, 제1 패리티 및 제2 패리티 간의 차이를 고려하여 데이터의 오류를 정정하는 오류 정정부(134)를 포함할 수 있다. 오류 정정부(134)는 오류 판단부(133)가 탐지한 제1 패리티의 비트 값 및 제2 패리티의 비트 값이 서로 다른 자리에 기초하여, 데이터의 오류를 정정할 수 있다. 오류 정정부(134)는 데이터에서, 제1 패리티의 비트 값 및 제2 패리티의 비트 값이 서로 다른 자리에 대응하는 자리에 인접한 적어도 하나의 비트를 플립(flip)함으로써, 데이터의 오류를 정정할 수 있다.
일실시예에 따르면, 디코딩 장치(130)는 XOR연산에 기초하여 제1 패리티의 비트 값 및 제2 패리티의 비트 값이 서로 다른 자리를 탐지할 수 있다. 따라서, 디코딩 장치(130)를 구성하는 회로를 간단하게 설계할 수 있다. 또한, 디코딩 장치(130)는 빠른 속도로 디코딩을 수행할 수 있다.
도 2는 일실시예에 따른 인코딩 장치가 수행하는 동작을 도시한 흐름도이다. 일실시예에 따른 인코딩 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체가 제공될 수 있다. 상기 프로그램은 인코딩 방법을 저장한 응용 프로그램, 디바이스 드라이버(device driver), 펌웨어(firmware), 미들웨어(middleware), 동적 링크 라이브러리(DLL, Dynamic-Link Library) 및 애플릿(applet) 중 적어도 하나를 포함할 수 있다. 본 발명의 일실시예에 따르면, 인코딩 장치는 프로세서를 포함하고, 프로세서는 인코딩 방법이 기록된 기록 매체를 판독함으로써, 인코딩 방법을 수행할 수 있다.
이하에서는, 일실시예에 따른 인코딩 장치가 5자리의 비트로 구성된 데이터 S = {0 1 1 0 1}를 인코딩 하는 경우를 가정한다. 일실시예에 따른 인코딩 장치는 5자리의 비트로 구성된 데이터뿐만 아니라 다른 개수의 비트로 구성된 데이터도 인코딩할 수 있다.
도 2를 참고하면, 단계(210)에서, 일실시예에 따른 인코딩 장치는 N자리의 비트들로 구성된 데이터를 식별할 수 있다. 앞서 가정한 실시예에서, 인코딩 장치는 S = {0 1 1 0 1}를 식별할 수 있다.
단계(220)에서, 일실시예에 따른 인코딩 장치는 데이터에서 이웃하는 두 비트들을 연산하여 N-1자리의 비트들로 구성된 패리티를 생성할 수 있다. 인코딩 장치는 데이터에서 이웃하는 두 비트들을 XOR연산하여 패리티를 생성할 수 있다. 인코딩 장치가 생성한 패리티 P = {P1 P2 … PN - 1}로 표현할 때에, 인코딩 장치는 패리티의 제k 비트 Pk를 수학식 1에 기초하여 결정할 수 있다.
따라서, 인코딩 장치가 데이터 S = {S1 S2 … SN}로부터 패리티 P = {XOR(S1, S2) XOR(S2, S3) XOR(S3, S4) … XOR(SN -1, SN)}를 생성할 수 있다. 즉, 데이터에서 S1 및 SN를 제외한 나머지 비트는 두 개의 패리티 비트에 영향을 미칠 수 있다. 수학식 1을 참고할 때에, 앞서 가정한 실시예에서 인코딩 장치가 생성한 패리티는 P = {1 0 1 1}이다.
단계(230)에서, 일실시예에 따른 인코딩 장치는 데이터와 패리티를 결합하여 전송 패킷을 생성할 수 있다. 인코딩 장치가 데이터 및 패리티를 결합하는 순서는 미리 설정되거나 또는 동적으로 변경될 수 있다. 데이터가 N자리의 비트로 구성되고, 패리티가 N-1자리의 비트로 구성되므로, 인코딩 장치가 생성한 전송 패킷의 길이는 2N-1이다. 앞서 가정한 실시예에서, 인코딩 장치가 생성한 전송 패킷의 길이는 9이다. 인코딩 장치는 데이터 및 패리티를 순서대로 결합하여 전송 패킷 {0 1 1 0 1 1 0 1 1}을 생성할 수 있다.
일실시예에 따른 인코딩 장치는 데이터에서 이웃하는 두 비트들을 단순히 XOR연산하여 패리티를 생성할 수 있다. 따라서, 인코딩 장치는 하드웨어 또는 프로그램으로 간단하게 구현될 수 있다. 더 나아가서, 인코딩 장치는 간단한 구조로 인하여 보다 빠르게 전송 패킷을 생성할 수 있다.
인코딩 장치가 생성한 전송 패킷은 통신 채널을 통하여 디코딩 장치로 전송될 수 있다. 전송 패킷은 통신 채널을 통과하는 동안 노이즈의 영향을 받을 수 있다. 따라서, 디코딩 장치가 수신하는 전송 패킷의 일부 비트는 인코딩 장치가 생성한 전송 패킷과 다를 수 있다. 일실시예에 따른 디코딩 장치는 수신한 전송 패킷의 오류를 정정할 수 있다. 이하에서는, 도 2에서 생성한 전송 패킷 {0 1 1 0 1 1 0 1 1}이 통신 채널을 통과한 것으로 가정한다.
도 3은 일실시예에 따른 디코딩 장치가 수행하는 동작을 도시한 흐름도이다. 일실시예에 따른 디코딩 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체가 제공될 수 있다. 상기 프로그램은 디코딩 방법을 저장한 응용 프로그램, 디바이스 드라이버, 펌웨어, 미들웨어, 동적 링크 라이브러리(DLL) 및 애플릿 중 적어도 하나를 포함할 수 있다. 본 발명의 일실시예에 따르면, 디코딩 장치는 프로세서를 포함하고, 프로세서는 디코딩 방법이 기록된 기록 매체를 판독함으로써, 디코딩 방법을 수행할 수 있다.
도 3을 참고하면, 단계(310)에서, 일실시예에 따른 디코딩 장치는 데이터와 제1 패리티가 결합된 전송 패킷을 식별할 수 있다. 디코딩 장치는 일실시예에 따른 인코딩 장치가 생성한 전송 패킷을 수신하므로, 전송 패킷의 제1 패리티는, N자리의 비트들로 구성된 데이터에서 이웃하는 두 비트들을 연산함으로써 도출된 N-1자리의 비트들을 포함할 수 있다. 디코딩 장치는 전송 패킷을 분할하여 N자리의 비트들로 구성된 데이터 S’ = {S1’ S2’ … SN’} 및 N-1자리의 비트들로 구성된 제1 패리티 P’ = {P1’ P2’ … PN-1’}를 식별할 수 있다.
도 3을 참고하면, 단계(320)에서, 일실시예에 따른 디코딩 장치는 전송 패킷의 데이터에서 이웃하는 두 비트들을 연산하여 새로운 제2 패리티를 생성할 수 있다. 일실시예에 따르면, 제2 패리티는 N-1자리의 비트들로 구성될 수 있으며, 인코딩 장치가 패리티 P를 생성한 것과 동일한 방식으로 생성될 수 있다. 즉, 디코딩 장치는 제2 패리티 Q = {Q1 Q2 … QN - 1}의 제k 비트 Qk를 수학식 1에 기초하여 결정할 수 있다.
다시 말하면, 디코딩 장치는 수신한 데이터 S’ = {S1’ S2’ … SN’}에서 이웃하는 두 비트들을 XOR연산하여 제2 패리티 Q = {XOR(S1’, S2’) XOR(S2’, S3’) XOR(S3’, S4’) … XOR(SN -1’, SN’)}를 생성할 수 있다. 따라서, 수신한 데이터 S’이 인코딩 장치에서 생성한 데이터 S와 동일하다면, 제2 패리티 Q는 제1 패리티 P’와 동일할 것이다.
도 3을 참고하면, 단계(330)에서, 일실시예에 따른 디코딩 장치는 제1 패리티 P’와 제2 패리티 Q를 비교하여 수신한 데이터 S’에 오류가 발생했는지 여부를 판단할 수 있다. 제1 패리티 P’와 제2 패리티 Q가 서로 동일하지 않은 경우, 일실시예에 따른 디코딩 장치는 수신한 데이터 S’에 오류가 발생한 것으로 결정할 수 있다. 만약, 제1 패리티 P’와 제2 패리티 Q가 서로 동일하다면, 일실시예에 따른 디코딩 장치는 오류가 없는 것으로 판정하고, 수신한 데이터 S’을 출력할 수 있다.
일실시예에 따른 디코딩 장치는 제1 패리티 P’의 비트 값 및 제2 패리티 Q의 비트 값이 서로 다른 자리를 탐지할 수 있다. 보다 구체적으로, 디코딩 장치는 제1 패리티 P’ 및 제2 패리티 Q를 자리 별로 비교할 수 있다. 만약, 제1 패리티 P’의 제a 비트 Pa’ 및 제2 패리티 Q의 제a 비트 Qa가 서로 다른 경우(Pa’ ≠ Qa), 디코딩 장치는 패리티의 제a 비트에서 차이가 발생하는 것으로 탐지할 수 있다. 이 경우, 디코딩 장치는 수신한 데이터 S’에 오류가 발생한 것으로 결정할 수 있고, 단계(340)으로 진행할 수 있다. 모든 자리에 대하여 제1 패리티 P’의 비트 값 및 제2 패리티 Q의 비트 값이 동일하다면, 디코딩 장치는 오류가 없는 것으로 판정할 수 있다.
도 3을 참고하면, 단계(340)에서, 일실시예에 따른 디코딩 장치는 데이터에 오류가 발생된 경우, 제1 패리티 P’ 및 제2 패리티 Q 간의 차이를 고려하여 데이터 S’의 오류를 정정할 수 있다. 디코딩 장치는 단계(330)에서 탐지한 제1 패리티 P’의 비트 값 및 제2 패리티 Q의 비트 값이 서로 다른 자리를 고려하여 데이터 S’의 오류를 정정할 수 있다.
수학식 1에 기초하여 제2 패리티 Q가 생성되므로, 앞서 설명한 바와 같이, 데이터 S’에서 특정 1 비트에 발생한 오류는 제2 패리티 Q의 두 개의 비트에 영향을 미칠 수 있다. 따라서, 데이터 S’에서 특정 1 비트에 오류가 발생된 경우, 제1 패리티 P’의 비트 값 및 제2 패리티 Q의 비트 값은 2개의 자리에서 서로 다를 수 있다. 보다 구체적으로, 수학식 1을 참고하면, 데이터 S’의 제a+1 비트에서 오류가 발생된 경우, 제1 패리티 P’의 비트 값 및 제2 패리티 Q의 비트 값은 2개의 연속된 자리(제a 비트 및 제a+1 비트)에서 서로 다를 수 있다.
일실시예에 따른 디코딩 장치는 제1 패리티 P’ 및 상기 제2 패리티 Q의 제a 비트 및 제a+1 비트가 서로 다른 경우, 수신한 데이터 S’의 제a+1 비트를 플립할 수 있다. 앞서 가정한 바와 같이, 전송 패킷 {0 1 1 0 1 1 0 1 1}이 통신 채널을 통과한 이후, 데이터의 제3 비트에서 오류가 발생하여 {0 1 0 0 1 1 0 1 1}이 전달되었다고 가정하자. 디코딩 장치가 수신한 데이터 S’은 {0 1 0 0 1}이므로, 제2 패리티 Q 는 수학식 1을 참고할 때에, {1 1 0 1}일 수 있다.
따라서, 디코딩 장치는 제1 패리티 P’ = {1 0 1 1} 및 Q = {1 1 0 1}을 비교할 때에, 제2비트 및 제3 비트가 서로 다르므로, 수신한 데이터 S’에 오류가 발생하였음을 탐지할 수 있다. 더 나아가서, 수신한 데이터 S’의 제3 비트를 0에서 1로 플립함으로써, 최종적으로 오류가 정정된 데이터 {0 1 1 0 1}를 출력할 수 있다.
따라서, 디코딩 장치는 특정 1 비트에서 발생한 오류를 정정할 수 있다. 더 나아가서, 디코딩 장치는 수신한 데이터에서 이산적으로 발생한 오류를 정정할 수 있다. 또한, 디코딩 장치는 제1 패리티 P’의 비트 값 및 제2 패리티 Q의 비트 값이 2개의 연속된 자리에서 서로 다른 경우, 수신한 데이터의 연속하지 않은 1 비트에서 오류가 발생하였음을 탐지할 수 있다.
수신한 데이터의 비트 중에서, 연속된 2개의 비트에서 오류가 발생된 경우, 수학식 1을 참고하면, 제1 패리티 P’의 비트 값 및 제2 패리티 Q의 비트 값이 1 비트의 간격을 두고 서로 다를 수 있다. 전송 패킷 {0 1 1 0 1 1 0 1 1}이 통신 채널을 통과한 이후, 데이터의 연속된 제2, 3 비트에서 오류가 발생하여 {0 0 0 0 1 1 0 1 1}이 전달되었다고 가정하자. 디코딩 장치가 수신한 데이터 S’은 {0 0 0 0 1}이므로, 제2 패리티 Q 는 수학식 1을 참고할 때에, {0 0 0 1}일 수 있다. 따라서, 제1 패리티 P’ = {1 0 1 1} 및 Q = {0 0 0 1}을 비교할 때에, 제1 비트 및 제3 비트가 서로 다름을 알 수 있다. 즉, 수신한 데이터의 연속된 제a+1 비트 및 제a+2 비트에서 오류가 발생한 경우, 제1 패리티 P’의 비트 값 및 제2 패리티 Q의 비트 값이 1 비트의 간격(제a 비트 및 제a+2 비트)을 두고 서로 다름을 알 수 있다.
일실시예에 따른 디코딩 장치는 제1 패리티 P’ 및 상기 제2 패리티 Q의 제a 비트 및 제 a+2 비트가 서로 다른 경우, 상기 데이터의 제a+1 비트 및 제a+2비트를 플립할 수 있다. 앞서 가정한 실시예에서, 디코딩 장치는 제1 비트 및 제3 비트가 서로 다르므로, 수신한 데이터 S’의 제2 비트 및 제3 비트를 플립할 수 있다. 따라서, 디코딩 장치는 오류가 정정된 데이터 {0 1 1 0 1}를 출력할 수 있다.
따라서, 디코딩 장치는 연속된 2개의 비트에서 동시에 발생한 오류를 정정할 수 있다. 또한, 디코딩 장치는 제1 패리티 P’의 비트 값 및 제2 패리티 Q의 비트 값이 1 비트의 간격을 두고 서로 다른 경우, 수신한 데이터의 연속된 2개의 비트에서 오류가 발생하였음을 탐지할 수 있다.
일실시예에 따른 디코딩 장치는 수신한 전송 패킷에 포함된 제1 패리티 및 수신한 데이터에 따라 생성한 제2 패리티를 단순 비교함으로써, 수신한 데이터에 오류가 발생하였는지를 빠르게 확인할 수 있다. 또한, 디코딩 장치는 제2 패리티를 수신한 데이터에서 이웃하는 두 비트들을 XOR연산하여 생성하므로, 제2 패리티를 빠르게 생성할 수 있다. 더 나아가서, 디코딩 장치는 제1 패리티 및 제2 패리티의 차이에 기초하여, 수신한 데이터의 특정 비트를 단순히 플립하여 오류를 정정하므로 디코딩 장치는 오류를 빠르게 정정할 수 있다. 또한, 디코딩 장치는 비교적 간단한 하드웨어 또는 소프트웨어로 구현될 수 있다.
도 4는 일실시예에 따른 인코딩 장치가 데이터로부터 생성한 전송 패킷의 구조를 도시한 예시적인 도면이다. 도 4를 참고하면, 일실시예에 따른 인코딩 장치가 6 자리의 비트로 구성된 데이터(410) {0 1 1 0 1 0}가 도시된다.
일실시예에 따른 인코딩 장치는 데이터(410)를 수학식 1에 기초하여 인코딩함으로써, 패리티(420) {1 0 1 1 1}을 생성할 수 있다. 도 4를 참고하면, 인코딩 장치는 데이터(410)의 이웃하는 두 비트들을 XOR 연산하여 패리티(420)를 생성할 수 있다. 따라서, 패리티(420)는 5 자리의 비트로 구성될 수 있다.
일실시예에 따른 인코딩 장치는 데이터(410) 및 패리티(420)를 결합하여 전송 패킷(430)을 생성할 수 있다. 도 4를 참고하면, 인코딩 장치는 데이터(410) 및 패리티(420) 순서로 결합하여 11 자리의 비트로 구성된 전송 패킷(430)을 생성할 수 있다. 일실시예에 따르면, 인코딩 장치는 데이터(410) 및 패리티(420)를 다른 방식으로 결합할 수 있으며, 예를 들어, 패리티(420) 및 데이터(410) 순서로 결합하여 전송 패킷을 생성할 수 있다.
도 5는 일실시예에 따른 디코딩 장치가 수신한 전송 패킷의 오류를 정정하는 과정을 설명하기 위한 예시적인 도면이다. 이하에서는, 디코딩 장치가 수신한 전송 패킷(510)은 도 4의 전송 패킷(430)이 통신 채널을 통과한 것이라 가정한다. 디코딩 장치가 수신한 전송 패킷(510) 및 도 4의 전송 패킷(430)을 비교하면, 제2 비트, 제4 비트 및 제5 비트에 오류가 발생하였음을 알 수 있다.
일실시예에 따른 디코딩 장치는 수신한 전송 패킷(510)으로부터 데이터(520) 및 제1 패리티(530)를 식별할 수 있다. 일실시예에 따르면, 디코딩 장치는 수신한 전송 패킷(510)의 길이를 이용하여 데이터(520) 및 제1 패리티(530)의 길이를 탐지할 수 있다. 도 5를 참고하면, 수신한 전송 패킷(510)이 11 자리의 비트로 구성되어 있고, 전송 패킷의 길이는 앞서 설명한 바와 같이 2N-1임을 고려하여, 디코딩 장치는 6 자리의 비트로 구성된 데이터(520) 및 5 자리의 비트로 구성된 제1 패리티(530)가 결합된 것으로 결정할 수 있다.
일실시예에 따른 디코딩 장치는 식별한 데이터(520)으로부터 제2 패리티(540)를 생성할 수 있다. 도 5를 참고하면, 디코딩 장치는 데이터(520)의 이웃하는 두 비트들을 XOR 연산하여 제2 패리티(540)를 생성할 수 있다.
일실시예에 따른 디코딩 장치는 제1 패리티(530) 및 제2 패리티(540)를 비교하여 데이터(520)에 오류가 발생했는지 여부를 판단할 수 있다. 도 5를 참고하면, 제1 패리티(530) 및 제2 패리티(540)의 제1 비트, 제2 비트, 제3 비트 및 제5 비트가 서로 다름을 알 수 있다. 제1 패리티(530) 및 제2 패리티(540)의 비트 값이 서로 다른 자리가 존재하므로, 디코딩 장치는 데이터(520)에 오류가 있는 것으로 판정할 수 있다.
일실시예에 따른 디코딩 장치는 제1 패리티(530) 및 제2 패리티(540)의 비트 값이 서로 다른 자리를 이용하여 오류를 정정할 수 있다. 앞서 설명한 바를 참고할 때에, 제1 패리티(530) 및 제2 패리티(540)에서 2개의 연속된 자리인 제1 비트 및 제2 비트가 서로 다르므로, 일실시예에 따른 디코딩 장치는 데이터(520)의 제2 비트를 플립할 수 있다. 또한, 제1 패리티(530) 및 제2 패리티(540)에서 1비트의 간격을 가지는 제3 비트 및 제5 비트가 서로 다르므로, 일실시예에 따른 디코딩 장치는 데이터(520)의 제4 비트 및 제5 비트를 플립할 수 있다. 따라서, 디코딩 장치가 출력하는 결과 데이터(550)은 수신한 전송 패킷(510)의 제2 비트, 제4 비트 및 제5 비트의 오류가 정정되어, 도 4의 데이터(410)와 일치할 수 있다.
도 6a 내지 6b는 일실시예에 따른 인코딩 장치 및 디코딩 장치가 오류를 정정한 결과를 도시한 그래프이다. 일실시예에 따른 인코딩 장치는 8 비트로 구성된 입력 흑백 이미지를 인코딩하여 전송 패킷을 생성한 다음, 전송 패킷을 AWGN 통신 채널을 통하여 일실시예에 따른 디코딩 장치로 전송한다. 디코딩 장치가 수신한 전송 패킷의 오류를 정정하여 결과 흑백 이미지를 출력하면, 입력 흑백 이미지 및 결과 흑백 이미지를 비교하여 BER(Bit Error Rate) 및 PSNR(Peak Signal-to-Noise Ratio)를 계산할 수 있다.
도 6a 내지 6b는 상기 입력 흑백 이미지를 AWGN 통신 채널의 Eb/No[dB]를 다양하게 바꾸어 가면서 1000회 반복 전송한 다음, 각각의 전송에서 계산한 BER 및 PSNR의 평균을 AWGN 통신 채널의 Eb/No[dB]에 따라 도시한 그래프이다. 도 6a 내지 6b를 참고하면, 동일한 AWGN 통신 채널에서 동일한 입력 흑백 이미지를 오류 정정을 수행하지 않고 전송한 실험 결과가 비교하여 도시된다.
도 6a는 일실시예에 따른 인코딩 장치 및 디코딩 장치에 의한 BER 곡선(620) 및 오류 정정을 수행하지 않은 경우의 BER 곡선(610)을 비교하여 도시한 도면이다. 도 6a를 참고하면, 모든 AWGN 통신 채널에 대하여, 일실시예에 따른 인코딩 장치 및 디코딩 장치가 오류를 정정함으로써, BER이 개선됨을 알 수 있다. 도 6a를 참고하면, Eb/No의 증가로 통신 채널의 환경이 개선될수록, BER 곡선(610, 620) 간의 격차가 증가함을 알 수 있다. 따라서, 통신 채널의 환경이 개선될수록, 일실시예에 따른 인코딩 장치 및 디코딩 장치는 더 많은 오류를 정정할 수 있다.
도 6b는 일실시예에 따른 인코딩 장치 및 디코딩 장치에 의한 PSNR 곡선(611) 및 오류 정정을 수행하지 않은 경우의 PSNR 곡선(621)을 비교하여 도시한 도면이다. 도 6b를 참고하면, 모든 AWGN 통신 채널에 대하여, 일실시예에 따른 인코딩 장치 및 디코딩 장치가 오류를 정정함으로써, PSNR이 개선됨을 알 수 있다. 또한, 도 6b를 참고하면, Eb/No의 증가로 통신 채널의 환경이 개선될수록, PSNR 곡선(611,621) 간의 격차가 증가함을 알 수 있다. 따라서, 통신 채널의 환경이 개선될수록, 일실시예에 따른 인코딩 장치 및 디코딩 장치는 더 많은 오류를 정정할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
110 : 인코딩 장치
111 : 데이터 식별부
112 : 패리티 생성부
113 : 전송 패킷 생성부
120 : 전송 패킷
121 : 통신 채널
122 : 디코딩 장치가 수신한 전송 패킷
130 : 디코딩 장치
131 : 전송 패킷 식별부
132 : 패리티 생성부
133 : 오류 판단부
134 : 오류 정정부
111 : 데이터 식별부
112 : 패리티 생성부
113 : 전송 패킷 생성부
120 : 전송 패킷
121 : 통신 채널
122 : 디코딩 장치가 수신한 전송 패킷
130 : 디코딩 장치
131 : 전송 패킷 식별부
132 : 패리티 생성부
133 : 오류 판단부
134 : 오류 정정부
Claims (10)
- N자리의 비트들로 구성된 데이터를 식별하는 단계;
상기 데이터에서 이웃하는 두 비트들을 연산하여 N-1자리의 비트들로 구성된 제1 패리티를 생성하는 단계; 및
상기 데이터와 제1 패리티를 결합하여 전송 패킷을 생성하는 단계
를 포함하고,
상기 전송 패킷은,
상기 전송 패킷을 수신한 장치가 수신한 전송 패킷의 데이터에서 이웃하는 두 비트들을 연산하여 제2 패리티를 생성하는데 이용되고,
상기 제1 패리티는,
상기 제1 패리티 및 상기 제2 패리티의 연속하는 두 개의 비트가 서로 다른지 여부 또는 1 비트 간격의 두 개의 비트가 서로 다른지 여부에 따라, 상기 수신한 전송 패킷의 데이터의 오류가 연속하지 않는 1 비트에서 발생하였는지 또는 연속하는 두 개의 비트에서 발생하였는지를 결정하는데 이용되는 인코딩 방법. - 제1항에 있어서,
상기 제1 패리티를 생성하는 단계는,
상기 데이터에서 이웃하는 두 비트들을 XOR연산하여 상기 제1 패리티를 생성하는 인코딩 방법. - 데이터와 제1 패리티가 결합된 전송 패킷을 식별하는 단계 -상기 제1 패리티는, N자리의 비트들로 구성된 데이터에서 이웃하는 두 비트들을 연산함으로써 도출된 N-1자리의 비트들을 포함함-;
상기 전송 패킷의 데이터에서 이웃하는 두 비트들을 연산하여 새로운 제2 패리티를 생성하는 단계;
상기 제1 패리티와 상기 제2 패리티를 비교하여 상기 데이터에 오류가 발생했는지 여부를 판단하는 단계; 및
상기 데이터에 오류가 발생된 경우, 상기 제1 패리티 및 상기 제2 패리티에서 비트 값이 서로 다른 자리에 기초하여 상기 데이터의 비트를 플립(flip)함으로써, 상기 데이터의 오류를 정정하는 단계
를 포함하고,
상기 데이터의 오류를 정정하는 단계는,
상기 제1 패리티 및 상기 제2 패리티의 연속하는 두 개의 비트가 서로 다른지 여부 또는 1 비트 간격의 두 개의 비트가 서로 다른지 여부에 따라, 상기 데이터의 오류가 연속하지 않는 1 비트에서 발생하였는지 또는 연속하는 두 개의 비트에서 발생하였는지 결정하는 디코딩 방법. - 제3항에 있어서,
상기 제2 패리티를 생성하는 단계는,
상기 데이터에서 이웃하는 두 비트들을 XOR연산하여 상기 제2 패리티를 생성하는 디코딩 방법. - 제3항에 있어서,
상기 데이터의 오류를 정정하는 단계는,
상기 제1 패리티의 비트 값 및 상기 제2 패리티의 비트 값이 서로 다른 자리를 탐지하는 단계
를 포함하는 디코딩 방법. - 제5항에 있어서,
상기 데이터의 오류를 정정하는 단계는,
상기 제1 패리티 및 상기 제2 패리티의 제k 비트 및 제k+1 비트가 서로 다른 경우, 상기 데이터의 제k+1 비트를 플립(flip)하는 디코딩 방법. - 제5항에 있어서,
상기 데이터의 오류를 정정하는 단계는,
상기 제1 패리티 및 상기 제2 패리티의 제k 비트 및 제 k+2 비트가 서로 다른 경우, 상기 데이터의 제k+1 비트 및 제k+2비트를 플립하는 디코딩 방법. - N자리의 비트들로 구성된 데이터를 식별하는 데이터 식별부;
상기 데이터에서 이웃하는 두 비트들을 연산하여 N-1자리의 비트들로 구성된 패리티를 생성하는 패리티 생성부; 및
상기 데이터와 패리티를 결합하여 전송 패킷을 생성하는 전송 패킷 생성부
를 포함하는 인코딩 장치. - 데이터와 제1 패리티가 결합된 전송 패킷을 식별하는 전송 패킷 식별부 -상기 제1 패리티는, N자리의 비트들로 구성된 데이터에서 이웃하는 두 비트들을 연산함으로써 도출된 N-1자리의 비트들을 포함함-;
상기 전송 패킷의 데이터에서 이웃하는 두 비트들을 연산하여 새로운 제2 패리티를 생성하는 패리티 생성부;
상기 제1 패리티 및 상기 제2 패리티에서 비트 값이 서로 다른 자리가 존재하는지 여부에 기초하여 상기 데이터에 오류가 발생했는지 여부를 판단하는 오류 판단부; 및
상기 데이터에 오류가 발생된 경우, 상기 제1 패리티 및 상기 제2 패리티에서 비트 값이 서로 다른 자리에 기초하여 상기 데이터의 비트를 플립(flip)함으로써, 상기 데이터의 오류를 정정하는 오류 정정부
를 포함하고,
상기 오류 정정부는,
상기 제1 패리티 및 상기 제2 패리티의 연속하는 두 개의 비트가 서로 다른지 여부 또는 1 비트 간격의 두 개의 비트가 서로 다른지 여부에 따라, 상기 데이터의 오류가 연속하지 않는 1 비트에서 발생하였는지 또는 연속하는 두 개의 비트에서 발생하였는지 결정하는 디코딩 장치. - 제1항 내지 제7항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160026924A KR101795217B1 (ko) | 2016-03-07 | 2016-03-07 | 패리티가 포함된 전송 패킷을 인코딩 또는 디코딩하는 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160026924A KR101795217B1 (ko) | 2016-03-07 | 2016-03-07 | 패리티가 포함된 전송 패킷을 인코딩 또는 디코딩하는 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170104217A KR20170104217A (ko) | 2017-09-15 |
KR101795217B1 true KR101795217B1 (ko) | 2017-11-08 |
Family
ID=59926879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160026924A KR101795217B1 (ko) | 2016-03-07 | 2016-03-07 | 패리티가 포함된 전송 패킷을 인코딩 또는 디코딩하는 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101795217B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240051328A (ko) * | 2018-10-12 | 2024-04-19 | 수퍼멤, 인크. | 오류 정정 및 데이터 클리닝 회로가 구비된 메모리 시스템 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102702627B1 (ko) * | 2022-02-25 | 2024-09-05 | 고려대학교 산학협력단 | 초음파를 이용한 통신 장치 및 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014241639A (ja) | 2008-07-09 | 2014-12-25 | パナソニック株式会社 | 受信装置および受信方法 |
-
2016
- 2016-03-07 KR KR1020160026924A patent/KR101795217B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014241639A (ja) | 2008-07-09 | 2014-12-25 | パナソニック株式会社 | 受信装置および受信方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240051328A (ko) * | 2018-10-12 | 2024-04-19 | 수퍼멤, 인크. | 오류 정정 및 데이터 클리닝 회로가 구비된 메모리 시스템 |
KR102687054B1 (ko) | 2018-10-12 | 2024-07-22 | 수퍼멤, 인크. | 오류 정정 및 데이터 클리닝 회로가 구비된 메모리 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR20170104217A (ko) | 2017-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3021667C (en) | Encoding and decoding of control signaling with sectional redundancy check | |
US8375271B2 (en) | Method and apparatus for providing adaptive cyclic redundancy check computation | |
US9734008B2 (en) | Error vector readout from a memory device | |
US11018699B2 (en) | Method and apparatus for controlling interleaving depth | |
KR101882620B1 (ko) | 신드롬 기반 연판정 bch 복호 장치 및 그 방법 | |
US8612842B2 (en) | Apparatus for generating a checksum | |
KR101795217B1 (ko) | 패리티가 포함된 전송 패킷을 인코딩 또는 디코딩하는 장치 및 방법 | |
US10303364B2 (en) | Techniques for low-latency chase decoding of turbo product codes with soft information | |
JP7371077B2 (ja) | セクション式冗長検査を有する制御シグナリングの符号化および復号 | |
JP2007200535A (ja) | ポストビタビエラー訂正方法及びポストビタビ処理器 | |
US10009040B2 (en) | Method and apparatus for identification and compensation for inversion of input bit stream in LDPC decoding | |
KR101856417B1 (ko) | 극 부호crc 연접 부호를 이용한 병렬 연속 제거 극 부호화-복호화 방법 및 장치 | |
US20170141797A1 (en) | Method and device for an error correction of trans | |
EP3737013B1 (en) | Encoding method, decoding method and device | |
US9621189B2 (en) | Method and apparatus for identification and compensation for inversion of input bit stream in Ldpc decoding | |
US11362679B2 (en) | Method and apparatus for generating redundant bits for error detection | |
JP7080933B2 (ja) | インターリービング深度を調整するための装置及び方法 | |
KR20160073725A (ko) | 적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치 | |
KR101795216B1 (ko) | 메시지를 인코딩 또는 디코딩하는 장치 및 방법 | |
JP6552776B1 (ja) | 誤り訂正復号装置および誤り訂正復号方法 | |
WO2017063263A1 (zh) | 译码设备、方法及信号传输系统 | |
US8412762B2 (en) | Error-correcting method used in data transmission and decoding | |
KR101269851B1 (ko) | 아이에스디비-티 차집합 코드의 복호장치 | |
KR19980066078A (ko) | 수신 데이터의 오류를 검출하는 회로 및 방법 | |
CN114499548A (zh) | 一种译码方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |