리드-뮬러 코드는 무선 통신 애플리케이션, 특히 심우주 통신에 사용되는 오류 수정 코드다.[1] 더욱이, 제안된 5G[2] 표준은 제어 채널의 오류 보정을 위해 밀접하게 관련된 극성[3] 코드에 의존한다. 리드-뮬러 코드는 그들의 유리한 이론적, 수학적 특성 때문에 이론 컴퓨터 과학에서도 광범위하게 연구되어 왔다.
전통적인 리드-뮬러 코드는 이진 코드인데, 이는 메시지와 코드워드가 이진 문자열이라는 것을 의미한다. r과 m이 0 ≤ 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 이다
제너레이터 매트릭스를 사용한 설명
이 섹션은 독자들에게 혼란스럽거나 불명확할 수 있다. 특히 이 절에서는 대부분의 독자에게 잘 설명되지 않는 조밀한 표기법을 사용한다.섹션을 명확히 설명하는 데 도움을 주십시요.토크페이지에서 이에 대한 논의가 있을 수 있다(2011년 3월)(이 템플릿 메시지를 제거하는 방법과 시기 알아보기)
길이 N= 2의m 리드-뮬러 코드 RM(r,m)에 대한 제너레이터 매트릭스는 다음과 같이 구성할 수 있다. 모든 m-차원 이항 벡터 세트를 다음과 같이 쓰자.
리드-뮬러 RM(r,m) 순서 r 및 길이 N = 2는mv에0 의해 생성된 코드로서, v의i최대r인 1i im 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 생성기 매트릭스의 행으로여기서 1ik im m
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)ix의 i 요소를th 나타냄. 정의
여기서 1 ≤ i ≤m.
그러면 { = ∧ m
Expansion via the distributivity of the wedge product gives . Then since the vectors span we have , )= 2
1에 의해, 그러한 모든 쐐기 제품은 선형적으로 독립적이어야 하므로, RM(r, m)의 순위는 단순히 그러한 벡터의 수여야 한다.
생략.
유도하여.
RM(0,m) 코드는 길이 N =2와m무게 N = 2 = 2의m−0m−r 반복 코드로, By 1 R, )= F 의 가중치가 1 = 2이다0m−r.
기사 바 제품(코딩 이론)은 2개의 코드1 C , C의2 바 제품의 무게가 다음과 같이 주어진다는 증거를 제시한다.
만약 0 < r < m이 되면, 그리고 만일 0 < r > m이 되면
RM(r,m- 1)은 중량 2를m−1−r 가진다.
RM(r - 1,m- 1)의중량은m−1−(r−1) 2m−r= 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가 있는 코드가 자체 이중임을 보여준다.
RM(m- 1, m) 코드는 길이 N = 2, 속도m= N- R 최소 거리 = 의 단일 패리티 검사 코드 입니다
RM(m- 2, m) 코드는 거리 dminm= {\인 길이 N = 2의 확장 해밍 코드 제품군이다[7]
참조
^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, CiteSeerX10.1.1.36.4265, doi:10.1007/bfb0036046, ISBN978-3540558514pdf
^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.
^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. ISSN2168-1740.