KR20080084058A - 모델 행렬을 이용하여 ldpc 부호화를 수행한 데이터를천공하는 방법 - Google Patents

모델 행렬을 이용하여 ldpc 부호화를 수행한 데이터를천공하는 방법 Download PDF

Info

Publication number
KR20080084058A
KR20080084058A KR1020070025168A KR20070025168A KR20080084058A KR 20080084058 A KR20080084058 A KR 20080084058A KR 1020070025168 A KR1020070025168 A KR 1020070025168A KR 20070025168 A KR20070025168 A KR 20070025168A KR 20080084058 A KR20080084058 A KR 20080084058A
Authority
KR
South Korea
Prior art keywords
matrix
node
parity check
nodes
model matrix
Prior art date
Application number
KR1020070025168A
Other languages
English (en)
Other versions
KR101253184B1 (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 KR1020070025168A priority Critical patent/KR101253184B1/ko
Publication of KR20080084058A publication Critical patent/KR20080084058A/ko
Application granted granted Critical
Publication of KR101253184B1 publication Critical patent/KR101253184B1/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/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • 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
    • 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/0067Rate matching
    • H04L1/0068Rate matching by puncturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 LDPC(Low Density Parity Check) 복호화 방법에 관한 것으로서, 보다 상세하게는, 복수의 레이어(layer)들을 이용하여 LDPC 복호화를 수행하는 방법에 관한 것이다.
본 발명은 상술한 목적을 달성하기 위해, 상기 모델 행렬의 서브 블록 각각을 1 * 1 크기의 단위 행렬에 의해 확장하여 패리티 검사 행렬을 생성하는 단계; 상기 패리티 검사 행렬을 이용하여 상기 모델 행렬의 각 열(column)에 상응하는 변수 노드가 몇 번의 반복 디코딩을 통해 회복(recover)되는지를 결정하는 단계; 및 상기 모델 행렬을 이용하여 수신 단으로 송신될 정보 비트를 부호화하는 단계; 상기 결정 결과에 따라 상기 부호화된 코드워드에 대한 천공을 수행하는 단계를 포함하여 이루어진다.
LDPC, 레이어, 디코딩, 천공, 우선 순위, 디코딩 순위

Description

모델 행렬을 이용하여 LDPC 부호화를 수행한 데이터를 천공하는 방법{Method of puncturing data encoded by Low Density Parity Check model matrix}
도 1은 종래 기술 및 본 발명이 적용되는 이동통신 채널의 구조의 일례를 나타내는 도면이다.
도 2는 종래 기술 및 본 발명에 따른 LDPC 복호화 방법을 나타내는 도면의 일례이다.
도 3a는 4 * 8 크기의 임의의 패리티 검사 행렬 H를 나타낸 도면이다.
도 3b는 도 3a의 행렬을 이분법 그래프(Bipartite graph)로 표시한 일례이다.
도 4a는 하나의 패리티 검사 행렬을 이분법 그래프에 의해 나타낸 것이다.
도 4b는 1-SR 노드의 연결 구조를 나타내는 도면이다.
도 5는 천공된 변수 노드에 하나씩의 생존한 검사 노드를 연결하여 트리 구조를 나타낸 것이다.
도 6은 구조화된 LDPC 부호를 위한 모델 행렬의 일례이다.
도 7은 또 다른 모델 행렬의 일례이다.
도 8은 상술한 인덱스, 즉 쉬프트 수(shift number)에 따른 행렬의 표현 방 법을 나타낸 도면이다.
도 9 내지 도 14는 수학식 11의 패리티 검사 행렬을 기초로 회복 트리(recovery tree)를 구성한 일례이다.
도 15는 본 실시예에 따라 모델 행렬의 각 열에 상응하는 변수 노드에 대해 k-SR 노드를 결정하는 방법을 나타낸다.
본 발명은 LDPC(Low Density Parity Check) 부호화 방법에 관한 것으로서, 보다 상세하게는, 모델 행렬을 이용하여 LDPC 부호화를 수행한 데이터를 천공하는 방법에 관한 것이다.
도 1은 본 발명 및 종래 기술이 적용되는 이동통신 채널의 구조를 나타내는 도면이다. 이하, 도 1을 참조하여 이동통신 채널의 구조를 설명한다. 송신 단(Transmitter)에서 전송할 데이터를 무선채널에서 손실이나 왜곡 없이 전송하기 위해 채널 코딩(channel coding) 절차를 거친다. 상기 채널 코딩 기법으로는, Convolutional Coding, Turbo Coding, LDPC Coding 등의 다양한 기술이 있다. 상기 채널 코딩(Channel coding) 절차를 거친 데이터(data)는 무선 채널로 전송될 때 여러 개의 비트들이 모여서 하나의 심볼로 전송될 수 있다. 이때, 여러 비트들을 하나의 심볼(symbol)로 매핑(mapping) 되는 절차를 변조(modulation)라 한다.
변조된 데이터는 다중화(Multiplexing) 과정 또는 다중 접속(Multiple Access) 방법을 거쳐 다중 전송을 위한 신호로 변환된다. 상기 다중화 방법으로는, CDM, TDM, FDM 등의 다양한 방법이 존재한다. 상기 다중화(Multiplexing) 블록을 거친 신호는 한 개 이상의 다중 안테나에 전송되기 적합한 구조로 변경되어 무선채널을 통해 수신 단(Receiver)에 전달된다. 무선 채널을 통과하는 과정에서 전송된 데이터는 페이딩(Fading)과 열 잡음을 겪게 되어 데이터에 왜곡이 발생할 수 있다.
상기 변조(Modulation)된 데이터는 무선 채널을 통해 수신 단(Receiver)에 전달된다. 이 과정에서 전송된 데이터는 페이딩(Fading)과 열 잡음 등을 겪게 되어 데이터에 왜곡이 발생할 수 있다. 수신 단에서는 상기 왜곡된 데이터를 수신한 후 상기 송신 단의 일련의 절차를 역순으로 수행한다. 상기 심볼로 매핑(mapping)된 데이터를 비트열로 바꾸는 복조(demodulation) 작업을 수행하고, 채널 디코딩(Channel Decoding) 절차를 거치며 왜곡된 데이터를 원래 데이터로 복원한다.
상기 채널 코딩을 수행하는 장치는, 입력된 데이터(Information bits 또는 Systematic Bits)에 첨가될 패리티 비트(Parity Bits)을 발생시키는 사용되는 패리티 검사 행렬(Parity Check Matrix)인 H 행렬 또는 H행렬로부터 유도되는 생성행렬(Generation Matrix) G 행렬을 저장하고 있다. 즉, 상기 송신 단은, 상기 H 또는 G 행렬과 상기 입력된 데이터를 통해 패리티 비트(Parity Bit)들을 발생하는 인코더(Encoder)를 포함한다. 채널 디코딩(Channel Decoding)을 수행하는 장치는, 수신된 데이터(왜곡된 Systematic Bits + Parity Bits)를 H행렬과 연산을 통하여 상기 입력된 데이터(Systematic Bits)들이 제대로 복구되는지 확인하고 복구 실패시 연산을 재수행한다.
상기 변조(Modulation)는 BPSK(Binary Phase Shift Keying), QPSK(Quadrature Phase Shift Keying), 16-QAM(Quadrature Amplitude Modulation), 64-QAM, 256-QAM 등이 사용된다. 예를 들어, 16-QAM은 변조(Modulation)시 채널 인코딩(Channel Encoding) 절차를 거친 데이터 열을 4 비트 단위로 하나의 심볼에 매핑(mapping)한다. 16-QAM은 복조(Demodulation) 시 무선 채널을 거쳐 수신된 데이터의 하나의 심볼을 4개의 bit로 디매핑(demapping) 한다.
이하 LDPC 부호에 관하여 설명한다. LDPC 부호의 개념을 설명하면 다음과 같다.
선형 부호는 생성행렬 G 또는 패리티 체크 행렬 H로 기술될 수 있다. 선형 부호의 특징은 모든 코드워드 c 에 대하여,
Figure 112007020651094-PAT00001
을 만족하도록 부호가 구성된다는 점이다. 이 선형 부호의 일종으로서, 최근에 주목받는 LDPC 부호는 1962년 Gallager에 의하여 처음 제안되었다. 이 부호의 특징으로는 패리티 체크 행렬의 원소가 대부분 0으로 이루어지고, 0이 아닌 원소의 수는 부호 길이에 비하여 적은 수를 가지도록 하여 확률을 기반으로 한 반복적 복호가 가능한 점이다. 처음 제안된 LDPC 부호는 패리티 체크 행렬을 비체계적인(non-systematic) 형태로 정의하였고, 그것의 행과 열에 균일하게 적은 무게(weight)를 갖도록 설계되었다.
여기서, 무게(weight)란 행렬에서 열(column) 또는 행(row)에 포함된 1의 개수를 의미한다.
LDPC 부호의 패리티 체크 행렬 H 상에 0이 아닌 원소의 밀도가 적기 때문에 낮은 복호 복잡도를 가지게 된다. 아울러, 복호 성능도 기존의 부호들보다 우수하여 Shannon의 이론적인 한계에 근접하는 좋은 성능을 보인다. 하지만 LDPC 부호는 당시 하드웨어 기술로서 구현이 어려워서 30여 년이 넘게 많은 사람의 관심을 끌지 못하였다. 1980년대 초반 그래프를 이용하여 반복적 복호를 하는 방법이 개발되어, 이를 이용하여 LDPC 부호를 실제로 복호할 수 있는 여러 알고리즘들이 개발되었다. 이를 대표하는 알고리즘으로 합곱 알고리즘(sum-product Algorithm)을 뽑을 수 있다.
이하, LDPC 부호의 특징을 설명한다. LDPC 부호는 높은 오류 정정 성능을 갖고 있으며, 이로 인해 통신 속도와 용량의 개선을 가능하게 한다. 상기 LDPC 부호는 MIMO(Multiple Input Multiple Output) 시스템과 결합하여 수백 Mbit/s의 전송이 가능한 고속 무선 LAN에 적용될 수 있고, 또한 250km/h에서 1Mbit/s 이상의 전송 속도를 갖는 고속 이동 통신에 적용될 수 있고, 또한 40Gbits/s 이상의 광통신에 적용될 수 있다. 또한, 상기 LDPC 부호의 높은 오류 정정 성능으로 인해 전송 품질이 개선되어 저품질의 통신 경로에서 재전송의 회수를 감소시키는 양자 암호화 통신을 가능하게 할 수 있다. 또한, LDPC 부호의 낮은 복잡도와 뛰어난 손실 보상으로 인해, 유실된 패킷을 용이하게 복원할 수 있으며, 이는 인터넷과 이동 통신을 통해 TV 품질과 동일한 품질의 컨텐츠를 전송할 수 있게 한다. LDPC의 장점인 넓은 적용 범위와 큰 용량으로 인하여, 전에는 불가능한 것으로 여겨졌던 100m 범위까지의 10GBASE-T 전송이 LDPC 부호를 통해 실현 가능하다. 동시에 36MHz 대역의 단일 위성 송신기의 전송 용량을 1.3배 늘어난 80M비트/s까지 늘릴 수 있다.
이하, LDPC 부호화 방법을 설명한다.
일반적인 LDPC 부호화(Encoding) 방법은, LDPC 패리티 검사행렬(Parity Check Matrix) H로부터 생성행렬(Generation Matrix) G를 유도해 내어, 정보 비트(information bit)를 부호화(encoding)한다. 상기 생성행렬 G를 유도하기 위해, 상기 검사행렬 H를 가우스 소거(Gaussian Reduction) 방법을 통해 [ PT : I ] 형태로 구성한다. 상기 정보 비트(Information bit)의 수를 k이라 하고, 인코딩된 코드 워드(codeword)의 크기를 n이라고 할 때, 상기 P 행렬은 행의 개수가 k이고 열의 개수가 n-k인 행렬이고, 상기 I는 행 크기가 k 열 크기가 k인 단위 행렬(Identity Matrix)이다.
상기 생성행렬 G 는, 상기 검사행렬 H 가 [ PT : I ]와 같이 표현되었을 때, [ I : P ] 행렬이 된다. 인코딩(Encoding) 되는 k 비트 크기의 정보 비트를 행렬로 표시하면, 행의 개수는 1이고 열의 개수는 k인 행렬 x로 표현할 수 있다. 이 경우 코드 워드 c는 다음과 같은 식으로 설명된다.
Figure 112007020651094-PAT00002
상기 수식에서, x는 정보어 부분(systematic part)을 나타내고, xP는 패리티 부분(parity part)을 나타낸다.
이하, 상술한 LDPC 부호화 방법에 의해 생성된 코드워드를 'LDPC 코드워드'라 칭한다. LDPC 코드워드에는 수신 단으로 송신하려는 정보에 상응하는 정보 비 트(수학식 1의 'x')와 패리티 검사 행렬에 의해 생성되는 패리티 비트가 포함된다.
한편, 위와 같이 가우스 소거(Gaussian Reduction) 방법으로 부호화하는 경우에는 계산량이 많아, 상기 H 행렬의 형태를 특수한 구조로 디자인(design)하여 상기 G 행렬을 유도하지 않고, 상기 H 행렬에서 직접 부호화하는 방법을 사용한다. 즉, 상기 G 행렬과 상기 H 행렬에 대한 전치(Transpose) 형태의 HT 간의 곱이 0 이라는 성질(즉,
Figure 112007020651094-PAT00003
)을 이용하여, 상기 수학식 1에서 HT을 곱하면, 하기 수학식 2 같은 수학식을 얻을 수 있다. 하기 수학식 2에 부합하는 패리티 비트를 정보 비트(x) 뒤에 추가하여 코드워드 c를 얻을 수 있다.
Figure 112007020651094-PAT00004
이하, LDPC 복호화 방법에 대하여 설명한다.
도 2는 종래 기술 및 본 발명에 따른 LDPC 복호화 방법을 나타내는 도면의 일례이다.
통신시스템에서 부호화된 데이터는 도 1의 무선 채널을 통과하는 과정에서 잡음을 포함하게 되는데, 수신 단에서는 도 5과 같은 절차를 통해 데이터의 복호한다. 수신 단의 복호화 블록에서는 부호화된 코드워드(c)에 잡음이 첨가된 수신신호(c')로부터 정보 비트(x)를 구하는데, cHT=0인 성질을 이용하여 찾아낸다. 즉, 수 신된 코드워드를 c'라 할 때, c'HT의 값을 계산하여 결과가 0이면, c' 에서 앞 부분에 위치하는 k개의 비트를 상기 정보 비트(x)로 결정한다.
도 3a는 4 * 8 크기의 임의의 패리티 검사 행렬 H를 나타낸 도면이다. 도 3a와 같은 임의의 패리티 검사 행렬은 검사 노드 검사 노드(Check Node)와 변수 노드(Variable Node)로 구성된 이분법 그래프(Bipartite graph)로 표시될 수 있다.
도 3b는 도 3a의 행렬을 이분법 그래프(Bipartite graph)로 표시한 일례이다. 도 3b에 도시된 각 검사 노드 유닛(Check Node Unit: CNU)와 변수 노드 유닛(Variable Node Unit: VNU)의 연결관계를 보면, 도 3b가 도 3a를 나타내는 것을 알 수 있다. 이하 설명의 편의를 위해 이분법 그래프를 사용하여 설명한다.
이분법 그래프 상에서 알고리즘을 적용하여 복호화하는 과정을 도 2에 기초하여 설명하면 다음과 같은 3개의 과정으로 구분될 수 있다.
1. 검사 노드(check node)에서 변수 노드(variable node)로의 확률값 갱신(도 5의 S502)
2. 변수 노드에서 검사 노드로의 확률값 갱신(도 5의 S503)
3. 변수 노드의 확률을 통한 복호값 결정(도 5의 S504)
상기 S502 내지 S504 동작을 수행하기 위해서, 채널로부터 수신된 확률 값이 입력되는 초기화(initialization)단계(도 5의 S501)가 먼저 수행되어야 한다.
상기 S502 단계를 수행한 이후, 상기 변수 노드(variable)에서 검사 노드(check node)로의 확률 값이 갱신되면, 상기 S504 단계가 수행된다.
또한, 상기 S502과 S503 과정을 통해 갱신된 확률 값을 이용하여 복호 값을 결정한다. LDPC 복호화 과정은 S504 단계에서 결정된 복호 값(c')이 검사식 c'HT=0 을 만족하는 경우, 상기 값(c')을 복호 된 값으로 결정한다. 만약 검사식을 만족하지 못하면 일정 회수만큼 상기 S502 및 S504 단계를 반복수행한다.
상기 S502 내지 S504 단계는 반복수행된다. 따라서, S502 내지 S504 단계가 한번 수행되는 것을 한 번의 반복(iteration) 디코딩이 수행되었다고 할 수 있다.
상기 S502 내지 S504 단계을 반복할수록 검사 노드와 변수 노드간의 확률값의 신뢰도가 높아지고, 결과적으로 구하고자하는 코드워드(codeword)의 참값에 근접하게 된다.
종래의 LDPC 부호의 복호는 주로 패리티 검사 행렬의 다른 표현인 이분법 그래프 상에서 검사 노드와 변수 노드 사이의 확률 값의 갱신으로 신뢰도를 높이는 과정의 반복을 통해 이루어진다. 패리티 검사 행렬의 다른 표현인 이분법 그래프를 이용해 복호화하는 방법은, 갱신(update)된 확률 값을 통해 복호 값을 결정하게 되므로, 복호 값을 결정하게 되는 확률 값의 갱신 과정이 복호기의 성능에 직접적인 영향을 미치게 된다.
신뢰도, 즉 확률 값의 갱신 과정은 S502 단계와 S503 단계로 나누어 생각할 수 있다. 상기 S502 단계와 S503 단계에 따라 특정한 노드를 갱신하는 경우, 패리티 검사 행렬 상에서 갱신되는 노드와 같은 열(column) 또는 같은 행(row)에 위치하는 확률 값을 사용하여 노드의 갱신이 이루어진다. 보다 구체적으로, 갱신되는 노드는 자기 자신의 값을 제외한 다른 확률 값을 이용하여 자신의 갱신을 수행하되, 상술한 바와 같이 같은 열 또는 같은 행에 위치한 확률 값을 이용하여 자신의 갱신을 수행한다. 이 경우, 확률 값이 더 많이 갱신될수록 더 높은 신뢰도를 갖는 것이 일반적이다.
종래의 LDPC 복호 방법, 즉 종래의 신뢰도 전파(BP: Belief Propagation) 알고리즘은 같은 행이나 열 상에서의 신뢰도 갱신에 있어서, 모두 같은 정도의 갱신과정을 거친 확률 값을 사용하여 연산하는 방법을 사용하였다.
이하, LDPC 부호의 부호율(code rate)를 설명한다.
일반적으로, 부호율(R: code rate)은 상기 정보 비트의 크기가 k이고, 실제 전송되는 코드워드의 크기가 n일 때 다음과 같다.
R = k/n
LDPC 부호화 및 복호화에 필요한 패리티 검사 행렬 행렬의 행의 크기가 m, 열의 크기가 n인 경우, 부호율은 다음과 같다.
R = 1 - m/n
이하, 상술한 LDPC 부호를 이용하면서 다양한 부호율을 지원하는 방법을 설명한다.
상기 수학식 3 및 수학식 4를 통해 알 수 있듯이, 하나의 패리티 검사 행렬이 정해지면, 그에 따른 부호율이 하나로 고정된다. 즉, LDPC 부호는 다수의 부호 율을 지원하기 어려운 문제가 있다.
LDPC 부호를 사용하면서 다양한 부호율을 지원하기 위해 천공 기법이 제안되었다. 즉, 낮은 부호율에서 높은 부호율을 갖는 가변 부호율이 가능한 부호를 설계하기 위하여 천공 기법이 제안되었다.
천공 기법은 LDPC 코드워드에 포함되는 다수의 비트 중 특정한 비트들을 보내지 않음으로서 원하는 부호율을 지원하는 기법이다. 즉, LDPC 코드워드에 포함되는 비트 중 일부에 천공(Puncturing)을 수행하는 기법이다.
천공되어 전송되지 않는 비트들은 패리티 검사 행렬의 패리티 부분에 상응하는 패리티 비트들인 것이 바람직하다. 패리티 검사 행렬은 전송하려는 정보에 상응하는 정보어 부분과, LDPC 부호화 방법에 따라 추가로 생성되는 패리티 비트에 상응하는 패리티 부분으로 구분된다. 패리티 비트들에 대한 천공이 수행되더라도 나머지 패리티 비트와 정보 비트를 이용하면 정상적인 복호가 가능하다 따라서, 원하는 부호율을 지원하기 위해 패리티 비트들에 대한 천공을 수행한다.
천공되어 전송되지 않는 경우, 천공된 비트들 때문에 복호화 성능에 열화가 발생할 수 있다. 상술한 이분법 그래프에 의하면, 천공된 비트에 상응하는 변수 노드는 '0'의 LLR 값을 갖는다. 즉, 복호값이 '1'로 결정되거나 '0'으로 결정될 확률이 모두 50%이다. 이러한 '0'의 LLR 값은 복호화의 성능을 감소시킬 수 있다.
LDPC 부호의 디코딩 방식인 BP(Belief Propagation) 알고리즘에서 Check node 연산은 다음과 같다.
Figure 112007020651094-PAT00005
여기서,
Figure 112007020651094-PAT00006
는 검사 노드(check node)에서 변수 노드(variable node)로 전달되는 에지(edge) i의 LLR 값이다. 상기 에지는 패리티 검사 행렬에서 무게를 갖는 성분, 즉 영이 아닌 성분을 나타낸다.
Figure 112007020651094-PAT00007
는 변수 노드에서 검사 노드로 전달되는 에지 j의 LLR 값이다.
Figure 112007020651094-PAT00008
는 검사 노드c의 degree를 뜻한다.
천공된 노드(즉, 천공된 패리티 비트에 상응하는 변수 노드)에 대한 LLR 값은 '0'이다. 따라서, 상기 수학식 5에서 알 수 있듯이, 첫 번째 반복 디코딩(도 2의 S502 내지 S504 단계를 한 번 수행)을 통해 천공된 노드에 이웃하는 다른 노드에는 '0'의 LLR 값이 전달된다. 즉, 천공된 노드로 인해 천공되지 않은 노드는 어떠한 채널 정보도 제공받지 못한다.
예를 들어, 1번 변수 노드가 '0'의 LLR 값을 갖고, 상기 1번 변수 노드는 1번 검사 노드에 연결되어 있고, 상기 1번 검사 노드는 상기 1번 변수 노드 이외에도 3번 변수 노드와 5번 변수 노드에 연결되어 있는 경우, 첫 번째 반복 디코딩을 통해 3번 변수 노드와 5번 변수 노드에는 '0'의 LLR 값이 입력되고, 1번 변수 노드는 '0'이 아닌 LLR 값이 입력된다.
복호화가 진행됨에 따라 반복 디코딩의 횟수는 증가하며, 이 경우 '0'의 LLR 값은 확산되어 결국 소멸하게 된다. 복호화의 성능을 향상시키기 위하여 '0'의 LLR 값을 보다 빠르게 소멸시키는 것이 중요하다.
'0'의 LLR 값을 보다 빠르게 소멸시키기 위해서는, 주어진 패리티 검사 행렬의 구조를 관찰하여, 천공할 비트를 적절하게 선택하는 것이 중요하다. 즉, 어느 변수 노드를 천공시키는 경우에는 '0'의 LLR 값이 빠르게 소멸할 수 있으나, 어느 변수 노드를 천공시키는 경우에는 아주 많은 반복 디코딩을 통해서만 '0'의 LLR 값을 소멸시킬 수 있다.
즉, 천공 기법을 사용하는 LDPC 부호의 경우, 천공된 변수 노드에 의한 악영향을 최소화하는 변수 노드를 찾아야 한다.
이하, k-SR 노드를 결정하고, 그룹화(grouping)하고, 정렬(sorting)하는 알고리즘을 설명한다.
이하, k-SR 노드를 결정하는 알고리즘을 설명한다.
우선, k-SR 노드(Step-Recovery)의 개념을 설명한다.
천공된 노드는 LLR 값이 '0'이 되고 반복 디코딩을 거쳐 천공되지 않은 노드로부터 '0'이 아닌 LLR 값을 전달받는다. 반복 디코딩을 통해 '0'이 아닌 LLR 값을 전달 받는 것을 '회복(Recover)'이라 칭할 수 있다. 천공된 노드는 때에 따라 1번의 반복(iteration) 디코딩에 의하여 회복될 수도 있고 10번의 반복에 회복될 수도 있다.
도 4a는 하나의 패리티 검사 행렬을 이분법 그래프에 의해 나타낸 것이다. 도시된 바와 같이, 1번 변수 노드부터 9번 변수 노드가 존재하고, 각 변수 노드에 연결된 1번 검사 노드부터 3번 검사 노드가 존재한다. 변수 노드 중에서 천공되는 노드는 흰색 노드(2번 및 8번 노드)이고, 천공되지 않는 노드는 음영으로 표시된 노드(1번, 3-8번 노드)이다.
도 4a에서 9번 변수 노드는 한 번의 반복 디코딩을 통해 회복되는 노드이다. k번의 반복 디코딩을 통해 회복되는 변수 노드를 'k-SR(Step Recoverable) 노드'라 정의한다.
도 4b는 1-SR 노드의 연결 구조를 나타내는 도면이다. 도 4b는 도 4a의 이분법 그래프를 달리 표현한 도면이다. 도 4b를 보면, 도 4a의 9번 변수 노드가 1-SR 노드임을 알 수 있다.
도 4b에서 1번 검사 노드는 죽은 검사 노드(dead check node)이고, 2번 검사 노드와 3번 검사 노드는 생존한 검사 노드(survived check node)이다. 생존한 검사 노드는 k-SR 노드의 회복에 도움을 주는 검사 노드이다. 도 4b에서 2번 검사 노드는 천공되지 않은 4, 5, 6 변수 노드와 연결되어 있고, 3번 검사 노드는 천공되지 않은 7, 8 변수 노드와 연결되어 있기 때문에 1번의 반복 디코딩 이후에는 9번 노드에 '0'이 아닌 LLR 값을 전달한다. 반면, 1번 검사 노드는 천공된 2번 변수 노드와 연결되어 있기 때문에, 1번의 반복 디코딩 이후에도 '0'의 LLR 값을 전달한다. 따라서, 죽은 검사 노드이다.
도 4b와 같은 트리 구조를 확장하여 회복 트리(recovery tree)를 구성할 수 있다.
도 5는 천공된 변수 노드에 하나씩의 생존한 검사 노드를 연결하여 트리 구 조를 나타낸 것이다.
특정한 패리티 검사 행렬이 주어지는 경우, 도 5와 같은 트리 구조를 그릴 수 있으며, 이러한 트리 구조를 통해 어떤 변수 노드가 1-SR 노드이고, 어떤 변수 노드가 2-SR 노드인지를 알 수 있다.
도 5에서 알 수 있듯이 k-SR 노드에는 최소한 1개 이상의 (k-1)-SR 노드에 이웃하는 생존한 검사 노드(survived check node)가 존재한다. 즉, k-SR은 적어도 하나 이상의 생존한 검사 노드와 연결되어 있다. 한편, k-SR 노드는 k번째 반복 디코딩에 의해 '0'이 아닌 LLR값을 갖는다.
종래에 제안된 k-SR을 정하는 방법은, k의 최대값을 최소화하는 방법이다. 즉, 좀더 적은 횟수의 반복 디코딩을 통해 특정한 변수 노드의 LLR 값을 '0'이 아닌 값으로 변환시킨다.
도 5에서 최상단의 노드 v의 하단으로 천공되지 않은 노드의 개수를 S(v)로 정의한다. 가우스 근사(Gaussian approximation)를 사용한 density evolution 기법을 사용하면, 검사 노드(check node)에서 변수 노드(variable node)로 전달되는 LLR 값의 평균은 하기 수학식과 같다.
Figure 112007020651094-PAT00009
여기서
Figure 112007020651094-PAT00010
는 채널 LLR값의 평균이다. v의 오류확률은
Figure 112007020651094-PAT00011
이므로 S(v)가 작을수록 오류 확률은 작아진다.
상술한 조건을 충족시키면서 천공될 노드를 선택하는 것이 바람직하다.
이하, 이하, k-SR 노드를 그룹화(grouping)하는 알고리즘을 설명한다,.
그룹화하는 알고리즘은, 모든 변수 노드를 k-SR 노드(k=0,1,2,….)로 그룹화 하는 알고리즘이다. 여기서 0-SR 노드그룹은 천공되지 않아야 할 노드의 그룹이다. 이 알고리즘은 다음과 같은 조건을 충족시키면서 노드를 그룹화한다.
첫 번째, 모든 천공될 노드는 적어도 한 개의 생존한 검사 노드(survived check node)를 가지는 것이 바람직하다. 적어도 생존한 검사 노드와 연결되는 변수 노드는 k 번의 반복 디코딩을 통해 '0'이 아닌 LLR 값을 입력받을 수 있기 때문이다.
두 번째, 낮은 k-SR 그룹에 포함되는 원소의 개수를 최대화하기 위해, 생존한 검사 노드(survived check node)로 선택될 수 있는 검사 노드의 개수가 가장 작은 노드를 우선 선택하는 것이 바람직하다. k-SR 그룹은, 특정한 정수 k번 만큼의 디코딩을 통해 영이 아닌 LLR을 입력받는 k-SR 변수 노드들의 집합을 의미한다. 낮은 k-SR 그룹은, k의 개수가 상대적으로 작은 k-SR 그룹을 나타낸다. 또한, k-SR 그룹의 원소는 k-SR 그룹에 포함되는 k-SR 노드를 의미한다.
한편, 낮은 k-SR 그룹에 포함되는 원소의 개수를 최대화하기 위해서, 복수의 생존한 검사 노드가 동일한 변수 노드에 연결되지 않는 것이 더욱 바람직하다.
셋째, s(v)값을 최소화하기 위해 생존한 검사 노드(survived check node)에 이웃하는 천공되지 않은 노드의 개수가 가장 적은 노드부터 선택한다. 즉, 생존한 검사 노드에 연결되는 천공되지 않은 변수 노드의 개수가 작을수록 바람직하다.
이하, k-SR 노드를 정렬(sorting)하는 알고리즘을 설명한다.
정렬 알고리즘은 효과적으로 원하는 부호율에 맞게 천공될 노드를 선택하는 알고리즘으로서, 이하의 조건을 충족시키는 것이 바람직하다.
첫째, 낮은 k-SR 그룹 내의 노드부터 선택한다. 만약 k-SR 노드가 모두 선택 됐다면 (k+1)-SR 노드에서 선택한다.
둘째, 같은 SR 노드 그룹 안에서는 생존한 검사 노드가 많고 죽은 검사 노드가 적은 노드를 우선 선택한다.
종래의 LDPC 송신 장치는, 상술한 알고리즘들에 따라, k-SR 노드를 결정하고, 낮은 k-SR 노드를 천공하여 수신 단으로 송신하였다.
이하, 구조화된(structured) LDPC를 설명한다.
LDPC 부호를 사용하기 위해서는 패리티 체크 행렬 H를 사용하는데, 사용하는 행렬 H는 대부분의 0과 일부의 1을 원소(elemnet)로 포함하는데, H 행렬의 크기가 105 비트 이상으로 크기 때문에 H 행렬을 표현하는데 큰 크기의 메모리가 필요하다. 상기 구조화된 LDPC 기법은 LDPC 부호화 및 복호화에 사용되는 상기 H 행렬의 원소들을 도 6와 같이 일정한 크기의 서브 블록(sub-block)으로 표현하는 방법이다. IEEE802.16e에서는 상기 서브 블록을 하나의 정수 인덱스(index)로 표시하여, 상기 H 행렬을 저장하는데 필요한 메모리의 크기를 줄인다. 상기 서브 블록은 다양한 행 렬일 수 있는바, 예를 들어 일정한 크기의 퍼뮤테이션 행렬(Permutation Matrix)일 수도 있다.
상기 구조화된 LDPC 기법을 사용하게 되면 특정한 메모리에 1 또는 0으로 구성되는 일정 크기의 행렬을 저장하는 대신, 하나의 정수(즉, 인덱스)만 저장하면 되기 때문에 상기 H 행렬을 표시하는데 필요한 메모리의 크기를 줄일 수 있다.
일례로, IEEE802.16e 표준에 반영된 코드워드(codeword)의 크기가 2304이고, 부호율(code rate)이 2/3인 경우에, LDPC 부호화/복호화를 위해 사용되는 모델 행렬(model matrix)은 도 7과 같다.
모델 행렬은, 이하에서 설명하는 쉬프트 수로 표현되는 적어도 하나의 서브 블록으로 구성된 패리티 검사 행렬을 의미한다. 상기 모델 행렬은 이하에서 설명하는 방법에 의해 패리티 검사 행렬로 확장되어 생성될 수 있다. 따라서 특정한 모델 행렬로 부호화 및 복호화를 수행한다는 의미는 해당 모델 행렬에서 확장되어 생성된 패리티 검사 행렬로 부호화 및 복호화를 수행한다는 의미와 동일하다.
도 7에 도시된 바와 같이, 구조화된 LDPC 행렬은 '-1', '0' 과 양의 정수로 표현될 수 있다. 인덱스가 '-1'인 경우는 특정한 크기의 영 행렬(zero matrix)을 나타내며, 인덱스가 '0'인 경우는 특정한 크기의 단위 행렬(identity matrix)을 나타낸다. '-1'과 '0'을 제외한 양의 정수를 갖는 인덱스는, 상기 인덱스가 쉬프트 수(shift number)를 나타낸다. 서브 블록을 '1'이라는 인덱스로 표현하는 경우, 해당 서브 블록은 단위 행렬에서 특정한 방향으로 '1'번 쉬프트된 것이다.
도 8은 상술한 인덱스, 즉 쉬프트 수(shift number)에 따른 행렬의 표현 방 법을 나타낸 도면이다. 특정한 패리티 검사 행렬을 4*4 크기의 행렬(즉, 서브 블록)로 구조화하여 표현하는 경우, 상기 특정한 서브 블록을 '3'이라는 인덱스로 표시하면, 상기 서브 블록은 도 8의 행렬이 된다.
종래의 구조화된 LDPC 부호의 경우, LDPC 부호화를 각 서브 블록단위로 병렬 처리를 수행할 수 있는 이점이 있다. 그러나, 구조화된 LDPC 부호에 기초하여 상술한 천공 기법을 적용하면 문제가 발생한다. 상술한 천공 기법은 상술한 k-SR의 선택 알고리즘, 그룹화 알고리즘 및 정렬 알고리즘에 의하는 것이 바람직한데, 이러한 알고리즘은 서브 블록 단위가 비트 단위로 처리되기 때문에 종래의 알고리즘을 적용하는데 문제가 발생한다.
본 발명의 종래 기술의 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은, 복수의 서브 블록들로 이루어진 모델 행렬에 의해 부호화된 비트들 중 일부를 천공하는 방법을 제안하는 것이다.
본 발명의 다른 목적은, 구조화된 LDPC 부호에 k-SR 노드를 선택하는 방법을 제안하는 것이다.
발명의 개요
본 발명은 상술한 목적을 달성하기 위해, 상기 모델 행렬의 서브 블록 각각을 1 * 1 크기의 단위 행렬에 의해 확장하여 패리티 검사 행렬을 생성하는 단계; 상기 패리티 검사 행렬을 이용하여 상기 모델 행렬의 각 열(column)에 상응하는 변 수 노드가 몇 번의 반복 디코딩을 통해 회복(recover)되는지를 결정하는 단계; 및 상기 모델 행렬을 이용하여 수신 단으로 송신될 정보 비트를 부호화하는 단계 및 상기 결정 결과에 따라 상기 부호화된 코드워드에 대한 천공을 수행하는 단계를 포함한다.
또한, 본 발명의 다른 일 양상에 따라 천공될 적어도 하나의 노드를 결정하는 방법은, LDPC(Low Density Parity Check) 부호화를 위한 모델 행렬의 서브 블록 각각을 1 * 1 크기의 단위 행렬에 의해 확장하여 패리티 검사 행렬을 생성하는 단계; 상기 패리티 검사 행렬을 이용하여 상기 모델 행렬의 각 열(column)에 상응하는 변수 노드가 몇 번의 반복 디코딩을 통해 회복되는 노드인지를 결정하는 단계; 상기 회복을 위해 몇 번의 상기 반복 디코딩 요구되는지에 따라 상기 변수 노드를 그룹화하는 단계; 및 상기 변수 노드들의 회복을 위해 기여하는 검사 노드의 개수에 따라 동일한 그룹 내의 변수 노드들을 정렬하는 단계를 포함한다.
발명의 일 실시예
본 발명의 목적 및 특징은 이하에서 설명하는 본 발명의 일 실시예에 의해 더욱 구체화될 것이다. 이하 첨부된 도면 등을 참조하여 본 발명의 일 실시예를 설명한다.
본 실시예는 특정한 크기, 예를 들어 z * z 크기의 행렬에 상응하는 서브 블록으로 이루어진 모델 행렬에서의 k-SR 노드를 결정하는 방법을 제안한다. 본 실시예는 상기 서브 블록의 크기를 1*1로 하여 패리티 검사 행렬 생성하고, 이렇게 생성된 패리티 검사 행렬을 이용하여 k-SR 노드를 결한다. 본 실시예는 낮은 k-SR 노 드를 우선적으로 천공하여 원하는 부호율을 지원할 수 있다. 또한, 본 실시예는 동일한 k-SR 노드 중에서 우선순위를 정하여 천공을 수행할 수 있다.
블록 타입(Block-type)의 LDPC 부호, 즉 상술한 구조화된 LDPC 부호는 서브 블록 단위로 데이터 처리가 가능한 장점이 있다. 이러한 블록 단위의 처리는, layered decoding에 적용될 수있다.
상술한 k-SR 노드를 정하고, 정해진 k-SR 노드에 따라 천공을 수행하는 방법을 구조화된 LDPC 부호에 적용하기 위해서는 서브 블록 단위로 천공 기법을 적용하여야 한다.
상술한 바와 같이, 모델 행렬을 이루는 각각의 서브 블록은 특정한 z * z (z by z)의 행렬에 상응한다. 또한, z * z 행렬은 영 행렬이거나 단위 행렬을 특정한 방향으로 순환 천이(circular shift)한 퍼뮤테이션 행렬이다. 이러한 모델 행렬의 특성 때문에, '-1'을 제외한 쉬프트 수를 갖는 서브 블록에 상응하는 z * z 행렬은 행과 열의 무게가 모두 1이고, z개의 변수 노드와 z개의 검사 노드가 모두 독립한다.
예를 들어, 3의 쉬프트 수를 갖는 하나의 서브 블록을 5 * 5의 행렬을 이용하여 확장하는 경우, 해당 서브 블록은 하기 수학식 7과 같이 확장되어 생성될 수 있다.
Figure 112007020651094-PAT00012
상술한 바와 같이, 하나의 서브 블록의 행 또는 열의 무게는 행 또는 열의 위치와 상관없이 모두 '1'이다. 또한, 서브 블록은 기본적으로 퍼뮤테이션 행렬이기 때문에, 각 검사 노드와 변수 노드의 관계는 독립적이다. 즉, 수학식 7의 5 * 5 행렬에서 4 번째 열에 상응하는 4번 변수 노드는 1번째 행에 상응하는 1번 검사 노드와 연결된다. 또한, 5번 변수 노드는 2번 검사 노드에 연결되고, 1번 변수 노드는 3번 검사 노드에 연결되고, 2번 변수 노드는 4번 검사 노드에 연결되고, 3번 변수 노드는 5번 검사 노드에 연결된다.
본 실시예는 이러한 특성을 이용하여, 구조화된 LDPC 부호에서 k-SR 노드를 결정하고, 그룹화하고 정렬한다.
이하, 본 실시예에 따라 k-SR 노드를 결정하는 방법을 설명한다.
우선, 수학식 8과 같은 모델 행렬이 주어진 경우를 가정한다.
Figure 112007020651094-PAT00013
수학식 8의 모델 행렬은 24개의 서브 블록으로 이루어진 모델 행렬이며, 상기 서브 블록은 특정한 z * z 크기의 행렬로 확장되어 하나의 패리티 검사 행렬을 생성할 수 있다.
예를 들어, 수학식 8의 행렬을 2*2 행렬을 이용하여 확장하여 하나의 패리티 검사 행렬을 생성하는 경우, 생성된 패리티 검사 행렬은 수학식 9과 같다.
Figure 112007020651094-PAT00014
또한, 수학식 8의 행렬을 4*4 행렬을 이용하여 확장하여 하나의 패리티 검사 행렬을 생성하는 경우, 생성된 패리티 검사 행렬은 수학식 10과 같다.
Figure 112007020651094-PAT00015
본 실시예는 주어진 모델 행렬에 포함되는 복수의 서브 블록 각각을 1*1 행렬로 확장하여 하나의 패리티 검사 행렬을 생성한다. 이렇게 생성된 패리티 검사 행렬을 기초로 k-SR 노드를 결정한다.
수학식 8의 모델 행렬의 서브 블록 각각을 1*1 행렬로 확장하여 하나의 패리 티 검사 행렬을 생성하면 하기 수학식 11과 같다.
Figure 112007020651094-PAT00016
상기 수학식 8은 모델 행렬이지만, 수학식 9 내지 수학식 11은 수학식 8로부터 확장되어 생성된 패리티 검사 행렬임을 유의해야 한다. 즉, 수학식 8에서 행렬의 성분은 쉬프트 수를 나타내지만, 수학식 9 내지 수학식 11에서 행렬의 성분은 변수 노드와 검사 노드 간의 연결관계를 나타내는 무게를 나타낸다.
수학식 11의 행렬은 모델 행렬이 아니라 패리티 검사 행렬이므로, 종래 기술과 같은 방법으로 k-SR 노드를 결정할 수 있다.
이하, 수학식 11의 행렬을 이용하여 1-SR을 결정하고, 그룹화하고, 정렬하는 방법을 설명한다.
도 9는 수학식 11의 패리티 검사 행렬을 기초로 회복 트리(recovery tree)를 구성한 일례이다. 도 9는 1번 변수 노드를 기준으로 도시된 것이다.
도 9의 구조를 통해 1번 변수가 1-SR 노드로 결정될 수 있는지를 판단한다.
우선 1번 변수 노드만이 천공되는 경우, 1번 검사 노드와 3번 검사 노드는 생존한 검사 노드(survived check node)가 되므로, 1번 변수 노드는 1-SR 노드로 결정될 수 있다.
이하, 1번 변수 노드가 1-SR 노드로 결정된 것을 전재로 나머지 1-SR 노드를 찾는 일례를 설명한다.
도 10은 수학식 11의 패리티 검사 행렬을 기초로 회복 트리(recovery tree)를 구성한 또 다른 일례이다. 도 10은 2번 변수 노드를 기준으로 도시된 것이다. 이 경우, 1번 변수 노드는 천공되었다고 가정한다.
도 10의 구조를 통해 2번 변수 노드가 1-SR 노드로 결정될 수 있는지를 판단한다.
1번 변수 노드가 천공되기 때문에, 1번 검사 노드는 죽은 검사 노드(dead check node)이고, 2번 검사 노드와 4번 검사 노드는 생존한 검사 노드가 된다. 이 경우, 2번 검사 노드와 4번 검사 노드가 5번 변수 노드에 연결되므로 2번 변수 노드를 1-SR 노드로 결정하는 것은 바람직하지 않다.
도 11은 수학식 11의 패리티 검사 행렬을 기초로 회복 트리(recovery tree)를 구성한 또 다른 일례이다. 도 11은 3번 변수 노드를 기준으로 도시된 것이다. 이 경우, 1번 변수 노드는 천공되었다고 가정한다.
도 11의 구조를 통해 3번 변수 노드가 1-SR 노드로 결정될 수 있는지를 판단한다.
1번 변수 노드가 천공되기 때문에, 3번 검사 노드는 죽은 검사 노드이고, 4번 검사 노드는 생존한 검사 노드가 된다. 3번 변수 노드는 하나의 생존한 검사 노드에 연결되므로, 1-SR 노드로 결정될 수 있다.
도 12는 수학식 11의 패리티 검사 행렬을 기초로 회복 트리(recovery tree)를 구성한 또 다른 일례이다. 도 12는 4번 변수 노드를 기준으로 도시된 것이다. 이 경우, 1번 변수 노드는 천공되었다고 가정한다.
도 12의 구조를 통해 4번 변수 노드가 1-SR 노드로 결정될 수 있는지를 판단한다.
1번 변수 노드가 천공되기 때문에, 1번 검사 노드는 죽은 검사 노드이고, 2번 검사 노드는 생존한 검사 노드가 된다. 4번 변수 노드는 하나의 생존한 검사 노드에 연결되므로, 1-SR 노드로 결정될 수 있다.
도 13은 수학식 11의 패리티 검사 행렬을 기초로 회복 트리(recovery tree)를 구성한 또 다른 일례이다. 도 13은 5번 변수 노드를 기준으로 도시된 것이다. 이 경우, 1번 변수 노드는 천공되었다고 가정한다.
도 13의 구조를 통해 5번 변수 노드가 1-SR 노드로 결정될 수 있는지를 판단한다.
1번 변수 노드가 천공되기 때문에, 2번, 3번, 4번 검사 노드는 모두 생존한 검사 노드가 된다. 다만, 생존한 검사 노드 2번 3번이 하나의 변수 노드와 연결되므로 1-SR 노드로 결정되지 않는 것이 바람직하다.
도 14의 구조를 통해 6번 변수 노드가 1-SR 노드로 결정될 수 있는지를 판단한다.
1번 변수 노드가 천공되기 때문에, 1번 검사 노드는 죽은 검사 노드가 된다. 따라서, 6번 변수 노드는 1-SR 노드로 결정되지 않는 것이 바람직하다.
상술한 방법에 의하면 1번, 3번, 4번 검사 노드가 1-SR 노드로 결정된다.
다만, 1-SR 노드로 결정되지 않은 나머지 노드들에 대해서 상술한 방법을 다시 적용하여 k-SR 노드로 결정할 수 있다. 상술한 방법을 반복 적용하면 각 변수 노드들을 k-SR 노드로 결정할 수 있고, 동일한 k 값을 갖는 k-SR 노드들을 그룹화할 수 있다.
예를 들어, 송신 단에서 2개의 비트를 천공해야 하는 경우, 예를 들어, (1번, 3번) 변수 노드를 천공하거나, (1번, 4번) 변수 노드를 천공할 수 있다. 이 경우, 상술한 k-SR 노드의 정렬 알고리즘에 따라 천공할 변수 노드를 결정할 수 있다.
1번, 3번 변수 노드의 경우, 천공되지 않은 변수 노드의 개수가, 1번 4번 변수 노드의 경우보다 더 적으므로 1번, 3번 변수 노드를 천공하여 송신할 수 있다.
상술한 내용에 따라 수학식 11의 패리티 검사 행렬의 1번, 3번, 4번 변수 노드를 1-SR 노드로 결정할 수 있다. 이 경우, 본 실시예는 수학식 8의 모델 행렬의 1번째, 3번째, 4번째 열에 상응하는 변수 노드들을 1-SR 노드로 결정한다. 즉, 1번째, 3번째, 4번째 열에 해당하는 서브 블록들의 변수 노드들이 1-SR 노드로 결정된다. 결과적으로 SR 노드 그룹의 원소는, 종래 기술처럼 비트 단위가 아니라, 서브 블록 단위가 된다.
구조화된 LDPC 부호를 사용하여 패리티 검사 행렬을 확장하여도, 행/열의 무게는 서브 블록에 상응하는 z * z 행렬의 크기에 관계없이 고정된다. 또한, 모델 행렬의 연결 구조와, 모델 행렬을 기초로 확장된 패리티 검사 행렬의 연결 구조도 동일하다.
따라서, 본 실시예는, 모델 행렬의 서브 블록 각각을 1*1 행렬로 확장하여 하나의 패리티 검사 행렬을 생성하고, 이렇게 생성된 패리티 검사 행렬을 기초로 k-SR 노드를 결정한다.
모델 행렬이 하나의 패리티 검사 행렬로 확장되어 부호화가 수행되는 경우, 상기 k-SR 노드에 상응하는 변수 노들은 모두 k-SR 노드로 결정된다.
도 15는 본 실시예에 따라 모델 행렬의 각 열에 상응하는 변수 노드에 대해 k-SR 노드를 결정하는 방법을 나타낸다.
도 15의 (a) 행렬은 주어진 모델 행렬이다. 도 15 (a)의 모델 행렬에 포함되는 복수의 서브 블록 각각을 1*1 행렬로 확장하여 하나의 패리티 검사 행렬을 생성하면 도 15 (b)의 패리티 검사 행렬이 생성된다. 도 15 (b)의 패리티 검사 행렬을 기초로 k-SR 노드들을 결정한다. 그러면, 1번, 3번, 4번 노드가 1-SR 노드임을 알 수 있다.
이러한 결과를 통해 모델 행렬의 1번, 3번, 4번 열에 해당하는 변수 노드들은 모두 1-SR 노드로 결정된다.
만약, 부호화를 수행해야하는 정보어 비트의 개수 때문에, 도 15 (a)의 모델 행렬을 2*2 행렬을 이용하여 확장할 수 있다. 이 경우, 도 15 (c)의 패리티 검사 행렬이 생성된다. 이 경우, 도 15 (c)의 패리티 검사 행렬의 1,2번 열은 도 15 (a)의 1번 열에 상응하고, 도 15 (c)의 패리티 검사 행렬의 5, 6번 열은 도 15 (a)의 3번 열에 상응하고, 도 15 (c)의 패리티 검사 행렬의 7, 8번 열은 도 15 (a)의 4번 열에 상응하다. 따라서, 도 15 (c)의 1, 2, 5, 6, 7, 8번 열에 상응하는 변수 노드는 1-SR 노드로 결정된다.
상술한 본 실시예를 정리하면 다음과 같다.
우선, 모델 행렬을 블록 크기가 1 by 1인 패리티 검사 행렬로 변환한다.
그런 다음, 상술한 그룹화 및 정렬 알고리즘을 적용하여 SR 노드 및 이를 이용하여 원하는 부호율에 맞게 천공될 노드를 선택한다.
마지막으로, 선택한 노드 정보를 토대로 원하는 서브 블록 크기에 맞게 확장시킨다.
본 실시예에 의하면, 구조화된 LDPC 부호의 모델 행렬에 대해서도 SR 노드를 결정할 수 있다.
이상에서 사용한 구체적인 수치는 본 발명의 일례를 설명하기 위한 것에 지나지 아니하므로 상술한 구체적인 수치에 본 발명이 제한되지 아니한다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
이하, 본 발명에 따른 효과를 설명한다.
서브 블록 단위로 노드를 그룹화하고 천공될 노드를 선택하므로 다양한 블록 크기에 따라 천공될 노드의 확장이 가능하다. 즉, 한번의 그룹화 및 정렬 알고리즘의 적용을 통해, 다양한 서브 블록 크기에 따른 천공 기법을 수행할 수 있다
또한, 구조화된 LDPC 부호의 장점인 블록 단위의 연산을 천공 기법을 적용하 는 경우에도 구현할 수 있다.
또한, 구조화된 LDPC 부호의 특성을 이용하였기 때문에 종래 기술과의 성능 차이가 없다.

Claims (7)

  1. 모델 행렬을 이용하여 LDPC(Low Density Parity Check) 부호화를 수행한 데이터를 천공하는 방법에 있어서,
    상기 모델 행렬의 서브 블록 각각을 소정의 크기의 단위 행렬에 의해 확장하여 패리티 검사 행렬을 생성하는 단계;
    상기 패리티 검사 행렬을 이용하여 상기 모델 행렬의 각 열(column)에 상응하는 변수 노드가 몇 번의 반복 디코딩을 통해 회복(recover)되는지를 결정하는 단계; 및
    상기 모델 행렬을 이용하여 수신 단으로 송신될 정보 비트를 부호화하는 단계;
    상기 결정 결과에 따라 상기 부호화된 코드워드에 대한 천공을 수행하는 단계
    를 포함하는
    모델 행렬을 이용하여 LDPC 부호화를 수행한 데이터를 천공하는 방법.
  2. 제1항에 있어서,
    상기 소정의 크기의 단위 행렬은 1 * 1 크기의 단위 행렬인
    모델 행렬을 이용하여 LDPC 부호화를 수행한 데이터를 천공하는 방법.
  3. 제1항에 있어서,
    상기 천공을 수행하는 단계는,
    상기 회복을 위해 필요한 상기 반복 디코딩의 횟수가 적은 변수 노드에 대해 우선적으로 천공을 수행하는
    모델 행렬을 이용하여 LDPC 부호화를 수행한 데이터를 천공하는 방법.
  4. 제1항에 있어서,
    상기 천공을 수행하는 단계는,
    상기 회복을 위해 필요한 상기 반복 디코딩의 횟수에 따라 상기 변수 노드를 그룹화하는 단계;
    상기 변수 노드들의 회복을 위해 기여하는 검사 노드의 개수에 따라 동일한 그룹 내의 변수 노드들을 정렬하는 단계;
    상기 그룹화 및 정렬의 결과에 따라 상기 부호화된 코드워드에 대한 천공을 수행하는 단계
    를 포함하는
    모델 행렬을 이용하여 LDPC 부호화를 수행한 데이터를 천공하는 방법.
  5. 제1항에 있어서,
    상기 부호화를 수행하는 단계는,
    상기 모델 행렬의 서브 블록 각각을 z * z 크기의 단위 행렬에 의해 확장하 여 패리티 검사 행렬을 생성하는 단계;
    상기 z * z 크기 단위 행렬을 이용하여 생성된 패리티 검사 행렬을 이용하여 상기 정보 비트를 부호화하는 단계
    를 포함하는
    모델 행렬을 이용하여 LDPC 부호화를 수행한 데이터를 천공하는 방법.
  6. 제1항에 있어서,
    상기 부호화된 코드워드에 대한 천공은,
    상기 모델 행렬의 정보어 부분에 상응하는 부분에 대하여 수행되는
    모델 행렬을 이용하여 LDPC 부호화를 수행한 데이터를 천공하는 방법.
  7. LDPC(Low Density Parity Check) 부호화를 위한 모델 행렬의 서브 블록 각각을 1 * 1 크기의 단위 행렬에 의해 확장하여 패리티 검사 행렬을 생성하는 단계;
    상기 패리티 검사 행렬을 이용하여 상기 모델 행렬의 각 열(column)에 상응하는 변수 노드가 몇 번의 반복 디코딩을 통해 회복되는 노드인지를 결정하는 단계;
    상기 회복을 위해 몇 번의 상기 반복 디코딩 요구되는지에 따라 상기 변수 노드를 그룹화하는 단계; 및
    상기 변수 노드들의 회복을 위해 기여하는 검사 노드의 개수에 따라 동일한 그룹 내의 변수 노드들을 정렬하는 단계
    를 포함하는
    천공 기법을 지원하기 위하여 모델 행렬에서 천공될 적어도 하나의 노드를 결정하는 방법.
KR1020070025168A 2007-03-14 2007-03-14 모델 행렬을 이용하여 ldpc 부호화를 수행한 데이터를천공하는 방법 KR101253184B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070025168A KR101253184B1 (ko) 2007-03-14 2007-03-14 모델 행렬을 이용하여 ldpc 부호화를 수행한 데이터를천공하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070025168A KR101253184B1 (ko) 2007-03-14 2007-03-14 모델 행렬을 이용하여 ldpc 부호화를 수행한 데이터를천공하는 방법

Publications (2)

Publication Number Publication Date
KR20080084058A true KR20080084058A (ko) 2008-09-19
KR101253184B1 KR101253184B1 (ko) 2013-04-10

Family

ID=40024482

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070025168A KR101253184B1 (ko) 2007-03-14 2007-03-14 모델 행렬을 이용하여 ldpc 부호화를 수행한 데이터를천공하는 방법

Country Status (1)

Country Link
KR (1) KR101253184B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013055046A3 (ko) * 2011-10-10 2013-06-13 삼성전자주식회사 통신/방송 시스템에서 데이터 송수신 장치 및 방법
KR101295208B1 (ko) * 2009-11-23 2013-08-09 후아웨이 테크놀러지 컴퍼니 리미티드 미모(mimo) 통신을 위한 시스템 및 방법
KR20170070933A (ko) * 2015-12-14 2017-06-23 삼성전자주식회사 저밀도 패리티 검사 코드 생성 방법 및 저밀도 패리티 검사 코드를 생성하는 코드 생성 회로
CN112187402A (zh) * 2019-07-05 2021-01-05 北京京东振世信息技术有限公司 一种数据处理的方法、装置和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100640399B1 (ko) * 2004-10-27 2006-10-30 삼성전자주식회사 저밀도 패리티 검사 채널 부호의 천공 방법
KR100881002B1 (ko) * 2005-02-22 2009-02-03 삼성전자주식회사 통신 시스템에서 지그재그 코드를 이용한 저밀도 패리티 검사 부호 생성 장치 및 방법
KR101157246B1 (ko) * 2005-05-16 2012-06-15 삼성전자주식회사 저밀도 패리티 검사 부호의 패딩 및 천공 방법
KR101162217B1 (ko) * 2006-11-17 2012-07-04 엘지전자 주식회사 패리티 검사 행렬을 이용하여 ldpc 부호화를 수행하는방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101295208B1 (ko) * 2009-11-23 2013-08-09 후아웨이 테크놀러지 컴퍼니 리미티드 미모(mimo) 통신을 위한 시스템 및 방법
WO2013055046A3 (ko) * 2011-10-10 2013-06-13 삼성전자주식회사 통신/방송 시스템에서 데이터 송수신 장치 및 방법
US9231734B2 (en) 2011-10-10 2016-01-05 Samsung Electronics Co., Ltd. Apparatus and method for transmitting and receiving data in communication/broadcasting system
KR20170070933A (ko) * 2015-12-14 2017-06-23 삼성전자주식회사 저밀도 패리티 검사 코드 생성 방법 및 저밀도 패리티 검사 코드를 생성하는 코드 생성 회로
CN112187402A (zh) * 2019-07-05 2021-01-05 北京京东振世信息技术有限公司 一种数据处理的方法、装置和存储介质
CN112187402B (zh) * 2019-07-05 2024-05-17 北京京东振世信息技术有限公司 一种数据处理的方法、装置和存储介质

Also Published As

Publication number Publication date
KR101253184B1 (ko) 2013-04-10

Similar Documents

Publication Publication Date Title
KR101455978B1 (ko) Ldpc 부호를 이용한 부호화 방법
KR101102396B1 (ko) 이동통신 시스템에서의 코드워드 크기 정합 방법 및 송신장치
US8271846B2 (en) Method and apparatus for channel encoding and decoding in a communication system using low-density parity-check codes
KR101191196B1 (ko) 패리티 검사 행렬을 이용하여 부호화 및 복호화하는 방법
KR101119111B1 (ko) Ldpc 부호를 이용한 데이터 재전송 방법
EP2050195B1 (en) Method of encoding/decoding using low density check code matrix
RU2537806C2 (ru) Устройство и способ для генерирования матрицы проверки четности в системе связи с использованием линейных блочных кодов и устройство передачи/приема и способ для использования этого
US11101926B2 (en) Method and apparatus for channel encoding and decoding in communication or broadcasting system
US11791845B2 (en) Method and apparatus for channel encoding and decoding in communication or broadcasting system
KR101253184B1 (ko) 모델 행렬을 이용하여 ldpc 부호화를 수행한 데이터를천공하는 방법
US20230421177A1 (en) Apparatus and method for channel encoding/decoding in communication or broadcasting system
KR20170075627A (ko) 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
US12021618B2 (en) Method and apparatus for channel encoding and decoding in communication or broadcasting system
KR101276845B1 (ko) 복수의 레이어들을 이용하여 ldpc 복호화를 수행하는방법
KR101265636B1 (ko) 모델 행렬을 이용하여 ldpc 복호화를 수행하는 방법
KR101128804B1 (ko) 참조 행렬을 이용한 lpdc 부호화 및 복호화 방법
KR101227514B1 (ko) Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법
KR101187070B1 (ko) 패리티 검사 행렬을 이용하여 부호화하는 방법
KR101187072B1 (ko) 패리티 검사 행렬을 이용한 부호화 방법
KR101162217B1 (ko) 패리티 검사 행렬을 이용하여 ldpc 부호화를 수행하는방법
KR101319891B1 (ko) 블록 코드를 이용한 부호화가 수행된 신호를 데이터처리하는 방법
KR101221897B1 (ko) Ldpc 부호화 장치
KR101137349B1 (ko) 복수의 패리티 검사 행렬을 이용하여 부호화하는 방법

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
FPAY Annual fee payment

Payment date: 20160324

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170314

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180314

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee