KR100997668B1 - 채널 코딩 복호방법 및 복호기 - Google Patents

채널 코딩 복호방법 및 복호기 Download PDF

Info

Publication number
KR100997668B1
KR100997668B1 KR1020070119688A KR20070119688A KR100997668B1 KR 100997668 B1 KR100997668 B1 KR 100997668B1 KR 1020070119688 A KR1020070119688 A KR 1020070119688A KR 20070119688 A KR20070119688 A KR 20070119688A KR 100997668 B1 KR100997668 B1 KR 100997668B1
Authority
KR
South Korea
Prior art keywords
symbol
probabilities
probability
values
symbol combinations
Prior art date
Application number
KR1020070119688A
Other languages
English (en)
Other versions
KR20090053054A (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 KR1020070119688A priority Critical patent/KR100997668B1/ko
Publication of KR20090053054A publication Critical patent/KR20090053054A/ko
Application granted granted Critical
Publication of KR100997668B1 publication Critical patent/KR100997668B1/ko

Links

Images

Classifications

    • 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/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3933Decoding in probability domain
    • 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
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/0003Code application, i.e. aspects relating to how codes are applied to form multiplexed channels

Landscapes

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

Abstract

본 발명은 채널 코딩 복호방법 및 복호기에 관한 것이다.
본 발명의 채널 코딩 복호방법은 (a) 수신신호에 포함된 각 심볼이 가질 수 있는 값들의 확률들을 계산하는 단계, (b) 계산된 확률들을 이용하여 코드워드가 될 수 있는 심볼 조합들에 대한 확률들을 계산하는 단계, (c) 심볼 조합들 중 확률을 갱신하기 위하여 필요한 심볼 조합들을 선택하는 단계 및 (d) 선택된 심볼 조합들의 확률들을 이용하여 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 단계를 포함한다.
본 발명에 따르면 기존의 방식에 대비하여 복잡도가 감소된 합-곱 알고리즘이 적용된 채널 코딩 복호방법 등이 제공된다.
합-곱 알고리즘(Sum-Product Algorithm), 채널 코딩(Channel coding), LDPC(Low Density Parity Check) 코드, 심볼 조합, 확률 갱신

Description

채널 코딩 복호방법 및 복호기{CHANNEL CODING DECODING METHOD AND DECODER}
본 발명은 채널 코딩 복호방법 및 복호기에 관한 것이며, 보다 구체적으로, 통신시스템의 수신기에서 채널 코딩된 신호를 복호하기 위해 사용되는 대표적인 알고리즘 중 하나인 합-곱 알고리즘(Sum-Product Algorithm, SPA)의 구현 방법에 관한 것이다.
일반적인 통신 시스템은 데이터의 송수신 오류를 최소화하기 위해서 채널 코딩을 사용한다. 채널에서 잡음에 의한 오류가 발생하더라도 수신기에서 이를 검출 혹은 정정할 수 있도록 원래의 데이터에 새로운 데이터를 덧붙이는 방법을 채널 코딩이라고 한다.
IS-95 CDMA 이동통신 시스템에서는 채널 코딩 기법 중의 하나인 길쌈부호(Convolutional Code)가 적용되어 있다. 최근에는 길쌈부호보다 더 좋은 성능을 내는 채널 코딩 방식을 적용하는 시스템이 증가하고 있는 추세이다. 이러한 채널 코딩 기법 중 대표적인 것이 터보 코드(Turbo Code)이다. 터보 코드는 2개 이상의 길쌈부호를 인터리버(interleaver)로 연결한 구조를 가지며, 기존의 길쌈부호보다 월등한 성능을 낼 수 있다. 또, 최근 터보 코드(Turbo codes)와 함께 주목 받고 있 는 방식으로 저밀도 패리티 검사(Low Density Parity Check, 이하 LDPC라 한다) 코드가 있다. 이러한 채널 코딩 기법을 적용한 대표적인 통신 시스템이 IEEE 802.16e 통신 시스템이다. IEEE 802.16e 규격을 만족하는 차세대 이동통신 시스템 중 하나인 모바일 와이맥스(Mobile WiMAX)는 채널 코딩 기법으로 기존의 길쌈부호와 함께 터보 코드 및 LDPC 코드를 포함하고 있다.
기존의 길쌈부호는 비터비(Viterbi)가 제안한 비터비 알고리즘으로 복호될 수 있다. 하지만 터보 코드와 LDPC 코드를 복호하기 위해서는 다른 알고리즘이 필요하다. 이러한 코드들을 복호하기 위해 사용되는 대표적인 알고리즘 중 하나가 합-곱 알고리즘이다.
합-곱 알고리즘을 적용하기 위해서는 먼저 복호하고자 하는 채널 코딩 기법을 인수 그래프(factor graph) 형태로 표현해야 한다. 인수 그래프는 변수 노드(variable node)와 검사 노드(check node) 및 이들을 연결하는 선으로 이루어져 있다. 변수 노드들은 채널 코드에 의해서 부호화 된 심볼들에 해당 되며, 여러 개의 심볼이 하나의 코드워드를 구성하게 된다. 일반적인 이진코드를 인수 그래프로 표현하는 경우, 각 변수 노드에 해당하는 심볼은 0 또는 1의 값을 가질 수 있다. 이때 각 심볼들 사이에는 채널 코드의 특성에 따라서 일련의 관계가 존재하게 되며, 이를 표현하는 것이 검사 노드이다. 그리고 이러한 일련의 관계를 갖고 있는 심볼들과 검사 노드들은 선으로 연결된다.
복호하고자 하는 채널 코딩 기법이 인수 그래프 형식으로 표현되면 변수 노드들과 검사 노드들에서 합-곱 알고리즘에 따른 계산을 수행하게 된다. 이때, 각 노 드들에서 수행해야 하는 계산의 복잡도가 기존의 비터비 알고리즘보다 훨씬 높기 때문에 과거의 하드웨어로는 실제 시스템에 구현하기가 쉽지 않았다. 따라서 각 노드에서 수행하는 계산을 효율적으로 수행하여 복잡도를 줄일 수 있는 방안이 필요하며, 이는 더욱 고성능의 성능을 내는 코드를 사용하고자 할수록 중요한 문제가 될 것이다.
본 발명의 기술적 과제는 복잡도가 감소된 합-곱 알고리즘이 적용된 채널 코딩 복호방법 및 복호기를 제공하는 것이다.
이러한 기술적 과제를 달성하기 위한 본 발명에 따른 채널 코딩 복호방법은 (a) 수신신호에 포함된 각 심볼이 가질 수 있는 값들의 확률들을 계산하는 단계, (b) 상기 계산된 확률들을 이용하여 코드워드가 될 수 있는 심볼 조합들에 대한 확률들을 계산하는 단계, (c) 상기 심볼 조합들 중 확률을 갱신하기 위하여 필요한 심볼 조합들을 선택하는 단계 및 (d) 상기 선택된 심볼 조합들의 확률들을 이용하여 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 단계를 포함한다.
상기 (a) 단계에서, 상기 수신신호에 포함된 각 심볼이 가질 수 있는 모든 값들의 확률들을 계산하는 것이 바람직하다.
상기 (a) 단계에서 계산된 모든 확률들을 저장하고, 상기 (b) 내지 (d) 단계를 통하여 상기 저장된 모든 확률들을 갱신하는 것이 바람직하다.
상기 (b) 단계에서, 상기 코드워드가 될 수 있는 모든 심볼 조합들을 추출하고, 상기 추출된 모든 심볼 조합들에 대한 확률들을 계산하는 것이 바람직하다.
상기 추출된 모든 심볼 조합들 중에서 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하기 위하여 필요한 심볼 조합들을 선택하는 것이 바람직하다.
상기 (d) 단계에서, 상기 선택된 심볼 조합들의 확률들을 더하고, 상기 더해 진 확률을 갱신하고자 하는 심볼이 갖는 확률로 나눔으로써, 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 것이 바람직하다.
상기 채널 코딩 방식은 터보 코딩(Turbo Coding) 방식 또는 저밀도 패리티 검사 코딩(Low Density Parity Check Coding) 방식일 수 있다.
본 발명에 따른 채널 코딩 복호기는 수신신호에 포함된 각 심볼이 가질 수 있는 값들의 확률들을 계산하는 심볼 확률 계산부, 상기 심볼 확률 계산부에서 계산된 확률들을 이용하여 코드워드가 될 수 있는 심볼 조합들에 대한 확률들을 계산하는 심볼 조합 확률 계산부, 상기 심볼 조합들 중 확률을 갱신하기 위하여 필요한 심볼 조합들을 선택하는 심볼 조합 선택부 및 상기 선택된 심볼 조합들의 확률들을 이용하여 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 심볼 확률 갱신부를 포함한다.
상기 심볼 확률 계산부는 상기 수신신호에 포함된 각 심볼이 가질 수 있는 모든 값들의 확률들을 계산하는 것이 바람직하다.
상기 심볼 확률 계산부에서 계산된 모든 확률들을 저장하고, 상기 저장된 모든 확률들을 갱신하는 것이 바람직하다.
상기 심볼 조합 확률 계산부는 상기 코드워드가 될 수 있는 모든 심볼 조합들을 추출하고, 상기 추출된 모든 심볼 조합들에 대한 확률들을 계산하는 것이 바람직하다.
상기 심볼 조합 선택부는 상기 추출된 모든 심볼 조합들 중에서 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하기 위하여 필요한 심볼 조합들을 선택하는 것이 바람직하다.
상기 심볼 확률 갱신부는 상기 선택된 심볼 조합들의 확률들을 더하고, 상기 더해진 확률을 갱신하고자 하는 심볼이 갖는 확률로 나눔으로써, 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 것이 바람직하다.
상기 채널 코딩 방식은 터보 코딩(Turbo Coding) 방식 또는 저밀도 패리티 검사 코딩(Low Density Parity Check Coding) 방식일 수 있다.
본 발명에 따르면, 복잡도가 감소된 합-곱 알고리즘이 적용된 채널 코딩 복호방법 및 복호기가 제공된다.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 하기의 설명에서는 본 발명의 효과를 보기 위해 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이다.
본 발명을 설명하기에 앞서, 본 발명이 적용될 수 있는 하나의 예인 LDPC 코드에 대한 확률 갱신 과정을 설명한다.
도 1은 본 발명이 실시될 수 있는 예인 LDPC 코드의 구조를 인수 그래프(factor graph) 형식으로 도시한 도면이다. 도 1을 참조하면, 아래쪽 6개의 원은 변수 노드(variable node)들을 나타내며, 각 변수 노드는 코드워드를 이루는 심볼을 의미한다. 따라서 도 1은 6개의 심볼이 하나의 코드워드를 이루는 LDPC 코드를 표현한 것이다. 도 1의 위쪽 3개의 네모는 검사 노드(check node)를 나타낸다. 첫 번째 검사 노드(C1)에 연결된 4개의 심볼들(X1, X3, X4, X6)은 일련의 관계를 가지고 있다는 것을 의미한다.
도 1의 LDPC 코드를 복호하기 위해서는 각 검사 노드에서 합-곱 알고리즘에 따라서 정해진 계산을 수행해야 한다. 이 때, 검사 노드에서는 자신과 연결된 심볼들이 가지고 있는 측정 체계(metric)을 이용하게 되며, 최적의 복호 성능을 얻기 위해서는 각 심볼이 가질 수 있는 값에 대한 확률을 측정 체계로 이용해야 한다. 만약 복호하고자 하는 LDPC 코드가 이진코드인 경우 심볼이 가질 수 있는 값은 0또는 1이 된다. 이때 각 심볼이 0일 확률과 1일 확률을 측정 체계로 하여 계산을 수행하게 되는데, 이러한 확률은 실수 값을 가지게 되므로 많은 계산 복잡도를 야기하게 된다. 더욱이, 이진코드가 아닐 경우에는 2개 이상의 확률들을 사용하게 되며 이는 더 큰 복잡도를 야기하게 된다.
발명의 이해를 돕기 위해 이진 LDPC 코드를 바탕으로 합-곱 알고리즘에서 수행하게 되는 계산과정을 기술하면 다음과 같다.
검사 노드에 연결된 변수 노드가 n개라면, 1개의 변수 노드를 제외한 n-1개의 변수 노드가 갖고 있는 측정 체계를 기반으로, 앞에서 제외했던 1개의 변수 노드에 해당하는 심볼이 0인지 1인지 판단할 수 있는 측정 체계, 즉 2개의 확률을 계산한다. 여기서 한 심볼에 대한 2개의 확률을 계산하는 것을 한번의 검사 노드 연산이라고 정의한다. 검사노드는 자신에게 연결된 모든 변수 노드에 대하여 이와 같은 검사 노드 연산을 수행해야 하며, 이는 모든 검사 노드에서 수행되어야 한다. 따라서 검사 노드가 m개, 변수 노드가 n개인 경우, 검사 노드 연산을 총 n*m번 수행해 야 한다.
한 검사 노드 연산이 갖는 복잡도는 하기의 설명에서 확인할 수 있다. 검사 노드 연산을 수행하기 위해서는 먼저 검사 노드가 의미하는 심볼들 사이의 관계를 알아야 한다. 심볼들 사이의 관계는 코드의 종류에 따라서 달라질 수 있다. 예를 들어, 이진코드를 사용할 경우에는 검사 노드에 연결된 심볼들의 배타적 OR(Exclusive OR, XOR)값은 0이 되어야한다.
도 2는 하나의 검사 노드에 n개의 변수 노드들이 연결된 예를 나타낸다. 이진코드일 경우 앞에서 설명했던 것처럼 검사 노드에 연결된 n개의 심볼들은 다음 수학식 1을 만족해야 한다.
Figure 112007084077614-pat00001
도 2의 화살표는 확률의 전달방향을 의미한다. 검사 노드 연산을 수행하기에 앞서 각 변수 노드는 자신에게 해당되는 심볼이 0일 확률과 1일 확률을 갖고 있다. 한 검사 노드에 n개의 변수 노드가 연결되어 있으므로 총 2*n개의 확률이 존재한다. 합-곱 알고리즘을 통하여 각 심볼들이 가지는 확률을 바탕으로 새로운 2*n개의 확률이 갱신된다.
도 2는 일반적인 LDPC 코드에서 X1,…,Xn-1이 갖고 있는 확률들을 바탕으로 Xn이 갖고 있는 확률들을 갱신하고자 하는 것을 의미한다. 이진코드의 경우에 심볼이 가질 수 있는 값은 0 또는 1이므로 도 2의 uk는 총 2가지(u1은 0, u2는 1)가 존재할 수 있으며, Xn이 0일 확률(Pr{Xn=0})과 1일 확률(Pr{Xn=1})을 갱신해야 한다.
이진 LDPC 코드에서 확률을 갱신하는 과정을 자세히 살펴보면 다음과 같다.
X1,…,Xn-1이 가질 수 있는 조합은 모두 2n-1가지이며, 이때 Xn이 0 또는 1이 될 수 있는 조합은 각각 2n-2가지이다. 예를 들어 n이 3일 경우, X3이 0이 될 수 있는 (X1, X2)는 (0, 0), (1, 1)이다. 따라서 X3이 0일 확률은 다음과 수학식 2와 같이 계산할 수 있다.
Figure 112007084077614-pat00002
마찬가지 방법으로 X3이 1일 확률을 다음 수학식 3과 같이 계산할 수 있다.
Figure 112007084077614-pat00003
즉 한번의 검사 노드 연산에서는, 한 개의 확률을 계산하기 위하여 (n-2)*2n-2번의 곱과 2n-2 - 1번의 합을 수행해야 하며, 2개의 확률을 계산하기 위해서 총 (n-2)*2n-1번의 곱과 2n-1 - 2번의 합을 수행해야 한다. 한 검사 노드에서는 이 과정을 모든 변수 노드에 대해 수행해야 하므로 총 n*(n-2)*2n-1번의 곱과 n*2n-1 - 2*n번의 합을 수행해야 한다.
도 3은 본 발명의 일 실시 예에 따른 채널 코딩 복호방법을 나타낸 도면이다. 도 3 및 도 2를 참조하면, 본 발명의 일 실시 예에 따른 채널 코딩 복호방법은 (a) 수신신호에 포함된 각 심볼이 가질 수 있는 값들의 확률들을 계산하는 단계(S2)와, (b) 계산된 확률들을 이용하여 코드워드가 될 수 있는 심볼 조합들에 대한 확률들을 계산하는 단계(S4)와, (c) 심볼 조합들 중 확률을 갱신하기 위하여 필요한 심볼 조합들을 선택하는 단계(S6) 및 (d) 선택된 심볼 조합들의 확률들을 이용하여 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 단계(S8)를 포함한다.
이하에서는 설명의 편의상 이진 LDPC 코드인 경우를 예로 들어 설명한다. 그러나 본 발명은 이진 LDPC 코드뿐만 아니라, 이진코드가 아닌 경우는 물론, 인수 그래프 형태로 표현된 수식을 합-곱 알고리즘를 이용하여 계산하고자 하는 모든 경우에서 적용될 수 있다.
예를 들어 심볼의 개수가 3인 경우, P{X1 = 0}, P{X1 = 1}, P{X2 = 0}, P{X2 = 1}, P{X3 = 0}, P{X3 = 1}을 계산한다. 여기서, (a) 단계에서 계산된 모든 확률들을 저장한 후, (b) 내지 (d) 단계를 통하여 저장된 모든 확률들을 갱신하는 것이 바람직하다.
다음으로, 먼저 X1, X2, X3가 가질 수 있는 모든 심볼 조합에 대한 확률을 계산한다. 즉, 모든 심볼 값의 배타적 OR값이 0이 되는 모든 심볼 조합들에 대해서 각 심볼 조합이 발생할 수 있는 확률을 계산한다. 이는 다음 수학식 4와 같이 표현 된다.
Figure 112007084077614-pat00004
Figure 112007084077614-pat00005
Figure 112007084077614-pat00006
Figure 112007084077614-pat00007
만약 심볼의 개수가 n인 경우, 따라서 n-1번의 곱을 2n-1개의 심볼 조합에 대해 수행하며, 이때 필요한 연산은 (n-1)*2n-1번의 곱이다. 만약 Xn이 0인 확률을 계산하고 싶다면, 2n-1개의 계산된 값들 중에서 P{Xn = 0}을 포함하고 있는 값들을 가려낸다. 총 2n-2개의 조합이 P{Xn = 0}를 포함하게 될 것이며, 이들을 모두 합한 후에 기존에 가지고 있던 P{Xn = 0} 값으로 나누어 주면 새로운 P{Xn = 0}값을 갱신할 수 있게 된다. 이와 같은 방식으로 연산을 수행할 경우, 하나의 변수 노드에서 한 개의 확률을 계산하고자 할 때 필요한 연산은 2n-2 - 1번의 합과 1번의 나눗셈이다. 따라서 이와 같은 과정을 n개의 변수 노드들과 2개의 확률에 대해 수행해야 하므로, 총 2*n번의 나눗셈과 n*2n-1 - 2*n번의 합이 필요하다.
표 1은 기존의 방식과 본 발명이 제안하는 방식에서의 검사 노드 연산의 복잡도를 비교한 것이다.
기존의 방식 본 발명의 방식
곱/나눗셈 횟수 n*(n-2)*2n-1 (n-1)*2n-1 + 2*n
합 횟수 n*2n-1 - 2*n n*2n-1 - 2*n
표 1을 참조하면, 기존의 방식에 비하여 본 발명의 방식에 따르면, 연산량이 크게 감소하는 것을 알 수 있다.
도 4는 기존의 방식과 본 발명의 방식에 있어서 심볼의 개수(n)에 따른 곱/나눗셈의 횟수를 비교한 그래프이다. 곱과 나눗셈의 복잡도를 동일하다고 생각할 때, n이 커질수록 복잡도가 크게 감소하는 것을 확인할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 채널 코딩 복호기를 나타낸 도면이다. 도 5를 참조하면, 본 발명의 일 실시 예에 따른 채널 코딩 복호기는 수신신호에 포함된 각 심볼이 가질 수 있는 값들의 확률들을 계산하는 심볼 확률 계산부(2), 심볼 확률 계산부(2)에서 계산된 확률들을 이용하여 코드워드가 될 수 있는 심볼 조합들에 대한 확률들을 계산하는 심볼 조합 확률 계산부(4), 심볼 조합들 중 확률을 갱신하기 위하여 필요한 심볼 조합들을 선택하는 심볼 조합 선택부(6) 및 선택된 심볼 조합들의 확률들을 이용하여 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 심볼 확률 갱신부(8)를 포함한다.
이러한 본 발명의 일 실시 예에 따른 채널 코딩 복호기의 동작 원리는 앞서 상세히 설명한 본 발명의 일 실시 예에 따른 채널 코딩 복호방법의 동작 원리와 실질적으로 동일하므로, 본 발명의 일 실시 예에 따른 채널 코딩 복호기에 대한 상세한 설명은 본 발명의 일 실시 예에 따른 채널 코딩 복호방법에 대한 상세한 설명으로 대체한다.
이상에서 보는 바와 같이, 본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명이 실시될 수 있는 하나의 예인 LDPC 코드의 구조를 인수 그래프(factor graph) 형식으로 도시한 도면.
도 2는 LDPC 코드의 복호를 위해 하나의 검사 노드(check node)에서 수행되는 확률 갱신과정을 도시한 도면.
도 3은 본 발명의 일 실시 예에 따른 채널 코딩 복호방법을 나타낸 도면.
도 4는 본 발명의 일 실시 예에 따른 채널 코딩 복호방법과 기존 방식간의 복잡도를 비교한 도면.
도 5는 본 발명의 일 실시 예에 따른 채널 코딩 복호기를 나타낸 도면.

Claims (14)

  1. 채널 코딩 복호방법에 있어서,
    (a) 수신신호에 포함된 각 심볼이 가질 수 있는 값들의 확률들을 계산하는 단계;
    (b) 상기 계산된 확률들을 이용하여 코드워드가 될 수 있는 심볼 조합들에 대한 확률들을 계산하는 단계;
    (c) 상기 심볼 조합들 중 확률을 갱신하기 위하여 필요한 심볼 조합들을 선택하는 단계; 및
    (d) 상기 선택된 심볼 조합들의 확률들과, 상기 계산된 각 심볼이 가질 수 있는 값들의 확률들을 이용하여 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 단계를 포함하고,
    상기 (d) 단계는,
    상기 선택된 심볼 조합들의 확률을 더하고, 상기 더해진 확률을 갱신하고자 하는 심볼이 갖는 확률 값으로 나눔으로써, 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 채널 코딩 복호방법.
  2. 제1항에 있어서,
    상기 (a) 단계에서,
    상기 수신신호에 포함된 각 심볼이 가질 수 있는 모든 값들의 확률들을 계산하는, 채널 코딩 복호방법.
  3. 제2항에 있어서,
    상기 (a) 단계에서 계산된 모든 확률들을 저장하고, 상기 (b) 내지 (d) 단계를 통하여 상기 저장된 모든 확률들을 갱신하는, 채널 코딩 복호방법.
  4. 제1항에 있어서,
    상기 (b) 단계에서,
    상기 코드워드가 될 수 있는 모든 심볼 조합들을 추출하고, 상기 추출된 모든 심볼 조합들에 대한 확률들을 계산하는, 채널 코딩 복호방법.
  5. 제4항에 있어서,
    상기 추출된 모든 심볼 조합들 중에서 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하기 위하여 필요한 심볼 조합들을 선택하는, 채널 코딩 복호방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 채널 코딩 방식은 터보 코딩(Turbo Coding) 방식 또는 저밀도 패리티 검사 코딩(Low Density Parity Check Coding) 방식인, 채널 코딩 복호방법.
  8. 채널 코딩 복호기에 있어서,
    수신신호에 포함된 각 심볼이 가질 수 있는 값들의 확률들을 계산하는 심볼 확률 계산부;
    상기 심볼 확률 계산부에서 계산된 확률들을 이용하여 코드워드가 될 수 있는 심볼 조합들에 대한 확률들을 계산하는 심볼 조합 확률 계산부;
    상기 심볼 조합들 중 확률을 갱신하기 위하여 필요한 심볼 조합들을 선택하는 심볼 조합 선택부; 및
    상기 선택된 심볼 조합들의 확률들과, 상기 심볼 확률 계산부를 통해 상기 계산된 각 심볼이 가질 수 있는 값들의 확률들을 이용하여 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 심볼 확률 갱신부를 포함하고,
    상기 심볼 확률 갱신부는,
    상기 선택된 심볼 조합들의 확률들을 더하고, 상기 더해진 확률을 갱신하고자 하는 심볼이 갖는 확률로 나눔으로써, 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하는 채널 코딩 복호기.
  9. 제8항에 있어서,
    상기 심볼 확률 계산부는
    상기 수신신호에 포함된 각 심볼이 가질 수 있는 모든 값들의 확률들을 계산하는, 채널 코딩 복호기.
  10. 제9항에 있어서,
    상기 심볼 확률 계산부에서 계산된 모든 확률들을 저장하고, 상기 저장된 모든 확률들을 갱신하는, 채널 코딩 복호기.
  11. 제8항에 있어서,
    상기 심볼 조합 확률 계산부는
    상기 코드워드가 될 수 있는 모든 심볼 조합들을 추출하고, 상기 추출된 모든 심볼 조합들에 대한 확률들을 계산하는, 채널 코딩 복호기.
  12. 제11항에 있어서,
    상기 심볼 조합 선택부는
    상기 추출된 모든 심볼 조합들 중에서 상기 각 심볼이 가질 수 있는 값들의 확률들을 갱신하기 위하여 필요한 심볼 조합들을 선택하는, 채널 코딩 복호기.
  13. 삭제
  14. 제8항에 있어서,
    상기 채널 코딩 방식은 터보 코딩(Turbo Coding) 방식 또는 저밀도 패리티 검사 코딩(Low Density Parity Check Coding) 방식인, 채널 코딩 복호기.
KR1020070119688A 2007-11-22 2007-11-22 채널 코딩 복호방법 및 복호기 KR100997668B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070119688A KR100997668B1 (ko) 2007-11-22 2007-11-22 채널 코딩 복호방법 및 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070119688A KR100997668B1 (ko) 2007-11-22 2007-11-22 채널 코딩 복호방법 및 복호기

Publications (2)

Publication Number Publication Date
KR20090053054A KR20090053054A (ko) 2009-05-27
KR100997668B1 true KR100997668B1 (ko) 2010-12-02

Family

ID=40860620

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070119688A KR100997668B1 (ko) 2007-11-22 2007-11-22 채널 코딩 복호방법 및 복호기

Country Status (1)

Country Link
KR (1) KR100997668B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040022446A1 (en) 2000-03-17 2004-02-05 Hewlett Packard Company Block entropy coding in embedded block coding with optimized truncation image compression
US20070153925A1 (en) 2005-11-30 2007-07-05 Alcatel Method and apparatus for dynamic switching of space-time coding/decoding method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040022446A1 (en) 2000-03-17 2004-02-05 Hewlett Packard Company Block entropy coding in embedded block coding with optimized truncation image compression
US20070153925A1 (en) 2005-11-30 2007-07-05 Alcatel Method and apparatus for dynamic switching of space-time coding/decoding method

Also Published As

Publication number Publication date
KR20090053054A (ko) 2009-05-27

Similar Documents

Publication Publication Date Title
US10326478B2 (en) Apparatus and method for encoding and decoding data in twisted polar code
JP3923618B2 (ja) 誤り訂正符号を有する情報ビットの変換方法およびこの方法を実行する符号化器と復号化器
JP5199255B2 (ja) 近傍信頼性に依存するスケジューリングを用いたメッセージ・パッシングによる復号方法
Bioglio et al. Minimum-distance based construction of multi-kernel polar codes
CN103746708A (zh) 一种Polar-LDPC级联码的构造方法
KR20170020305A (ko) 체크 노드 계산유닛을 관리하는 방법, 장치, 및 상기 방법을 실행하기 위한 소프트웨어
US8103945B2 (en) Decoding method and decoding apparatus as well as program
US20070162821A1 (en) Parity check matrix, method of generating parity check matrix, encoding method and error correction apparatus
KR101298745B1 (ko) 데이터를 복호화 및 부호화하는 방법 및 장치
US11177834B2 (en) Communication method and apparatus using polar codes
CN107919874A (zh) 用于非二进制ldpc码解码的校验子计算的基本校验节点处理
US8468438B2 (en) Method and apparatus for elementary updating a check node during decoding of a block encoded with a non-binary LDPC code
EP3443677B1 (en) Communication device and communication method using polar codes
Tian et al. Polar codes for channels with deletions
KR20190032465A (ko) 2의 멱이 아닌 길이로 확장된 폴라 코드의 코딩 및 디코딩
US8190977B2 (en) Decoder of error correction codes
Saber et al. Convolutional polar codes: LLR-based successive cancellation decoder and list decoding performance
CN111164897A (zh) 广义低密度奇偶校验码
US11165447B2 (en) GCC decoding and polar code successive-cancellation list decoding with decomposition into concatenated inner and outer codes
KR100997668B1 (ko) 채널 코딩 복호방법 및 복호기
KR101268061B1 (ko) 다상-누산 코드를 이용한 부호화 방법 및 복호화 방법
CN113556136B (zh) 一种gn陪集码译码方法及装置
KR101405961B1 (ko) Ldpc 코드를 이용한 부호화/복호화 방법
KR101218658B1 (ko) 불규칙 반복 다상 누산 코드를 이용한 부호화 방법 및 복호화 방법
KR101257776B1 (ko) 상태-체크 코드를 이용한 부호화 방법 및 부호화 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20131030

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee