제 9 장의 구성 9.1 원천부호화 (Source Coding) 9.2 채널부호화 (Channel Coding) 연습문제 MATLAB 실습예제
코딩과 디코딩 코딩 (Coding 혹은 Encoding) 디코딩 (Decoding) 정보신호에서 디지털 부호(Code)를 만드는 과정 디코딩 (Decoding) 부호를 해독, 다시 원래의 신호를 복원하는 과정 코덱(CODEC : Coder and Decoder) 코딩과 디코딩을 처리해주는 하드웨어나 소프트웨어
원천부호화 vs. 채널부호화 부호화방식 원천부호화(Source Coding) 채널부호화 (Channel Coding) 원래의 정보신호를 디지털 신호로 부호화하여 전송하며, 데이터 압축기술 등을 적용 채널부호화 (Channel Coding) 원천부호화된 원래의 메시지에 에러 검출 및 정정을 위한 비트들을 추가하여 전송
9.1 원천부호화 (Source Coding) 원천부호화의 영역에는 델타변조(DM/ADM) 원천부호화 방식의 종류 델타변조(DM) 펄스부호변조(PCM) 허프만 코딩(Huffman Coding)방식 등 델타변조(DM/ADM) DM (Delta Modulation) : 델타변조 현재 샘플과 전 샘플을 비교한 차이를 전송 샘플링 값이 이전 값보다 크면 1, 작으면 0 전송
델타변조 (Delta Modulation)
델타변조 (계속) 한 샘플에 대해서 PCM은 여러 비트씩 얻지만 DM에서 ΔV 와 T 를 적절하게 선택해야 한다. 펄스 Step 크기 ΔV에 따라 양자화 오차 증가 ΔV 작으면 신호가 빨리 변할 때 따라가지 못하고 ΔV 크면 신호 변화가 거의 없을 때 1과 0을 진동 펄스의 Clock 주기 T를 줄이면 비트 수가 늘어나 한정된 대역폭과 전송속도에서 불리
ADM (Adaptive DM) : 적응 델타변조 DM을 개선, 과거의 양자화 오차를 고려하여 시간에 따라 Step 크기 ΔV 를 가변 원래의 아날로그 신호와 DM 에서 얻은 데이터와의 양자화 오차를 줄인다 DM 데이터가 계속 1 이나 0 이 나오면 신호가 급격히 변해 Step 크기 ΔV 가 아날로그 신호를 따라가지 못하는 것 ⇒ Step 크기 ΔV를 늘려준다 DM 데이터가 1 과 0 사이에서 진동하면 아날로그 신호가 느리게 변한다는 것 ⇒ Step 크기 ΔV를 줄여준다
펄스부호변조(PCM/DPCM/ADPCM) PCM (Pulse Code Modulation) : 펄스부호변조 현재의 표본화 크기에 PCM 코드를 직접 할당
DPCM (Differential PCM)
DPCM & ADPCM DPCM (Differential PCM) : 차동 PCM 이전과 현재의 표본화 크기의 차이에 코드를 할당하는 데이터 압축기법을 사용 샘플링 간격 동안 신호가 급격히 변하는 경우는 매우 적다는 점에서 착안 앞 그림 9.2의 DPCM 코딩 (예) 첫 8비트 PCM 코드, 뒤는 차이를 5비트로 표현 8샘플에 대한 총 비트 수는 8+5×7=43비트 ADPCM (Adaptive DPCM) : 적응 DPCM DPCM을 개선, 과거의 양자화 오차를 고려하여 시간에 따라 Step 크기 ΔV 를 가변 원래의 아날로그 신호와 DPCM 에서 얻은 데이터와의 양자화 오차를 줄인다
허프만 코딩(Huffman Coding) 발생확률이 높은 심벌신호에는 짧은 길이의 코드를 할당하고, 발생확률이 낮은 심벌신호에는 길이가 긴 코드를 할당하여 전송되는 데이터의 평균코드 길이를 줄이는 것 (예) 팩시밀리의 코딩방식 중의 하나인 MH 코딩 변형된 허프만 (Modified Huffman) 코딩 코딩이 없다면 전송시간이 몇 분씩 걸릴 원고가 몇 십 초면 전송된다. 팩시밀리는 표준 해상도는 8×7.7dots/mm 팩시밀리의 표준 전송속도는 9600bps
프린터와 팩스의 용지규격 프린터나 팩스의 용지투입구는 A4 보다 약간 크다. 인치법을 사용하는 나라들의 용지 때문
팩시밀리의 MH 코딩 방법 연속되는 흑백(Black & White) 화소(Pixel)의 길이에 따라(Run Length Code) 라인 단위로, 확률이 높은 화소 패턴에 짧은 길이의 코드를 준다. (허프만 코딩의 원리) (예1) 동떨어진 Black 화소 하나는 1비트의 1대신 3비트 010, (예2) 백색(White)라인은 216mm×8 dot = 1728 dot 1728비트의 0대신 9비트 010011011
P.290 예제 9.1
9.2 채널부호화 (Channel Coding) 단방향 통신방식 Simplex (ex.) 일반 TV방송 양방향 통신방식 Half Duplex (ex.) 데이터 통신 Full Duplex (ex.) 유선을 이용한 음성전화
에러 제어를 위한 채널부호화 방식 ARQ 방식의 에러 제어 에러 제어(Error Control)를 위한 채널부호화 방식 자동 재전송 요청 방식 (ARQ : Automatic Repeat Request) 전방 에러 정정 방식 (FEC : Forward Error Correction) ARQ 방식의 에러 제어 정지-대기(Stop and Wait) ARQ 방식 : Half Duplex 전송 후 정상수신 여부의 ACK와 NAK로 재전송 결정 연속(Continuous) ARQ 방식 : Full Duplex GBN ARQ : NAK를 받을 때 일정한 개수(N)를 재전송 선택적 반복 ARQ : 에러 검출된 부분만을 재전송
FEC 방식의 에러 제어 대표적인 FEC 방식 정보코드+에러검출,정정을 위한 추가비트 전송 FEC 방식의 에러 제어 : 단방향 통신(Simplex)에 사용 정보코드+에러검출,정정을 위한 추가비트 전송 수신측에서 에러검출 및 정정을 스스로 행한다 (예) 유럽방식의 GSM 디지털 이동전화 음성데이터 13[kbps] + FEC 코드 = 총 22.8[kbps] 전화는 양방향인데 왜 단방향 FEC 방식을 사용? 디지털 이동전화는 송신과 수신의 두 개의 전송채널을 사용 (P.333 그림 11.1 참조) 대표적인 FEC 방식 블록 코드 방식 : 패리티 비트 사용 CRC 코드 방식 컨벌루셔널 코드 방식 등
블록코드 블록코드(Block Code) : 패리티 비트의 추가 블록코드를 이용한 전송코드 구하기 정보코드 비트 + 패리티(Parity) 비트 = 전송코드 수신측에서 패리티 코드를 계산하여 에러 판정 패리티 비트를 많이 늘리면, 에러 비트 위치까지 찾아 에러를 수정할 수도 있다. 블록코드를 이용한 전송코드 구하기 디지털 데이터로 사용되는 1,0 이외의 값 2 발생 ⇒모듈로-2 연산규칙으로 전송코드를 구해 해결 Carry를 처리하지 않으므로 XOR 연산규칙과 동일
Modulo-2 연산규칙과 CRC 코드 CRC 코드 주기중복검사 (Cyclic Redundancy Check) 다항식의 표현 11011 ☞
CRC 코드의 발생 원리 (예)
컨벌루셔널 코드 컨벌루셔널 코드 (Convolutional Code)
컨벌루셔널 코드 발생과정 (예)
- End of Chapter -