1. [선형블록부호] 패리티 검사 행렬 (Parity Check Matrix) : H
ㅇ 주어진 부호어가 유효 부호어인지 여부를 쉽게 검출할 수 있게 하는 행렬
ㅇ 즉, 행렬 곱셈 만으로도, 주어진 부호어가 유효 부호어인지를 (오류 발생 여부를) 쉽게 파악 가능
- 만일, (c HT = 0) 이면, 오류 없음
2. [선형블록부호] 패리티검사 행렬 H에 의한 오류 검출
ㅇ `생성행렬 G에 의해 만들어진 유효 부호어 c`와 `HT`의 `행렬곱셈 c HT`은 항상 영 벡터(0)가 됨
- 수신된 부호어 r와 HT를 곱한 (r HT 또는, H rT) 결과가, 0 벡터가 되는지에 따라, 오류 발생 여부 판단
. r HT = 0 이면, 오류 없음
. r HT ≠ 0 이면, 오류 발생
3. [선형블록부호] 패리티검사 행렬 H의 특징
ㅇ H의 행렬 크기 : (n-k) x n
ㅇ 조직적 부호 형식을 취함
- k 정보 비트열이, 부호화된 n 비트열 내에, 그대로 변형없이 포함되는 형태
ㅇ (생성행렬 G),(패리티검사행렬 H)의 행들 간에, 서로 직교함
- `생성행렬 G (k x n)`의 행들과 `패리티검사행렬 H ((n-k) x n)`의 행들이 서로 직교함
- c HT = 0 => (c = m G) => m G HT = 0 => G HT = 0
. 즉, G HT = 0
- (성질)
[# GH^T = \left[\begin{array}{c|c} I_k & P \end{array}\right]
\left[ \begin{array}{c} P \\ \hline I_{n-k} \end{array} \right]
= P + P = 0 #]
. G : 생성행렬, (행렬크기) k x n
. H : 패리티검사행렬, (행렬크기) (n-k) x n
. Ik : 단위행렬, (행렬크기) k x k
. P : 부 행렬(Submatrix) 또는 계수 행렬, (행렬크기) k x (n-k)
ㅇ H의 각 행이, 짝수 패리티 그룹을 형성
- 각 행에서, 비트 `1` 들이, 짝수 패리티 비트가 됨
- 즉, 각 행이, 패리티 검사 방정식이 됨
. 이는, 각 부호어의 비트 선형 조합이 0 이 되는 방법을 보여줌
. 例) [# H = \begin{bmatrix} 0 & 0 & 1 & 1 \\ 1 & 1 & 0 & 0 \end{bmatrix} \qquad
\begin{array}{cc} p_1 = c_3 + c_4 = 0 \\ p_2 = c_1 + c_2 = 0 \end{array}#]
ㅇ 동일 부호에도, 여러 등가적인 패리티 검사 행렬들이 있을 수 있음
4. [선형블록부호] 패리티검사 행렬 H의 표현 형태
ㅇ H : 패리티검사행렬, ( 행렬크기 : (n-k) x n )
ㅇ In-k : 단위 행렬, ( 행렬크기 : (n-k) x (n-k) )
ㅇ P : 부 행렬(Submatrix) 또는 계수 행렬, ( 행렬크기 : k x (n-k) )
5. [선형블록부호] `패리티검사 행렬`과 `신드롬`과의 관계
ㅇ c HT가 영이 아니면, 이는 오류의 징후(신드롬)을 알려줌
ㅇ 패리티검사 행렬 H ((n-k) x n)의 어떤 열도 모두 0 이 될 수 없음
- 만일, n개의 열 모두 0 이면, 그 열의 부호어 위치의 오류가 신드롬에 영향을 못미쳐, 검출 불가
ㅇ 패리티검사 행렬 H ((n-k) x n)의 모든 열들이 유일(Unique)해야 함
- 만일, 두 열이 같다면, 두 부호어 위치에서 발생한 오류는 구별 불가능