코딩 (부호화)의 개요
아날로그 신호를 계수화하여 디지털 신호로 부호화는 것이다.
소스코딩과 채널 코딩의 개요
소스코딩은 데이터 압축을 통해 전송 데이터를 줄이기 위한 방법으로 DM, DPCM, 보코딩 등의 방식을 의미하고, 채널코딩은 안정적으로 데이터를 전송하기 위해 에러를 검출하고 정정하기 위한 방법으로 해밍, CRC, BCH 등의 방식을 의미한다.
소스 코딩 (원천 부호화, Source Coding)
소스코딩은 디지털 신호를 효율적으로 전송하기 위해 압축하는 것이 목적이다. 소스 코딩은 정보의 종류에 따라 음성 부호화, 영상 부호화 등으로 나뉘며, 음성 부호화는 파형부호화와 보코딩, 혼성 부호화로 나뉜다.
- 파형 부호화 (waveform coding)
파형 부호화의 목적은 복원된 신호가 원래 신호의 모양을 그대로 보존하기 위한 것이 목적이다. 파형 부호화는 음성 신호 뿐만 아니라 크기가 제한된 PC 통신의 PSK (Phase Shift Keying)에도 사용된다. 파형 부호화기는 보통 한 표본 단위로 동작하며, 신호 대 잡음비와 같은 객관적인 척도로 부호화기의 성능을 측정할 수 있다. 파형부호화 방식은 PCM, DM, APCM, DPCM,ADPCM 등이 있다.
표준 음성 부호화기는 1972년 국제 규격으로 채택된 64kpbs PCM으로 많은 디지털 시스템과 일반 전화에서 이용된다. 또한 1984년 32Kbps ADPCM이 국제 규격으로 채택되어 전송률이 반으로 낮춘 것이 특징이다. 일반적으로 파형 부호화 방식의 음성 부호화기는 16Kbps 이상에서는 음질이 좋으나 그 이하에서는 음질 저하가 심한 것이 단점이다. - 보코딩 (VoCoding)
사람의 목소리 생성 모델을 근거로 포만트와 유성음 및 무성음 유무를 분리하여 전송하여 원래의 목소리를 복원하는 방법이다.
2014/01/26 - [정보 통신 기술사] - 보코딩 - 혼성 부호화 (Hybrid Coding)
혼성 부호화 방식은 파형 부호화 방식과 보코딩의 장점을 결합시킨 방식이다. 음성 분석은 보코딩 방식의 음성 생성 모델을 그대로 적용하여 성도의 특성을 양자화 및 표본화 하고, 성도의 특성이 제거된 예측 오차 신호를 최대한 모양을 유지하면서 전송하는 방법이다. 따라서, 8Kbps정도의 전송률에도 우수한 음질을 보인다.
Q-CELP(Qualcomm Code Excited Linear Pre diction), EVRC(Enhanced Variable Rate Coder)도 모두 혼성 부호화 방식의 음성 부호화기이다. 이 밖의 혼성 부호화 방식에는 유럽 GSM의 표준인 RPE-LTP(Regular Pulse Excited Long Term Prediction), 북미 TDMA와 일본 PDC(Personal Digital Cellular)의 표준인 VSELP(Vector Sum Excited Linear Prediction) 그리고 위성통신인 INMARSAT(International Maritime Telecommunication Satellite Organization) M에서 사용하는 IMBE(Improved Multi-Band Excitation) 등이 있다
채널 코딩 (Channel Coding)
채널 코딩은 채널 부호화 부분과 채널 복호화 부분을 합한 것이다. 채널 코딩은 디지털 데이터가 전송될 때 언제 어디서 발생할 지 모르는 데이터 유실 또는 변경을 알려주는 오류 검출 (Error Detction)과 원 데이터로 복원하는 오류정정 (Error Correction)을 한다. 흔히 ECC (Error Control Coding) 이라고 한다.
에러 컨트롤에는 에러 검출과 에러 정정이 방식이 있다
- 에러 검출
데이타 통신에 주로 이용
전송 데이터의 에러 검출 후 재전송 요구
ARQ (Automatic Repeat Request, 검출 후 재전송) 과 CRC (Cyclic Redundancy Check, 순환중복 검사) - 에러 정정
에러 발생시 재전송을 요구할 수 없는 상황에서 에러 검출 후 에러 정정
흔히 음성의 경우는 지연에 민감하므로 FEC를 사용
추가 비트가 많이 필요
FEC Forward Error Control, 순방향 오류정정 방식)
채널 코딩의 종류
채널 코딩은 블록코딩과 콘볼루션 코딩으로 나뉘며, 블록코딩이 콘볼루션 코딩 보다 성능이 좋다
- 블록 코딩 (Block Coding)
메세지에 에러검출 또는 정정을 위한 패리티비트를 덧붙여 부호화하는 방식
전송된 데이터와 패리티를 보고 에러 유무를 판단하여 에러를 정정
에러가 많이 발생하면 더 많은 패리티를 추가하여 에러 정정
무선 중계시스템에서 많이 사용 (CDMA)
해밍(Hamming), BCH, RS, Golay 등의 코드등이 대표적인 예
- 콘볼루셔널 코딩 (Convolutional Coding, 길쌈 부호)
전송 중 발생하는 랜덤 에러를 정정할 수 있도록 송신에서 행하는 채널부호화
쉬프트 레지스터를 사용하여 과거 및 현재 데이터의해서 출력 값을 결정
쉬프트 레지스터, 모듈러 가산기, 스위치의 3 부분으로 구성
위성통신 및 이동 통신에서 활용
블록코딩의 개요
아래 블록코드는 메세지 3 비트를 모아서 코드워드 6 비트로 바꾸어서 전송한다. 이때 코드비 (Code rate)는 다음과 같이 계산하며 아래 블록코드의 코드비는 1/2로 1 비트의 메세지를 전송하기 위해 2 비트를 전송한다는 의미이다.
코드비 = k/n 또는 (k,n)
(K = 메세지 비트 수, n = 코드워드 비트 수)
메시지 (3bits) | 코드워드 (6bits) |
0 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 | 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 |
위의 블록 코딩은 방식은 3 비트를 보내는 경우의 수는 모두 8가지이다. 처음 000을 보내는 것을 제외하고는 1이 반드시 3개가 포함되어 있다. 000001과 같이 1이 한개이거나 두개가 속한 메세지는 전송간에 에러가 발생했음을 인지할 수 있다. 위의 표는 한 개의 에러에 대한 검출과 정정이 가능하지만, 두 개 이상의 에러에 대해서는 검출은 가능하나 정정이 렵다. 이를 해결하기 위해 다양한 수학적 기법을 이용한다.
대표적인 블록코딩의 예는 해밍(Hamming), BCH, RS, Golay 등의 코드들이 있다.
콘볼루셔녈 코딩의 개요
전송중 발생하는 에러를 정정할 수 있도록 송신에서 행하는 채널 부호화이다.
코드비 = k/n 또는 (k,n,K)
(K = 구속장의 크기)
구속장의 크기 K는 이전 비트들의 값이 현재의 입력에 영향을 주는 것으로 이전 몇 비트가 영향을 주는 지를 나타낸다. 컨벌루션 코딩의 표현 방법은 다음과 같이 세가지이다.
- State Diagram (상태 다이어그램)
현재 상태와 입력에 따른 다음 상태를 쉽게 확인할 수 있지만, 시간의 흐름에 따라 값이 변화하는 모습을 일목 요연하게 파악하기 어렵다 - Tree Diagram
시간에 따른 값의 변화를 쉽게 파악할 수 있지만, 시간이 지남에 따라 표현해야 하는 branch의 수가 2^t가 되므로 지간이 지날수록 표현이 어렵다. - Trellis Diagram
트리 다이어그램의 특성을 보완한 방법으로 트리 방법이 시간이 지나면서 동ㅇ리한 값이 반복적으로 나타나게 된다는 것을 이용한다.
참고자료
blog.naver.com/jjsky76?Redirect=Log&logNo=110002388049
http://sollip1980.blog.me/10004829372
'통신 이론' 카테고리의 다른 글
CRC (0) | 2014.01.27 |
---|---|
dB의 이해 (0) | 2014.01.27 |
부호간 상호 간섭 (ISI) (4) | 2014.01.26 |
샤논의 채널용량 공식 (0) | 2014.01.26 |
나이키스트와 샤논 (Shannon) 표본화 정리 (5) | 2014.01.26 |