1. 생성 행렬 (Generator Matrix)
ㅇ 행렬 곱셈에 의해, 선형 블록부호를, 효율적으로 생성시키는 도구
- 길이 k인 메세지 벡터(입력)를, 길이 n인 부호어 벡터(출력)로, 변환시킴
- 즉,
. `메세지 벡터 m`에 `생성 행렬 G`을 `행렬 곱셈 (m G)`하면,
. `부호어 벡터 (x = m G)`가 만들어짐
※ 특히, 수학적으로, 행렬 곱셈은,
- 변환에 유용하게 쓰이는 도구 임 ☞ 선형 변환, 행렬 변환 참조
2. 생성 행렬에 의한 선형 블록부호의 생성 例 : x = m G
3. 생성 행렬의 특징 및 의미
ㅇ 생성 행렬의 크기는, k x n 행렬 (k : 랭크, n : 블록길이) 임
- `(1 x k) 입력 벡터`에 `(k x n) 생성 행렬`을 행렬곱셈하면, `(1 x n) 부호 벡터`가 출력 됨
ㅇ 생성 행렬에서, k개의 각 행(row)들은, 서로 선형 독립임 (Linearly Independent)
* 기저 (Basis)
. 선형독립인 k개 행(즉, 기저)들을 선형 결합하면, 유효 부호어를 생성하게 됨
. 즉, 생성 행렬의 각 행들은, 유효 부호어의 기저 (Basis)들 임
* 생성 (Span)
. 유효 부호어들은, 생성 행렬의 행 공간 (Row Space)을 형성 함
. 즉, 생성 행렬의 각 행들은, 해당 선형블록부호의 부호 공간 (Code Space)을 생성 함
ㅇ 생성 행렬은, 부호어를 효율적으로 생성하는 도구 임 (Efficient Generation)
- 선형 블록부호가 취하는 선형 벡터공간 내에서,
. 단지, 행렬 곱셈에 의해, 선형 블록부호를 효율적으로 생성 가능
- 즉, 행렬 곱셈에 의한 부호어의 생성/변환/부호화는,
. 부호길이 k의 메세지 벡터(1 x k)에,
. 생성 행렬(k x n)을 곱하여,
. 부호길이 n의 부호어 벡터(1 x n)로 코드 변환 됨
- 결국,
. 2k 만큼의 대조표에 의해 일일이 부호어를 찾는 것 보다,
. k 행 만을 갖는 생성 행렬의 곱셈 만으로 부호어를 생성하므로 훨씬 효율적임
ㅇ 생성 행렬은, 유일하지 않음 (Not Unique)
- 하나의 주어진 선형부호에 대해 유일하지 않음
. 즉, 생성 행렬이 여러개 있을 수 있음 ☞ 등가 부호 참조
.. 만일, 두 생성 행렬이 등가 부호 관계이면, 이들은 동일한 부호어 집합을 생성함
ㅇ 생성 행렬은, 아래 4.항 처럼, 체계적 부호 형식으로 변환 가능 (Systematic Code)
- 즉, 기본행연산 및 열 치환을 통해, ☞ 등가 부호 참조
. 기약행사다리꼴인 체계적 부호 형식으로 변환 가능
4. 생성 행렬의 표준 형식 (standard form)
ㅇ 생성 행렬은, 체계적 부호 형식을 취하도록 단순화시킬 수 있음
- G = [ I | P ]
. G : k x n 생성 행렬, I : k x k 단위 행렬, P : (k x (n-k) 패리티 행렬
- k×k 단위행렬 (Ik) 옆에, 패리티 비트로 된 k×(n-k) 행렬 (P)가, 덧붙여 나타나거나,
- 때론, 패리티 비트가 먼저 나오고, 그 뒤에 단위 행렬이 나타나는 형식을 취하기도 함
ㅇ 생성 행렬의 크기 : k × n
- (n: 부호 길이, k : 정보 길이)
ㅇ 생성 행렬의 랭크(Rank) : k
- k : 정보비트 수 = 랭크(Rank) = 차원(Dimension) = 선형독립인 행의 개수
. 선형독립인 k개 행들을 선형 결합함으로써, 부호어를 생성하게 됨
5. 생성 행렬의 표현
※ ☞ 생성행렬 표현 참조
- 생성행렬에 의한 부호어 생성 등