소개글
해밍코드 설명, c언어를 이용한 소스코드 작성, 구동 장면.
목차
1.주제에 대한 기술
2. 주제를 선택한 이유
3. 아이디어를 구현하기 위하여 적용한 핵심 아이디어 및 방법에 대한 기술
4.설계
5.구현(프로그램)
6.결과
7.결과에 대한 해석
본문내용
[컴퓨터구조 프로젝트]
선정주제 : 해밍코드(Hamming code)의 처리과정
1.주제에 대한 기술
- 패리티 비트(Parity Bit)에 의한 오류 검출은 단지 오류 검출만 되지만 해밍코드(Hamming Code)는 오류 검출후 오류 정정까지 가능한 것입니다. 해밍코드는 R. W. Hamming에 의해 고안된 것이며, 데이터 비트에 따른 패리티 비트는 다음 수식에 의해 구해집니다.
2(p승) >= m + P + 1 (m은 데이터 비트값)
즉, 해밍코드에의해 구성된 코드가 16비트로 주어졌을 경우 2(p승)=16 이 되므로 p 값은 4가 되고 식에 의해서 16 >= m+ 4 + 1 이므로 m = 11 이 됩니다.
즉, 데이터 비트값 : 11비트, 패리티 비트 : 5(4+1계산)비트 가 됩니다.
해밍코드는 정해진 위치의 패리티를 검색한 후 오류체크를 하게되고 잘못된 위치를 찾아내게 됩니다.. 그럼. 아래의 C1, C2, C4 를 가지고 5의 해밍코드를 우선 구해보겠습니다.
* C1 : 행 1, 3, 5, 7 짝수 패리티 체크
* C2 : 행 2, 3, 6, 7 짝수 패리티 체크
* C4 : 행 4, 5, 6, 7 짝수 패리티 체크
위의 C1, C2, C4 행의 각 셀에 들어있는 수를 비교하여 1의 개수를 짝수로 만들어 줘야 합니다. 10진수 5의 해밍코드를 구해봅시다. 10진수 5는 이진수로 0101 입니다.
그럼, 아래 그림처럼. 8 4 2 1 위치에 순서대로 0 1 0 1 이 들어갑니다.
C1
C2
8
C4
4
2
1
0
1
0
1
우선 C1을 비교해보면. C1은 1,3,5,7 을 비교하라고 했죠? 그럼. C1,8,4,1 자리의 값들을 비교해보면. C1은 값이 없고 8,4,1자리의 값이 0,1,1 이기 때문에 1의 개수가 짝수가 되려면 C1값에는 0이 들어갑니다.
다음으로 C2는 2,3,6,7을 비교하라고 했으니 C2,8,2,1자리의 값들을 비교해 보면 C2는 빈값 8,2,1 자리 값들이 0,0,1 이므로 1
참고 자료
없음