KR101751497B1 - 행렬 네트워크 코딩을 사용하는 장치 및 방법 - Google Patents

행렬 네트워크 코딩을 사용하는 장치 및 방법 Download PDF

Info

Publication number
KR101751497B1
KR101751497B1 KR1020100055420A KR20100055420A KR101751497B1 KR 101751497 B1 KR101751497 B1 KR 101751497B1 KR 1020100055420 A KR1020100055420 A KR 1020100055420A KR 20100055420 A KR20100055420 A KR 20100055420A KR 101751497 B1 KR101751497 B1 KR 101751497B1
Authority
KR
South Korea
Prior art keywords
delete delete
packet
matrix
generating
word
Prior art date
Application number
KR1020100055420A
Other languages
English (en)
Other versions
KR20110135597A (ko
Inventor
김광택
황찬수
바히드 타로크
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020100055420A priority Critical patent/KR101751497B1/ko
Priority to US13/027,438 priority patent/US8612833B2/en
Publication of KR20110135597A publication Critical patent/KR20110135597A/ko
Priority to US14/083,912 priority patent/US9071406B2/en
Priority to US14/172,186 priority patent/US9048997B2/en
Priority to US14/172,133 priority patent/US9191156B2/en
Application granted granted Critical
Publication of KR101751497B1 publication Critical patent/KR101751497B1/ko

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/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/0076Distributed coding, e.g. network coding, involving channel coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

행렬 네트워크 코딩 기법을 사용하는 통신 장치 및 통신 방법이 개시된다.
복수 개의 변질된 워드를 포함하는 변질된 패킷을 수신하는 수신부 및 상기 변질된 워드 및 생성자 행렬에 기반하여 상기 변질된 워드에 대응하는 제1 디코딩된 워드를 추정하고, 상기 생성자 행렬에 기반한 코드북 및 상기 추정된 제1 디코딩된 워드에 기반하여 상기 변질된 워드에 대응하는 제2 디코딩된 워드를 생성하고, 상기 복수 개의 변질된 워드 각각에 대응하는 복수 개의 상기 제2 디코딩된 워드에 기반하여 메시지를 생성하는 제어부를 포함하고, 상기 생성자 행렬은 행렬을 요소로 갖는 통신 장치가 제공된다.

Description

행렬 네트워크 코딩을 사용하는 장치 및 방법{APPARATUS AND METHOD USING MATRIX NETWORK CODING}
무선 네트워크에서 사용되는 코딩 기법에 연관되며, 보다 특정하게는 네트워크 코딩 기법을 사용하는 통신 장치 및 통신 방법에 연관된다.
메시(mesh) 네트워크, 애드혹(ad-hoc) 네트워크, 센서 네트워크와 같은 무선 네트워크에 적용되는 통신 프로토콜들에 관한 연구가 활발히 진행되고 있다. 특히, 무선 네트워크에 속하는 노드들 각각은 제한된 송신 전력을 가지며, 노드들 사이의 채널들의 상태는 변하므로 무선 네트워크의 성능을 높이는 데에는 한계가 있다.
최근, 무선 네트워크에 적용될 수 있는 네트워크 코딩 기법에 관한 관심이 증가하고 있다. 네트워크 코딩 기법을 사용하는 무선 네트워크에서, 중계 노드는 적어도 두 개의 노드들에 대응하는 메시지들을 적절히 인코딩하여 네트워크 코딩된 메시지를 생성하고, 네트워크 코딩된 메시지를 상기 적어도 두 개의 노드들로 전달한다. 이 때, 적어도 두 개의 노드들은 네트워크 코딩 메시지를 적절히 디코딩함으로써, 원하는(desired) 메시지들을 추출할 수 있다.
네트워크 코딩 기법을 사용하는 무선 네트워크는 무선 자원(예를 들어, 시간 자원)을 비교적 효율적으로 사용할 수 있다.
본 발명의 일측에 따르면, k개의 제1 내지 제k 입력 패킷을 수신하고, 출력 패킷을 출력하는 송수신부 및 k개의 제1 내지 제k 행렬을 선택하고, q 개의 제1 내지 제q 서브 출력 패킷을 생성하고, 상기 제1 내지 제q 서브 출력 패킷을 포함하는 상기 출력 패킷을 생성하는 제어부를 포함하고, 상기 제1 내지 제k 입력 패킷은 각각 길이 p인 q개의 제1 내지 제q 서브 입력 패킷을 각각 포함하고, 상기 제1 내지 제k 행렬은 각각 p행 및 p열이고, 상기 제1 내지 제q 서브 출력 패킷은 상기 k개의 입력 패킷 및 상기 k개의 행렬에 기반하여 생성되는 통신 장치가 제공된다.
여기서, 1 ≤ i ≤ k, 1 ≤ j ≤ q 이고, 제i 입력 패킷의 제j 서브 입력 패킷 및 제i 행렬과의 곱을 제i,j 행렬곱이라 할 때, 제j 서브 출력 패킷은 제1,j 행렬곱 내지 제k,j 행렬곱을 합한 것일 수 있다.
상기 제1 내지 제k 행렬은 각각 인버터블한 행렬일 수 있다. 또한, 상기 k개의 제1 내지 제k 행렬은 랜덤하게 선택될 수 있다.
본 발명의 다른 일측에 따르면, 복수 개의 변질된 워드를 포함하는 변질된 패킷을 수신하는 수신부 및 상기 변질된 워드 및 생성자 행렬에 기반하여 상기 변질된 워드에 대응하는 제1 디코딩된 워드를 추정하고, 상기 생성자 행렬에 기반한 코드북 및 상기 추정된 제1 디코딩된 워드에 기반하여 상기 변질된 워드에 대응하는 제2 디코딩된 워드를 생성하고, 상기 복수 개의 변질된 워드 각각에 대응하는 복수 개의 상기 제2 디코딩된 워드에 기반하여 메시지를 생성하는 제어부를 포함하고, 상기 생성자 행렬은 행렬을 요소로 갖는 통신 장치가 제공된다.
상기 제어부는 상기 생성자 행렬을 이용하여 복수 개의 입력 비트 벡터를 생성하고 상기 복수 개의 입력 비트 벡터 및 상기 변질된 워드에 기반하여 상기 변질된 워드에 대응하는 상기 제1 디코딩된 워드의 로그우도를 생성함으로써, 상기 변질된 워드에 대응하는 상기 제1 디코딩된 워드를 추정할 수 있다.
상기 제어부는 상기 생성자 행렬에 기반하여 패리티 체크 행렬을 생성하고, 상기 변질된 워드가 포함하는 복수 개의 심볼들 각각의 로그우도 확률에 기반하여 상기 복수 개의 심볼들 중 일부 심볼에 대해 경판정을 수행하고 나머지 심볼에 0 또는 1을 대입하여 복수 개의 서로 다른 가능 벡터들을 생성하고, 상기 복수 개의 가능 벡터들 중 상기 패리티 체크 행렬과의 곱이 0인 복수 개의 코드워드를 검색하고, 상기 생성자 행렬에 의해 상기 복수 개의 코드워드 중 하나로 인코딩 되는 복수 개의 입력 비트 벡터를 생성하고, 상기 복수 개의 입력 비트 벡터 및 상기 변질된 워드에 기반하여 상기 변질된 워드에 대응하는 상기 제1 디코딩된 워드의 로그우도를 생성함으로써, 상기 변질된 워드에 대응하는 상기 제1 디코딩된 워드를 추정할 수 있다.
상기 제어부는 신뢰할 수 없는 심볼의 개수 w를 결정하고, 상기 변질된 워드가 포함하는 복수 개의 심볼들 각각의 로그우도 확률을 생성함으로써, 상기 복수 개의 서로 다른 가능 벡터들을 생성할 수 있다. 상기 일부 심볼은 상기 복수 개의 심볼들 중 상기 로그우도 확률의 절대값이 가장 작은 w개를 제외한 심볼이고, 상기 복수 개의 서로 다른 가능 벡터들은 2w 개일 수 있다.
상기 제어부는, 상기 제1 디코딩된 워드의 각각의 비트에 대하여, 상기 비트가 1이 될 확률 및 상기 비트가 0이 될 확률을 생성하여 상기 비트의 로그최우비를 생성하고, 상기 각각의 비트들을 사용하여 상기 제1 디코딩된 워드의 로그우도를 조합함으로써, 상기 제1 디코딩된 워드의 로그우도를 생성할 수 있으며, 상기 비트가 1이 될 확률은 상기 복수 개의 서로 다른 가능 벡터들 중 상기 비트가 1인 가능 벡터가 발생하였을 때, 상기 변질될 워드가 발생할 확률이고, 상기 비트가 0이 될 확률 은 상기 복수 개의 서로 다른 가능 벡터들 중 상기 비트가 0인 가능 벡터가 발생하였을 때, 상기 변질될 워드가 발생할 확률일 수 있다.
상기 제어부는 상기 추정된 제1 디코드된 워드 및 상기 코드북을 위한 맵에 기반하여 연성 또는 경성 디코더를 이용함으로써, 상기 제2 디코딩된 워드를 생성할 수 있다.
상기 제어부는 상기 생성자 행렬에 기반하여 패리티 체크 행렬을 생성하고, 상기 변질된 워드 및 상기 패리티 체크 행렬의 곱인 신드롬 벡터를 생성하고, 최소 해밍 웨이트를 갖는 바이너리 스트링들 중 상기 패리티 체크 행렬과의 곱이 상기 신드롬 벡터인 복수 개의 유니크 벡터를 찾고, 상기 변질된 워드 및 상기 복수 개의 유니크 벡터 중 하나의 합인 복수 개의 코드워드를 생성하고, 상기 생성자 행렬에 의해 상기 복수 개의 코드워드 중 하나로 중 인코딩 되는 복수 개의 입력 비트 벡터를 생성하여, 상기 복수 개의 입력 비트 벡터를 상기 제1 디코딩된 워드로 추산함으로써, 상기 제1 디코딩된 워드를 추정할 수 있다.
상기 제어부는 상기 추산된 제1 디코딩된 워드 및 상기 코드북에 기반하여 경성 디코더를 이용함으로써 상기 제2 디코딩된 워드를 생성할 수 있다.
상기 제어부는 상기 통신 장치의 상태에 기반하여 변형된 스피어 디코딩 또는 코셋 디코딩 중 하나를 선택하여 상기 제1 디코딩된 워드를 추정하고, 상기 제2 디코딩된 워드를 생성할 수 있다.
본 발명의 또 다른 일측에 따르면, k개의 제1 내지 제k 입력 패킷을 수신하는 단계 - 상기 제1 내지 제k 입력 패킷은 각각 길이 p인 q개의 제1 내지 제q 서브 입력 패킷을 포함 -, k개의 제1 내지 제k 행렬을 선택하는 단계 - 상기 제1 내지 제k 행렬은 각각 p행 및 p열임 -, 상기 k개의 입력 패킷 및 상기 k개의 행렬에 기반하여 q 개의 제1 내지 제q 서브 출력 패킷을 생성하는 단계 및 상기 제1 내지 제q 서브 출력 패킷을 포함하는 출력 패킷을 출력하는 단계를 포함하는 단말의 네트워크 코딩 방법이 제공된다.
본 발명의 또 다른 일측에 따르면, 복수 개의 변질된 워드를 포함하는 변질된 패킷을 수신하는 단계, 상기 변질된 워드 및 생성자 행렬에 기반하여 상기 변질된 워드에 대응하는 제1 디코딩된 워드를 추정하는 단계, 상기 생성자 행렬에 기반한 코드북 및 상기 추정된 제1 디코딩된 워드에 기반하여 상기 변질된 워드에 대응하는 제2 디코딩된 워드를 생성하는 단계 및 상기 복수 개의 변질된 워드 각각에 대응하는 복수 개의 상기 제2 디코딩된 워드에 기반하여 메시지를 생성하는 단계를 포함하고, 상기 생성자 행렬은 행렬을 요소로 갖는 통신 장치에서의 디코딩 방법이 제공된다.
상기 제1 디코딩된 워드를 추정하는 단계는, 상기 생성자 행렬을 이용하여 복수 개의 입력 비트 벡터를 생성하는 단계 및 상기 복수 개의 입력 비트 벡터 및 상기 변질된 워드에 기반하여 상기 변질된 워드에 대응하는 상기 제1 디코딩된 워드의 로그우도를 생성함으로써, 상기 변질된 워드에 대응하는 상기 제1 디코딩된 워드를 추정하는 단계를 포함할 수 있다.
상기 복수 개의 입력 비트 벡터를 생성하는 단계는, 상기 생성자 행렬에 기반하여 패리티 체크 행렬을 생성하는 단계, 상기 변질된 워드가 포함하는 복수 개의 심볼들 각각의 로그우도 확률에 기반하여, 상기 복수 개의 심볼들 중 일부 심볼에 대해 경판정을 수행하고, 나머지 심볼에 0 또는 1을 대입하여, 복수 개의 서로 다른 가능 벡터들을 생성하는 단계, 상기 복수 개의 가능 벡터들 중 상기 패리티 체크 행렬과의 곱이 0인 복수 개의 코드워드를 검색하는 단계 및 상기 생성자 행렬에 의해 상기 복수 개의 코드워드 중 하나로 인코딩 되는 복수 개의 입력 비트 벡터를 생성하는 단계를 포함할 수 있다.
상기 복수 개의 서로 다른 가능 벡터들을 생성하는 단계는, 신뢰할 수 없는 심볼의 개수 w를 결정하는 단계 및 상기 변질된 워드가 포함하는 복수 개의 심볼들 각각의 로그우도 확률을 생성하는 단계를 포함할 수 있고, 상기 일부 심볼은 상기 복수 개의 심볼들 중 상기 로그우도 확률의 절대값이 가장 작은 w개를 제외한 심볼들이고, 상기 복수 개의 서로 다른 가능 벡터들은 2w 개일 수 있다.
상기 복수 개의 입력 비트 벡터를 생성하는 단계는, 상기 생성자 행렬에 기반하여 패리티 체크 행렬을 생성하는 단계, 상기 변질된 워드가 포함하는 복수 개의 심볼들 각각의 로그우도 확률에 기반하여, 상기 복수 개의 심볼들 중 일부 심볼에 대해 경판정을 수행하고, 나머지 심볼에 0 또는 1을 대입하여, 복수 개의 서로 다른 가능 벡터들을 생성하는 단계, 상기 복수 개의 가능 벡터들 중 상기 패리티 체크 행렬과의 곱이 0인 복수 개의 코드워드를 검색하는 단계 및 상기 생성자 행렬에 의해 상기 복수 개의 코드워드 중 하나로 인코딩 되는 복수 개의 입력 비트 벡터를 생성하는 단계를 포함할 수 있다.
상기 복수 개의 서로 다른 가능 벡터들을 생성하는 단계는, 신뢰할 수 없는 심볼의 개수 w를 결정하는 단계 및 상기 변질된 워드가 포함하는 복수 개의 심볼들 각각의 로그우도 확률을 생성하는 단계를 포함할 수 있고, 상기 일부 심볼은 상기 복수 개의 심볼들 중 상기 로그우도 확률의 절대값이 가장 작은 w개를 제외한 심볼들이고, 상기 복수 개의 서로 다른 가능 벡터들은 2w 개일 수 있다.
상기 제1 디코딩된 워드의 로그우도를 생성하는 단계는, 상기 제1 디코딩된 워드의 각각의 비트에 대하여, 상기 비트가 1이 될 확률 및 상기 비트가 0이 될 확률을 생성하여 상기 비트의 로그최우비를 생성하는 단계 및 상기 각각의 비트들을 사용하여 상기 제1 디코딩된 워드의 로그우도를 조합하는 단계를 포함할 수 있으며, 상기 비트가 1이 될 확률은 상기 복수 개의 서로 다른 가능 벡터들 중 상기 비트가 1인 가능 벡터가 발생하였을 때, 상기 변질될 워드가 발생할 확률이고, 상기 비트가 0이 될 확률 은 상기 복수 개의 서로 다른 가능 벡터들 중 상기 비트가 0인 가능 벡터가 발생하였을 때, 상기 변질될 워드가 발생할 확률일 수 있다.
상기 제2 디코딩된 워드를 생성하는 단계는, 상기 추정된 제1 디코드된 워드 및 상기 코드북을 위한 맵에 기반하여 연성 또는 경성 디코더를 이용할 수 있다.
상기 제1 디코딩된 워드를 추정하는 단계는, 상기 생성자 행렬에 기반하여 패리티 체크 행렬을 생성하는 단계, 상기 변질된 워드 및 상기 패리티 체크 행렬의 곱인 신드롬 벡터를 생성하는 단계, 최소 해밍 웨이트를 갖는 바이너리 스트링들 중 상기 패리티 체크 행렬과의 곱이 상기 신드롬 벡터인 복수 개의 유니크 벡터를 찾는 단계, 상기 변질된 워드 및 상기 복수 개의 유니크 벡터 중 하나의 합인 복수 개의 코드워드를 생성하는 단계 및 상기 생성자 행렬에 의해 상기 복수 개의 코드워드 중 하나로 중 인코딩 되는 복수 개의 입력 비트 벡터를 생성하여, 상기 복수 개의 입력 비트 벡터를 상기 제1 디코딩된 워드로 추산하는 단계를 포함할 수 있다.
상기 제2 디코딩된 워드를 생성하는 단계는, 상기 추산된 제1 디코딩된 워드 및 상기 코드북에 기반하여 경성 디코더를 이용할 수 있다.
상기 제1 디코딩된 위드를 추정하는 단계는, 상기 통신 장치의 상태에 기반하여 변형된 스피어 디코딩 방법 또는 코셋 디코딩 중 하나를 선택하여 상기 제1 디코딩된 위드를 추정할 수 있다.
본 발명의 일측에 따르면, 전술된 방법 중 적어도 하나의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체가 제공될 수 있다.
네트워크 코딩에 있어서, 더 많은 오류를 보정할 수 있으며, 중앙집중화(centralized)된 방식이 아닌, 분산된(distributed) 방식이 사용된다.
토폴로지(topology)가 수시로 변하는 에드혹 네트워크 코딩에 있어서, 단순한 인코딩 및 효율적인 디코딩을 제공함으로써 더 적은 하드웨어 복잡도(complexity)를 요구하고, 전력 소모를 감소시킨다.
또한, 복수의 디코딩 방법을 통신 장치의 상태에 따라 선택할 수 있게 한다.
도 1은 본 발명의 일 실시예에 따른 네트워크 시스템를 도시한 도이다.
도 2는 본 발명의 일 실시예에 따른 통신 장치의 구조도이다.
도 3은 본 발명의 일 실시예에 따른 선형 조합(linearly combining) 네트워크 코딩을 사용하는 통신 시스템을 도시한 도이다.
도 4는 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템을 도시한 도이다.
도 5는 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템 내의 소스 노드의 동작을 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템 내의 소스 노드가 출력한 패킷의 구조도이다.
도 7은 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템 내의 중계 노드의 동작을 나타내는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템 내의 목적 노드가 수신한 패킷을 디코딩하는 동작을 나타내는 흐름도이다.
도 9은 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템 내의 목적 노드가 수신한 패킷을 디코딩하는 동작을 나타내는 흐름도이다.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 네트워크 시스템를 도시한 도이다.
상기 무선 네트워크는 소스 노드(source node)로서, 제1 소스 노드 S 1 (110), 제2 소스 노드 S 2 (112), 그리고 제3 소스 노드 S 3 (114) 내지 제n 소스 노드 S n (118)을 포함한다.
상기 무선 네트워크에서의 기반이 되는 변조 스킴(underlying modulation scheme)은 비트가 0이면 실수(real number) 1, 비트가 1이면 실수 -1로 매핑(mapping)하는 이위상편위변조(binary phase shift keying; BPSK)일 수 있다.
또한, 상기 무선 네트워크는 중계 노드(relay node) U(130) 및 목적 노드(target node) T(150)를 포함한다.
상기 소스 노드(110 내지 118), 중계 노드(130) 및 목적 노드(150)는 단말 등의 통신 장치를 의미한다.
상기 네트워크 내에서, 소스 노드(110 내지 118), 중계 노드(130) 및 목적 노드(150)의 기능을 수행하는 통신 장치가 반드시 하나의 노드의 기능만을 수행하는 것은 아니다. 즉, 상기 네트워크 내의 하나의 물리적 통신 장치는, 동시에 또는 시간이 경과함에 따라, 소스 노드(110 내지 118), 중계 노드(130) 및 목적 노드(150) 중 하나 이상의 노드로서 작동할 수 있다.
본 실시예에서, 각각의 소스 노드(110 내지 118)는 패킷(P 1 내지 P n )을 목적 노드(150)로 전송한다. 예컨대, S 1 P 1 T로 전송한다.
이를 위해 우선, 각각의 소스 노드(110 내지 118)는 패킷(P 1 내지 P n )을 중계 노드(130) 및 목적 노드(150)로 전송한다. 상기와 같이, 특정 노드가 복수 개의 다른 노드로 패킷을 전송하는 것은 브로드캐스팅(broadcasting) 또는 멀티캐스팅(multicasting)에 의한 것일 수 있다.
중계 노드(130)는 소스 노드(110 내지 118)로부터 P 1 내지 P n 을 수신한다(실선으로 도시됨). 상기 중계 노드(130)는 수신된 P 1 내지 P n 를 기반으로 출력 패킷 P o 를 생성하고, 상기 P o 를 목적 노드(150)로 전송한다(점선으로 도시됨).
목적 노드(150)는 소스 노드(110 내지 118)로부터 P 1 내지 P n 을 수신하고, 중계 노드(130)로부터 P o 를 수신한다(점선으로 도시됨).
이때, 상기 네트워크 내에서, 패킷들(P 1 내지 P n , 및 P o )은 잡음이 낀 버전(noisy version)으로 전송될 수 있다. 즉, 중계 노드(130) 및 목적 노드(150)가 수신한 패킷은 소스 노드(110 내지 118) 또는 중계 노드(130)에 의해 출력된 후 전송 중 변질된(corrupt) 패킷일 수 있다.
따라서, 목적 노드(150)는 상기 변질된 패킷에 대해 경성 결정(hard decision)을 내려, 경성 결정된 추정 패킷(P 1 es 내지 P n es , 및 P o es )을 생성한다. 예컨대, 상기 목적 노드(150)는 자신이 수신한 변질되었을 수 있는 패킷 P 1 에 기반하여 추정 패킷 P 1 es 를 생성한다.
목적 노드(150)는 상기 추정 패킷(P 1 es 내지 P n es , 및 P o es )에 기반하여, 네트워크 에러 보정(network error correction)을 수행하여 소스 노드(110 내지 118)가 애초에 전송하였던 패킷(P 1 내지 P n )을 복원한다.
도 1에서는 목적 노드(150)가 하나인 것으로 도시되었다. 그러나, 본 실시예는 목적 노드가 복수 개인 경우에도 적용될 수 있다. 즉, 소스 노드(110 내지 118) 및 중계 노드(150)는 각각 복수 개의 목적 노드들로 패킷(P 1 내지 P n , 및 P o )을 전송할 수 있고, 상기 복수 개의 목적 노드들은 각각 상기 패킷(P 1 내지 P n , 및 P o )을 수신하고, 처리한다.
본 실시예는, P 1 내지 P n 가 상기 복수 개의 목적 노드들 각각에서 복원되는 멀티캐스트 시나리오(multicast scenario)에 적용될 수 있다.
또한, 본 실시예는, P 1 내지 P n 각각이 목적 노드 T 1 내지 T n 중 하나에서 복원되는 유니캐스트 시나리오(unicast scenario)에 적용될 수 있다.
또한, 본 실시예는, 일부 노드들에 대해서는 멀티캐스트이고 다른 일부 노드들에 대해서인 유니캐스트인 혼합 시나리오(mixed scenario)에도 적용될 수 있다.
상기 노드들 간의 통신 링크(communication link)는 이산(discrete), 가우시안(Gaussian) 또는 패이딩 채널(fading channel)로 모델링(model)된 것일 수 있고, Rayleight 또는 Rician 패이딩 채널에 적용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 통신 장치(200)의 구조도이다.
상기 통신 장치(200)는 소스 노드(110 내지 118), 중계 노드(130) 및 목적 노드(150) 중 하나 이상의 노드로서 작동할 수 있다.
상기 통신 장치(200)는 송수신부(210) 및 제어부(220)를 포함한다.
송수신부(210)는 제어부(220)에 의해 생성된 패킷을 출력하고, 다른 통신 장치가 전송한 패킷을 수신하여 제어부(220)에 전달한다.
제어부(220)는 송수신부(210)가 수신한 패킷을 처리한다. 제어부(220)는 상기 처리의 결과로 새로운 패킷을 생성할 수 있고, 상기 생성된 패킷을 네트워크를 통해 전송하기 위해 송수신부(210)로 전송한다.
상기 통신 장치(200)가 소스 노드(110 내지 118)로서 작동할 경우, 상기 제어부(210)는 패킷(예컨대, P 1 내지 P n 중 하나)을 생성하고, 상기 송수신부(220)는 상기 생성된 패킷을 중계 노드(130) 및 목적 노드(150)로 전송한다.
상기 통신 장치(200)가 중계 노드(130)로서 작동할 경우, 상기 송수신부(220) 소스 노드(110 내지 118)로부터 패킷(예컨대, P 1 내지 P n )을 수신하고, 상기 제어부(220)는 상기 수신된 패킷에 기반하여 출력 패킷(P o )을 생성한다. 상기 생성된 출력 패킷은 상기 송수신부(220)를 통해 목적 노드(150)로 전송된다.
상기 통신 장치(200)가 목적 노드(150)로서 작동할 경우, 상기 송수신부(210)는 소스 노드(110 내지 118) 및 중계 노드(130)로부터 패킷(예컨대, 변질된 P 1 내지 P n , 및 P o )을 수신한다. 상기 제어부(220)는 상기 수신된 패킷에 기반하여 상기 소스 노드가 전송한 패킷(예컨대, P 1 내지 P n , 및 P o )을 복원한다.
본 발명의 실시예에 따른, 상기 통신 장치(200)의 구체적인 동작이 도면들을 참조하여 하기에서 상세하게 설명된다.
도 3은 본 발명의 일 실시예에 따른 선형 조합(linearly combining) 네트워크 코딩을 사용하는 통신 시스템을 도시한 도이다.
상기 시스템은 도 1을 참조하여 전술된 시스템과 동일한 구성 요소를 포함한다. 따라서, 중복되는 설명은 생략한다.
소스 노드(110 내지 118)에 의해 생성되는 패킷 P 1 내지 P n
Figure 112010037659016-pat00001
에서 선택된 L개의 심볼(symbol)로 이루어진다. 하나의 심볼의 길이가 m일 때, P 1 내지 P n 의 길이는 각각 Lm이다.
중계 노드(130)는 소스 노드로부터 수신한 패킷 P 1 내지 P n 에 선형 조합(linear combination)을 사용하여 출력 패킷 P o 를 생성한다. 상기 선형 조합은 하기의 수학식 1과 같다.
Figure 112010037659016-pat00002
여기서,
Figure 112010037659016-pat00003
Figure 112010037659016-pat00004
에서 선택된 값이다.
상기의 네트워크 코딩은 아날로그 도메인(analog domain)에서도 적용 가능하다.
통신 링크들 사이에서 오류가 발생하지 않는다고 가정하면, 패킷 P 1 내지 P n 을 복원하기 위해서는 최소한 N개의 선형적으로 독립적인(linear) 계수 벡터를 가진 패킷들이 필요하다.
상기 N개의 패킷의 순서는 윗 첨자를 사용해서 표시된다. 예컨대,
Figure 112010037659016-pat00005
은 중계 노드(130)가 생성한 l번째 패킷을 나타낸다.
l = 1, 2, ... , N에 대해서, 중계 노드(130)는 하기의 수학식 2에 따라 각각의 출력 패킷
Figure 112010037659016-pat00006
을 생성한다.
Figure 112010037659016-pat00007
여기서, 모든 il에 대해,
Figure 112010037659016-pat00008
이다.
상기의 소스 노드(110 내지 118) 및 중계 노드(130)가 출력하는 패킷은 복수 개의 요소(element)로 구성될 수 있다. 예컨대, 상기 요소는 정해진 개수의 심볼이다. 상기 요소를 상기 패킷의 서브 패킷(sub packet)으로 명명한다. 패킷 P i j번째 요소를 P i (j)로 나타내고, 패킷 P o j번째 요소를 P o (j)로 나타낸다.
이 경우에도, 모든 j = 1, 2, ... , N에 대해서
Figure 112010037659016-pat00009
이다.
상기와 같은 요소로 구성된 패킷이 사용될 경우, 중계 노드(130)는 하기의 수학식 3과 같이 출력 패킷 P o l 의 요소 P o l (j)를 생성한다. P o l 는 상기 요소 P o l (1) 내지 P o l (N)을 포함한다.
Figure 112010037659016-pat00010
여기서,
Figure 112010037659016-pat00011
Figure 112010037659016-pat00012
을 정의하면, 하기의 수학식 4가 성립한다.
Figure 112010037659016-pat00013
상기 수학식 4는
Figure 112010037659016-pat00014
에서의 선형 등식(linear equeation)들로 이루어진 선형 시스템(linear system)을 나타낸다. 여기서, 행렬
Figure 112010037659016-pat00015
가 인버터블(invertible)할 경우, 각각의 j = 1, 2, ... , L에 대해서 하기의 수학식 5와 같이 해(solution)을 찾을 수 있다.
Figure 112010037659016-pat00016
즉, 목적 노드(150)는 행렬
Figure 112010037659016-pat00017
의 역행렬을 사용하여, 자신이 수신한 중계 노드(130)의 N개의 출력 패킷들의 j번째 요소로부터 소스 노드(110 내지 118)가 출력한 N개의 패킷들의 j번째 요소를 알 수 있다.
따라서, 상기 목적 노드(150)는 소스 노드(110 내지 118)가 출력하였던 N개의 패킷과 동일한 패킷을 생성할 수 있다.
한편, 상기 수학식 5에 의해서 알 수 있듯이,
Figure 112010037659016-pat00018
의 심볼들 중 하나에 오류가 발생하면, 상기 오류는
Figure 112010037659016-pat00019
의 심볼 중 복수 개의 심볼들의 값을 생성하는데 영향을 미칠 수 있다..
소스 노드(110 내지 118)가 자신이 전송하고자 하는 메시지를 출력 전에 코드북(codebook)을 사용하여 인코딩하여 패킷을 생성하면, 상기와 같이 발생한 오류를 보정할 수도 있다.
즉, l = 1, 2, ... , L에 대해서, 소스 노드 S l 는 자신이 전송하고자 하는 메시지 T l 을 코드북
Figure 112010037659016-pat00020
을 사용하여 인코딩한다. 상기 인코딩에 의해 패킷 P l 가 생성된다. 그러면, 목적 노드(150)가 P l (j)의 값들 중 일부를 잘못 생성하였더라도, 상기 목적 노드(150)가
Figure 112010037659016-pat00021
를 사용하여 P l 를 디코딩하는 과정에서 상기 T l 이 바르게 복원될 수도 있다.
하기에서, 목적 노드(150)가 수신한 패킷 P 1 내지 P n 의 선형 조합이 K개인 경우를 설명한다. 즉, l = 1, 2, ... , K에 대해서,
Figure 112010037659016-pat00022
가 수신된 경우이다.
전술된 것과 유사하게, 생성자 행렬 G에 대해서,
Figure 112010037659016-pat00023
로 정의하고,
Figure 112010037659016-pat00024
이며,
Figure 112010037659016-pat00025
인 것으로 정의하면 하기의 수학식 6이 성립한다.
Figure 112010037659016-pat00026
상기 수학식 6은
Figure 112010037659016-pat00027
상에서 생성자 행렬 G가 나타내는 선형 코드로
Figure 112010037659016-pat00028
가 인코드된 것과 같다. K > N이 성립하는 경우, 이론적으로는 P 1 내지 P n 이 (코드북에 의해) 인코드되지 않은(uncoded) 패킷이더라도 상기 선형 코드가 오류 보정을 위해 사용될 수 있어야 한다.
이때, 소스 노드(110 내지 118)에서 상기 메시지 T 1 내지 T N 가 수직적인(vertical) 코드북
Figure 112010037659016-pat00029
을 사용하여 패킷 P l 내지 P N 으로 인코딩 되는 것을 수직적 인코딩(vertical encoding)으로 명명하고, 중계 노드(130)에서 상기 P l 내지 P N 의 각각의 행(row)들이 상기 생성자 행렬 G의 선형 코드에 의해 인코딩되어 선형 조합된 출력 패킷 P o 를 생성하는 것을 수평적 인코딩(horizontal encoding)으로 명명한다. 즉, 상기 P o 는 2-차원의 곱 코드(two-dimensional product code)에 의해 인코드된 것으로 볼 수 있다.
목적 노드(150)는 수신된 출력 패킷 P o 에 대하여, 상기 인코딩에 대응하는 수평적 디코딩(horizontal decoding) 및 수직적 디코딩(vertical decoding)을 수행하여 원래의 메시지 T l 을 생성한다.
상기 수직적 인코딩, 수평적 인코딩, 수직적 디코딩 및 수평적 디코딩은 상기 통신 장치(200)의 제어부(210)에서 수행될 수 있다.
도 4는 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템을 도시한 도이다.
상기 시스템은 도 1을 참조하여 전술된 시스템과 동일한 구성 요소를 포함한다. 따라서, 중복되는 설명은 생략한다.
소스 노드(110 내지 118)는 각각 전송하고자 하는 메시지(T 1 내지 T n )를 수직적으로 인코딩하여 패킷(P 1 내지 P n )을 생성하여, 중계 노드(130) 및 목적 노드(150)로 전송한다.
중계 노드(130)는 소스 노드(110 내지 118)로부터 입력받은 패킷(P 1 내지 P n )을 수평적으로 인코딩하여 출력 패킷(P o )을 생성하고, 상기 출력 패킷(P o )을 목적 노드(150)로 전송한다. 상기 수평적 인코딩은 하기의 도 7을 참조하여 상세하게 설명된다.
목적 노드(150)는 소스 노드(110 내지 118) 및 중계 노드(130)로부터 수신한 패킷(P 1 내지 P n , 및 P o )을 수평적 및 수직적으로 디코딩하여, 상기 메시지(T 1 내지 T n )를 생성한다.
상기 중계 노드(130) 및 목적 노드(150)가 수신한 패킷(P 1 내지 P n , 및 P o )은 변질된 것일 수 있고, 상기 수평적 및 수직적 디코딩은 이러한 변질에도 불구하고 코딩이 되지 않은(uncoded) 원래의 메시지(T 1 내지 T n )를 복원하여 생성할 수 있다.
도 5는 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템 내의 소스 노드의 동작을 나타내는 흐름도이다.
상기 시스템의 소스 노드 S 1 내지 S n (110 내지 118) 중 하나를 S i 라 하면(0 ≤ i ≤ k), 상기 S i 는 전송하고자 하는 메시지 T i 를 생성한다(S510).
상기 S i 는 상기 메시지 T i 를 코드북
Figure 112010037659016-pat00030
를 사용하여 인코딩하여, 심볼들로 구성된 패킷 P i 를 생성한다(S520). 상기 단계(S520)는 상기 소스 노드(110 내지 118) 중 몇몇 소스 노드의
Figure 112010037659016-pat00031
가 코드되지 않은 전송(uncoded transmission)을 대표하는, 코드되지 않은 경우(uncoded case)도 포함한다.
상기 심볼은 이진 필드
Figure 112010037659016-pat00032
에서 만들어질 수 있다. 또한 상기 심볼은 일반적인 유한 필드인
Figure 112010037659016-pat00033
에서 만들어질 수 있다.
상기 S i 는 상기 패킷 P i 를 중계 노드(130) 및 목적 노드(150)로 전송한다(S530).
전술된 단계 중 패킷의 출력에 관계된 단계(S530)는 상기 송수신부(210)에서 수행될 수 있고, 다른 단계(S510 및 S520)는 상기 제어부(220)에서 수행될 수 있다.
도 6은 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템 내의 소스 노드가 출력한 패킷의 구조도이다.
상기 패킷 P i (600)는 복수 개의 p-차원(p-dimensional) 벡터(610 내지 690)를 포함한다. 즉, 상기 패킷 P i (600)는 (P i (1), P i (2), ... P i (q))와 같은 길이가 q인 시퀀스(sequence)로 표현된다. 상기 p-차원 벡터(610 내지 690)는 서브 입력 패킷으로 명명된다.
또한, 상기 패킷 P i (600)의 길이 Lpq이다.
따라서, j = 1, 2, ... ,q에 대해서 하기의 수학식 7이 성립한다.
Figure 112010037659016-pat00034
도 7은 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템 내의 중계 노드의 동작을 나타내는 흐름도이다.
중계 노드(130)는 k개의 패킷
Figure 112010037659016-pat00035
를 수신한다(S710).
도 6에 도시된 것처럼, 수신된 패킷은 각각 길이 pq개의 서브 입력 패킷을 포함한다.
각각의 패킷 P s i , i = 1, 2, ... , k는 연속적인(consecutive) p 심볼들의 블록(block)으로서, 하기의 수학식 8과 같이 표현될 수 있다.
Figure 112010037659016-pat00036
또한, j = 1, 2, ... ,q에 대해서 하기의 수학식 9이 성립한다.
Figure 112010037659016-pat00037
다음, 중계 노드(130)는 크기가 p x p, 즉 pp열인 k개의 행렬
Figure 112010037659016-pat00038
를 선택한다(S720). 상기 행렬들은 조합 계수(combining coefficient)로 명명된다.
상기 행렬들은 랜덤(random)하게 선택될 수 있다.
j = 1, 2, ... ,q에 대해, 출력 패킷 P o 의 요소는 하기의 수학식 10에 따라 생성된다(S730).
Figure 112010037659016-pat00039
즉, i번째 입력 패킷 P s i , i = 1, 2, ... , k의 j번째 요소
Figure 112010037659016-pat00040
및 i번째 행렬 A i 을 곱한 결과값이 제i,j 행렬곱이라 명명될 때, 제j 서브 출력 패킷은 제1,j 행렬곱 내지 제k,j 행렬곱을 합한 것이다.
또한, 출력 패킷 P o 는 하기의 수학식 11에 따라 생성된다(S740).
Figure 112010037659016-pat00041
생성된 출력 패킷 P o 는 목적 노드(150)로 전송된다(S750).
상기 설명에서, 각각의 조합 계수는 인버터블(invertible), 즉 역행렬을 갖도록 생성될 수 있다. 이는 기술적 분석을 용이하게 한다.
여기서, p = 1인 경우, 행렬 네트워크 코딩은 결과적으로 선형 네트워크 코딩과 동일한 스킴이 된다. 따라서, p ≥ 2로 전제될 필요가 있다.
따라서, 상기 네트워크 내의 노드가 전송하는 패킷은, j = 1, 2, ... , qp x p 행렬
Figure 112010037659016-pat00042
에 대해서 상기 수학식 11과 같은 형태가 된다.
이 경우,
Figure 112010037659016-pat00043
이다. 즉, 행렬 네트워크 코딩 계수들인
Figure 112010037659016-pat00044
을 가지고, P 1 내지 P n 을 행렬 선형 조합한 것으로 볼 수 있다.
상기 패킷을 수신하는 목적 노드(150)에서, K(≥ N)개의 P 1 내지 P n 행렬 선형 조합을 받은 경우, 상기 노드는 j = 1, 2, ... , ql = 1, 2, ... , K에 대해서,
Figure 112010037659016-pat00045
를 수신한 것이다.
이때,
Figure 112010037659016-pat00046
이고,
Figure 112010037659016-pat00047
이며,
Figure 112010037659016-pat00048
이므로,
Figure 112010037659016-pat00049
이 성립한다.
따라서, K = N이고, 상기 행렬 G가 역행렬을 갖는다면, j = 1, 2, ... ,q에 대해,
Figure 112010037659016-pat00050
가 계산될 수 있다.
이는 각각의 j에 대해 벡터
Figure 112010037659016-pat00051
을 계산할 수 있음을 의미한다. 따라서 전송 오류가 전혀 발생하지 않은 경우, 원래의 패킷인 P 1 내지 P N 이 복원될 수 있다.
전술된 단계 중 패킷의 수신 및 송신에 관계된 단계(S710 및 S750)은 상기 송수신부(210)에서 수행될 수 있고, 다른 단계(S720 내지 S740)는 상기 제어부(220)에서 수행될 수 있다.
도 8은 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템 내의 목적 노드가 수신한 패킷을 디코딩하는 동작을 나타내는 흐름도이다.
상기 실시예는, 변형된 스피어(sphere) 디코딩 단계 및 맵 디코딩 단계를 포함한다.
우선, 변형된 스피어 디코딩 단계를 설명한다.
목적 노드(150)는 출력 패킷 P o 를 수신한다(S810).
상기 수신된 패킷은 전송 중 변질된 것일 수 있다.
Figure 112010037659016-pat00052
는 가우시안 노이즈에 의해 변질된 수신된 단어
Figure 112010037659016-pat00053
를 나타낸다.
목적 노드(150)는 생성자 행렬 G로부터 패리티 체크 행렬(parity check matrix) H를 생성한다(S820).
다음으로, 목적 노드(150)는 신뢰할 수 없는 심볼의 개수 w를 결정한다(S840). 상기 w는 하기의 수학식 12에 따라 결정될 수 있다.
Figure 112010037659016-pat00054
여기서, P err 은 비트 오류 확률(bit error probability)이다.
비트 오류가 통계적으로 독립적으로(statistically independent) 발생한다면 (심볼을 단위로) 길이 K를 갖는 패킷의 평균 비트 오류는 KpP err 이고, 분산은 KpP err (1 - P err )이다. 따라서, 평균 값에 표준 편차(standard deviation)의 3배를 더한 값을 w의 값으로 정하면, 오류 베르누이(Bernoulli) 프로세스(process)로 인해 발생하는 대부분의 가능한 결과(outcome)의 많은 부분(portion)을 포착(capture)할 수 있다.
다음으로, 목적 노드(150)는 각각의 j = 1, 2, ... ,q에 대해
Figure 112010037659016-pat00055
Kp 차원의(dimensional)
Figure 112010037659016-pat00056
의 각각의 요소(즉, 심볼)들에 대한 로그우도(log-likelihood) 확률을 생성한다(S840).
목적 노드(150)는 생성된 로그우도 확률들의 절대값을 비교하여,
Figure 112010037659016-pat00057
의 요소 중 가장 작은 로그우도 확률 절대값을 갖는 w개를 찾는다. 상기 w개의 요소의 각각의 위치를 i 1 내지 i w 라고 한다. 이때, 1 ≤ i 1 i 2 ...i w Kp 이다.
목적 노드(150)는
Figure 112010037659016-pat00058
에서 상기 i 1 내지 i w 를 제외한 나머지 위치에 있는 요소들에 대해 경판정(hard-decision)을 수행한다(S850). 즉, 상기 나머지 위치에 있는 요소들 중 로그우도(log-likelihood)의 결과, 양(positive)인 것은 1로, 음(negative)인 것은 0으로 변경된다.
상기와 같은 경판정의 결과를
Figure 112010037659016-pat00059
로 나타낸다.
다음으로, 목적 노드(150)는
Figure 112010037659016-pat00060
개의 서로 다른 가능 벡터
Figure 112010037659016-pat00061
를 생성한다(S860). 상기의 가능 벡터는 상기
Figure 112010037659016-pat00062
i 1 < i 2 < ... < i w 의 위치에 모든 가능한 이진 수(binary number)들을 채워서 만든 것이다. 즉, 상기 가능 벡터는 상기
Figure 112010037659016-pat00063
에 대한 0, 1, ... , 2w - 1의 이진 확장(binary expansion)이 된 것이다.
목적 노드(150)는 상기 가능 벡터
Figure 112010037659016-pat00064
Figure 112010037659016-pat00065
를 만족하는
Figure 112010037659016-pat00066
를 검색한다(S870). 즉, 상기
Figure 112010037659016-pat00067
G의 코드워드(codeword)들이다.
설명의 편의를 위해 번호를 다시 매겨(labeling), 상기 벡터(즉, 코드워드)를 0 ≤ u ≤ 2w - 1에 대해서
Figure 112010037659016-pat00068
라고 한다. 만약,
Figure 112010037659016-pat00069
을 만족시키는
Figure 112010037659016-pat00070
가 존재하지 않는다면 u = 0이다.
목적 노드(150)는 각각의
Figure 112010037659016-pat00071
에 대해서, 코드워드
Figure 112010037659016-pat00072
로 인코딩되는 입력 비트 벡터 v i , i = 1, 2, ... , u를 계산하여 생성한다(S880).
다음으로, 변형된 맵 디코딩 단계를 설명한다(S890).
전술한 입력 비트 벡터의 수 u가 0보다 큰 경우, 맵 디코딩은 다음과 같이 수행된다.
목적 노드(150)는
Figure 112010037659016-pat00073
의 가능한 값들이 상기 입력 비트 벡터 v i , i = 1, 2, ... , u라고 가정하여 상기
Figure 112010037659016-pat00074
의 각 비트에 대한 로그우도 값들을 수신된 벡터
Figure 112010037659016-pat00075
를 통해서 계산한다. 즉, 하기의 수학식 13 및 수학식 14를 통해
Figure 112010037659016-pat00076
Figure 112010037659016-pat00077
를 계산하고,
Figure 112010037659016-pat00078
의 l번째 비트의 로그최우비(log likelihood ratio; LLR)
Figure 112010037659016-pat00079
을 생성한다.
Figure 112010037659016-pat00080
Figure 112010037659016-pat00081
입력 비트 벡터의 수 u가 0인 경우, 목적 노드(150)은
Figure 112010037659016-pat00082
의 모든 비트들에 대한 로그우도 값을 0으로 한다.
전술된 방법에 따라, P i , i = 1, 2, ... , N의 모든 요소에 대한 로그우도 값들이 계산될 수 있다.
목적 노드는 상기 로그우도 값들과
Figure 112010037659016-pat00083
를 위핸 맵(MAP), 그리고 연성(soft) 디코더 또는 경성 디코더를 이용하여 소스 노드(110 내지 118)가 생성하였던 메시지 T 1 내지 T n 을 생성한다(S890).
전술된 단계 중 패킷의 수신에 관계된 단계(S810)은 상기 송수신부(210)에서 수행될 수 있고, 다른 단계(S820 내지 S890)는 상기 제어부(220)에서 수행될 수 있다.
도 9은 본 발명의 일 실시예에 따른 행렬 네트워크 코딩을 이용한 통신 시스템 내의 목적 노드가 수신한 패킷을 디코딩하는 동작을 나타내는 흐름도이다.
상기 도 9를 참조하여 설명되는 동작을 코셋(coset) 디코딩으로 명명한다.
상기 코셋 디코딩은 전술된 변형된 스피어 디코딩 단계 및 맵 디코딩 단계를 이진 대칭 채널(binary symmetric channel)들로 일반화 시킨 것이다.
상기 코셋 디코딩을 사용하는 목적 노드(150)는 수신된 워드에 대해서 경성 결정 디코딩을 우선적으로 수행한다. 따라서, 상기 코셋 디코딩은 전술된 변형된 스피어 디코딩에 비해 상기 디코딩의 처리(processing)로 인한 전력 소모(power consumption)를 감소시킬 수 있다.
Figure 112010037659016-pat00084
,
Figure 112010037659016-pat00085
는 경성 결정에 의해 생성된 벡터이다. 예컨대 상기 벡터는 목적 노드(150)에서 수신된 신호에 경성 결정을 적용한 결과로 생성된 것이다.
이러한 경우, 상기
Figure 112010037659016-pat00086
Figure 112010037659016-pat00087
를 입력으로 갖고, 전이 확률(transition probability)이 P err 인 이진 대칭 채널의 출력으로서 모델링(modeling)될 수 있다.
목적 노드(150)은 생성자 행렬 G의 패리티 체크 행렬 H를 생성한다(S910).
상기 행렬 G에 의해 만들어지는 코드북을
Figure 112010037659016-pat00088
라 하고, 최소 해밍 무계(minimal Hamming weight)를 갖는 이진 스트링을
Figure 112010037659016-pat00089
라고 하면, 목적 노드는 모든
Figure 112010037659016-pat00090
코셋(coset)들인
Figure 112010037659016-pat00091
을 열거(list)하며, 또한
Figure 112010037659016-pat00092
Figure 112010037659016-pat00093
에 대해 열거한다.
다음, 목적 노드(150)는 각각의 j = 1, 2, ... , q에 따라 주어진
Figure 112010037659016-pat00094
에 대해, 신드롬 벡터(syndrome vector)
Figure 112010037659016-pat00095
를 산출하여 생성한다(S920).
목적 노드(150)는 모든
Figure 112010037659016-pat00096
에 대해서
Figure 112010037659016-pat00097
를 만족하는 고유(unique)의 벡터
Figure 112010037659016-pat00098
를 찾는다(S930).
목적 노드(150)는 G의 코드워드인
Figure 112010037659016-pat00099
를 생성한다(S940).
다음, 목적 노드(150)는 생성자 행렬 G에 의해 인코딩됨으로써 코드워드
Figure 112010037659016-pat00100
을 생성하는 입력 비트 벡터 v j 를 계산하여 생성한다. 상기 v j
Figure 112010037659016-pat00101
의 추정(estimate)이다.
전술된 단계를 통해서, P i , i = 1, 2, ... , N의 모든 비트들의 추정을 계산할 수 있다.
목적 노드는 상기 추정값들과
Figure 112010037659016-pat00102
를 위한 경성 결정 디코더를 이용하여 소스 노드(110 내지 118)가 생성하였던 메시지 T 1 내지 T n 을 생성한다(S890).
전술된 단계 중 패킷의 수신에 관계된 단계(S910)은 상기 송수신부(210)에서 수행될 수 있고, 다른 단계(S920 내지 S960)는 상기 제어부(220)에서 수행될 수 있다.
본 발명의 일 실시예에 따른 목적 노드(150)는 상기 노드의 상태에 따라 전술된 변형된 스피어 디코딩 및 코셋 디코딩 중 하나를 선택적으로 사용할 수 있다.
상기 선택의 기준이 되는 목적 노드의 상태는 전력 공급이 충분한지 여부가 될 수 있다.
본 발명의 실시예들에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (68)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 각각이 차원 벡터들(dimensional vectors)을 포함하는 입력 패킷들을 수신하는 송수신부; 및
    각 입력 패킷에 대응하는 행렬과 각 벡터의 곱(product)을 생성하고, 인코딩된 패킷을 생성하기 위하여 각 벡터의 곱의 결과와 각 입력 패킷에 대응하는 행렬을 조합(combining)하는 제어부
    를 포함하는 통신 장치.
  39. 제38항에 있어서,
    각 입력 패킷은 길이가 q인 p-차원 벡터들의 시퀀스(sequence)를 포함하고, 각 입력 패킷은 길이가 pq이고, p와 q는 0보다 큰 정수인 통신 장치.
  40. 제38항에 있어서,
    각 p-차원 벡터는 서브-입력 패킷(sub-input packet)인 통신 장치.
  41. 송수신부가 각각이 차원 벡터들(dimensional vectors)을 포함하는 입력 패킷들을 수신하는 단계; 및
    제어부가 각 입력 패킷에 대응하는 행렬과 각 벡터의 곱(product)을 생성하고, 인코딩된 패킷을 생성하기 위하여 각 벡터의 곱의 결과와 각 입력 패킷에 대응하는 행렬을 조합(combining)하는 단계
    를 포함하는 통신 방법.
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 각각이 차원 벡터들(dimensional vectors)을 포함하는 메시지들을 생성하고, 각 메시지에 대응하는 행렬과 각 벡터의 곱(product)을 생성하고, 인코딩된 패킷을 생성하기 위하여 각 벡터의 곱의 결과와 각 메시지에 대응하는 행렬을 조합(combining)하는 제어부; 및
    상기 인코딩된 패킷을 출력하는 송수신부
    를 포함하는 통신 장치.
  51. 프로세서가 각각이 차원 벡터들(dimensional vectors)을 포함하는 메시지들을 생성하는 단계;
    각 메시지에 대응하는 행렬과 각 벡터의 곱(product)을 생성하고, 인코딩된 패킷을 생성하기 위하여 각 벡터의 곱의 결과와 각 메시지에 대응하는 행렬을 조합(combining)하는 단계; 및
    상기 인코딩된 패킷을 출력하는 단계
    를 포함하는 네트워크 코딩 방법.
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
KR1020100055420A 2010-06-11 2010-06-11 행렬 네트워크 코딩을 사용하는 장치 및 방법 KR101751497B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020100055420A KR101751497B1 (ko) 2010-06-11 2010-06-11 행렬 네트워크 코딩을 사용하는 장치 및 방법
US13/027,438 US8612833B2 (en) 2010-06-11 2011-02-15 Apparatus and method using matrix network coding
US14/083,912 US9071406B2 (en) 2010-06-11 2013-11-19 Apparatus and method using matrix network coding
US14/172,186 US9048997B2 (en) 2010-06-11 2014-02-04 Apparatus and method using matrix network coding
US14/172,133 US9191156B2 (en) 2010-06-11 2014-02-04 Apparatus and method using matrix network coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100055420A KR101751497B1 (ko) 2010-06-11 2010-06-11 행렬 네트워크 코딩을 사용하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110135597A KR20110135597A (ko) 2011-12-19
KR101751497B1 true KR101751497B1 (ko) 2017-06-27

Family

ID=45097238

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100055420A KR101751497B1 (ko) 2010-06-11 2010-06-11 행렬 네트워크 코딩을 사용하는 장치 및 방법

Country Status (2)

Country Link
US (4) US8612833B2 (ko)
KR (1) KR101751497B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020184902A1 (ko) * 2019-03-13 2020-09-17 (주)유비펀 가상 화폐의 자동 트레이딩 기능이 부가된 가상 화폐를 이용한 대금 결제 처리 장치 및 그 동작 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2834108T3 (es) * 2012-07-16 2021-06-16 Code On Network Coding Llc Codificación de red distribuida determinista
KR102139721B1 (ko) * 2013-08-29 2020-07-30 삼성전자주식회사 다중 경로 프로토콜에서 이중으로 네트워크 코딩을 적용하는 방법 및 그 장치
CN104463593B (zh) * 2013-09-18 2018-06-19 曲立东 标签数据应用方法和装置
KR102233371B1 (ko) * 2014-06-24 2021-03-29 삼성전자주식회사 멀티캐스트 네트워크에서의 릴레이 방법 및 장치
US20160080004A1 (en) * 2014-09-11 2016-03-17 Kabushiki Kaisha Toshiba Memory controller and decoding method
US9942934B2 (en) 2015-11-04 2018-04-10 Motorola Mobility Llc Wireless ad hoc network assembly using network coding
US9967909B2 (en) 2015-11-04 2018-05-08 Motorola Mobility Llc Wireless ad hoc network assembly using network coding
US9936052B2 (en) * 2015-11-04 2018-04-03 Motorola Mobility Llc Wireless ad hoc network assembly using network coding
US10164656B2 (en) 2016-03-30 2018-12-25 Silicon Motion Inc. Bit flipping algorithm for providing soft information during hard decision hard decoding
US10652217B2 (en) 2016-04-28 2020-05-12 International Business Machines Corporation Method and system for rateless and pollution-attack-resilient network coding including decoder(s)
US10505719B2 (en) * 2016-04-28 2019-12-10 International Business Machines Corporation Method and system for rateless and pollution-attack-resilient network coding
US10484171B2 (en) * 2016-06-17 2019-11-19 International Business Machines Corporation Method for efficient and practical key distribution in network coding systems
KR102666852B1 (ko) * 2016-07-21 2024-05-20 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그의 동작 방법
EP3549288A1 (en) * 2016-12-02 2019-10-09 Harman International Industries, Incorporated Communication method and system
KR20240121527A (ko) * 2023-02-02 2024-08-09 삼성전자주식회사 보안 데이터를 테스트하는 전자 장치 및 그 동작 방법
CN117596193B (zh) * 2023-11-20 2024-05-31 中国三峡建工(集团)有限公司 一种基于神经网络的报文协议识别方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039979A1 (en) 2000-06-30 2004-02-26 Pradeep Garani Data transmission system using a hybrid automatic repeat request protocol

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769818A (en) * 1984-05-30 1988-09-06 Canadian Patents And Development Limited-Societe Canadienne Des Brevets Et D'exploitation Limitee Method and apparatus for coding digital data to permit correction of one or two incorrect data packets (bytes)
US5426652A (en) * 1991-01-08 1995-06-20 The Dsp Group Inc. Data reception technique
US6330665B1 (en) * 1992-06-30 2001-12-11 Discovision Associates Video parser
US5550870A (en) * 1994-03-02 1996-08-27 Lucent Technologies Inc. Viterbi processor
DE69528255T2 (de) * 1994-04-08 2003-08-07 Echelon Corp., Palo Alto Verfahren und gerät zur sicheren winkelmodulationsbasierten kommunikation
US6757348B1 (en) * 2001-08-28 2004-06-29 Crossroads Systems, Inc. High-speed coordinated multi-channel elastic buffer
US7577186B2 (en) * 2002-09-20 2009-08-18 Tensorcomm, Inc Interference matrix construction
US7216282B2 (en) 2003-02-19 2007-05-08 Harris Corporation Mobile ad-hoc network (MANET) including forward error correction (FEC), interleaving, and multi-route communication features and related methods
US7443785B2 (en) 2004-03-17 2008-10-28 Sony Ericsson Mobile Communications Ab Selective error correction for ad hoc networks having multiple communication modes
JP5063883B2 (ja) * 2005-09-29 2012-10-31 富士通株式会社 無線通信装置、送信方法、送信装置、データ伝送システムおよびデータ伝送方法
WO2007054872A1 (en) 2005-11-10 2007-05-18 Koninklijke Philips Electronics, N.V. A method to support a distributed error correction code
US7873224B2 (en) * 2006-03-01 2011-01-18 Qualcomm Incorporated Enhanced image/video quality through artifact evaluation
CN101064915B (zh) 2006-04-29 2016-10-05 上海贝尔股份有限公司 在无线通信网络中用于多中继站联合中继的方法及装置
US20090141676A1 (en) 2006-11-14 2009-06-04 Shashikant Maheshwari Method and apparatus for providing an error control scheme in a multi-hop relay network
US8223628B2 (en) * 2007-01-10 2012-07-17 Lantiq Deutschland Gmbh Data transmission method, transmitter, receiver, transceiver and transmission system
US8042017B2 (en) 2007-04-24 2011-10-18 Alcatel Lucent Apparatus and method for practical and efficient broadcast in mobile ad hoc networks
KR20090112848A (ko) 2008-04-25 2009-10-29 광주과학기술원 애드-혹 네트워크에서 강화 노드를 이용한 오류정정 패킷라우팅 방법
US8134503B2 (en) * 2008-06-30 2012-03-13 Cisco Technology, Inc. Open-loop beamforming MIMO communications in frequency division duplex systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039979A1 (en) 2000-06-30 2004-02-26 Pradeep Garani Data transmission system using a hybrid automatic repeat request protocol

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020184902A1 (ko) * 2019-03-13 2020-09-17 (주)유비펀 가상 화폐의 자동 트레이딩 기능이 부가된 가상 화폐를 이용한 대금 결제 처리 장치 및 그 동작 방법
US11367137B2 (en) 2019-03-13 2022-06-21 Ubifun Co., Ltd. Payment processing apparatus using virtual currency with automatic trading function of virtual currency and operating method thereof

Also Published As

Publication number Publication date
US20140149830A1 (en) 2014-05-29
KR20110135597A (ko) 2011-12-19
US20110307765A1 (en) 2011-12-15
US20140075270A1 (en) 2014-03-13
US8612833B2 (en) 2013-12-17
US20140149831A1 (en) 2014-05-29
US9191156B2 (en) 2015-11-17
US9048997B2 (en) 2015-06-02
US9071406B2 (en) 2015-06-30

Similar Documents

Publication Publication Date Title
KR101751497B1 (ko) 행렬 네트워크 코딩을 사용하는 장치 및 방법
CN107026656B (zh) 一种基于扰动的CRC辅助中短码长Polar码有效译码方法
EP3245745B1 (en) System and method for a message passing algorithm
US8693501B2 (en) Subset coding for communication systems
Heide et al. On code parameters and coding vector representation for practical RLNC
KR101451052B1 (ko) 협력 무선 통신을 위한 소프트 전송
CN109347604B (zh) 一种基于分批稀疏码的多跳网络通信方法和系统
CN106803759A (zh) 基于高斯构造的Polar码有效自适应译码方法
Xiao et al. Cross-layer design of rateless random network codes for delay optimization
KR20110096684A (ko) 부가 정보의 피드백을 이용하여 통신하는 무선 네트워크 및 상기 무선 네트워크에서 네트워크 코딩을 이용한 통신 방법
US8855028B2 (en) Apparatus and method for bidirectional communication between multi-nodes using relay node
KR102208630B1 (ko) 통신 시스템에서 데이터 채널 모델의 파라미터 추정 방법 및 시스템
CN111480324B (zh) 用于检测相互干扰的信息流的装置和方法
Liau et al. Improved low-complexity soliton-like network coding for a resource-limited relay
JP5438150B2 (ja) 通信システムでの復号化のための装置及び方法
CN109194336B (zh) 级联Spinal码的编码和译码方法、系统及装置
KR101643039B1 (ko) 분산 lt 부호의 차수 분포 최적화 방법
WO2006095873A1 (ja) Mimo検出制御装置およびmimo検出制御方法
Pedarsani Polar codes: Construction and performance analysis
Noor-A-Rahim et al. Anytime characteristics of spatially coupled code
CN102355323A (zh) 基于无率lt编码的无线传感网的分布式网络通道编码方法
KR101293858B1 (ko) 신드롬 부분 채널디코딩을 이용한 멀티홉 기반의 시스템 및 이의 동작 방법
KR101753971B1 (ko) 향상된 오류 정정 기능을 제공하는 네트워크-채널 결합 코딩 방법, 이를 이용한 네트워크-채널 결합 코딩 장치 및 네트워크-채널 결합 코딩 시스템
Honn et al. Performance evaluation of distributed video coding with different channel encoding techniques
Hansen et al. When are erasure correcting block codes better than convolutional codes in a multi-hop network?

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant