7차시: 신뢰성 확보하기 - 오류 검출과 정정 부호¶
학습 목표¶
- 오류 검출과 오류 정정의 차이를 이해하고, 해밍거리(Hamming Distance) 개념을 설명할 수 있다
- 패리티 검사, 해밍 부호, CRC 등 주요 부호 방식의 원리를 설명하고 간단한 계산에 적용할 수 있다
- 오류 제어 부호의 한계와 선택 기준(신뢰성 vs. 오버헤드)을 분석할 수 있다
🧠 핵심 개념: 해밍거리와 오류 제어 원리¶
두 부호어 사이의 '차이'가 오류 검출·정정 능력을 결정합니다
🔧 실습: 세 가지 부호 방식 적용¶
패리티 검사, 해밍 부호, CRC를 직접 계산합니다
💬 비교 분석: 방식별 장단점¶
신뢰성과 오버헤드 사이의 균형을 따져봅니다
📝 평가: 기출 유사 문제 풀이¶
최소 거리, 오류 정정 능력, 부호율 계산을 연습합니다
⏱️ 수업 흐름¶
1단계: 왜 오류 제어가 필요한가? (5분)¶
6차시에서 학습한 디지털 전송 과정을 떠올리며, 채널 잡음이 비트 오류를 일으키는 상황을 확인합니다. 오류 검출과 오류 정정의 차이를 일상 비유로 이해합니다.
2단계: 해밍거리 — 오류 제어의 수학적 기초 (10분)¶
해밍거리의 정의와 계산 방법을 학습합니다. 최소 해밍거리가 오류 검출·정정 능력을 어떻게 결정하는지 공식과 함께 파악합니다.
3단계: 세 가지 부호 방식 — 패리티, 해밍, CRC (20분)¶
가장 단순한 패리티 검사부터 시작하여, 오류 위치까지 찾아내는 해밍 부호, 다항식 기반의 CRC까지 단계적으로 학습합니다. 각 방식의 원리를 직접 계산하며 익힙니다.
4단계: 비교 분석과 부호율 계산 (8분)¶
세 가지 방식의 검출·정정 능력, 오버헤드, 활용 분야를 비교합니다. 부호율(code rate) 개념을 학습하고 계산합니다.
5단계: 형성 평가와 성찰 (7분)¶
기출 유사 문제를 풀고, 학습 목표 달성 여부를 자가 점검합니다.
📚 핵심 개념 설명¶
🔍 왜 오류 제어가 필요한가?¶
6차시에서 디지털 변복조를 학습했습니다. 송신기가 아무리 정교하게 신호를 만들어도, 전송 채널에는 열잡음·간섭·페이딩 같은 방해 요소가 존재합니다. 그 결과, 원래 1이었던 비트가 0으로 바뀌는 비트 오류(bit error) 가 발생할 수 있습니다.
일상적인 상황을 생각하겠습니다. 친구에게 전화번호를 불러줄 때, 주변이 시끄러우면 숫자 하나를 잘못 들을 수 있습니다. 이때 대처 방법은 크게 두 가지입니다.
- 방법 A: "전화번호 다시 한 번 불러줘" → 오류가 있다는 사실을 검출하고, 재전송을 요청하는 것입니다
- 방법 B: 미리 "010-1234-5678, 합계 46" 같은 추가 정보를 보내서, 받는 쪽이 스스로 틀린 숫자를 정정하는 것입니다
이 두 가지 접근이 바로 오류 검출(error detection) 과 오류 정정(error correction) 입니다.
| 구분 | 오류 검출 | 오류 정정 |
|---|---|---|
| 역할 | 오류 발생 여부만 판별 | 오류 위치를 찾아 직접 수정 |
| 오류 발견 시 동작 | 재전송 요청 (ARQ) | 수신 측에서 자체 복원 (FEC) |
| 추가 비트 수 | 상대적으로 적음 | 상대적으로 많음 |
| 대표 방식 | 패리티, CRC | 해밍 부호, 컨볼루션 부호 |
| 적합한 상황 | 재전송이 가능한 환경 | 실시간·단방향 전송 (위성, 방송) |
핵심 정리: 오류 검출은 "틀렸다"는 것을 알려주는 것이고, 오류 정정은 "어디가 틀렸는지 찾아서 고쳐주는 것"입니다. 정정 능력이 높을수록 더 많은 추가 비트(오버헤드)가 필요합니다.
아래 다이어그램은 오류 제어의 두 가지 전략을 보여줍니다.
🧠 핵심 개념 1: 해밍거리 — 오류 제어의 수학적 기초¶
비유로 시작하기¶
비밀번호를 설정할 때, 1234와 1235는 한 자리만 다릅니다. 누군가 실수로 한 자리를 잘못 누르면, 원래 비밀번호와 구분할 수 없습니다. 반면 1234와 5678은 네 자리 모두 다릅니다. 이 경우 한두 자리를 잘못 눌러도, 원래 비밀번호와 확연히 다르다는 것을 알 수 있습니다.
이처럼 두 부호어(codeword) 사이에 서로 다른 비트의 개수가 바로 해밍거리(Hamming Distance) 입니다.
정확한 정의¶
해밍거리 d(x, y): 같은 길이의 두 이진 부호어 x와 y를 비트 단위로 비교했을 때, 서로 다른 위치의 수입니다.
계산 방법: 두 부호어를 XOR(배타적 논리합) 연산한 결과에서 1의 개수를 세면 됩니다.
예시 계산:
| 부호어 x | 부호어 y | XOR 결과 | 해밍거리 |
|---|---|---|---|
1010101 |
1001001 |
0011100 |
3 |
1111 |
0000 |
1111 |
4 |
1100 |
1100 |
0000 |
0 |
첫 번째 예시를 자세히 살펴보겠습니다.
최소 해밍거리(d_min)와 오류 제어 능력¶
하나의 부호 체계(code)에는 여러 유효 부호어가 존재합니다. 이 유효 부호어들 사이에서 가장 작은 해밍거리를 최소 해밍거리(minimum Hamming distance, d_min) 라고 합니다.
이 d_min 값이 부호의 오류 검출·정정 능력을 직접 결정합니다. 다음 두 공식은 시험에서 자주 출제되므로 반드시 기억해야 합니다.
| 능력 | 조건 | 공식 |
|---|---|---|
| t비트 오류 검출 | d_min ≥ t + 1 | 최소 거리가 t+1 이상이면, t개까지의 오류를 검출할 수 있습니다 |
| t비트 오류 정정 | d_min ≥ 2t + 1 | 최소 거리가 2t+1 이상이면, t개까지의 오류를 정정할 수 있습니다 |
예시: d_min = 3인 부호의 경우 - 오류 검출: t + 1 ≤ 3 → t ≤ 2 → 2비트까지 검출 가능 - 오류 정정: 2t + 1 ≤ 3 → t ≤ 1 → 1비트까지 정정 가능
예시: d_min = 5인 부호의 경우 - 오류 검출: t ≤ 4 → 4비트까지 검출 가능 - 오류 정정: t ≤ 2 → 2비트까지 정정 가능
핵심 정리: 최소 해밍거리가 클수록 더 많은 오류를 검출·정정할 수 있습니다. 그러나 최소 거리를 늘리려면 추가 비트(잉여 비트)가 많이 필요하고, 이는 전송 효율 감소로 이어집니다.
🔧 핵심 개념 2: 세 가지 오류 제어 부호 방식¶
이제 실제로 사용되는 세 가지 대표적인 부호 방식을 살펴보겠습니다.
📌 방식 1: 패리티 검사 (Parity Check)¶
비유¶
여러 명의 학생이 한 줄로 서 있습니다. 선생님이 "남학생 수가 짝수인지 홀수인지"만 확인하면, 한 명이 빠졌는지 쉽게 알 수 있습니다. 패리티 검사는 이처럼 1의 개수가 짝수(또는 홀수)인지 확인하는 가장 단순한 방법입니다.
정의¶
패리티 검사: 데이터 비트에 1비트의 패리티 비트(parity bit) 를 추가하여, 전체 1의 개수가 짝수(짝수 패리티) 또는 홀수(홀수 패리티)가 되게 만드는 방법입니다.
동작 원리¶
짝수 패리티(Even Parity) 를 기준으로 설명하겠습니다.
| 원래 데이터 | 1의 개수 | 패리티 비트 | 전송 데이터 | 전체 1의 개수 |
|---|---|---|---|---|
1011001 |
4 (짝수) | 0 | 10110010 |
4 (짝수) |
1010001 |
3 (홀수) | 1 | 10100011 |
4 (짝수) |
1111111 |
7 (홀수) | 1 | 11111111 |
8 (짝수) |
수신 측은 받은 데이터에서 1의 개수를 센 뒤, 짝수가 아니면 오류가 발생한 것으로 판단합니다.
직접 계산해 보기¶
문제: 데이터 110100에 짝수 패리티 비트를 추가하면?
풀이 과정:
1. 데이터: 1 1 0 1 0 0
2. 1의 개수: 3개 (홀수)
3. 짝수로 만들려면 패리티 비트 = 1
4. 전송 데이터: 1101001 (맨 뒤에 패리티 비트 추가)
패리티 검사의 한계¶
| 장점 | 한계 |
|---|---|
| 구현이 매우 간단 | 1비트 오류만 검출 가능 |
| 오버헤드가 최소 (1비트 추가) | 짝수 개의 오류는 검출 불가 |
| 빠른 처리 속도 | 오류 위치 파악 불가 (검출만 가능) |
예를 들어, 10110010에서 2비트가 동시에 바뀌어 10100000이 되면, 1의 개수가 여전히 짝수(2개)이므로 오류를 놓치게 됩니다. 해밍거리 관점에서 보면, 패리티 검사의 d_min = 2이므로 1비트 검출은 가능하지만 정정은 불가능합니다.
2차원 패리티 검사¶
단순 패리티의 한계를 보완하기 위해, 데이터를 행과 열로 배열한 뒤 행 패리티와 열 패리티를 모두 추가하는 방법이 있습니다. 이를 2차원 패리티 검사(two-dimensional parity) 라고 합니다.
| 비트1 | 비트2 | 비트3 | 비트4 | 행 패리티 | |
|---|---|---|---|---|---|
| 행1 | 1 | 0 | 1 | 1 | 1 |
| 행2 | 0 | 1 | 1 | 0 | 0 |
| 행3 | 1 | 1 | 0 | 1 | 1 |
| 열 패리티 | 0 | 0 | 0 | 0 | 0 |
2차원 패리티를 적용하면 1비트 오류의 위치(행과 열)까지 파악할 수 있어, 1비트 오류 정정이 가능합니다. 다만 오류가 특정 패턴(예: 4개의 꼭짓점 형태)으로 발생하면 검출에 실패할 수 있습니다.
📌 방식 2: 해밍 부호 (Hamming Code)¶
비유¶
편지를 보낼 때, 봉투에 주소를 한 번만 쓰면 잉크가 번져도 어디가 틀렸는지 모릅니다. 그런데 주소의 각 글자에 대해 "이 글자가 맞는지 확인하는 체크 표시"를 여러 곳에 분산하여 적어둔다면, 어느 글자가 잘못되었는지 정확히 찾아낼 수 있습니다. 해밍 부호가 바로 이 원리입니다.
정의¶
해밍 부호: 데이터 비트 사이의 특정 위치에 검사 비트(check bit, 패리티 비트) 를 삽입하여, 1비트 오류의 위치를 정확히 찾아 정정할 수 있는 선형 블록 부호입니다.
해밍 부호의 구조¶
해밍 부호는 (n, k) 부호로 표기합니다. - n: 전체 부호어 길이 (데이터 + 검사 비트) - k: 데이터 비트 수 - r = n - k: 검사 비트 수
검사 비트 수 r은 다음 조건을 만족해야 합니다:
2^r ≥ n + 1 = k + r + 1
| 데이터 비트 k | 검사 비트 r | 전체 길이 n = k + r | 표기 |
|---|---|---|---|
| 4 | 3 | 7 | (7, 4) 해밍 부호 |
| 11 | 4 | 15 | (15, 11) 해밍 부호 |
| 26 | 5 | 31 | (31, 26) 해밍 부호 |
| 57 | 6 | 63 | (63, 57) 해밍 부호 |
(7, 4) 해밍 부호 상세 풀이¶
가장 대표적인 (7, 4) 해밍 부호를 단계별로 살펴보겠습니다. 데이터 4비트 d1 d2 d3 d4 = 1011을 부호화하겠습니다.
1단계: 검사 비트 위치 결정
검사 비트는 2의 거듭제곱 위치(1, 2, 4번째)에 배치합니다.
| 위치 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| 역할 | P1 | P2 | d1 | P3 | d2 | d3 | d4 |
| 데이터 배치 | ? | ? | 1 | ? | 0 | 1 | 1 |
2단계: 각 검사 비트 계산
각 검사 비트는 특정 위치들의 패리티를 담당합니다. 핵심 원리는 위치 번호를 이진수로 표현했을 때, 특정 비트가 1인 위치들을 묶는 것입니다.
| 검사 비트 | 담당 위치 (이진수에서 해당 비트가 1인 위치) | 관련 위치의 값 | 패리티 계산 |
|---|---|---|---|
| P1 (위치1) | 1, 3, 5, 7 (이진수의 맨 오른쪽 비트=1) | P1, 1, 0, 1 | P1 ⊕ 1 ⊕ 0 ⊕ 1 = 0 → P1 = 0 |
| P2 (위치2) | 2, 3, 6, 7 (이진수의 두 번째 비트=1) | P2, 1, 1, 1 | P2 ⊕ 1 ⊕ 1 ⊕ 1 = 0 → P2 = 1 |
| P3 (위치4) | 4, 5, 6, 7 (이진수의 세 번째 비트=1) | P3, 0, 1, 1 | P3 ⊕ 0 ⊕ 1 ⊕ 1 = 0 → P3 = 0 |
각 위치의 번호를 이진수로 나타내면 다음과 같습니다:
| 위치 | 이진표현 | P1 담당? | P2 담당? | P3 담당? |
|---|---|---|---|---|
| 1 | 001 | ✅ | ||
| 2 | 010 | ✅ | ||
| 3 | 011 | ✅ | ✅ | |
| 4 | 100 | ✅ | ||
| 5 | 101 | ✅ | ✅ | |
| 6 | 110 | ✅ | ✅ | |
| 7 | 111 | ✅ | ✅ | ✅ |
3단계: 완성된 부호어
| 위치 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| 비트 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
전송 부호어: 0110011
4단계: 오류 검출과 정정
수신 측이 0110**1**11 (5번 위치가 0→1로 오류)을 받았다고 가정하겠습니다.
수신 측은 각 검사 비트 그룹의 패리티를 다시 계산합니다.
| 검사 | 관련 위치의 값 | 패리티 | 결과 |
|---|---|---|---|
| S1 (위치 1,3,5,7) | 0, 1, 1, 1 | 0⊕1⊕1⊕1 = 1 | 오류 |
| S2 (위치 2,3,6,7) | 1, 1, 1, 1 | 1⊕1⊕1⊕1 = 0 | 정상 |
| S3 (위치 4,5,6,7) | 0, 1, 1, 1 | 0⊕1⊕1⊕1 = 1 | 오류 |
신드롬(Syndrome) = S3 S2 S1 = 101 = 5(10진수)
→ 5번 위치에 오류가 있다는 뜻입니다. 5번 위치의 비트를 반전(1→0)하면 원래 데이터가 복원됩니다.
해밍 부호의 특성¶
| 항목 | 내용 |
|---|---|
| 최소 해밍거리 | d_min = 3 |
| 오류 검출 능력 | 2비트까지 검출 |
| 오류 정정 능력 | 1비트까지 정정 |
| 부호율 | k/n (예: 4/7 ≈ 0.571) |
주의: 해밍 부호는 1비트 오류 정정 또는 2비트 오류 검출 중 하나를 선택할 수 있습니다. 동시에 "2비트 검출 + 1비트 정정"을 하려면, 전체 패리티 비트를 1개 더 추가한 SEC-DED(Single Error Correction, Double Error Detection) 부호를 사용합니다.
📌 방식 3: CRC (순환 중복 검사, Cyclic Redundancy Check)¶
비유¶
물건을 택배로 보낼 때, 무게를 재서 송장에 적어둡니다. 수신자가 도착한 택배의 무게를 재서, 송장 무게와 다르면 내용물이 빠졌거나 바뀐 것입니다. CRC는 이와 유사하게 데이터 전체를 특정 생성 다항식(generator polynomial) 으로 나눈 나머지를 "검증 코드"로 붙이는 방식입니다.
정의¶
CRC(순환 중복 검사): 전송할 데이터를 미리 약속한 생성 다항식(G(x)) 으로 나눈 나머지를 데이터 뒤에 덧붙여 전송하고, 수신 측에서 같은 다항식으로 나누어 나머지가 0인지 확인하는 오류 검출 방식입니다.
CRC 계산 과정 (단계별)¶
예제: 데이터 1101을 생성 다항식 1011 (= x³ + x + 1)로 CRC 부호화
1단계: 데이터에 0 추가
생성 다항식의 차수가 3이므로, 데이터 뒤에 3개의 0을 추가합니다.
원래 데이터: 1101 → 확장 데이터: 1101000
2단계: 모듈로-2 나눗셈 (XOR 나눗셈)
CRC에서의 나눗셈은 일반 나눗셈과 비슷하지만, 뺄셈 대신 XOR 연산을 사용합니다.
1110 ← 몫 (사용하지 않음)
─────────
1011 │ 1101000
1011
────
1100
1011
────
1110
1011
────
1010
1011
────
001 ← 나머지 = CRC
3단계: CRC 코드 생성
나머지 001을 원래 데이터 뒤에 붙입니다.
전송 데이터: 1101 + 001 = 1101001
4단계: 수신 측 검증
수신 측은 받은 1101001을 같은 생성 다항식 1011로 나눕니다.
- 나머지가
000이면 → 오류 없음 - 나머지가
000이 아니면 → 오류 발생
CRC의 다항식 표현¶
CRC에서는 이진수를 다항식으로 표현합니다.
| 이진수 | 다항식 표현 |
|---|---|
1011 |
x³ + x + 1 |
110101 |
x⁵ + x⁴ + x² + 1 |
10011 |
x⁴ + x + 1 |
시험에서 자주 등장하는 표준 생성 다항식은 다음과 같습니다.
| 명칭 | 생성 다항식 | 검사 비트 수 | 주요 용도 |
|---|---|---|---|
| CRC-8 | x⁸ + x² + x + 1 | 8비트 | ATM 헤더 |
| CRC-16 | x¹⁶ + x¹⁵ + x² + 1 | 16비트 | USB, 모뎀 |
| CRC-32 | x³² + x²⁶ + ... + 1 | 32비트 | 이더넷, ZIP |
CRC의 특성¶
| 항목 | 내용 |
|---|---|
| 기능 | 오류 검출에 특화 (정정은 불가) |
| 검출 능력 | 모든 단일 비트 오류, 모든 이중 비트 오류, 모든 홀수 개 오류(적절한 다항식 선택 시), 버스트 오류에 강함 |
| 장점 | 하드웨어 구현 용이(시프트 레지스터), 높은 검출률 |
| 한계 | 오류 위치를 알 수 없어 정정 불가 |
핵심 정리: CRC는 오류 검출 전용이지만, 검출 능력이 매우 우수합니다. 실제 통신 시스템에서 가장 널리 사용되는 오류 검출 방식이며, CRC로 오류를 검출한 뒤 ARQ(재전송)를 통해 신뢰성을 확보하는 것이 일반적인 전략입니다.
📊 세 가지 방식 종합 비교¶
| 비교 항목 | 패리티 검사 | 해밍 부호 | CRC |
|---|---|---|---|
| 오류 검출 | 1비트 (홀수 개) | 2비트 | 다중 비트, 버스트 오류 |
| 오류 정정 | ❌ 불가 | ✅ 1비트 | ❌ 불가 |
| 추가 비트 | 1비트 | r비트 (2^r ≥ k+r+1) | 다항식 차수만큼 |
| 최소 해밍거리 | 2 | 3 | 다항식에 따라 다름 |
| 구현 복잡도 | 매우 단순 | 중간 | 하드웨어로 효율적 |
| 주요 용도 | 메모리, UART | 메모리 ECC | 네트워크, 저장장치 |
📐 부호율(Code Rate) 계산¶
오류 제어 부호를 사용하면 추가 비트로 인해 전송 효율이 떨어집니다. 이를 정량적으로 나타내는 것이 부호율입니다.
부호율(R) = k / n = (정보 비트 수) / (전체 전송 비트 수)
| 부호 | k (정보) | n (전체) | 부호율 R | 의미 |
|---|---|---|---|---|
| (7, 4) 해밍 | 4 | 7 | 4/7 ≈ 0.571 | 전송 비트의 57.1%가 실제 정보 |
| (15, 11) 해밍 | 11 | 15 | 11/15 ≈ 0.733 | 전송 비트의 73.3%가 실제 정보 |
| (31, 26) 해밍 | 26 | 31 | 26/31 ≈ 0.839 | 전송 비트의 83.9%가 실제 정보 |
부호율이 높을수록 전송 효율이 좋지만, 오류 정정 능력은 상대적으로 제한됩니다. 이는 신뢰성과 효율 사이의 트레이드오프입니다.
⚠️ 자주 하는 실수와 주의할 점¶
실수 1: 오류 검출과 정정을 혼동하는 경우
"d_min = 3이면 3비트 오류를 정정할 수 있다"고 착각하는 경우가 많습니다. 정정 조건은 d_min ≥ 2t + 1이므로, d_min = 3이면 1비트 정정이 최대입니다.
실수 2: 패리티 검사의 짝수 개 오류 검출 불가를 잊는 경우
패리티 검사는 "1의 개수 홀짝"만 확인합니다. 2비트가 동시에 바뀌면 홀짝이 유지되므로 오류를 놓칩니다. 시험에서 "패리티 검사의 한계"를 묻는 문제가 자주 출제됩니다.
실수 3: CRC 나눗셈에서 일반 뺄셈을 사용하는 경우
CRC는 모듈로-2 연산(XOR)을 사용합니다. 빌려오기(borrow) 없이 비트별 XOR만 수행해야 합니다.
실수 4: 해밍 부호에서 검사 비트 위치를 잘못 지정하는 경우
검사 비트는 반드시 2의 거듭제곱 위치(1, 2, 4, 8, 16, ...)에 배치해야 합니다. 나머지 위치에 데이터 비트를 순서대로 배치합니다.
🔗 6차시와의 연결¶
6차시에서 학습한 디지털 변복조(ASK, FSK, PSK, QAM)는 비트를 전기적 신호로 바꾸는 과정이었습니다. 이번 7차시의 오류 제어 부호는 변조 이전 단계에서 데이터에 추가 비트를 삽입하는 과정입니다. 전체 디지털 통신 시스템에서의 위치를 확인하겠습니다.
이처럼 채널 부호화(오류 제어)와 변복조는 디지털 통신의 신뢰성을 확보하는 두 축입니다. 변조 방식이 BER(비트 오류율)을 결정하고, 채널 부호가 잔여 오류를 처리합니다.
📝 형성 평가¶
객관식 1. 최소 해밍거리 d_min = 5인 부호가 정정할 수 있는 최대 오류 비트 수는?
① 1비트 ② 2비트 ③ 3비트 ④ 4비트
정답 확인
**정답: ②** 오류 정정 조건: d_min ≥ 2t + 1 5 ≥ 2t + 1 → 2t ≤ 4 → t ≤ 2 따라서 최대 **2비트**까지 정정할 수 있습니다.객관식 2. 패리티 검사(짝수 패리티)에 대한 설명으로 틀린 것은?
① 1비트의 패리티 비트를 추가한다 ② 전체 1의 개수가 짝수가 되도록 한다 ③ 2비트 오류도 검출할 수 있다 ④ 오류 정정은 불가능하다
정답 확인
**정답: ③** 패리티 검사는 **홀수 개의 오류만** 검출할 수 있습니다. 2비트가 동시에 오류가 발생하면(짝수 개), 1의 전체 개수의 홀짝이 변하지 않으므로 오류를 검출할 수 없습니다.객관식 3. (7, 4) 해밍 부호의 부호율(code rate)은 약 얼마입니까?
① 0.43 ② 0.57 ③ 0.71 ④ 0.86
정답 확인
**정답: ②** 부호율 R = k / n = 4 / 7 ≈ **0.571** 전체 7비트 중 4비트가 실제 정보이므로, 약 57%의 전송 효율을 가집니다.서술형. 데이터 1010을 생성 다항식 1011(= x³ + x + 1)을 사용하여 CRC 부호화하는 과정을 단계별로 서술하고, 최종 전송 데이터를 구하십시오.
정답 확인
**풀이 과정:** **1단계**: 생성 다항식의 차수가 3이므로, 데이터 뒤에 0을 3개 추가합니다. - 확장 데이터: `1010000` **2단계**: 모듈로-2 나눗셈 수행 **3단계**: 원래 데이터 뒤에 나머지를 붙입니다. **최종 전송 데이터: `1010011`** 검증: `1010011 ÷ 1011`의 나머지 = `000` → 오류 없음 확인✅ 자기점검 체크리스트¶
- 오류 검출과 오류 정정의 차이를 설명할 수 있습니다
- 두 부호어의 해밍거리를 계산할 수 있습니다
- d_min 값으로 오류 검출·정정 능력을 구할 수 있습니다 (t+1, 2t+1 공식)
- 짝수/홀수 패리티 비트를 계산할 수 있습니다
- (7, 4) 해밍 부호의 부호화 과정과 신드롬을 이용한 정정 과정을 수행할 수 있습니다
- CRC의 모듈로-2 나눗셈을 수행하여 검사 비트를 구할 수 있습니다
- 부호율(R = k/n)을 계산하고, 신뢰성 vs. 오버헤드의 관계를 설명할 수 있습니다
💭 성찰 & 다음 차시 미리보기¶
이번 차시 핵심 요약¶
이번 차시에서는 디지털 통신에서 신뢰성을 확보하기 위한 오류 제어 부호를 학습했습니다.
| 핵심 포인트 | 내용 |
|---|---|
| 해밍거리 | 두 부호어 간 서로 다른 비트 수, 최소 해밍거리가 오류 제어 능력을 결정 |
| 패리티 검사 | 가장 단순, 1비트 오류 검출만 가능, 짝수 개 오류는 놓침 |
| 해밍 부호 | 2^r ≥ k+r+1 조건의 검사 비트로 1비트 오류 정정 가능, 신드롬으로 위치 파악 |
| CRC | 다항식 나눗셈의 나머지를 이용한 강력한 오류 검출, 정정은 불가 |
| 부호율 | R = k/n, 높을수록 효율적이나 오류 정정 능력은 약해짐 |
시험 대비 핵심 공식 정리¶
| 공식 | 내용 |
|---|---|
| d(x,y) = XOR 결과의 1 개수 | 해밍거리 계산 |
| d_min ≥ t + 1 | t비트 오류 검출 조건 |
| d_min ≥ 2t + 1 | t비트 오류 정정 조건 |
| 2^r ≥ k + r + 1 | 해밍 부호의 검사 비트 수 조건 |
| R = k / n | 부호율 |
🔜 다음 차시 미리보기¶
8차시: 다중화(Multiplexing) — 하나의 통신선로를 여러 사용자가 함께 쓰는 방법
오류 없이 데이터를 전송하는 방법을 학습했으므로, 다음 차시에서는 한정된 통신 자원을 효율적으로 공유하는 다중화 기법(FDM, TDM, CDM 등)을 학습합니다. "고속도로에 여러 차선이 있듯, 하나의 통신 채널을 어떻게 나누어 쓸 수 있을까?"라는 질문에서 시작하겠습니다.