리드-뮬러 코드

Reed–Muller code
리드-뮬러 코드 RM(r,m)
이름을 따서 명명됨어빙 S. 리드데이비드 E. 뮬러
분류
유형선형블록코드
블록 길이
메시지 길이
등급
거리
알파벳 크기
표기법 - }}-code

리드-뮬러 코드는 무선 통신 애플리케이션, 특히 심우주 통신에 사용되는 오류 수정 코드다.[1] 더욱이, 제안된 5G[2] 표준은 제어 채널의 오류 보정을 위해 밀접하게 관련된 극성[3] 코드에 의존한다. 리드-뮬러 코드는 그들의 유리한 이론적, 수학적 특성 때문에 이론 컴퓨터 과학에서도 광범위하게 연구되어 왔다.

리드-뮬러 코드는 리드-솔로몬 코드 월시-하다마드 코드를 일반화한다. Reed-Muller 코드는 로컬 테스트가 가능하고 로컬에서 해독 가능하며 목록 해독이 가능한 선형 블록 코드다. 이러한 특성은 확률적으로 확인할 수 있는 증빙의 설계에 특히 유용하게 만든다.

전통적인 리드-뮬러 코드는 이진 코드인데, 이는 메시지와 코드워드가 이진 문자열이라는 것을 의미한다. rm0 ≤ r ≤ m의 정수인 경우, 매개변수 r과 m을 가진 리드-뮬러 코드는 RM(r, m)으로 표시된다. k 구성된 메시지를 인코딩하도록 요청하면 여기서 k= i= r( m ) () 코드 워드를 2비트로m 생성한다.

리드-뮬러 코드는 데이비드 E의 이름을 따서 명명되었다. 1954년에 암호를 발견한 뮬러[4]어빙 S. 최초의 효율적인 디코딩 알고리즘을 제안한 리드.[5]

저차 다항식을 사용한 설명

리드-뮬러 코드는 여러 가지 다른 방법(그러나 궁극적으로 동등한 방법)으로 설명할 수 있다. 낮은 수준의 다항식들에 기초한 설명은 매우 우아하며 특히 지역적으로 시험 가능한 코드지역적으로 해독 가능한 코드로서 그들의 적용에 적합하다.[6]

인코더

A block code can have one or more encoding functions that map messages to codewords . The Reed–Muller code RM(r, m) has message length and block length . One way to define an encoding for this code is based on the evaluation of multilinear polynomials with m variables and 총 도 r. 두 개의 원소를 가진 유한한 위에 모든 다항식은 다음과 같이 쓸 수 있다.

,… , 는 다항식의 변수고, { 는 다항식의 계수다. 정확히 계수가 있기 때문에 메시지 x{ x는 이러한 계수로 사용할 수 있는 값으로 구성된다. 이렇게 각 메시지 x}은는) m 변수에 고유한 다항식 p 를 발생시킨다. To construct the codeword , the encoder evaluates at all evaluation points , where it interprets the sum as addition modulo two in order to obtain a bit 즉, 인코딩 함수는 다음을 통해 정의된다.

코드워드 () 이(가) 을(를) 고유하게 재구성하기에 충분하다는 사실은 다항식의 계수가 충분히 많은 평가 지점이 주어졌을 때 고유하게 결정된다는 라그랑주 보간에서 비롯된다. Since and holds for all messages , the function is a linear map. 따라서 리드-뮬러 코드는 선형 코드다.

코드 RM(2, 4)의 경우 매개변수는 다음과 같다.

:{ { 0 \{16을(를) 방금 정의한 인코딩 함수가 되게 한다. 문자열 x = 1 1010 010101의 길이 11을 인코딩하려면 인코더는 먼저 4개의 p x {\ p_{를 생성한다.

그런 다음 16개의 모든 평가 지점에서 이 다항식을 평가한다.
그 결과 C(1 1010 010101) = 1111 1010 0101 0000이 유지된다.

디코더

이미 언급했듯이, 라그랑주 보간법은 코드 워드에서 메시지를 효율적으로 검색하는 데 사용될 수 있다. 그러나암호문이몇 가지 위치, 즉 수신된 단어가 어떤 암호어와 다를 때라도 해독기가 작동해야 한다. 이 경우 국부적인 디코딩 절차가 도움이 될 수 있다.

낮은 수준의 다항식을 통한 큰 알파벳에 대한 일반화

크기 {\q 유한 F {\ {에 저급 다항식을 사용하면 크기 {\displaysty}의 알파벳까지 코드의 정의를 확장할 수 있다 을 양의 정수로 한다. 은(는) d 보다 큰 것으로 간주해야 한다 메시지 k x 너비 = (+ d ) km}{}}}을 인코딩하려면 메시지는 다시 최대 에서 전체 도수의 x 로 해석되며 \의 계수가 있다 이러한 다항식은 실제로(+ {\)가 있다.개의 계수. 의 Reed-Muller 인코딩은 에 대한 () 의 모든 평가 목록이다 따라서 블록 길이는 = m 이다

제너레이터 매트릭스를 사용한 설명

길이 N = 2m 리드-뮬러 코드 RM(r, m)에 대한 제너레이터 매트릭스는 다음과 같이 구성할 수 있다. 모든 m-차원 이항 벡터 세트를 다음과 같이 쓰자.

N차원 공간 {에서 지시 벡터를 정의함

하위 에서 다음 기준{X {\A\ X

함께, F 에서 이진 연산

쐐기 제품(외부 대수학에서 정의한 쐐기 제품과 혼동하지 않음). Here, and are points in (N-dimensional binary vectors), and the operation (는) 2{\} 필드의 일반적인 곱셈이다

는 필드 }}에 걸친 m차원 벡터 공간이기 때문에 쓰기가 가능하다

N-차원 공간 에서 N: =( ,, 1,, ) 1)와 길이 N-displaysty N:v_{N를 정의한다.

여기서 1 ≤ i ≤ mHi( 2) m}}}(차원 m - 1)의 하이퍼플레인이 된다.

제너레이터 매트릭스

리드-뮬러 RM(r, m) 순서 r 및 길이 N = 2는m v0 의해 생성된 코드로서, vi 최대 r인 1 i i m m의 쐐기 제품이다(관습에 의해 1 벡터 이하의 쐐기 제품이 작동에 대한 ID가 된다). In other words, we can build a generator matrix for the RM(r, m) code, using vectors and their wedge product permutations up to r at a time 생성기 매트릭스의 행으로 여기서 1 ik i m m

예 1

m = 3으로 하자. 다음 N = 8

그리고

RM(1,3) 코드는 세트에 의해 생성된다.

행렬의 행에 의해 더 명확하게 표시:

예 2

RM(2,3) 코드는 다음 세트에 의해 생성된다.

행렬의 행에 의해 더 명확하게 표시:

특성.

다음 속성이 유지됨:

  1. vi 최대 m까지 가능한 모든 쐐기 제품 세트는 {\의 기초를 형성한다
  2. RM(r, m) 코드의 순위는
  3. RM(r, m) = RM(r, m - 1) RM(r - 1, m - 1) 여기서 '는 두 개의 코드의 바 제품을 의미한다.
  4. RM(r, m)은 최소 해밍 중량 2를mr 가진다.

증명

  1. 있다

    such vectors and have dimension N so it is sufficient to check that the N vectors span; equivalently it is sufficient to check that .

    x를 길이 m의 이진 벡터, X의 원소가 되게 하라. (x)i x의 i 요소th 나타냄. 정의

    여기서 1 ≤ i ≤m.

    그러면 { = m

    Expansion via the distributivity of the wedge product gives . Then since the vectors span we have , )= 2
  2. 1에 의해, 그러한 모든 쐐기 제품은 선형적으로 독립적이어야 하므로, RM(r, m)의 순위는 단순히 그러한 벡터의 수여야 한다.
  3. 생략.
  4. 유도하여.
    RM(0, m) 코드는 길이 N =2m 무게 N = 2 = 2의m−0mr 반복 코드로, By 1 R , )= F 가중치가 1 = 2이다0mr.
    기사 바 제품(코딩 이론)은 2개의 코드1 C , C2 바 제품의 무게가 다음과 같이 주어진다는 증거를 제시한다.
    만약 0 < r < m이 되면, 그리고 만일 0 < r > m이 되면
    1. RM(r,m - 1)은 중량 2m−1−r 가진다.
    2. RM(r - 1,m - 1)의 중량은m−1−(r−1) 2mr = 2
    그러면 바 제품은 무게가 있다.

RM 코드 디코딩 중

RM(r, m) 코드는 다수 논리 디코딩을 사용하여 디코딩할 수 있다. 다수 논리 디코딩의 기본 아이디어는 각 수신된 코드 워드 요소에 대해 여러 개의 체크섬을 구축하는 것이다. 각각의 체크섬은 모두 동일한 값(즉, 메시지 워드 요소 무게의 값)을 가져야 하기 때문에, 우리는 메시지 워드 요소의 값을 해독하기 위해 다수의 로직을 디코딩할 수 있다. 다항식의 각 순서가 디코딩되면 디코딩된 메시지 기여도에 의해 가중된 해당 코드 워드를 현재 단계까지 제거하여 수신된 단어를 수정한다. 그래서 RM코드는 최종 수신된 코드 워드에 도착하기 전에 반복적으로 r+1을 해독해야 한다. 또한 메시지 비트의 값은 이 방법을 통해 계산된다. 마지막으로 메시지 워드(디코딩만)에 제너레이터 매트릭스를 곱하여 코드 워드를 계산할 수 있다.

디코딩이 성공했다면 한 가지 단서는 (r + 1)단계 디코딩의 끝에서 다수 논리 디코딩을 통해 수신된 단어를 0으로 수정하는 것이다. 이 기술은 어빙 S에 의해 제안되었다. 리드, 그리고 다른 유한 형상 코드에 적용할 때 더 일반적이다.

재귀적 구조를 사용한 설명

A Reed–Muller code RM(r,m) exists for any integers and . RM(m, m) is defined as the universe () code. RM(-1,m)은 사소한 코드( 로 정의된다. 나머지 RM 코드는 길이 더빙 공법을 사용하여 이 기본 코드로 작성할 수 있다.

From this construction, RM(r,m) is a binary linear block code (n, k, d) with length n = 2m, dimension and minimum distance for . RM(r,m)에 대한 이중 코드는 RM(m-r-1,m)이다. 이는 반복과 SPC 코드가 듀얼이고, 바이오르토곤과 확장 해밍 코드가 듀얼이며, k = n/2가 있는 코드가 자체 이중임을 보여준다.

리드-뮬러 코드의 특수 사례

m³5에 대한 모든 RM(r,m) 코드 표

에 m 및 알파벳 크기 2가 포함된 모든 RM(r, m) 코드가 표시되며 블록 코드에 대한 표준 [n,k,d] 코딩 이론 표기법으로 주석을 달았다. The code RM(r, m) is a -code, that is, it is a linear code over a binary alphabet, has block length , message length (or dimension) k, and minimum distance

RM(m,m)
(2m, 2m, 1)
우주 암호
RM(5,5)
(32,32,1)
RM(4,4)
(16,16,1)
RM(m − 1, m)
(2m, 2m−1, 2)
SPC 코드
RM(3,3)
(8,8,1)
RM(4,5)
(32,31,2)
RM(2,2)
(4,4,1)
RM(3,4)
(16,15,2)
RM(m − 2, m)
(2m, 2mm−1, 4)
기존 해밍 코드
RM(1,1)
(2,2,1)
RM(2,3)
(8,7,2)
RM(3,5)
(32,26,4)
RM(0,0)
(1,1,1)
RM(1,2)
(4,3,2)
RM(2,4)
(16,11,4)
RM(0,1)
(2,1,2)
RM(1,3)
(8,4,4)
RM(2,5)
(32,16,8)
자가 교정 암호
RM(−1,0)
(1,0, )
RM(0,2)
(4,1,4)
RM(1,4)
(16,5,8)
RM(−1,1)
(2,0, )
RM(0,3)
(8,1,8)
RM(1,5)
(32,6,16)
RM(−1,2)
(4,0, )
RM(0,4)
(16,1,16)
RM(1,m)
(2m, m+1, 2m−1)
구멍이 난 하다마드 코드
RM(−1,3)
(8,0, )
RM(0,5)
(32,1,32)
RM(−1,4)
(16,0, )
RM(0,m)
(2m, 1, 2m)
반복 코드
RM(−1,5)
(32,0, )
RM(−1,m)
(2m, 0, ∞)
사소한 암호

r≤1 또는 r≥m-1에 대한 RM(r,m) 코드의 속성

  • RM(0, m) 코드는 길이 N = 2m, 속도 = 최소 거리 = 반복 코드
  • RM(1, m) 코드는 길이 N = 2m, R = + 1 {\ R1 = 2 {\ d_}={\2
  • RM(m - 1, m) 코드는 길이 N = 2, 속도m = N- R 최소 거리 = 단일 패리티 검사 코드 입니다
  • RM(m - 2, m) 코드는 거리 dminm= {\인 길이 N = 2의 확장 해밍 코드 제품군이다[7]

참조

  1. ^ Massey, James L. (1992), "Deep-space communications and coding: A marriage made in heaven", Advanced Methods for Satellite and Deep Space Communications, Lecture Notes in Control and Information Sciences, vol. 182, Springer-Verlag, pp. 1–17, CiteSeerX 10.1.1.36.4265, doi:10.1007/bfb0036046, ISBN 978-3540558514pdf
  2. ^ "3GPP RAN1 meeting #87 final report". 3GPP. Retrieved 31 August 2017.
  3. ^ Arikan, Erdal (2009). "Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels - IEEE Journals & Magazine". IEEE Transactions on Information Theory. 55 (7): 3051–3073. arXiv:0807.3917. doi:10.1109/TIT.2009.2021379. hdl:11693/11695.
  4. ^ Muller, David E. (1954). "Application of Boolean algebra to switching circuit design and to error detection". Transactions of the I.R.E. Professional Group on Electronic Computers. EC-3 (3): 6–12. doi:10.1109/irepgelc.1954.6499441. ISSN 2168-1740.
  5. ^ Reed, Irving S. (1954). "A class of multiple-error-correcting codes and the decoding scheme". Transactions of the IRE Professional Group on Information Theory. 4 (4): 38–49. doi:10.1109/tit.1954.1057465. hdl:10338.dmlcz/143797. ISSN 2168-2690.
  6. ^ Prahladh Harsha 등, 근사 알고리즘의 한계: PCP Unique Games(DIMACS 자습서 강의 노트), 섹션 5.2.1.
  7. ^ Trellis and Turbo Coding, C. 슐레겔 & L. 페레즈, 와일리 인터사이언스, 2004, p149.

추가 읽기

외부 링크