Certains contenus de cette application ne sont pas disponibles pour le moment.
Si cette situation persiste, veuillez nous contacter àObservations et contact
1. (WO2018128435) PROCÉDÉ DE SÉLECTION DE CODE DE BASE LDPC DANS UN CODE MULTI-LPDC, ET DISPOSITIF ASSOCIÉ
Document

명세서

발명의 명칭

기술분야

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   39  

발명의 실시를 위한 형태

40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200   201   202   203   204   205   206   207   208   209   210   211   212   213  

산업상 이용가능성

214  

청구범위

1   2   3   4   5   6   7   8   9   10   11  

도면

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15  

명세서

발명의 명칭 : 다중 LDPC 코드에서 LDPC 베이스 코드를 선택하는 방법 및 이를 위한 장치

기술분야

[1]
본 발명은 무선 랜 시스템에 관한 것으로서, 보다 상세하게는 다중 LDPC (Low-Density Parity-Check) 코드를 지원하는 시스템에서 베이스 코드 (Base Code)를 선택하는 방법 및 이를 지원하는 장치에 관한 것이다.

배경기술

[2]
무선 접속 시스템이 음성이나 데이터 등과 같은 다양한 종류의 통신 서비스를 제공하기 위해 광범위하게 전개되고 있다. 일반적으로 무선 접속 시스템은 가용한 시스템 자원(대역폭, 전송 파워 등)을 공유하여 다중 사용자와의 통신을 지원할 수 있는 다중 접속(multiple access) 시스템이다. 다중 접속 시스템의 예들로는 CDMA(code division multiple access) 시스템, FDMA(frequency division multiple access) 시스템, TDMA(time division multiple access) 시스템, OFDMA(orthogonal frequency division multiple access) 시스템, SC-FDMA(single carrier frequency division multiple access) 시스템 등이 있다.
[3]
상술한 통신 시스템들에서뿐만 아니라, 방송 시스템에 있어서도 채널 코드(channel code)가 필수적으로 이용되고 있다. 채널 코드의 일반적인 구성 방법의 예시로서, 송신단이 부호화기를 이용하여 입력 심볼에 대하여 부호화를 수행하고 부호화된 심볼을 송신할 수 있다. 또한, 예를 들어, 수신단은 부호화된 심볼을 수신하고 수신된 심볼에 대하여 복호를 수행하여 입력 심볼을 복원할 수 있다. 이 경우, 입력 심볼의 크기와 부호화된 심볼의 크기는 통신 시스템에 따라서 달리 정의될 수 있다. 예를 들어, 3GPP (3rd Generation Partnership Project)의 LTE (Long Term Evolution) 통신 시스템에서 사용되는 데이터 정보용 터보(turbo) 코드에서, 입력 심볼의 크기는 최대 6144 비트이고, 부호화된 심볼의 크기는 18432 (6144*3) 비트이다. LTE 통신 시스템에서의 터보 코딩은 3GPP 기술 규격 36.212에 의하여 참조될 수 있다.
[4]
그러나, LTE 터보 코드는 코드의 구조상 SNR (Signal to Noise Ratio)이 증가되더라도 일정 영역을 벗어나면 성능 개선이 미미한 특징이 있다. 이와 관련하여, 보다 오류 발생률이 낮은 코드를 이용하는 것이 고려될 수 있으나, 이 경우, 복잡도가 증가하는 문제점이 있다.
[5]
통신 시스템에 있어서 높은 오류율은 불필요한 데이터의 재송신과 채널 수신 실패를 초래할 수 있다. 또한, 지나치게 높은 복잡도의 코드는 기지국과 단말의 부하를 증가시킬 뿐만 아니라, 송수신 지연을 초래할 수 있다. 특히, 더 빠른 데이터의 송수신이 요구되는 차세대 통신 시스템에 있어서는, 상술한 문제점들이 해결이 요구된다. 따라서, 오류율을 낮추면서도 낮은 복잡도를 갖는 코딩 방법이 요구된다.
[6]
특히, 5 세대 이동통신 기술과 관련하여, URLLC (Ultra Reliable and Low-Latency Communication)가 논의되고 있다. URLLC 시나리오에서, 10-5 이하의 BLER(Block Error Rate)에서 오류 플로어가 발생할 것이 요구된다. 여기서 오류 플로어는 정보 크기의 증가에도 불구하고 오류율의 감소가 미미한 지점을 의미한다. LTE 터보 코드에 있어서는 정보 크기의 증가에 따라, 10-4 이하의 BLER에서 오류 플로어가 발생한다. 따라서, 터보 코드의 대안으로써 LDPC 코드가 이용될 수 있다. LDPC는 상대적으로 낮은 복잡도를 가지면서도 낮은 오류율을 달성할 수 있다. LDPC 코드의 효율적인 이용을 위하여, 다중 LDPC 코드에서의 베이스 코드 선택 방법 등이 결정될 필요가 있다.

발명의 상세한 설명

기술적 과제

[7]
본 발명이 이루고자 하는 기술적 과제는, 다중 LDPC 코드를 사용하는 무선랜 시스템에서 주어진 통신환경에 부합하는 LDPC 코드를 선택하는 방법을 제공하는데 있다.
[8]
본 발명이 이루고자 하는 또 다른 기술적 과제는 다중 LDPC 코드를 사용하는 무선랜 시스템에서 활용될 수 있는 베이스 코드와 쇼트닝(shortening) 양을 고려한 리프팅 값(lifting value)을 선택하는 방법을 제공하는 데 있다.
[9]
본 발명은 상술된 기술적 과제에 한정되지 않으며 다른 기술적 과제들이 본 발명의 실시예들로부터 유추될 수 있다.

과제 해결 수단

[10]
상술한 기술적 과제를 이루기 위한 본발명의 일 측면에 따른 다중 베이스 코드(Base code)를 지원하는 LDPC (Quasi-Cyclic Low-Density Parity-Check) 코드의 인코딩 방법은, 패리티 체크 행렬 생성을 위한 베이스 코드를 제 1 베이스 코드와 제 2 베이스 코드 중에서 선택하는 단계; 상기 패리티 체크 행렬 생성을 위한 리프팅 값(lifting value)을 복수의 리프팅 값으로부터 선택하는 단계; 및 상기 선택된 베이스 코드와 상기 리프팅 값을 이용하여 상기 패리티 체크 행렬을 생성하는 단계를 포함하되, 상기 베이스 코드는 코드 블록 사이즈(Code block size) 및 부호율(Code rate)에 기반하여 결정되고, 상기 리프팅 값은 상기 베이스 코드의 파라미터와 상기 코드 블록 사이즈에 기반하여 결정될 수 있다.
[11]
상기 코드 블록 사이즈가 기 설정된 코드 블록 사이즈보다 큰 경우, 상기 베이스 코드는 상기 제 1 베이스 코드로 선택되고, 상기 코드 블록 사이즈가 상기 기 설정된 코드 블록 사이즈 보다 작은 경우, 상기 베이스 코드는 상기 제 2 베이스 코드로 선택될 수 있다.
[12]
상기 제 1 베이스 코드가 지원하는 코드 블록 사이즈와 상기 제 2 베이스 코드가 지원하는 코드 블록 사이즈가 중첩되는 경우, 상기 코드 블록 사이즈가 기 설정된 코드 블록 사이즈보다 크거나, 상기 부호율이 기 설정된 부호율 보다 큰 경우 상기 베이스 코드는 상기 제 1 베이스 코드로 선택되고, 상기 코드 블록 사이즈가 상기 기 설정된 코드 블록 사이즈 보다 작고, 상기 부호율이 상기 기 설정된 부호율 보다 작은 경우, 상기 베이스 코드는 상기 제 2 베이스 코드로 선택될 수 있다.
[13]
상기 기설정된 코드 블록 사이즈는 상기제 2 베이스 코드의 최대 코드 블록 일 수 있다.
[14]
상기 기설정된 코드 블록 사이즈는 상기제 2 베이스 코드의 최대 코드 블록 이즈이고, 상기 기 설정된 부호율은 상기 제 2 베이스 코드의 최대 부호율 일 수 있다.
[15]
상기 베이스 코드의 파라미터와 상기 복수의 리프팅 값은 상기 베이스 코드의 최대 쇼트닝(shortening) 값을 고려하여 결정될 수 있다.
[16]
상기 최대 쇼트닝 값은 상기 리프팅 값의 8배 또는 4배를 넘지 않도록 설정될 수 있다.
[17]
상기 리프팅 값은 수학식 를 만족하는 최소 Z 값으로 결정되며, 상기 K는 코드 블록 사이즈이고, 상기 Kb,max는 상기 베이스 코드의 최대 정보 비트 시퀀스의 크기이며, 상기 Kb,min은 상기 베이스 코드의 최소 정보 비트 시퀀스의 크기일 수 있다.
[18]
상기 LDPC 코드의 인코딩 방법은 상기 제 1 베이스 코드 또는 상기 제 2 베이스 코드 중 상기 베이스 코드로 선택된 베이스 코드에 대한 정보를 단말로 전송하는 단계를 더 포함 할 수 있다.
[19]
상기 제 2 베이스 코드가 상기 기 설정된 부호율 보다 더 큰 부호율을 지원하는 경우, 상기 코드 블록 사이즈가 상기 기 설정된 코드 블록 사이즈 보다 작고, 상기 부호율이 상기 기 설정된 부호율 보다 큰 부호율 보다 작은 경우, 상기 베이스 코드는 상기 제 2 베이스 코드로 선택될 수 있다.
[20]
상술된 기술적 과제를 이루기 위한 본 발명의 다른 일 측면에 따른 다중 베이스 코드(Base code)를 지원하는 LDPC (Quasi-Cyclic Low-Density Parity-Check) 코드를 인코딩하는 장치는 송수신기; 및 프로세서를 포함하고, 상기 프로세서는, 패리티 체크 행렬 생성을 위한 베이스 코드를 제 1 베이스 코드와 제 2 베이스 코드 중에서 선택하고, 상기 패리티 체크 행렬 생성을 위한 리프팅 값(lifting value)을 복수의 리프팅 값으로부터 선택하고, 상기 선택된 베이스 코드와 상기 리프팅 값을 이용하여 상기 패리티 체크 행렬을 생성하되, 상기 베이스 코드는 코드 블록 사이즈(Code block size) 및 부호율(Code rate)에 기반하여 선택되고, 상기 리프팅 값은 상기 베이스 코드의 파라미터와 상기 코드 블록 사이즈에 기반하여 선택될 수 있다.

발명의 효과

[21]
본 발명의 일 실시예에 따르면, 다양한 통신 환경에 부합하는 적절한 베이스 코드를 이용하여 LDPC 코드를 생성할 수 있는 효과가 있다.
[22]
본 발명의 또 다른 일 실시예에 따르면, 다중 LDPC 코드에서 코드 블록(code block)이 중첩되는 경우, 중첩되는 영역에 대한 적절한 베이스 코드를 선택하여 LDPC 코드를 생성 할 수 있는 효과가 있다.
[23]
상술된 기술적 효과 외에 다른 기술적 효과들이 본 발명의 실시예들로부터 유추될 수 있다.

도면의 간단한 설명

[24]
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되고, 첨부된 도면들은 본 발명에 대한 다양한 실시예들을 제공한다. 또한, 첨부된 도면들은 상세한 설명과 함께 본 발명의 실시 형태들을 설명하기 위해 사용된다.
[25]
도 1은 일 예시에 따른 부호화 과정을 도시한 순서도이다.
[26]
도 2는 일 예시에 따른 운송 블록의 부호화 과정을 도시한 도면이다.
[27]
도 3은 일 예시에 따른 RSC (Recursive Systematic Convolutional) 부호화기를 도시한 도면이다.
[28]
도 4는 LTE 터보 부호화기(encoder)를 도시한 도면이다.
[29]
도 5는 RSC 부호화기에 따른 트렐리스(Trellis)의 일 예시를 도시한 도면이다.
[30]
도 6은 트렐리스 구조의 일 예시를 도시한 도면이다.
[31]
도 7은 일 예시에 따른 구조화된 패리티 체크 행렬을 도시한 도면이다.
[32]
도 8은 일 예시에 따른 모델 행렬(model matrix)을 도시한 도면이다.
[33]
도 9는 쉬프트 수에 따른 행렬의 변환을 설명하기 위한 도면이다.
[34]
도 10은 일 예시에 따른 LDPC 코드 복호화 방법을 도시한 순서도이다.
[35]
도 11은 일 예시에 따른 이분 그래프(bipartite graph)를 도시한 도면이다.
[36]
도 12는 본 발명의 일 실시예에 따른 LDPC 코드의 구조를 도시한 도면이다.
[37]
도 13은 일 예시에 따른 레이트 매칭 과정을 도시한 도면이다.
[38]
도 14은 본 발명의 일 실시예에 따른 베이스 코드 선택 방법을 설명하기 위한 도면이다.
[39]
도 15는 본 발명의 일 실시예에 따른 장치를 설명하기 위한 도면이다.

발명의 실시를 위한 형태

[40]
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.
[41]
이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다. 몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시된다.
[42]
이하의 기술은 CDMA(code division multiple access), FDMA(frequency division multiple access), TDMA(time division multiple access), OFDMA(orthogonal frequency division multiple access), SC-FDMA(single carrier frequency division multiple access) 등과 같은 다양한 무선 접속 시스템에 사용될 수 있다. CDMA는 UTRA(Universal Terrestrial Radio Access)나 CDMA2000과 같은 무선 기술(radio technology)로 구현될 수 있다. TDMA는 GSM(Global System for Mobile communications)/GPRS(General Packet Radio Service)/EDGE(Enhanced Data Rates for GSM Evolution)와 같은 무선 기술로 구현될 수 있다. OFDMA는 IEEE 802.11(Wi-Fi), IEEE 802.16(WiMAX), IEEE 802-20, E-UTRA(Evolved UTRA) 등과 같은 무선 기술로 구현될 수 있다. UTRA는 UMTS(Universal Mobile Telecommunications System)의 일부이다. 3GPP(3rd Generation Partnership Project) LTE(long term evolution)는 E-UTRA를 사용하는 E-UMTS(Evolved UMTS)의 일부로서 하향링크에서 OFDMA를 채용하고 상향링크에서 SC-FDMA를 채용한다. LTE-A(Advanced)는 3GPP LTE의 진화된 버전이다.
[43]
설명을 명확하게 하기 위해, 3GPP LTE/LTE-A를 위주로 기술하지만 본 발명의 기술적 사상이 이에 제한되는 것은 아니다. 또한, 이하의 설명에서 사용되는 특정(特定) 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
[44]
도 1은 일 예시에 따른 부호화 과정을 도시한 순서도이다.
[45]
LTE 통신 시스템에서 이용하는 터보 코드를 포함하는 많은 채널 코드들에 도 1과 같은 부호화 과정이 적용될 수 있다. 이하에서는, 설명의 편의를 위하여 LTE 통신 시스템의 표준 문서에 따른 용어에 기초하여 부호화 과정을 설명한다.
[46]
도 1의 예시에서, 송신단은 운송 블록(Transport Block, TB)을 생성(S101)할 수 있다. 또한, 송신단은 운송 블록에 운송 블록에 대한 CRC 비트를 추가(S102)된다. 또한, 송신단은 CRC 비트가 추가된 운송 블록으로부터 코드 블록을 생성(S103)할 수 있다. 예를 들어, 송신단은 인코더의 입력 크기에 기초하여 운송 블록을 코드 블록으로 분할(segmentation)할 수 있다. 또한, 송신단은 분할된 각각의 코드 블록에 대하여 CRC 비트를 추가(S104)할 수 있다. 이 경우, 예를 들어, 코드 블록 및 코드 블록 CRC 비트의 크기는 6144 비트로 구성될 수도 있다. 송신단은 코드 블록과 CRC 비트로 구성된 블록 각각에 대하여 부호화 및 변조(S105)를 수행할 수 있다. 예를 들어, 상술한 바와 같이, 터보 코딩이 적용될 수도 있다.
[47]
복호화 과정은 도 1의 부호화 과정의 역순으로 수행될 수 있다. 예를 들어, 수신단은 각 부호화기에 대응하는 복호화기(decoder)를 이용하여 각 코드 블록 단위로 복호화를 수행하고, 최종적으로 하나의 운송 블록을 구성하여, 운송 블록의 CRC 통과여부를 확인할 수 있다.
[48]
예를 들어, 입력 심볼의 크기는 MAC(Media Access Control) 계층으로부터의 운송 블록(transport block, TB)의 크기와는 상이할 수 있다. 운송 블록의 크기가 터보 코드의 최대 입력 심볼 크기보다 큰 경우에는, 운송 블록은 복수의 코드 블록(code block, CB)들로 분할 될 수 있다. LTE 통신 시스템의 표준에 따를 경우, 코드 블록의 크기는 6144 비트에서 CRC (Cyclic Redundancy Check) 비트를 감산한 것과 동일할 수도 있다. 터보 코드의 입력 심볼은 코드 블록과 CRC를 포함하는 데이터 또는 운송 블록 (예를 들어, 운송 블록은 6144 비트 미만) 과 CRC를 포함하는 데이터로 정의될 수도 있다. CRC 비트는 6144 비트에 비하여 매우 작은 값(예를 들어, 최대 24 비트)이다. 따라서, 이하의 설명에 있어서는, 다르게 정의되지 않는 한, 코드 블록은 코드 블록 자체 또는 코드 블록과 대응하는 CRC 비트를 지칭할 수 있으며, 운송 블록은 운송 블록 자체 또는 운송 블록과 대응하는 CRC 비트를 지칭할 수 있다.
[49]
도 2는 일 예시에 따른 운송 블록의 부호화 과정을 도시한 도면이다.
[50]
도 2는 도 1과 관련하여 상술한 부호화 과정에 대응하는 운송 블록(201)의 부호화 과정을 도시한다. 먼저, 운송 블록(201)에 운송 블록 CRC(202)가 추가된다. 운송 블록 CRC(202)는 복호 과정에서 운송 블록(201)의 확인을 위하여 이용될 수 있다. 그 후에 운송 블록(201) 및 운송 블록 CRC(202)는 3개의 코드 블록(203)들로 분할 된다. 본 실시예에서는 3 개의 코드 블록(203)들로 분할되었으나, 운송 블록(201)은 부호화기(205)의 입력 크기에 기초하여 복수의 코드블록들로 분할될 수 있다.
[51]
코드 블록(203) 각각에는 코드 블록 CRC(204)가 추가된다. 코드 블록 CRC(204)는 수신단에서 코드 블록(203)의 확인을 위하여 이용될 수 있다. 코드 블록(203)과 코드 블록 CRC(204)은 부호화기(205) 및 변조기(206)를 거쳐 부호화될 수 있다.
[52]
도 3은 일 예시에 따른 RSC (Recursive Systematic Convolutional) 부호화기를 도시한 도면이다.
[53]
도 3의 RSC 부호화기(300)는 터보 코딩에 이용될 수 있다. 도 3에서, m은 입력 데이터를 나타내며, C1은 시스테매틱(systematic) 비트열, C2는 부호화된(coded) 비트열을 나타낸다. 여기서, RSC 부호화기(300)는 1/2 코드율(code rate)을 갖는다.
[54]
RSC 부호화기(300)는 비재귀적(nonrecursive)-비-시스테매틱(non-systematic) 콘볼루셔널(convoluational) 부호화기의 입력에 부호화된 출력을 피드백함으로써 구성될 수 있다. 도 3의 실시예에서 부호화기(300)는 2개의 지연기(301, 302)들을 포함한다. 지연기(301, 302)의 값 D는 코딩 방식(coding scheme)에 따라서 결정될 수 있다. 지연기(301, 302)는 메모리 또는 쉬프트 레지스터(shift register)로 구성될 수 있다.
[55]
도 4는 LTE 터보 부호화기(encoder)를 도시한 도면이다.
[56]
LTE 터보 부호화기(400)의 코딩 방식(scheme)은 2개의 8-상태 요소 부호화기(410, 420)들(constituent encoders)과 하나의 터보 코드 내부 인버리버(internal interleaver)(430)를 갖는 병렬 연접 컨벌루션 코드(Parallel Concatenated Convolutional Code, PCCC)이다.
[57]
도 4에서, 터보 부호화기(400)은 제1 요소 부호화기(constituent encoder)(410), 제2 요소 부호화기(420), 및 터보 코드 내부 인터리버(internal interleaver)(430)로 구성된다. 제1 요소 부호화기(410) 및 제2 요소 부호화기(420)는 8-상태(state) 요소 부호화기들이다. 제1 요소 부호화기(410) 및 제2 요소 부호화기(420)는 각각 도 3의 RSC 부호화기와 유사한 구조로 구성된다. 제1 요소 부호화기(410) 및 제2 요소 부호화기(420)는 각각 3개의 지연기(411, 412, 413, 421, 422, 423)를 포함한다.
[58]
도 4에서, D는 코딩 방식(coding scheme)에 따라서 결정되는 값이다. c k는 터보 부호화기(400)로의 입력이다. 제1 요소 부호화기(410) 및 제2 요소 부호화기(420)로부터의 출력은 각각 z k와 z' k으로 표시된다(denoted). 터보 코드 내부 인터리버(430)로부터 출력되는 값은 c' k로 표시된다. 일반적으로, 지연기(411,412,413,421,42,423)는 입력된 값을 1 클록씩 지연시킬 수 있다. 그러나, 지연기(411,412,413,421,42,423)는 내부 설정에 따라 1 클록 이상 동안 입력된 값을 지연시키도록 구성될 수 있다. 지연기(411,412,413,421,42,423)는 쉬프트 레지스터(shift register)로 구성될 수 있으며, 기설정된 클록만큼 입력된 비트를 지연시킨 뒤 입력된 비트를 다음 지연기(411,412,413,421,42,423)로 출력하도록 구성될 수 있다.
[59]
터보 코드 내부 인터리버(430)는 무선 채널로의 신호 송신시 발생할 수 있는 버스트 오류(burst error)의 영향을 감소시킬 수 있다. 예를 들어, 터보 코드 내부 인터리버(430)는 QPP(Quadratic Polynomial Permutation) 인터리버일 수도 있다.
[60]
터보 코드는 고성능 순방향 오류 정정 (forward error correction, FEC) 코드로서, LTE 통신 시스템에서 이용되고 있다. 예를 들어, 터보 코드에 의하여 코딩된 데이터 블록은 3개의 서브블록들로 구성될 수도 있다. 하나의 서브블록은 m 비트의 페이로드(payload) 데이터에 대응할 수 있다. 다른 서브블록은, RSC(recursive systematic convolution) 코드를 이용하여 계산된, 페이로드에 대한 n/2 비트의 패리티(parity) 비트들로 구성될 수 있다. 또한, 나머지 서브 블록은 RSC 코드를 이용하여 계산된, 페이로드 데이터의 퍼뮤테이션(permutation)에 대한 n/2 비트의 패리티 비트들로 구성될 수 있다. 예를 들어, 상술한 퍼뮤테이션은 인터리버(interleaver)에 의하여 수행될 수 있다. 따라서, 페이로드와 함께 서로 상이한 패리티 비트의 2개의 서브블록들이 하나의 블록으로서 구성될 수 있다. 예를 들어, m이 n/2와 동일한 경우, 하나의 블록은 1/3의 부호율(code rate)을 갖는다.
[61]
제1 요소 부호화기(410)에서, 입력 c k가 부호화된 비트 z k에 도달하는 과정은 두 개의 경로로 구분될 수 있다. 두 개의 경로는 입력단으로부터 출력단으로 출력 피드백 없이 연결된 제1 경로와 입력단으로부터 다시 입력단으로 피드백되는 제2 경로이다.
[62]
제1 경로에서, 입력 c k, 지연기(411)을 거친 입력 c k, 및 지연기들(411, 412, 및 413)을 거친 입력 c k가 출력단에 인가된다. 제1 경로에 대한 입력단 출력단 사이의 관계는 다항식으로 표현될 수 있다. 제1 경로에 대한 다항식은 순방향 생성기 다항식(forward generator polynomial)으로 호칭되고, 하기의 수학식의 g1과 같이 표현될 수 있다.
[63]
[수학식 1]
[64]
[65]
한편, 제2 경로에서, 입력 c k, 지연기들(411 및 412)을 거친 입력 c k, 및 지연기들(411, 412, 및 413)을 거친 입력 c k가 입력단에 피드백된다. 제2 경로에 대한 다항식은 재귀적 생성기 다항식(recursive generator polynomial)으로 호칭되고, 하기의 수학식의 g0와 같이 표현될 수 있다.
[66]
[수학식 2]
[67]
[68]
상기 수학식 1 및 2에서, “+”는 배타적 논리합(exclusive OR, XOR)을 의미하며, 1은 입력이 0번의 지연을 거침을 의미한다. 또한, D n은 입력이 n번의 지연을 거침을 의미한다.
[69]
도 5는 RSC 부호화기에 따른 트렐리스(Trellis)의 일 예시를 도시한 도면이다.
[70]
도 5는 도 3에 도시된 RSC 부호화기의 트렐리스의 구성을 도시한다. 도 5에서 S i는 i번째 입력 데이터의 상태(state)를 나타낸다. 도 5에서, 각 원은 각 노드를 나타낸다. 아울러, 각 노드들 사이에 이어진 선은 브랜치(branch)를 의미한다. 실선의 브랜치는 입력값 1에 대한 브랜치를, 점선의 브랜치는 입력값 0에 대한 브랜치를 의미한다. 브랜치 상의 값은 m/C1C2 (입력값/시스테매틱 비트, 부호화된 비트)로 표시된다. 또한, 인코더의 메모리의 개수에 지수적으로 비례하는 상태를 가질 수 있다. 예를 들어, 인코더가 a개의 메모리를 포함하는 경우, 2 a개의 상태가 트렐리스에 포함될 수 있다.
[71]
트렐리스는 2개의 상태 사이에서 가능한 부호기의 상태 전이를 도시하는 상태 기계(state machine)이다. RSC 부호화기와 같은 컨볼루션 부호화기는 트렐리스 다이어그램(diagram)에 따라서 부호화를 수행할 수 있다. RSC 부호화기에 의하여 부호화된 코드워드는 트렐리스 구조에 기반한 알고리즘에 따라서 복호화될 수 있다. 예를 들어, 비터비(Viterbi) 또는 BCJR(Bahl, Cocke, Jelinek and Raviv) 알고리즘이 이용될 수 있다.
[72]
도 6은 트렐리스 구조의 일 예시를 도시한 도면이다.
[73]
도 6에서, n은 코드워드(codeword)의 길이를 나타낸다. 통상적으로, 추가적인 비트들을 입력 시퀀스 뒤에 추가함으로써, 트렐리스가 종료(terminated)될 수 있다. 일반적으로 0의 시퀀스로 구성된 시퀀스는 테일 비트(tail bit)로 호칭된다. 테일 비트는 트렐리스의 한 상태의 노드들이 0 값을 가지도록 하여 트렐리스를 종료시킨다.
[74]
도 6에서, 코드워드의 길이는 입력 데이터의 길이 k 및 테일 비트의 길이 t를 고려하여 결정될 수 있다. 예를 들어, 코드율이 R인 경우, 코드워드의 길이 n은 (k+t)/R의 값을 가질 수 있다. 일반적으로, 테일 비트의 길이 t는 부호화기의 모든 지연기(예를 들어, 메모리)를 리셋할 수 있는 길이로 결정될 수 있다. 예를 들어, 도 3의 RSC 부호화기는 총 2 비트의 테일 비트를 사용할 수 있다. 또한, 도 4와 같은 LTE 통신의 터보 부호화기는 3 비트의 테일 비트를 사용할 수 있다.
[75]
테일 비트는 입력 데이터의 길이에 비하여 상대적으로 짧은 길이를 갖는다. 상술한 바와 같이 코드워드의 길이는 테일 비트의 길이와 연관되기 때문에, 코드워드의 길이가 한정된 경우에 테일 비트로 인한 코드율 손실이 발생할 수 있다. 그러나, 테일 비트로 인한 코드율 손실에도 불구하고, 테일 비트를 이용한 트렐리스 종료가 널리 이용되고 있다. 계산의 복잡도가 낮고 오류 정정 성능이 우수하기 때문이다.
[76]
펑쳐링(puncturing) 코드는 코드워드 중 일부를 펑쳐링하는 방식이다. 펑쳐링 코드에서, 코드워드 중 일부가 펑쳐링됨으로써 일부 코드워드가 송신되지 않는다. 예를 들어, 테일 비트의 추가로 인한 코드율 손실을 감소시키기 위하여 펑쳐링 코드가 이용될 수 있다. 이 경우, 수신단은 입력 데이터의 길이 k와 테일 비트의 길이 t의 합에 대응하는 트렐리스를 이용하여 복호를 수행할 수 있다. 즉, 수신단은 펑쳐링되지 않은 코드워드를 수신한 것으로 가정하고 복호를 수행할 수 있다. 이 경우, 수신단은 펑쳐링된 비트(즉, 송신단에서 송신되지 않은 비트)에 대응하는 노드로부터의 브랜치에 대하여는 입력값이 없는 것으로 간주할 수 있다. 즉, 해당 노드의 브랜치들에 대하여 입력 데이터는 동일한 확률로 0 또는 1로 가정된다.
[77]
도 1과 관련하여 상술한 바와 같이, 코드블록에 대한 CRC가 코드블록에 추가된다. CRC는 송신하려는 데이터를 기설정된 체크값을 제수로 사용하여 나눈 후, 도출되는 나머지로서 결정될 수 있다. CRC는 일반적으로 송신 데이터의 끝에 추가될 수 있다. 수신단은 수신 데이터를 기설정된 체크 값으로 나눈 나머지를 CRC와 비교하거나, CRC를 포함한 전체 수신 데이터에 대하여 체크 값으로 나눈 나머지가 0인지를 판단할 수 있다.
[78]
운송 블록의 크기가 6144 비트인 경우, CRC의 크기는 최대 24 비트로 구성될 수 있다. 따라서, CRC 비트를 제외한 나머지 비트가 코드 블록의 크기로 결정된다.
[79]
수신단은 복호화를 각 코드블록 단위로 수행할 수 있다. 그 후, 수신단은 코드블록으로부터 운송블록을 구성하고, 운송블록에 대한 CRC를 확인함으로써 복호 성공 여부를 판단할 수 있다. 현재의 LTE 시스템에서, 코드블록 CRC는 빠른 복호화 종료(early decoding termination)를 위하여 이용된다. 예를 들어, 하나의 코드블록에 대한 CRC 체크가 실패하는 경우, 수신단은 나머지 코드블록들을 복호화하지 않고 NACK (Negative ACKnowledgement)을 송신단에 송신할 수 있다.
[80]
NACK이 수신되는 경우, 송신단은 송신 데이터의 적어도 일부를 재송신할 수 있다. 예를 들어, 송신단은 운송블록 또는 하나 이상의 코드 블록을 재송신할 수도 있다. 예를 들어, 운송블록 전체를 재송신하는 경우, 재송신을 위하여 무선 자원이 과다하게 소모될 수 있다. 또한, 예를 들어, 수신단에서 코드블록 CRC 실패로 인한 NACK이 발생하는 경우, 수신단은 CRC 실패가 발생한 코드블록의 정보(예를 들어, 코드블록의 인덱스)를 송신단에 송신할 수 있다. 또한, 송신단은 코드블록의 정보를 이용하여 CRC 실패가 발생한 코드블록만을 전송하여 무선 자원 효율을 증가시킬 수도 있다. 그러나, 코드블록의 개수가 증가되는 경우, 코드블록의 정보(예를 들어, 코드블록의 인덱스)를 피드백하기 위한 데이터 양이 증가하게 된다.
[81]
LTE 통신 시스템에서, 수신단은 ACK/NACK 신호를 이용하여 데이터 수신 성공 여부를 송신단에 알려줄 수 있다. FDD(Frequency Division Duplex)의 경우, i번째 서브프레임에서 수신된 데이터에 대한 ACK/NACK이 i+4번째 서브프레임에서 송신된다. i+4번째 서브프레임에서 NACK이 수신되는 경우, 재전송은 i+8번째 서브프레임에서 수행될 수 있다. 이는, 운송블록을 처리하기 위한 시간과 ACK/NACK 생성을 위한 시간을 고려한 것이다. 운송블록의 처리를 위한 채널 코드 처리가 많은 시간을 소요하기 때문이다. TDD(Time Division Duplex)의 경우, 운송블록의 처리와 ACK/NACK 생성을 위한 시간과 상향링크 서브프레임 할당(예를 들어, TDD 상향링크/하향링크 설정)에 기초하여 ACK/NACK 및 재전송 서브프레임이 결정될 수 있다. 또한, ACK/NACK 번들링(bundling) 및 멀티플렉싱이 이용될 수 있다.
[82]
상술한 바와 같이, 터보 코드는 일정 SNR을 넘어서면 더 이상의 오류율 개선이 미미하다. 터보 코드의 대안으로서, LDPC (Low-Density Parity-Check) 코드가 제안되고 있다. LDPC 코드는 선형 블록 코드(linear block code)로서, IEEE 802.11n, 802.11ac 및 디지털 비디오 브로드캐스팅(Digital Video Broadcasting, DVB)에서 이용된다. LDPC 코드는 생성 행렬(generation matrix)과 패리티 검사 행렬(parity check matrix)로 구성될 수 있다. LDPC 코드에서, 데이터는 메시지 비트들(message bits)과 생성 행렬에 대한 곱 연산을 통하여 부호화될 수 있다. 일반적으로 LDPC 코드를 이용하는 통신 표준에서는, 생성 행렬 대신에 패리티 검사 행렬이 이용될 수 있다. 예를 들어, 패리티 검사 행렬을 이용하여 데이터의 부호화가 수행될 수 있다.
[83]
선형 블록 코드는 생성행렬 G 또는 패리티 체크 행렬 H에 기초하여 생성될 수 있다. 선형 블록 코드는 모든 코드워드 c에 대하여, Hc t가 0의 값을 갖도록 코드가 구성된다. LDPC 코드 또한, 다른 선형 블록 코드와 동일하게, 패리티 검사 행렬 H와 코드워드 c의 곱이 '0'이 되는지를 확인함으로써 수행될 수 있다. 예를 들어, 코드워드 c의 전치행렬과 패리티 검사 행렬에 대한 곱(즉, Hc t)이 0인지를 판단함으로써 LDPC 코드의 복호화가 수행될 수 있다.
[84]
LDPC 코드에 있어서, 패리티 체크 행렬의 원소는 대부분 0으로 이루어지고, 0이 아닌 원소의 수는 코드의 길이에 비하여 적은 수를 가진다. 따라서, LDPC 부호는 확률에 기초한 반복적 복호가 가능하다. 초기에 제안된 LDPC 부호에서, 패리티 체크 행렬을 비체계적(non-systematic) 형태로 정의되고, 패리티 체크 행렬의 행(row)과 열(column)에 균일하게 적은 웨이트(weight)가 적용되었다. 웨이트는 행 또는 열에 포함된 1의 개수를 의미할 수 있다.
[85]
상술한 바와 같이, LDPC 코드의 패리티 체크 행렬 H 상에 0이 아닌 원소의 밀도가 낮다. 따라서, LDPC 코드는 낮은 복호 복잡도를 가지면서도 섀넌(Shannon)의 이론적 한계에 근접하는 성능을 갖는다. 이러한 LDPC 코드의 높은 오류 정정 성능과 낮은 복호 복잡도로 인하여, LDPC 코드는 고속 무선 통신에 적합한 특성을 갖는다.
[86]
구조화된(structured) LDPC 코드
[87]
상술한 바와 같이, LDPC 코드의 생성을 위하여 패리티 체크 행렬 H가 이용될 수 있다. H 행렬은 많은 0과 적은 수의 1을 포함한다. H 행렬의 크기는 10 5 비트 이상의 크기를 가질 수 있으며, H 행렬을 표현하기 위하여 많은 메모리가 소모될 수 있다.
[88]
도 7은 일 예시에 따른 구조화된 패리티 체크 행렬을 도시한 도면이다.
[89]
구조화된 LDPC 코드에서, H 행렬의 원소들은, 도 7에 도시된 바와 같이, 일정한 크기의 서브 블록(sub-block)들로 표현될 수 있다. 도 7에서, 행렬 H의 각각의 요소들은 하나의 서브블록을 나타낸다.
[90]
IEEE 802.16e 표준 문서에서는, 서브 블록을 하나의 정수 인덱스(index)로 표시함으로써, H 행렬을 표현하기 위한 메모리의 크기를 감소시킬 수 있다. 각각의 서브 블록은, 예를 들어, 일정한 크기의 퍼뮤테이션 행렬(permutation matrix)일 수도 있다.
[91]
도 8은 일 예시에 따른 모델 행렬(model matrix)을 도시한 도면이다.
[92]
예를 들어, IEEE 802.16e 표준 문서를 참조하면, 코드워드의 크기가 2304이고 부호율(code rate)이 2/3인 경우, LDPC 코드 부호화/복호화를 위하여 사용되는 모델 행렬은 도 8과 같다. 모델 행렬은 이하에서 설명되는 적어도 하나의 서브 블록으로 구성된 패리티 검사 행렬을 의미할 수 있다. 또한, 서브 블록은, 이하의 설명에 있어서, 쉬프트 수(shift number)로 지칭될 수 있다. 모델 행렬은 후술하는 방법에 기초하여 패리티 검사 행렬로 확장될 수 있다. 따라서, 특정한 모델 행렬에 기초한 부호화 및 복호화는 해당 모델 행렬의 확장으로부터 생성된 패리티 검사 행렬에 기초한 부호화 및 복호화를 의미한다.
[93]
도 8에서, 인덱스 '-1'은 기설정된 크기의 영 행렬(zero matrix)을 나타낸다. 또한, 인덱스 '0'은 기설정된 크기의 단위 행렬(identity matrix)을 나타낸다. '-1' 및 '0'을 제외한 양의 정수의 인덱스는 쉬프트 수를 나타낸다. 예를 들어, '1'의 인덱스로 표현되는 서브 블록은 단위 행렬으로부터 특정한 방향으로 1회 쉬프트된 행렬을 의미할 수 있다.
[94]
도 9는 쉬프트 수에 따른 행렬의 변환을 설명하기 위한 도면이다.
[95]
예를 들어, 도 9는 서브 블록의 크기가 4행 및 4열을 갖는 경우를 도시한다. 도 9에서, 서브 블록은 단위 행렬으로부터 우측으로 3회 쉬프트 된다. 이 경우, 구조화된 LDPC의 코드의 패리티 체크 행렬은 '3'의 정수 인덱스를 이용하여 서브 블록을 표시할 수 있다.
[96]
일반적으로, LDPC 코드의 부호화는 패리티 체크 행렬 H로부터 생성 행렬(Generation Matrix) G를 생성하고, 생성 행렬을 이용하여 정보 비트를 부호화함으로써 수행될 수 있다. 생성 행렬 G의 생성을 위하여, 패리티 체크 행렬 H에 대하여 가우스 소거(Gaussian Reduction)를 수행하여 [P T : I] 형태의 행렬을 구성한다. 정보 비트의 수가 k이고 부호화된 코드워드의 크기가 n인 경우, 행렬 P는 행의 개수가 k이고 열의 개수가 n-k인 행렬이고, I는 크기가 k인 단위 행렬이다.
[97]
패리티 체크 행렬 H가 [P T : I] 의 형태를 갖는 경우, 생성 행렬 G는 [I : P T]의 형태를 갖는다. 크기 k비트의 정보 비트가 부호화되는 경우, 부호화된 정보 비트는 1행 k열의 행렬 x로 표현될 수 있다. 이 경우, 코드워드 c는 xG이고, xG는 [x : xP]의 형태를 갖는다. 여기서, x는 정보 부분(또는 시스테매틱 부분(systematic part))을 나타내고, xP는 패리티 부분(parity part)을 나타낸다.
[98]
또한, 가우스 소거를 이용하지 않고, H 행렬을 특수한 구조로 설계함으로써, 행렬 G를 유도하지 않고 H 행렬로부터 직접 정보 비트를 부호화할 수도 있다. 상술한 H 행렬과 G 행렬의 구조로부터, 행렬 G와 행렬 H의 전치 행렬의 곱은 0의 값을 갖는다. 이러한 특징과 상술한 정보 비트와 코드워드 사이의 관계를 이용하면, 정보 비트의 뒤에 패리티 비트를 추가함으로써 코드워드가 획득될 수 있다.
[99]
도 10은 일 예시에 따른 LDPC 코드 복호화 방법을 도시한 순서도이다.
[100]
통신 시스템에서, 부호화된 데이터는 무선 채널을 통과하는 과정에서 잡음을 포함하게 된다. 따라서, 코드워드 c는 수신단에서 잡음을 포함하는 코드워드 c'으로 표현된다. 수신단은 수신신호에 대하여 역다중화 및 복조(demultiplexing and demodulation)를 수행(S1000)하고, 복호 파라미터들을 초기화(S1005)한다. 수신단은 체크 노드(check node)와 변수 노드(variable)를 갱신(S1010, S1015)하고, 신드롬 체크를 수행(S1020)한다. 즉, c'H T가 0인지를 확인함으로써, 복호화 절차가 종료될 수 있다. c'H T가 0인 경우, c'에서 처음 k개의 비트가 정보 비트x로 결정될 수 있다. 만약 c'H T가 0이 아닌 경우, 합곱(sum-product) 알고리즘 등의 복호화 기법에 기초하여 c'H T가 0을 만족하는 c'을 찾음으로써 정보 비트x가 복구될 수 있다.
[101]
도 11은 일 예시에 따른 이분 그래프(bipartite graph)를 도시한 도면이다.
[102]
도 11에서, 좌측의 노드들(v 0, v 1, …, v 11)은 변수 노드(variable node)들을 나타내며, 우측의 노드들(c 1, c 2, …, c 6)은 체크 노드들을 나타낸다. 도 11의 예시에서, 설명을 위하여 변수 노드 v 0와 체크 노드 c 1을 중심으로 이진 그래프가 도시되었다. 도 11의 이진 그래프의 연결선은 에지(edge)로 호칭될 수 있다. 도 11의 이진 그래프는 Hc t로부터 생성될 수 있다. 따라서, 도 11에서, 변수 노드 v 0로부터의 에지는 패리티 체크 행렬 H의 1열에 대응하고, 체크 노드 c 1으로부터의 에지는 행렬 H의 1행에 대응한다.
[103]
상술한 바와 같이, 복호가 성공되기 위하여는, 패리티 체크 행렬H와 코드워드 행렬c의 전치행렬의 곱이 '0'값을 가져야 한다. 따라서, 하나의 체크 노드에 연결된 변수 노드들의 값이 0이어야 한다. 따라서, 도 11의 경우, 체크 노드 c 1에 연결된 변수 노드들(v 0, v 1, v 4, v 6, v 9, v 11)의 값의 배타적 논리합(exclusive OR, XOR)의 값이 '0'이어야 한다. 신드롬 체크(syndrome check)는, 각 체크 노드에 연결된 변수 노드들의 값이 배타적 논리합의 값이 0인지를 확인하는 것을 의미한다.
[104]
QC (Quasi-Cyclic) LDPC 코드
[105]
이하에서, QC (Quasi-Cyclic) LDPC 코드에 대하여 설명한다.
[106]
LDPC 코드의 우수한 성능을 획득하기 위하여, 패리티 체크 행렬(또는 생성 행렬)이 임의적으로 구성될 수 있다. 또한, LDPC 코드의 성능은 블록의 길이가 증가함에 따라서 향상될 수 있다. 또한, 복호에 있어서, 최적(optimal) 복호 방법을 통하여 LDPC 코드의 성능이 향상될 수 있다. 그러나, 최적 복호의 복호 복잡성으로 인하여, LDPC 코드의 복호를 위하여 신뢰 전파(belief propagation) 알고리즘이 이용된다. 또한, 임의적으로 생성된 LDPC 코드의 패리티 체크 행렬은 우수한 성능을 가지나, 그 구현과 표현이 매우 복잡하다. 따라서, 상술한 바와 같은 구조화된 LDPC 코드가 널리 사용된다. 이러한 구조화된 LDPC 코드로서, QC LDPC 코드가 널리 사용된다.
[107]
QC-LDPC 코드는 Q×Q 크기를 갖는 0행렬과 Q×Q 크기를 갖는 순환순열 행렬(Circulant Permutation Matrix, CPM)으로 구성된다. 순환순열행렬은P a는 Q×Q 크기의 단위 행렬(identity matrix)을 순환이동 값 a만큼 순환 이동시킨 형태(도 9 참조)를 갖는다. 예를 들어, 도 7에 도시된 바와 같이, 패리티 체크 행렬(H)은 (mb+1)×(nb+1) 개의 순환순열행렬들로 구성될 수 있다. 상술한 바와 같이, 순환이동 값 0은 단위 행렬을, -1은 0행렬을 나타낸다. 또한, 패리티 체크 행렬은, 도 8에 도시된 바와 같이, 순환이동 값들의 행렬로 표현될 수도 있다. 여기서 각각의 순환 이동의 값은 -1 이상 Q-1 이하의 값을 갖도록 설정될 수 있다. 도 8과 같이 순환이동의 값으로 구성된 행렬은 순환이동 행렬 또는 특성 행렬(characteristic matrix)으로 호칭될 수 있다.
[108]
도 12는 본 발명의 일 실시예에 따른 LDPC 코드의 구조를 도시한 도면이다.
[109]
이하의 실시예에 있어서, 다-에지(multi-edge) QC LDPC 코드가 이용될 수 있다. 예를 들어, 도 12에 도시된 바와 같이, 다-에지 QC LDPC 코드는 QC-IRS(Irregular Repeat Accumulation)와 유사한 고율 코드(high rate code)와 단일 패리티 체크 코드가 연접된 구조를 가질 수 있다. 예를 들어, 다-에지 QC-LDPC 코드의 패리티 체크 행렬(H)은 하기와 같은 형태로 정의될 수 있다.
[110]
[수학식 3]
[111]
[112]
위 수식에서, A는 QC-IRA와 유사한 구조를 갖는 고율 코드를 나타낸다. 0는 0 행렬을 나타낸다. 또한, C와 I는 단일(single) 패리티 체크 코드의 정보와 패리티를 각각 나타낸다. 도 12에서, 0은 단위 행렬을, -1은0 행렬을 나타낸다.
[113]
도 12에서 K는 인코딩 되는 정보(information)의 크기를 나타낸다. 또한, M1은 고율 코드 부분의 패리티를, M2는 단일 패러티 체크 코드 부분의 패리티 크기를 각각 나타낸다. P는 LDPC 코드에 적용되는 펑쳐링의 크기를 나타낸다.
[114]
이때 P의 크기는 LDPC 디코더가 수행 가능한 최대 반복 회수(iteration)을 고려해서 결정 될 수 있다. 본 발명의 몇몇 실시예에서 디코더의 최대 반복 회수는 50일 수 있으며, 이에 따른 P의 크기는 2Z 일 수 있다. 하지만 본 발명이 이러한 구성에 한정되는 것은 아니다. 또한, 도 12 상에서 고율 코드 부분(A)의 패리티 구조는 인코딩 방식을 고려하여 이중 대각선(dual-diagonal) 구조로 결정 될 수 있다.
[115]
원하는 크기의 QC LDPC 코드의 구성을 위하여, 리프팅(lifting) 동작이 수행될 수 있다. 리프팅은 기설정된 패리티 체크 행렬으로부터 원하는 크기의 패리티 체크 행렬을 획득하기 위하여 이용된다. 리프팅 크기를 변경함으로써 다양한 코드 길이가 지원될 수 있다. 예를 들어, 플로어(floor) 리프팅 또는 모듈로(modulo) 리프팅이 이용될 수 있다. 예를 들어, 모듈로 리프팅에 따른 패리티 체크 행렬은 하기의 수식과 같이 획득될 수 있다.
[116]
[수학식 4]
[117]
[118]
위 수학식에서, Q는 리프팅 크기를 나타낸다. 또한, a ij는 기설정된 패리티 체크 행렬의 i행 j열의 쉬프트 값을 나타낸다 (도 8 참조). 또한, MOD Q는 Q값에 기초한 모듈로 연산을 나타낸다. 즉, 기설정된 패리티 체크 행렬의 순환 이동 행렬에서, 0행렬에 대응하는 값들은 유지되고, 나머지 순환 이동 값들에 대하여는 리프팅 크기 Q에 기초한 모듈로 연산이 수행된다. 따라서, 순환 이동 행렬의 쉬프트 값이 -1 이상 Q-1이하의 값들로 변환된다.
[119]
도 13은 일 예시에 따른 레이트 매칭 과정을 도시한 도면이다.
[120]
실질적으로 송신될 수 있는 데이터 비트의 길이는 이용가능한 물리 자원의 크기에 기초하여 결정될 수 있다. 따라서, 레이트 매칭을 통하여 이용가능한 물리 자원의 크기에 대응하는 부호율(code rate)을 갖는 코드워드가 생성될 수 있다. 예를 들어, 레이트 매칭을 위하여 쇼트닝(shortening) 기법 또는 펑쳐링(puncturing) 기법이 이용될 수 있다. 쇼트닝 기법은, 예를 들어, 코드워드의 정보 부분의 일부를 제거함으로써 수행될 수 있다. 정보 비트의 일부가 줄어들기 때문에, 쇼트닝 기법에 의하여 부호율이 감소될 수 있다. 펑쳐링 기법은, 예를 들어, 코드워드의 패리티의 적어도 일부를 펑쳐링함으로써 수행될 수 있다. 펑쳐링의 경우, 정보 비트의 비율이 증가하기 때문에 부호율이 증가될 수 있다. 따라서, 이론적으로, 쇼트닝과 펑쳐링의 조합을 통하여 임의의 부호율에 대응하는 코드워드가 생성될 수 있다.
[121]
쇼트닝 및 펑쳐링의 성능은 쇼트닝 또는 펑쳐링되는 비트의 순서에 따라 결정될 수도 있다. 그러나, QC LDPC 코드의 경우, Q×Q 단위 블록 내에서의 비트 펑쳐링의 순서는 성능에 영향을 주지 않는다. 따라서, 패리티 블록에 대한 리프팅 사이즈(Q) 단위의 인터리빙이 수행된 후, 펑쳐링은 패리티 비트의 마지막 부분으로부터 수행될 수 있다. 또한, 쇼트닝은 정보 비트의 마지막 부분으로부터 수행될 수 있다.
[122]
한편, 부호화된 LDPC 코드의 길이보다 물리 자원의 크기가 큰 경우, 반복기법을 통하여 레이트 매칭이 수행될 수 있다.
[123]
도 13을 참조하여, 먼저, 송신하고자 하는 정보 비트를 포함하는 정보 블록이 생성(S1301)된다. 코드 블록의 크기가 LDPC 정보부분의 길이보다 작은 경우, 부호화 전에 0 비트 정보가 정보 블록의 뒤에 추가될 수 있다. 도 13의 예시에서, 추후의 쇼트닝을 위하여, 정보 블록의 뒤에 0 비트 블록이 삽입(S1302)된다. 그 후, 정보 블록과 0 비트 블록에 대하여 LDPC 코드에 기초한 부호화를 수행함으로써 패리티 블록을 포함하는 코드워드가 생성(S1303)될 수 있다. 단계 S1303에서, 정보 블록과 0 비트 블록은 LDPC 코드의 정보 부분에 대응하고, 패리티 블록은 LDPC 코드의 패리티 부분에 대응할 수 있다.
[124]
상술한 바와 같이, 레이트 매칭을 위하여 쇼트닝 기법이 적용될 수 있다. 이 경우, 기삽입된 0 비트 블록이 제거(S1304)될 수 있다. 또한, 후술하는 펑쳐링을 위하여, 패리티 블록에 대하여 리프팅 사이즈 단위의 인터리빙(또는 퍼뮤테이션(permutation))이 수행될 수 있다. 또한, 레이트 매칭을 위하여, 패리티 블록의 마지막 부분이 펑쳐링될 수 있다 (S1305).
[125]
5G 무선랜 시스템은 최대 20Gbps부터 최소 수 십 bps까지의 전송율을 제공한다(LTE의 경우 40 bps까지 지원한다). 이처럼 5G 무선랜 시스템이 지원하는 전송 환경은 다양하다고 할 수 있다. 이처럼 다양한 환경에 대해 정보를 효율적으로 인코딩하기 위해서는 인코딩에 사용되는 LDPC 코드가 다양한 부호율을 지원해야 하나, 종래와 같이 하나의 LDPC 코드를 이용하여 정보를 인코딩하는 하는 경우, 다양한 통신 환경에 대한 대응이라는 측면에서 비효율적이라는 문제가 존재 한다.
[126]
본 발명에서는 이러한 다양한 통신 환경에 대한 효과적인 인코딩을 제공하기 위해, LDPC 코드가 여러 개(multiple)의 베이스 코드(Base code)를 사용하는 것을 제안한다.
[127]
본 발명에서 제안되는 몇몇 베이스 코드는 큰 전송 블록(large block)과 많은 양의 스루풋(throughput)에 유리한 베이스 코드이거나, 작은 전송 블록(small block), 짧은 지연 시간(latency)에 유리한 베이스 코드일 수 있다.
[128]
LDPC 코드는 터보 코드와 달리 부호율이 낮아질수록 처리 해야 하는 H 매트릭스의 행(row)이 증가한다는 문제가 있다. 예를 들어 LDPC 코드의 부호율이 8/9인 경우, 인코더가 처리 해야 하는 행의 개수가 6개라 한다면, 동일한 조건하에 부호율이 2/3으로 감소하는 경우에는, 인코더가 처리해야 하는 행이 18개로 증가하게 된다. 처리 해야 하는 행의 개수가 3배 증가함에 따라, 지연 시간 역시 3배 증가하게 된다.
[129]
본원 발명에서는 이러한 문제점을 극복하기 위해, 작은 전송 블록의 인코딩을 위한 별도의 짧은 코드(short code)를 도입하는 것을 제안한다. 이러한 다중 베이스 코드를 도입함에 따라, 디코딩 지연 시간과 전력 소모 측면에서 이점을 얻을 수 있다.
[130]
기지국과 단말 간에 전송되는 데이터 패킷은, 상기 데이터 패킷이 상향링크 또는 하향링크 중 어느 것을 통해 전송되는지에 따라 다른 특징을 가진다. 하향링크 전송의 경우, 상향링크 전송에 비해 상대적으로 높은 부호율을 가지기 때문에 큰 크기의 전송 블록이 대부분의 트래픽을 차지한다. 반면, 상향링크 전송의 경우, 상대적으로 작은 크기의 전송 블록이 대부분의 트래픽을 차지한다.
[131]
이러한 특징을 고려하여, 송신단의 인코더가 각각의 통신환경에 부합하는 LDPC 베이스 코드를 사용하여 정보를 인코딩하는 경우 지연 시간을 효과적으로 줄일 수 있다.
[132]
실시예 1-1
[133]
본원 발명이 제안하는 제 1 베이스 코드는 큰 코드 블록(large code block) 및 높은 스르풋(throughput) 용으로 제안 될 수 있으며, 제 2 베이스 코드는 작은 코드 블록(short code block) 및 짧은 지연 시간(low latency) 용으로 제안 될 수 있다. 아래의 표 1은 상기 제 1 베이스 코드와 상기 제 2 베이스 코드의 몇몇 파라미터를 제안한다. 다만 본 발명의 특징이 상기 표가 제안하는 파라미터에 의해 제한되는 것은 아니다.
[134]
[표 1]
[135]
[136]
상기 표에서 Mb는 각각의 베이스 코드의 패리티(parity) 크기를, Nb는 각각의 베이스 코드의 코드워드의 크기를 나타낸다. 또한, Pb는 각각의 베이스 코드의 펑쳐링 크기를 나타낸다. Kb,max는 각각의 베이스 코드의 열(column)의 수 중 최대값, Kb,min은 각각의 베이스 코드의 열(column)의 수 중 최소 값을 각각 나타 낸다.
[137]
리프팅 값의 종류는 최대 정보 쇼트닝을 고려하여 결정 될 수 있다. 이때 최대 쇼트닝의 양은 (Kb,max - Kb, min) * Z로 결정 될 수 있다. 리프팅 값의 종류가 많은 경우, 쇼트닝의 크기가 줄어들어 안정적인 성능 확보가 가능하지만, 구현복잡도가 증가되는 단점이 존재한다. 즉, 양자는 서로 트레이드 오프(trade-off)관계에 있다고 할 수 있다.
[138]
본 발명의 몇몇 실시예 중 제 1 베이스 코드의 경우 쇼트닝이 8Z를 넘지 않도록 리프팅 값이 설정될 수 있으며, 제 2 베이스 코드의 경우 쇼트닝이 4Z를 넘지 않도록 설정 될 수 있다. 상기와 같이 설정되는 경우, 다양한 코드 블록 크기에 대해 성능 편차를 최소화 할 수 있다.
[139]
아래의 표 2는 본 발명의 일 실시예에 따른 제 1 베이스 코드에 대한 몇몇 리프링 값들을 도시한다.
[140]
[표 2]
[141]
[142]
예를 들어 코드 블록의 크기가 6140으로 주어지는 경우, 리프팅 값으로 256을 선택 하여 2052 = 8192-6140(열 값은 32) 값을 쇼트닝 값으로 설정하는 것과 리프팅 값으로 192를 선택하여 4 = 6144-6140(열 값은 32) 값을 쇼트닝 값으로 설정하는 것이 고려 될 수 있다. 각각의 경우에 대해 장단점이 있으나, 2052 쇼트닝 값의 경우 쇼트닝의 따른 성능 열화가 발생 할 수 있다.
[143]
아래의 표 3은 본 발명의 다른 실시예에 따른 제 2 베이스 코드에 대한 몇몇 리프팅 값들을 도시한다. 다만 본 발명의 특징이 상기 표 2 및 표 3에 개시되어 있는 리프팅 값들에 의해 제한되는 것은 아니다.
[144]
[표 3]
[145]
[146]
실시예 1-2
[147]
본 발명이 제안하는 다른 실시예에 따른 제 1 베이스 코드와 제 2 베이스 코드는, LDPC코드로 입력되는 코드 블록 크기가 중첩되는 경우에 대해서 제안될 수 있다.
[148]
아래의 표 4 및 표 5는 본 발명의 다른 실시예에 따른 제 1 베이스 코드와 제 2 베이스 코드의 몇몇 파라미터를 도시한다.
[149]
[표 4]
[150]
[151]
아래의 표 6 및 표 7은 본 발명의 다른 실시예에 따른 제 1 베이스 코드 및 제 2 베이스 코드에 대한 몇몇 리프링 값들을 도시한다.
[152]
[표 5]
[153]
[154]
[표 6]
[155]
[156]
표 5와 표 6을 비교하면, 코드 블록의 크기가 504부터 2560인 경우에 대해서는 제 1 베이스 코드와 제 2 베이스 코드를 모두 적용할 수 있음을 알 수 있다. 이하에서는, 이처럼 코드 블록 크기에 따라 선택 가능한 베이스 코드가 중첩되는 경우(각각의 베이스 코드가 지원 가능한 코드 블록 크기가 중첩되는 경우), LDPC 코드가 베이스 코드를 선택하는 방법을 제안한다. 베이스 코드를 선택하는 방법에 대해서는 아래에서 자세히 설명한다. 이와는 별도로 단말의 상황 또는 수용 능력(capacity)에 따라 베이스 코드를 선택적으로 선택하는 것도 가능하다.
[157]
각각의 베이스 코드에서 사용될 수 있는 복수의 리프팅 값을 선택하는 방법에 대해서 보다 자세하게 설명한다. 먼저 베이스 코드가 지원 할 수 있는 가장 큰 리프팅 값 Zmax를 선정한 뒤, 순차적으로 작은 리프팅 값을 선정 할 수 있다. 이후 베이스 코드가 지원 가능한 최대 쇼트닝 양을 고려하여 Kb, min을 선정 할 수 있다. 상기 제 1 베이스 코드의 예시는 Zmax = 256, Kb,min = 24로 선정된 경우를 도시한다.
[158]
이후 다음의 수식에 부합하는 i번째 Z 값을 해당 베이스 코드의 리프팅 값으로 선정 할 수 있다.
[159]
[수학식 5]
[160]
(Kb,min+1) * Z(i-1) > (Kb,max) * Z(i) >= (Kb,min)*Z(i-1),
[161]
Z(0)=Zmax, i=1,2,...,n
[162]
상기 수식에서 n은 지원하고자 하는 최소 리프팅 값까지 증가시킨 i 값을 의미한다.
[163]
이 외에, 베이스 코드가 지원하는 복수의 리프팅 값은 다음의 수식에 따라 결정 될 수도 있다.
[164]
[수학식 6]
[165]
Z(i) = ceil( Z(i-1)* Kb,min / Kb,max )
[166]
상기 수식에서 ceil(a)은 a를 올림하는 수식을 나타낸다.
[167]
실시예 1-3
[168]
이하에서는 복수의 리프팅 값 또는 리프팅 세트를 선정하는 다른 실시예에 대해서 설명한다. 베이스 코드에서 사용할 수 있는 복수의 리프팅 값은 A*2^B의 형태가 되도록 선택 될 수 있다.
[169]
아래의 표 7은 본 발명의 다른 실시예에 따라, LDPC 코드의 베이스 코드가 사용할 수 있는 복수의 리프팅 값을 도시한다.
[170]
[표 7]
[171]
[172]
아래의 표 8은 본 발명의 다른 실시예에 따른 제 1 베이스 코드 및 제 2 베이스 코드의 몇몇 파라미터를 도시한다.
[173]
[표 8]
[174]
[175]
실시예 2-1
[176]
이하에서는, 본 발명의 일 실시예에 따라, 다중 LDPC 코드가 LDPC 코드에서 베이스 코드와 리프팅 값이 선택되는 방법에 대해서 설명한다.
[177]
상술한바와 같이, 채널 코딩 상에서, 운송 블록의 크기 (transport block size : TBS)가 주어지는 경우, 송신단은 인코더의 입력 크기에 기초하여 운송 블록을 코드 블록으로 분할 할 수 있다. 이때 얻어진 코드 블록의 크기 (code block size : CBS)에 맞는 인코딩이 수행되기 위해서, 상술한 H 매트릭스가 결정되어야 한다. H 매트릭스의 결정을 위해 송신단은 베이스 코드와 리프팅 값을 설정해야 한다.
[178]
이하에서는 상술한 실시예 1-1 내지 1-3의 상황에서 송신단이 베이스 코드와 리프팅 값을 선택하는 방법에 대해서 설명한다.
[179]
실시예 1-1과 같이 송신단이 생성한 코드 블록의 크기가 상기 제 1 베이스 코드가 지원 가능한 코드 블록 크기 및 상기 제 2 베이스 코드가 지원 가능한 코드 블록 크기에 걸쳐 중첩되지 않는 경우, 송신단은 기 설정된 코드 블록의 크기에 기준하여 베이스 코드를 선택할 수 있다. 표 2 및 표 3을 참고하면, 코드 블록의 크기가 2040을 초과하는 경우 송신단은 제 1 베이스 코드를 선택하고, 그렇지 않은 경우(코드 블록의 크기가 2040 이하인 경우), 송신단은 제 2 베이스 코드를 선택 할 수 있다. 다만 본 발명의 특징이 이러한 수치에 한정되는 것은 아니다.
[180]
도 14은 본 발명의 일 실시예에 따른 베이스 코드 선택 방법을 설명하기 위한 도면이다.
[181]
도 14는 실시예 1-2와 같이, 송신단이 생성한 코드 블록의 크기가 상기 제 1 베이스 코드가 지원 가능한 코드 블록 크기 및 상기 제 2 베이스 코드가 지원 가능한 코드 블록 크기에 걸쳐 중첩되는 경우, 주어지는 부호율 및 코드 블록의 크기에 따라 베이스 코드를 선택하는 방법을 도시한다.
[182]
도 14에서 r1max 및 r1 min은 각각 제 1 베이스 코드가 제공 할 수 있는 최고 부호율과 최소 부호율을 나타낸다. r2max와 r2min는 각각 제 2 베이스 코드가 제공 할 수 있는 최고 부호율과 최소 부호율을 나타낸다.
[183]
또한, 도 14에서 L1max 및 L1min은 각각 제 1 베이스 코드가 제공 할 수 있는 최대 코드 블록 크기 및 최소 코드 블록 크기를 나타낸다. 마찬가지로 L2max 및 L2min은 제 2 베이스 코드가 제공 할 수 있는 최대 코드 블록 크기 및 최소 코드 블록 크기를 나타낸다.
[184]
실시예 1-2의 경우를 예를 들면, L1max = 8192, L2max = 2560, L1min=504, L2min=36일 수 있다. 그러나 본 발명의 기술적 사상이 이러한 수치에 한정되는 것은 아니다.
[185]
도 14에 도시되어 있는 그래프에 따라, 송신단이 생성한 코드 블록이 가로 실선 영역에 위치하는 경우, 송신단은 제 1 베이스 코드를 선택하여 인코딩을 수행 할 수 있다. 마찬가지로, 송신단이 생성한 코드 블록이 가로 점선 영역에 위치하는 경우, 송신단은 제 2 베이스 코드를 선택하여 인코딩을 수행 할 수 있다.
[186]
송신단이 생성한 코드블록의 특성이 대각선 실선 영역에 위치하는 경우, 즉, 코드 블록의 크기 및 부호율이 가 제 1 베이스 코드 및 제 2 베이스 코드를 걸쳐 중첩되는 경우, 송신단가 베이스 코드를 선택하는 방법이 문제 될 수 있다. 본원발명은 이러한 경우, 송신단가 제 2 베이스 코드를 선택하는 방법을 제안한다.
[187]
구체적으로, 송신단는 인코딩 대상 정보에 대하여, 주어지는 MCS(Modulation and Coding Scheme)와 RB (resource block)로부터 운송 블록의 크기(TBS)를 결정 할 수 있다. 이후 송신단은 코드 블록 분할(Code block segmentation)을 통해와 코드 블록의 크기 (k)와 부호율(r)을 얻을 수 있다. 이후 송신기는 아래의 표 9에 따라 주어지는 조건절 또는 코드의 해석을 통해 최종적인 베이스 코드를 선택 할 수 있다.
[188]
[표 9]
[189]
[190]
즉, 송신단은 부호율(r)이 기설정 된 부호율(r2max) 보다 크거나, 코드 블록의 크기(k)가 기설정 된 코드 블록 크기(L2max)보다 큰 경우, LDPC 코드의 베이스 코드로서 제 1` 베이스 코드를 선택 할 수 있으며, 그 외의 경우에는 제 2 베이스 코드를 선택 할 수 있다.
[191]
원칙적으로 제 2 베이스 코드가 지원 가능한 MCS로 결정되는 경우 송신단은 제 1 베이스 코드 보다는 제 2 베이스 코드에 우선 순위를 두어 베이스 코드를 선택 할 수 있다. 하지만 본원발명의 특징이 이러한 구성에 한정되는 것은 아니다.
[192]
단말에 대한 별도의 시그널링을 통해 LDPC코드가 사용하는 베이스 코드가 설정될 수도 있으며, 단말의 수용 능력(capability)에 따라서도 베이스 코드가 선택 될 수 있다.
[193]
송신단에 의해 베이스 코드가 선택되는 경우, 송신단은 다음의 수식에 따라 리프팅 값(Z)을 선택 할 수 있다.
[194]
[수학식 7]
[195]
[196]
상기 수학식 7의 우측 항에서 등호가 포함되지 않는 것이 바람직하다. 등호가 포함되는 경우 선택 가능한 리프팅 값이 2가지가 생기는 문제점이 발생 할 수 있다.
[197]
실시예 2-2
[198]
본 발명의 또 다른 실시예에 따르면, 베이스 코드를 선정함에 있어서, 제 2 베이스 코드의 기준 부호율보다 큰 부호율을 가지는 코드 블록에 대해서도, 송신단이 제 2 베이스 코드를 선택하도록 설정 될 수 있다. 이 경우, 제 2 베이스 코드는 패러티 펑쳐링(parity puncturing)을 통해 기준 부호율보다(실시예 1-2에 따르면 0.71) 높은 부호율을 지원 할 수 있다. 예를 들어, 패리티의 5열까지 사용할 수 있는 경우, 부호율은 약 10/15(0.77) 일 수 있다.
[199]
이러한 실시예에 따라, 송신단은 코드 블록의 크기가 L2max보다 작고, 부호율이 기존 기준 부호율보다 더 큰 값인 rp(이 때 rp > r2max) 보다 작은 값을 가지는 경우 제 2 베이스 코드를 선택하여 LDPC 코딩을 수행 할 수 있다
[200]
실시예 1-2에서, 송신단은 코드 블록의 크기가 2560보다 작고, 부호율이 0.77보다 작은 경우, 제 2 베이스 코드를 선택하여 LDPC 코딩이 수행되도록 설정 될 수 있다. 이 경우, 송신단은 기존 부호율에 비해 더 큰 리프팅 값을 사용 할 수 있으므로, 지연 시간 측면에서 이득을 얻을 수 있다. 이 경우 성능 개선을 위해 M1 패리티 변환 치환(permutation)이 요구 될 수 있다.
[201]
실시예 3
[202]
도 15는 본 발명의 일 실시예에 따른 장치를 설명하기 위한 도면이다.
[203]
도 15을 참조하여, 본 발명에 따른 기지국 장치(10)는, 수신 모듈(11), 송신모듈(12), 프로세서(13), 메모리(14) 및 복수개의 안테나(15)를 포함할 수 있다. 송신 모듈(12)은 외부 장치(예를 들어, 단말)로의 각종 신호, 데이터 및 정보를 전송할 수 있다. 수신 모듈(11)은 외부 장치(예를 들어, 단말)로부터의 각종 신호, 데이터 및 정보를 수신할 수 있다. 수신 모듈(11)과 송신 모듈(12)은 트랜시버(transceiver)로서 호칭될 수 있다. 프로세서(13)는 기지국 장치(10) 전반의 동작을 제어할 수 있다. 복수개의 안테나(15)는 예를 들어 2-차원 안테나 배치에 따라서 구성될 수 있다.
[204]
본 발명의 일례에 따른 기지국 장치(10)의 프로세서(13)는, 본 발명에서 제안하는 예시들에 따라서 채널상태정보를 수신하도록 구성될 수 있다. 기지국 장치(10)의 프로세서(13)는 그 외에도 기지국 장치(10)가 수신한 정보, 외부로 전송할 정보 등을 연산 처리하는 기능을 수행하며, 메모리(14)는 연산 처리된 정보 등을 소정시간 동안 저장할 수 있으며, 버퍼(미도시) 등의 구성요소로 대체될 수 있다.
[205]
도 15을 참조하여, 본 발명에 따른 단말 장치(20)는, 수신 모듈(21), 송신 모듈(22), 프로세서(23), 메모리(24) 및 복수개의 안테나(25)를 포함할 수 있다. 복수개의 안테나(25)는 MIMO 송수신을 지원하는 단말 장치를 의미한다. 송신 모듈(22)은 외부 장치(예를 들어, 기지국)로의 각종 신호, 데이터 및 정보를 전송할 수 있다. 수신 모듈(21)은 외부 장치(예를 들어, 기지국)로부터의 각종 신호, 데이터 및 정보를 수신할 수 있다. 수신 모듈(21)과 송신 모듈(22)은 트랜시버(transceiver)로서 호칭될 수 있다. 프로세서(23)는 단말 장치(20) 전반의 동작을 제어할 수 있다.
[206]
본 발명의 일례에 따른 단말 장치(20)의 프로세서(23)는, 본 발명에서 제안하는 예시들에 따라서 채널상태정보를 송신하도록 구성될 수 있다. 단말 장치(20)의 프로세서(23)는 그 외에도 단말 장치(20)가 수신한 정보, 외부로 전송할 정보 등을 연산 처리하는 기능을 수행하며, 메모리(24)는 연산 처리된 정보 등을 소정시간 동안 저장할 수 있으며, 버퍼(미도시) 등의 구성요소로 대체될 수 있다.
[207]
위와 같은 단말 장치(10)의 구체적인 구성은, 전술한 본 발명의 다양한 실시예에서 설명한 사항들이 독립적으로 적용되거나 또는 2 이상의 실시예가 동시에 적용되도록 구현될 수 있으며, 중복되는 내용은 명확성을 위하여 설명을 생략한다.
[208]
또한, 본 발명의 다양한 실시예들을 설명함에 있어서, 하향링크 전송 주체(entity) 또는 상향링크 수신 주체는 주로 기지국을 예로 들어 설명하였고, 하향링크 수신 주체 또는 상향링크 전송 주체는 주로 단말을 예로 들어 설명하지만, 본 발명의 범위가 이에 제한되는 것은 아니다. 예를 들어, 상기 기지국에 대한 설명은 셀, 안테나 포트, 안테나 포트 그룹, RRH, 전송 포인트, 수신 포인트, 액세스 포인트, 중계기 등이 단말로의 하향링크 전송 주체가 되거나 단말로부터의 상향링크 수신 주체가 되는 경우에 동일하게 적용될 수 있다. 또한, 중계기가 단말로의 하향링크 전송 주체가 되거나 단말로부터의 상향링크 수신 주체가 되는 경우, 또는 중계기가 기지국으로의 상향링크 전송 주체가 되거나 기지국으로부터의 하향링크 수신 주체가 되는 경우에도 본 발명의 다양한 실시예를 통하여 설명한 본 발명의 원리가 동일하게 적용될 수도 있다.
[209]
상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
[210]
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
[211]
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
[212]
이상에서 설명된 실시예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성하는 것도 가능하다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
[213]
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 통상의 기술자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

산업상 이용가능성

[214]
본 발명의 실시예들은 다양한 무선접속 시스템 및 방송 통신 시스템에 적용될 수 있다. 다양한 무선접속 시스템들의 일례로서, 3GPP(3rd Generation Partnership Project), 3GPP2 및/또는 IEEE 802.xx (Institute of Electrical and Electronic Engineers 802) 시스템 등이 있다. 본 발명의 실시예들은 상기 다양한 무선접속 시스템뿐 아니라, 상기 다양한 무선접속 시스템을 응용한 모든 기술 분야에 적용될 수 있다.

청구범위

[청구항 1]
다중 베이스 코드(Base code)를 지원하는 LDPC (Quasi-Cyclic Low-Density Parity-Check) 코드의 인코딩 방법에 있어서, 패리티 체크 행렬 생성을 위한 베이스 코드를 제 1 베이스 코드와 제 2 베이스 코드 중에서 선택하는 단계; 상기 패리티 체크 행렬 생성을 위한 리프팅 값(lifting value)을 복수의 리프팅 값으로부터 선택하는 단계; 및 상기 선택된 베이스 코드와 상기 리프팅 값을 이용하여 상기 패리티 체크 행렬을 생성하는 단계를 포함하되, 상기 베이스 코드는 코드 블록 사이즈(Code block size) 및 부호율(Code rate)에 기반하여 결정되고, 상기 리프팅 값은 상기 베이스 코드의 파라미터와 상기 코드 블록 사이즈에 기반하여 결정되는, LDPC 코드의 인코딩 방법.
[청구항 2]
제 1항에 있어서, 상기 코드 블록 사이즈가 기 설정된 코드 블록 사이즈보다 큰 경우, 상기 베이스 코드는 상기 제 1 베이스 코드로 선택되고, 상기 코드 블록 사이즈가 상기 기 설정된 코드 블록 사이즈 보다 작은 경우, 상기 베이스 코드는 상기 제 2 베이스 코드로 선택되는, LDPC 코드의 인코딩 방법.
[청구항 3]
제 1항에 있어서, 상기 제 1 베이스 코드가 지원하는 코드 블록 사이즈와 상기 제 2 베이스 코드가 지원하는 코드 블록 사이즈가 중첩되는 경우, 상기 코드 블록 사이즈가 기 설정된 코드 블록 사이즈보다 크거나, 상기 부호율이 기 설정된 부호율 보다 큰 경우 상기 베이스 코드는 상기 제 1 베이스 코드로 선택되고, 상기 코드 블록 사이즈가 상기 기 설정된 코드 블록 사이즈 보다 작고, 상기 부호율이 상기 기 설정된 부호율 보다 작은 경우, 상기 베이스 코드는 상기 제 2 베이스 코드로 선택되는, LDPC 코드의 인코딩 방법.
[청구항 4]
제 2항에 있어서, 상기 기설정된 코드 블록 사이즈는 상기제 2 베이스 코드의 최대 코드 블록 인, LDPC 코드의 인코딩 방법.
[청구항 5]
제 3항에 있어서, 상기 기설정된 코드 블록 사이즈는 상기제 2 베이스 코드의 최대 코드 블록 이즈이고, 상기 기 설정된 부호율은 상기 제 2 베이스 코드의 최대 부호율인, LDPC 코드의 인코딩 방법.
[청구항 6]
제 1항에 있어서, 상기 베이스 코드의 파라미터와 상기 복수의 리프팅 값은 상기 베이스 코드의 최대 쇼트닝(shortening) 값을 고려하여 결정되는, LDPC 코드의 인코딩 방법.
[청구항 7]
제 6항에 있어서, 상기 최대 쇼트닝 값은 상기 리프팅 값의 8배 또는 4배를 넘지 않도록 설정되는 LDPC 코드의 인코딩 방법.
[청구항 8]
제 1항에 있어서, 상기 리프팅 값은 수학식 를 만족하는 최소 Z 값으로 결정되며, 상기 K는 코드 블록 사이즈이고, 상기 Kb,max는 상기 베이스 코드의 최대 정보 비트 시퀀스의 크기이며, 상기 Kb,min은 상기 베이스 코드의 최소 정보 비트 시퀀스의 크기인, LDPC 코드의 인코딩 방법.
[청구항 9]
제 1항에 있어서, 상기 제 1 베이스 코드 또는 상기 제 2 베이스 코드 중 상기 베이스 코드로 선택된 베이스 코드에 대한 정보를 단말로 전송하는 단계를 더 포함하는, LDPC 코드의 인코딩 방법.
[청구항 10]
제 3항에 있어서, 상기 제 2 베이스 코드가 상기 기 설정된 부호율 보다 더 큰 부호율을 지원하는 경우, 상기 코드 블록 사이즈가 상기 기 설정된 코드 블록 사이즈 보다 작고, 상기 부호율이 상기 기 설정된 부호율 보다 큰 부호율 보다 작은 경우, 상기 베이스 코드는 상기 제 2 베이스 코드로 선택되는, LDPC 코드의 인코딩 방법.
[청구항 11]
다중 베이스 코드(Base code)를 지원하는 LDPC (Quasi-Cyclic Low-Density Parity-Check) 코드를 인코딩하는 장치에 있어서, 송수신기; 및 프로세서를 포함하고, 상기 프로세서는, 패리티 체크 행렬 생성을 위한 베이스 코드를 제 1 베이스 코드와 제 2 베이스 코드 중에서 선택하고, 상기 패리티 체크 행렬 생성을 위한 리프팅 값(lifting value)을 복수의 리프팅 값으로부터 선택하고, 상기 선택된 베이스 코드와 상기 리프팅 값을 이용하여 상기 패리티 체크 행렬을 생성하되, 상기 베이스 코드는 코드 블록 사이즈(Code block size) 및 부호율(Code rate)에 기반하여 선택되고, 상기 리프팅 값은 상기 베이스 코드의 파라미터와 상기 코드 블록 사이즈에 기반하여 선택되는, LDPC 인코딩 장치.

도면

[도1]

[도2]

[도3]

[도4]

[도5]

[도6]

[도7]

[도8]

[도9]

[도10]

[도11]

[도12]

[도13]

[도14]

[도15]