KR100956560B1 - 랩터 부호의 복호 지연을 줄이기 위한 수신장치 및 그 방법 - Google Patents

랩터 부호의 복호 지연을 줄이기 위한 수신장치 및 그 방법 Download PDF

Info

Publication number
KR100956560B1
KR100956560B1 KR1020080073646A KR20080073646A KR100956560B1 KR 100956560 B1 KR100956560 B1 KR 100956560B1 KR 1020080073646 A KR1020080073646 A KR 1020080073646A KR 20080073646 A KR20080073646 A KR 20080073646A KR 100956560 B1 KR100956560 B1 KR 100956560B1
Authority
KR
South Korea
Prior art keywords
matrix
decoding
rank
symbol
symbols
Prior art date
Application number
KR1020080073646A
Other languages
English (en)
Other versions
KR20090012188A (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 고려대학교 산학협력단
Publication of KR20090012188A publication Critical patent/KR20090012188A/ko
Application granted granted Critical
Publication of KR100956560B1 publication Critical patent/KR100956560B1/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
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 랩터 부호의 복호 지연을 줄이기 위한 수신장치 및 그 방법을 제공하기 위한 것으로, 가우시안 소거법을 적용하여 프리-코딩 심벌을 계산하여 상삼각 형태의 행렬을 구하는 디코딩부와; 상기 디코딩부에서 구한 상삼각 형태의 행렬의 랭크를 구하는 랭크계산부와; 상기 디코딩부의 프리-코딩 심벌과 상기 랭크계산부의 랭크를 전달받아 비교하고, 그 비교결과에 따라 출력을 내보내는 결정부와; 상기 랭크계산부에서 행렬을 전달받고, 상기 결정부에서 프리-코딩 심벌을 전달받으며, 대각 성분에만 값이 존재하도록 행과 열의 순서를 바꿔가면서 차례대로 배치하여 출력시키는 변환부와; 상기 변환부의 변환 결과를 전달받고, 미리 입력되어 있는 행렬을 바탕으로 repair symbol part를 추가하여 행렬을 생성한 후 상기 디코딩부로 전달하는 행렬생성부;를 포함하여 구성함으로서, 랩터 부호를 복호하는데 있어서 복호에 실패하면 추가적인 심벌을 기다렸다가 다시 복호를 시도하는데 이 경우에 모든 복호 과정을 반복하는 것이 아니라 추가적인 심벌에 대하여 필요한 연산만을 수행할 수 있도록 미리 복호 과정에 필요한 행렬의 모양을 변형함으로써 복호의 복잡도를 낮추어서 복호에 의한 지연을 감소시킬 수 있게 되는 것이다.
랩터 부호, 행렬, 심벌, 복호 지연, 프리 코딩

Description

랩터 부호의 복호 지연을 줄이기 위한 수신장치 및 그 방법{Apparatus and method for reduce of latency decoding of raptor codes}
본 발명은 랩터 부호의 복호 지연을 줄이기 위한 수신기술에 관한 것으로, 특히 랩터 부호를 복호하는데 있어서 복호에 실패하면 추가적인 심벌을 기다렸다가 다시 복호를 시도하는데 이 경우에 모든 복호 과정을 반복하는 것이 아니라 추가적인 심벌에 대하여 필요한 연산만을 수행할 수 있도록 미리 복호 과정에 필요한 행렬의 모양을 변형함으로써 복호의 복잡도를 낮추어서 복호에 의한 지연을 감소시키기에 적당하도록 한 랩터 부호의 복호 지연을 줄이기 위한 수신장치 및 그 방법에 관한 것이다.
일반적으로 랩터 부호(raptor code)란 파운틴 코드(Fountain code) 중의 하나이다.
파운틴 코드(Fountain code)는 채널 코딩의 부호율을 (기존 정보의 양)/(부호화한 데이터의 양)으로 표현할 때, 부호화한 데이터의 양이 미리 정해지지 않기 때문에 이를 Rateless 코드라고도 부른다. 파운틴 코드는 송신단 측에서 수신단에 대한 정보가 부족하거나 수신단의 수가 매우 많을 때처럼 양방향 정보 전송이 어려울 때에도 단방향 전송만으로 에러 없이 완벽한 수신을 가능하게 한다는 장점을 가지고 있어 컴퓨터 네트워크 내에서의 멀티캐스트 등에서 필요성이 제기되었다. 네트워크의 과부하를 제공하는 재전송요청을 없애고, 그리고 수신단에게 비동기 수신을 제공하기 위해서는 다음과 같은 통신방식을 생각할 수 있다. 우선 송신단에서는 전송할 파일을 이용하여 끊임없이 부호화된 패킷을 만들어서 전송한다. 그렇다면 각각의 수신단은 피드백이 필요 없이 복호화가 가능할 정도의 패킷만을 수신하여 복호화한다. 파운틴 코드는 이러한 방식을 기초로 한다.
그리고 랩터 코드는 파운틴 코드의 하나이며, 2004년 Amin Shokrollahi에 의하여 개발되었다. 또한 DVB-H의 application 계층에서의 표준으로 채택되었다. 이 코드는 기존의 파운틴 코드인 LT 코드(Luby-Transform code) 보다 복호화 과정의 연산량 측면에서 더 좋은 성능을 가지고 있다. LT 코드의 가장 큰 단점은 소스 심벌을 복구하는데 필요한 연산량이 선형적이지 못하다는 것이다. 랩터 코드는 이러한 단점을 보완하여 부호화 연산량을 선형 시간 이내로 유지하면서 선형 시간의 복호화 연산량을 얻을 수 있게 한다.
그리고 일반적으로 랩터 부호의 복호 성공 여부는 전체 프리 코딩(pre-coding) 심벌들의 복원 여부에 달려 있다.
랩터 부호의 복호 방법은 수신된 심벌(D 라 함)들과 미리 약속된 부호 조건 행렬(A(0) 라 함)을 통해 프리-코딩 심벌(pre-coding symbol)을 구하고, 이를 바탕으로 손실(erasured)된 정보 심벌들을 복원하는 과정을 말한다.
여기서 pre-coding 심벌을 구하는 과정은 수신된 심별 D와 행렬 A(0)을 이용한 가우시안 소거법(Gaussian elimination)을 통해 이루어진다.
가우시안 소거법을 적용한 복호 과정에서 완벽한 pre-coding 심벌을 구하지 못하면 손실된 심벌을 복원할 수 없다. 이러한 복호 실패가 발생하면, 시스템은 추가적인 심벌에 대한 전송을 기다리거나 요구하게 된다.
추가적인 심벌(D')이 도착하는 경우에 종래의 시스템에서는 이전의 행렬 A(0)과 추가적인 심벌을 포함한 D+D' 를 가지고 가우시안 소거법을 다시 수행하게 된다.
그러나 상기와 같이 종래의 복호 방법은 중복적인 계산 과정을 포함함으로써 복호의 복잡도가 높아지고 복호 지연을 유발시키는 문제가 있었다. 즉, 종래에는 미리 축소된 A(1)'를 만들지 않고 D가 추가적으로 수신되면 그 크기에 맞게 미리 입력된 matrix A에서 A(0)에 repair symbol part를 추가하여서 다시 디코딩을 함으로서, A(0)가 중복계산되는 문제점이 있었다.
이에 본 발명은 상기와 같은 종래의 제반 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 복호 실패시 추가적인 심벌을 기다렸다가 다시 복호를 시도하는데 이 경우에 모든 복호 과정을 반복하는 것이 아니라 추가적인 심벌에 대하여 필요한 연산만을 수행할 수 있도록 미리 복호 과정에 필요한 행렬의 모양을 변형함으로써 복호의 복잡도를 낮추어서 복호에 의한 지연을 감소시킬 수 있는 랩터 부호의 복호 지연을 줄이기 위한 수신장치 및 그 방법을 제공하는데 있다.
도 1은 본 발명의 일 실시예에 의한 랩터 부호의 복호 지연을 줄이기 위한 수신장치의 블록구성도이다.
이에 도시된 바와 같이, 가우시안 소거법을 적용하여 프리-코딩 심벌(Pre-coding symbol)을 계산하여 상삼각 형태의 행렬(matrix)을 구하는 디코딩부(decoding block)(10)와; 상기 디코딩부(10)에서 구한 상삼각 형태의 행렬의 랭크(rank)를 구하는 랭크계산부(rank block)(20)와; 상기 디코딩부(10)의 프리-코딩 심벌과 상기 랭크계산부(20)의 랭크를 전달받아 비교하고, 그 비교결과에 따라 출력을 내보내는 결정부(decision block)(30)와; 상기 랭크계산부(20)에서 행렬을 전달받고, 상기 결정부(30)에서 프리-코딩 심벌을 전달받으며, 대각 성분에만 값이 존재하도록 행과 열의 순서를 바꿔가면서 차례대로 배치하여 출력시키는 변환부(exchange block)(40)와; 상기 변환부(40)의 변환 결과를 전달받고, 미리 입력되 어 있는 행렬을 바탕으로 repair symbol part를 추가하여 행렬을 생성한 후 상기 디코딩부(10)로 전달하는 행렬생성부(matrix generate block)(50);를 포함하여 구성된 것을 특징으로 한다.
상기 결정부(30)는, 상기 랭크계산부(20)에서 계산한 랭크(rank)가 상기 디코딩부(10)에서 전달받은 프리-코딩 심벌(Pre-coding symbol) 개수보다 같거나 크면 프리-코딩 심벌(Pre-coding symbol)을 출력으로 내보내고, 랭크(rank)가 프리-코딩 심벌(Pre-coding symbol) 개수보다 작으면 추가 심벌을 받아서 복호를 하기 위해서 상기 변환부(40)로 프리-코딩 심벌을 전송하는 것을 특징으로 한다.
도 2는 본 발명의 일 실시예에 의한 랩터 부호의 복호 지연을 줄이기 위한 수신방법을 보인 흐름도이다.
이에 도시된 바와 같이, 가우시안 소거법을 적용하여 프리-코딩 심벌(Pre-coding symbol)을 계산하여 상삼각 형태의 행렬(matrix)을 구하는 디코딩단계(ST1)와; 상기 디코딩단계 후 상삼각 형태의 행렬의 랭크(rank)를 구하여 프리-코딩 심벌과 랭크를 비교하는 비교단계(ST2)와; 상기 비교결과 랭크(rank)가 프리-코딩 심벌(Pre-coding symbol) 개수보다 같거나 크면 프리-코딩 심벌(Pre-coding symbol)을 출력으로 내보내고, 랭크(rank)가 프리-코딩 심벌(Pre-coding symbol) 개수보다 작으면 추가 심벌을 받아서 복호하도록 변환시키는 변환단계(ST3)와; 상기 변환단계 후 미리 입력되어 있는 행렬을 바탕으로 repair symbol part를 추가하여 행렬을 생성한 후 상기 디코딩단계로 리턴하는 행렬생성단계(ST4);를 포함하여 수행하는 것을 특징으로 한다.
상기 변환단계는, 대각 성분에만 값이 존재하도록 행과 열의 순서를 바꿔가면서 차례대로 배치하여 출력시켜 변환시키는 것을 특징으로 한다.
도 3은 본 발명의 다른 실시예에 의한 랩터 부호의 복호 지연을 줄이기 위한 수신방법을 보인 흐름도이다.
이에 도시된 바와 같이, 수신측은 원래의 소스(Source) 심벌의 개수보다 더 많은 N개의 심벌들을 받는 단계(ST11)와; 부호 조건 행렬(A(0))을 생성하는 단계(ST12)와; 상기 부호 조건 행렬에 대해 가우시안 소거법을 수행하는 단계(ST13)와; 부호 조건 행렬의 랭크와 프리-코딩 심벌의 개수(L)를 비교하는 단계(ST14)와; 상기 비교결과 부호 조건 행렬의 랭크가 프리-코딩 심벌의 개수(L)와 같거나 크면 복호 성공으로 처리하고, 상기 비교결과 부호 조건 행렬의 랭크가 프리-코딩 심벌의 개수(L) 보다 작으면 복호는 실패로 처리하여 부호 조건 행렬을 변환(A(1))시켜 축소된 부호 조건 행렬(A(1)')을 생성하는 단계(ST15, ST16);를 포함하여 수행하는 것을 특징으로 한다.
상기 부호 조건 행렬을 생성하는 단계는,
Figure 112008054314717-pat00001
Figure 112008054314717-pat00002
에 의해서 생성하고, 여기서,
A : A(0), A(1)', A(2)' 에서 말하는 복호 과정에서 사용되는 행렬
M : A의 행의 개수
L : A의 열의 개수 또는 C의 행의 개수
C : 구하고자 하는 프리-코딩 심벌(pre-coding symbol)
D : 수신된 심벌
K : 원래 심벌의 개수
S : 행렬 A에서 LDPC 행렬의 행의 개수
H : 행렬 A에서 HALF 행렬의 행의 개수
N : 수신된 심벌 D의 개수
인 것을 특징으로 한다.
본 발명에 의한 랩터 부호의 복호 지연을 줄이기 위한 수신장치 및 그 방법은 랩터 부호를 표준으로 사용하는 IPTV, DVB-RCS(유럽형 DMB) 등에서는 repair 심벌을 한 묶음씩 묶어서 전송(Burst transmission)하는 방식을 채택하므로 burst 전송 사이 시간에 가능한 복호 복잡도를 줄여 놓은 다음, 추가 Burst가 전송되면 최소의 계산만으로 복호를 수행함으로써 복호 지연을 최소로 하는 탁월한 효과가 발생한다.
이와 같이 구성된 본 발명에 의한 랩터 부호의 복호 지연을 줄이기 위한 수 신장치 및 그 방법의 바람직한 실시예를 첨부한 도면에 의거하여 상세히 설명하면 다음과 같다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 판례 등에 따라 달라질 수 있으며, 이에 따라 각 용어의 의미는 본 명세서 전반에 걸친 내용을 토대로 해석되어야 할 것이다.
먼저 본 발명은 랩터 부호를 복호하는데 있어서 복호에 실패하면 추가적인 심벌을 기다렸다가 다시 복호를 시도하는데 이 경우에 모든 복호 과정을 반복하는 것이 아니라 추가적인 심벌에 대하여 필요한 연산만을 수행할 수 있도록 미리 복호 과정에 필요한 행렬의 모양을 변형함으로써 복호의 복잡도를 낮추어서 복호에 의한 지연을 감소시키고자 한 것이다.
그래서 본 발명은 오류정정기법의 하나로 랩터(Raptor) 부호를 적용하는 경우에 한 묶음의 심벌(symbol)이 전송된 후에 이것을 바탕으로 랩터 부호의 복호가 실패하면, 가능한 모든 프리-코딩(pre-coding) 심벌을 계산한 후 계산되지 못한 프리-코딩(pre-coding) 심벌만으로 구성되는 축소된 부호 조건 행렬(reduced code constraint matrix) A(1) 을 생성해 놓는다.
이어서, 이후에 추가로 repair 심벌이 수신되면 앞에서 미리 구해놓은 pre-coding 심벌에 대한 부분을 제거한 후에 나머지 관계식을 앞서 구해놓은 축소된 부 호 조건 행렬 A(1) 과 연결하여 작은 행렬을 구성하고 이를 바탕으로 가우시안 소거법을 수행한다.
만약 다시 복호에 실패하는 경우에는 같은 방법으로 더욱 축소된 부호 조건 행렬 A(2) 을 생성해 놓은 후에 추가적인 repair 심벌이 오기를 기다린다. 이후에 추가적인 심벌이 도착하면 앞서의 과정을 반복한다.
상기와 같은 과정을 통해 반복적인 계산을 줄여서 복호의 복잡도를 낮추어서 복호에 의한 지연을 감소할 수 있다.
도 1은 본 발명의 일 실시예에 의한 랩터 부호의 복호 지연을 줄이기 위한 수신장치의 블록구성도이다.
디코딩부(decoding block)(10)는 가우시안 소거법을 적용하여 프리-코딩 심벌(Pre-coding symbol)을 계산하여 상삼각 형태의 행렬(matrix)을 구한다. 이때 사용한 행렬은 도 4의 (a)에서와 같이 상삼각(대각 성분의 아랫 부분은 전부 '0') 형태가 된다.
랭크계산부(rank block)(20)는 디코딩부(10)에서 구한 상삼각 형태의 행렬의 랭크(rank)를 구한다.
결정부(decision block)(30)는 디코딩부(10)의 프리-코딩 심벌과 랭크계산부(20)의 랭크를 전달받아 비교하고, 그 비교결과에 따라 출력을 내보낸다. 그래서 결정부(30)는 랭크계산부(20)에서 계산한 랭크(rank)가 디코딩부(10)에서 전달받은 프리-코딩 심벌(Pre-coding symbol) 개수보다 같거나 크면 복호가 성공했다고 판단 하여 프리-코딩 심벌(Pre-coding symbol)을 출력으로 내보내고, 랭크(rank)가 프리-코딩 심벌(Pre-coding symbol) 개수보다 작으면 복호가 실패했다고 판단하여 추가 심벌을 받아서 복호를 하기 위해서 변환부(40)로 프리-코딩 심벌을 전송한다.
변환부(exchange block)(40)는 랭크계산부(20)에서 행렬을 전달받고, 결정부(30)에서 프리-코딩 심벌을 전달받으며, 대각 성분에만 값이 존재하도록 행과 열의 순서를 바꿔가면서 차례대로 배치하여 출력시킨다. 그래서 변환부(40)는 도 5에서와ㅘ 같이 대각 성분에만 값이 존재하도록 행과 열의 순서를 바꿔가면서 차례대로 배치하여 A(1), A(2) 등을 만든다. 마찬가지로 수신된 심벌 D와 프리-코딩 심벌(pre-coding symbol)도 행렬(matrix) A의 순서를 변경할 때 같이 순서를 바꿔준다. matrix의 행의 위치를 바꾸면, D의 해당 위치를 서로 변경하고, matrix 열의 위치를 바꾸면, pre-coding symbol의 해당 위치를 서로 변경한다. 이 때, 도 5의 (a)의 matrix 중 좌상에 대각선에만 '1'이 존재하는 부분과 그렇지 않은 (b)에서의 검은 블록으로 구분할 수 있다.
행렬생성부(matrix generate block)(50)는 변환부(40)의 변환 결과를 전달받고, 미리 입력되어 있는 행렬을 바탕으로 repair symbol part를 추가하여 행렬을 생성한 후 디코딩부(10)로 전달한다. 즉, 행렬생성부(50)는 미리 입력되어 있는 matrix A를 바탕으로 처음 복호 시에는 A(0), 두 번째 복호부터는 repair symbol part를 추가하여 A(1)', A(2)' 등을 만든다.
도 2는 본 발명의 일 실시예에 의한 랩터 부호의 복호 지연을 줄이기 위한 수신방법을 보인 흐름도이다.
먼저 가우시안 소거법을 적용하여 프리-코딩 심벌(Pre-coding symbol)을 계산하여 상삼각 형태의 행렬(matrix)을 구한다(ST1).
그리고 상삼각 형태의 행렬의 랭크(rank)를 구하여 프리-코딩 심벌과 랭크를 비교한다(ST2).
그래서 비교결과 랭크(rank)가 프리-코딩 심벌(Pre-coding symbol) 개수보다 같거나 크면 프리-코딩 심벌(Pre-coding symbol)을 출력으로 내보내고, 랭크(rank)가 프리-코딩 심벌(Pre-coding symbol) 개수보다 작으면 추가 심벌을 받아서 복호하도록 변환시킨다. 이때 대각 성분에만 값이 존재하도록 행과 열의 순서를 바꿔가면서 차례대로 배치하여 출력시켜 변환시킨다(ST3).
그런 다음 미리 입력되어 있는 행렬을 바탕으로 repair symbol part를 추가하여 행렬을 생성한 후 다시 디코딩을 수행하도록 한다(ST4).
도 3은 본 발명의 다른 실시예에 의한 랩터 부호의 복호 지연을 줄이기 위한 수신방법을 보인 흐름도이다.
먼저 수신측은 원래의 소스(Source) 심벌의 개수보다 더 많은 N개의 심벌들을 받는다(ST11).
그리고 부호 조건 행렬(A(0))을 생성한다.
또한 부호 조건 행렬에 대해 가우시안 소거법을 수행한다(ST13).
그런 다음 부호 조건 행렬의 랭크와 프리-코딩 심벌의 개수(L)를 비교한다.
비교결과 부호 조건 행렬의 랭크가 프리-코딩 심벌의 개수(L)와 같거나 크면 복호 성공으로 처리하고, 비교결과 부호 조건 행렬의 랭크가 프리-코딩 심벌의 개수(L) 보다 작으면 복호는 실패로 처리하여 부호 조건 행렬을 변환(A(1))시켜(ST15) 축소된 부호 조건 행렬(A(1)')을 생성한다(ST16).
본 발명의 바람직한 실시예에 따른 랩터 부호의 복호 과정은 하기와 같다.
여기서 도 4는 본 발명의 바람직한 실시예에 따른 복호 과정을 통한 가우시안 소거법 수행 후 행렬 형태 및 테너 그래프를 도시한 것이고, 도 5는 본 발명의 바람직한 실시예에 따른 하기의 복호과정 (7)을 통한 행렬 형태 및 테너 그래프를 도시한 것이며, 도 6은 본 발명의 바람직한 실시예에 따른 하기의 복호과정 (8)에서 리페어(Repair) 추가 시 축소된 부호 조건 행렬을 통한 가우시안 소거법 수행을 도시한 것이다.
(1) 수신측은 원래의 소스(Source) 심벌의 개수보다 더 많은 N개의 심벌들을 받게 된다. 여기서 채널 부호에 추가로 붙게되는 패리티로 인해 수신측은 원래의 symbol 보다 패리티 만큼 더 많은 심벌을 받게 되는데, 이 때 받은 심벌의 개수가 N이다. 또한 수신된 심벌 D는 도 4에서 1~11까지 즉, 긴 막대기 형태의 모양을 나타내며, 도 4의 (a)에서 가장 우측에 있는 막대기 모양이 D이며, 도 4의 (b)에서는 하단에 있는 막대기 모양이 D이다.
(2) 부호 조건 행렬 A(0) 은 다음의 수학식 1 및 수학식 2와 같다.
Figure 112008054314717-pat00003
Figure 112008054314717-pat00004
수학식 1 및 수학식 2에서, 각각은 다음과 같다.
A : A(0), A(1)', A(2)' 등에서 말하는 복호 과정에서 사용되는 행렬
M : A의 행의 개수
L : A의 열의 개수 또는 C의 행의 개수
C : 구하고자 하는 프리-코딩 심벌(pre-coding symbol)
D : 수신된 심벌
K : 원래 심벌의 개수
S : 행렬 A에서 LDPC 행렬의 행의 개수
H : 행렬 A에서 HALF 행렬의 행의 개수
N : 수신된 심벌 D의 개수
또한 부호 조건 행렬 A(0) 은 도 4의 (a)에서 커다란 사각형을 나타내며, 부호 조건 행렬 A(0) 에서 숫자 '0'은 실행된 복호 횟수를 의미한다. 예를 들어, A(0) 은 복호가 '0'번 이루어졌을 때 즉, 복호가 전혀 이루어지지 않았을 때의 부호 조건 행렬이고, 복호가 1번 끝나게 되면 행과 열을 교환하여 A(1) 을 만든다. 또한 matrix A의 구성은 LDPC( Low-density parity-check codes) matrix와 HALF matrix, LT(Luby-Transform) matrix 3개의 부분으로 되어 있다.
(3) 도 4는 본 발명의 바람직한 실시예에 따른 복호 과정을 통한 가우시안 소거법 수행 후 행렬 형태 및 테너 그래프이다. 여기서 테너 그래프란 symbol들의 연결 구조를 matrix가 아닌 그래프로 표시하는 방법 중 하나이며, 일반적으로 채널 부호의 연결 구조를 나타내는데 주로 사용한다.
그리고 행렬 A(0)에 대한 가우시안 소거법을 도 4와 같이 수행한다. 여기서 가우시안 소거법이란 matrix의 대각 성분의 아랫부분을 전부 '0'으로 만드는 방법을 말한다. 도 4는 가우시안 소거법이 진행되고 나서의 matrix A를 나타낸 것이다.
그래서 생성된 행렬을 바탕으로 각 pre-coding 심벌과 수신 심벌 사이의 관계도는 도 4의 테너 그래프로 나타낼 수 있다.
(4) 만약 행렬 A(0) 의 랭크(rank) 가 pre-coding 심벌의 개수 L 과 같거나 크다면 복호는 성공이다. 여기서 랭크(rank)는 선행 대수 분야에서 사용하는 용어이며, matrix에서 서로 독립인 행 또는 열의 개수를 나타낸다. matrix의 rank를 쉽게 알기 위해 matrix를 가우시안 소거법을 해서 대각 성분에만 값이 존재하는 행 또는 열의 개수가 rank이다. 도 5의 (a)의 경우에서는 matrix A의 좌상 부분 즉, 대각 성분으로만 1이 존재하는 행은 7개가 존재하므로 rank는 7이 된다.
(5) 만약 행렬 A(0) 의 랭크(rank)가 pre-coding 심벌의 개수 L 보다 작으면, 복호는 실패이다.
(6) 복호가 실패인 경우, pre-coding 심벌에서 불확실한 심벌의 개수를 J로 가정하면,
Figure 112008054314717-pat00005
는 불확실한 pre-coding 심벌을 나타낸다.
(7) 가우시안 소거법에 의해 변형된 행렬 에서 행과 열을 교환하여 부호 조건 행렬 A(1) 을 도 5와 같이 생성한다. 생성된 행렬을 바탕으로 각 pre-coding 심벌과 수신 심벌 사이의 관계도는 도 5의 테너 그래프로 나타낼 수 있다.
(8) 전송단으로부터 추가적인 심벌(symbol)을 받게 되면 도 6의 (b)와 같이 앞서 구하지 못한 심벌과 합하여 축소된 부호 조건 행렬 A(1)' 을 생성한 후, 가우시안 소거법을 수행한다.
(9) 복호가 성공할 때까지 (6)~(8)을 반복한다.
한편 전체적인 동작을 다시 설명하면 다음과 같다.
먼저 수신기에 미리 입력된 matrix A(A(0) 보다 크기가 큰)를 이용하여 수신된 심벌 D의 크기 만큼(예를 들어, D가 총 100개의 symbol 이라면 matrix A(0) 의 행의 크기는 100) A(0) 를 만든다.
그래서 심벌 D가 입력되면 A(0) 을 이용하여 원하는 값인 pre-coding symbol을 계산한다.
pre-coding symbol 계산이 실패하면 도 5와 같이 대각 성분에만 값이 존재하도록 행과 열의 순서를 바꿔가면서 차례대로 배치하여 A(1) 을 만든다. 마찬가지로 D 와 pre-coding symbol도 matrix A의 순서를 변경할 때 같이 순서를 바꿔준다. matrix의 행의 위치를 바꾸면, D의 해당 위치를 서로 변경하고, matrix 열의 위치를 바꾸면, pre-coding symbol의 해당 위치를 서로 변경한다. 이 때, 도 5의 (a)에서 matrix A(1) 중 좌상에 대각선에만 '1'이 존재하는 부분은 pre-coding symbol(matrix에 해당하는 각 열의 윗 부분에 연결된 pre-coding symbol인 A, C, E, F, H, J, K)을 계산한 것이고, 우하에 검은 블록(B, D, G, I)은 해당 프리-코딩 심벌(pre-coding symbol)을 구하는 데 실패한 것입니다.
그리고 새로 수신된 심벌 D의 크기에 맞춰 수신기에 미리 입력된 matrix A의 일부(도 6의 (a)에서 아래의 Repair symbol part)를 A(1) 의 밑부분에 추가한다. 도 6의 (a)의 경우이며, 이 때 D의 크기는 2로서 A(1) 의 밑에 2줄을 추가한다.
추가된 2줄에 대해 앞서 미리 구해놓은 pre-coding symbol을 이용하여 도 6의 (b)에서와 같이 pre-coding 계산 시 실패한 부분만 남도록 하여 A(1)에서 구한 검은 블록의 아랫 부분에 결합하여 A(1)' 을 만든다.
이 때 구해놓은 pre-coding symbol에 대해 matrix에서 XOR 연산을 했으므로, 이에 해당하는 심벌 D에도 마찬가지로 같은 연산을 수행한다.
도 6의 (b)에서 나타낸 "12 XOR A XOR F"는 좌측의 repair symbol part라고 표시된 matrix 중 '1'의 위치에 해당하는 미리 구한 pre-coding symbol을 대입한다. 그러면 대입된 부분의 matrix 값은 '1'에서 '0'으로 변경되며, D값 '12'는 대 입된 pre-coding symbol과 연산한다. 즉, D가 '12'인 경우의 repair symbol part는 1번째와 4번째가 '1'이므로, 그에 해당하는 'A'와 'F'를 '12'와 함께 XOR 연산을 한다.
마찬가지로 하면, "13 XOR C"는 해당하는 repair symbol part의 2번째가 '1'이므로 해당 pre-coding symbol인 'C'를 'D'와 XOR 연산을 한 것이다.
이처럼 본 발명은 랩터 부호를 복호하는데 있어서 복호에 실패하면 추가적인 심벌을 기다렸다가 다시 복호를 시도하는데 이 경우에 모든 복호 과정을 반복하는 것이 아니라 추가적인 심벌에 대하여 필요한 연산만을 수행할 수 있도록 미리 복호 과정에 필요한 행렬의 모양을 변형함으로써 복호의 복잡도를 낮추어서 복호에 의한 지연을 감소시키게 되는 것이다.
이상에서 본 발명의 바람직한 실시예에 한정하여 설명하였으나, 본 발명은 이에 한정되지 않고 다양한 변화와 변경 및 균등물을 사용할 수 있다. 따라서 본 발명은 상기 실시예를 적절히 변형하여 응용할 수 있고, 이러한 응용도 하기 특허청구범위에 기재된 기술적 사상을 바탕으로 하는 한 본 발명의 권리범위에 속하게 됨은 당연하다 할 것이다.
도 1은 본 발명의 일 실시예에 의한 랩터 부호의 복호 지연을 줄이기 위한 수신장치의 블록구성도이다.
도 2는 본 발명의 일 실시예에 의한 랩터 부호의 복호 지연을 줄이기 위한 수신방법을 보인 흐름도이다.
도 3은 본 발명의 다른 실시예에 의한 랩터 부호의 복호 지연을 줄이기 위한 수신방법을 보인 흐름도이다.
도 4는 본 발명의 바람직한 실시예에 따른 복호 과정을 통한 가우시안 소거법 수행 후 행렬 형태 및 테너 그래프를 도시한 것이다.
도 5는 본 발명의 바람직한 실시예에 따른 복호과정 (7)을 통한 행렬 형태 및 테너 그래프를 도시한 것이다.
도 6은 본 발명의 바람직한 실시예에 따른 복호과정 (8)에서 리페어(Repair) 추가 시 축소된 부호 조건 행렬을 통한 가우시안 소거법 수행을 도시한 것이다.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 디코딩부
20 : 랭크계산부
30 : 결정부
40 : 변환부
50 : 행렬생성부

Claims (6)

  1. 가우시안 소거법을 적용하여 프리-코딩 심벌을 계산하여 상삼각 형태의 행렬을 구하는 디코딩부와;
    상기 디코딩부에서 구한 상삼각 형태의 행렬의 랭크를 구하는 랭크계산부와;
    상기 디코딩부의 프리-코딩 심벌과 상기 랭크계산부의 랭크를 전달받아 비교하고, 그 비교결과에 따라 출력을 내보내는 결정부와;
    상기 랭크계산부에서 행렬을 전달받고, 상기 결정부에서 프리-코딩 심벌을 전달받으며, 대각 성분에만 값이 존재하도록 행과 열의 순서를 바꿔가면서 차례대로 배치하여 출력시키는 변환부와;
    상기 변환부의 변환 결과를 전달받고, 미리 입력되어 있는 행렬을 바탕으로 repair symbol part를 추가하여 행렬을 생성한 후 상기 디코딩부로 전달하는 행렬생성부;
    를 포함하여 구성된 것을 특징으로 하는 랩터 부호의 복호 지연을 줄이기 위한 수신장치.
  2. 청구항 1에 있어서,
    상기 결정부는,
    상기 랭크계산부에서 계산한 랭크가 상기 디코딩부에서 전달받은 프리-코딩 심벌 개수보다 같거나 크면 프리-코딩 심벌을 출력으로 내보내고, 랭크가 프리-코딩 심벌 개수보다 작으면 추가 심벌을 받아서 복호를 하기 위해서 상기 변환부로 프리-코딩 심벌을 전송하는 것을 특징으로 하는 랩터 부호의 복호 지연을 줄이기 위한 수신장치.
  3. 가우시안 소거법을 적용하여 프리-코딩 심벌을 계산하여 상삼각 형태의 행렬을 구하는 디코딩단계와;
    상기 디코딩단계 후 상삼각 형태의 행렬의 랭크를 구하여 프리-코딩 심벌과 랭크를 비교하는 비교단계와;
    상기 비교결과 랭크가 프리-코딩 심벌 개수보다 같거나 크면 프리-코딩 심벌을 출력으로 내보내고, 랭크가 프리-코딩 심벌 개수보다 작으면 추가 심벌을 받아서 복호하도록 변환시키는 변환단계와;
    상기 변환단계 후 미리 입력되어 있는 행렬을 바탕으로 repair symbol part를 추가하여 행렬을 생성한 후 상기 디코딩단계로 리턴하는 행렬생성단계;
    를 포함하여 수행하는 것을 특징으로 하는 랩터 부호의 복호 지연을 줄이기 위한 수신방법.
  4. 청구항 3에 있어서,
    상기 변환단계는,
    대각 성분에만 값이 존재하도록 행과 열의 순서를 바꿔가면서 차례대로 배치하여 출력시켜 변환시키는 것을 특징으로 하는 랩터 부호의 복호 지연을 줄이기 위한 수신방법.
  5. 수신측은 원래의 소스 심벌의 개수보다 더 많은 N개의 심벌들을 받는 단계와;
    부호 조건 행렬을 생성하는 단계와;
    상기 부호 조건 행렬에 대해 가우시안 소거법을 수행하는 단계와;
    부호 조건 행렬의 랭크와 프리-코딩 심벌의 개수를 비교하는 단계와;
    상기 비교결과 부호 조건 행렬의 랭크가 프리-코딩 심벌의 개수와 같거나 크면 복호 성공으로 처리하고, 상기 비교결과 부호 조건 행렬의 랭크가 프리-코딩 심벌의 개수 보다 작으면 복호는 실패로 처리하여 부호 조건 행렬을 변환시켜 축소된 부호 조건 행렬을 생성하는 단계;
    를 포함하여 수행하는 것을 특징으로 하는 랩터 부호의 복호 지연을 줄이기 위한 수신방법.
  6. 청구항 5에 있어서,
    상기 부호 조건 행렬을 생성하는 단계는,
    Figure 112008054314717-pat00006
    Figure 112008054314717-pat00007
    에 의해서 생성하고, 여기서, A : A(0), A(1)', A(2)' 에서 말하는 복호 과정에서 사용되는 행렬, M : A의 행의 개수, L : A의 열의 개수 또는 C의 행의 개수, C : 구하고자 하는 프리-코딩 심벌, D : 수신된 심벌, K : 원래 심벌의 개수, S : 행렬 A에서 LDPC 행렬의 행의 개수, H : 행렬 A에서 HALF 행렬의 행의 개수, N : 수신된 심벌 D의 개수인 것을 특징으로 하는 랩터 부호의 복호 지연을 줄이기 위한 수신방법.
KR1020080073646A 2007-07-27 2008-07-28 랩터 부호의 복호 지연을 줄이기 위한 수신장치 및 그 방법 KR100956560B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20070075369 2007-07-27
KR1020070075369 2007-07-27

Publications (2)

Publication Number Publication Date
KR20090012188A KR20090012188A (ko) 2009-02-02
KR100956560B1 true KR100956560B1 (ko) 2010-05-07

Family

ID=40683102

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080073646A KR100956560B1 (ko) 2007-07-27 2008-07-28 랩터 부호의 복호 지연을 줄이기 위한 수신장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100956560B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101153520B1 (ko) 2010-11-30 2012-06-11 한국전자통신연구원 부호화 심볼의 패킷화 방법 및 이러한 방법을 사용하는 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060092243A (ko) * 2003-10-06 2006-08-22 디지털 파운튼, 인크. 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러정정 다중-스테이지 코드 생성기 및 디코더
KR20070030932A (ko) * 2004-07-30 2007-03-16 노키아 코포레이션 점―대―다지점 전송 시스템용 점―대―점 수리 요구메커니즘
KR20070038425A (ko) * 2005-10-05 2007-04-10 한국전자통신연구원 Mbms 수신 시스템에 있어서의 에러 정정 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060092243A (ko) * 2003-10-06 2006-08-22 디지털 파운튼, 인크. 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러정정 다중-스테이지 코드 생성기 및 디코더
KR20070030932A (ko) * 2004-07-30 2007-03-16 노키아 코포레이션 점―대―다지점 전송 시스템용 점―대―점 수리 요구메커니즘
KR20070038425A (ko) * 2005-10-05 2007-04-10 한국전자통신연구원 Mbms 수신 시스템에 있어서의 에러 정정 방법 및 장치

Also Published As

Publication number Publication date
KR20090012188A (ko) 2009-02-02

Similar Documents

Publication Publication Date Title
KR101313782B1 (ko) 무선 통신 시스템에서 데이터 블록을 송신 및 수신하기 위한 방법 및 장치
KR101330132B1 (ko) 랩터 코드의 디코딩
EP1628427B1 (en) Re-transmission control method and communication device
KR101651683B1 (ko) 통신 시스템에서의 채널 부호화 장치 및 방법
US8719657B2 (en) Hybrid codec apparatus and method for data transferring
US10992416B2 (en) Forward error correction with compression coding
US20030188253A1 (en) Method for iterative hard-decision forward error correction decoding
JP4050726B2 (ja) 復号装置
CN110311755B (zh) 一种利用线性分组码传输额外信息的方法
CN103873071A (zh) 一种前向纠错编码、译码方法和装置、通信设备及系统
CN110233698B (zh) 极化码的编码及译码方法、发送设备、接收设备、介质
US7231575B2 (en) Apparatus for iterative hard-decision forward error correction decoding
KR20130035407A (ko) 이진 이산 무기억 대칭 채널에서 연속 제거 복호 알고리즘을 이용한 송신기 및 수신기
KR100956560B1 (ko) 랩터 부호의 복호 지연을 줄이기 위한 수신장치 및 그 방법
JP4469261B2 (ja) ディジタル信号伝送装置
KR102181553B1 (ko) 전자장치에서 부호화 및 복호화를 위한 방법 및 장치
EP1053598A1 (en) Precoding technique to lower the bit error rate (ber) of punctured convolutional codes
JP5523064B2 (ja) 復号装置及び方法
CN111277830B (zh) 一种编码方法、解码方法及装置
CN113541871A (zh) 一种生成码字的方法及编解码器
KR101411720B1 (ko) 엘디피시 부호의 패리티 체크 행렬을 이용해 서로 다른 여러 개의 복호기를 만드는 엘디피시 부호의 복호 방법 및 이를 포함하는 엘디피시 부호 시스템
US9172400B2 (en) Encoding techniques using multiple coding strengths within a single LDPC code word
Zbaid et al. Design and Implementation of Convolutional Encoder and Viterbi Decoder Using FPGA.
KR101279283B1 (ko) 블록 부호를 사용하는 통신 시스템에서 신호 송수신 장치및 방법
JP2014039227A (ja) 送受信システム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130405

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140304

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee