Skip to main content Link Search Menu Expand Document (external link) Copy Copied

기본 요소

작성일 : 2023년 03월 27일 (Monday)

Table of contents
  1. 통신의 기본 요소
    1. 인코더 (Encoder)
    2. 변조 (Modulation)
    3. 채널
    4. 복조 (Demodulation)
    5. 디코더 (Decoder)

통신의 기본 요소

통신은 보편적으로 아래의 형태로 구성된다.

flowchart TB
    subgraph Tx
    X[Tx] --> A[소스 인코더] --> B[에러 교정 인코더] --> C[변조기]
    end
    subgraph Rx
    E[복조기] --> F[에러 교정 디코더] --> G[소스 디코더] --> Y[Rx]
    end
    Tx --> Channel
    Channel --> Rx

인코더 (Encoder)

인코더는 아래와 같은 구조를 가진다. 즉, 입력을 받아서 시스템에서 사용될 수 있는 형태(프레임)로 가공하는 역할을 수행한다. 인코더의 동작은 정해져 있는 것이 아니고 여러 단계의 작업을 수행할 수도 있다.

Encoder
Encoder

그렇다면 에러 교정 인코더란 무엇일까? 에러 교정 인코더는 에러 교정을 수행할 수 있도록 데이터를 일부 변경하는 작업을 수행하는 인코더라고 할 수 있다. 추후 다루겠지만 통신 시 발생할 수 있는 데이터의 변조를 막기 위해서 Tx에서 CRC (Cyclic Redundancy Check) 데이터를 넣어서 송신한 경우가 있는데, Rx에서 복조시 CRC시를 다시 계산하여 Tx로 전달받은 CRC와 값을 비교하여 값이 다르다면 통신에서 데이터가 변조되었음을 추정할 수 있다.

변조 (Modulation)

변조란 무엇일까? 변조는 일종의 DAC(Digital to Analog Converter)라고 할 수 있다. 예를 들어서, 1, 0이라고 하는 데이터를 표현하기 위해서 외란에 대해 비교적으로 강한 방식인 NRZ (Non Return to Zero) 역시 변조의 일종이다.

NRZ Stream
NRZ Stream

위와 같이 값을 1과 0에 대해서만 표현하는 방식을 BPSK(Binary Phase Shift Keying)이라고 한다. BPSK는 노이즈에 강하지만 1비트값만 표현할 수 있다. 따라서, 더 외란에 대해서 내성이 강하면서 더 많은 데이터를 보낼 수 있는 방식이 도입되어야 했는데, 그것이 QPSK (Quadriphase Shift Keying)이다. QPSK는 페이저로 표현되는데, 페이저의 회전성을 고려해서 Gray Code 방식으로 값을 할당했다. Gray Code를 사용하면 실제 전자장치에 적용시 값이 커질 때 비트가 최소한으로만 (QPSK의 경우 1개씩) 변하면 된다는 장점이 있다. 값이 변하게 끔 하는 것은 모두 리소스를 사용하는 것이기에 Gray Code를 적용하는 것의 의의가 크다.

QPSK Phase Diagram
QPSK Phase Diagram

BPSK, QPSK 이외에도 FSK (Frequency Shift Keying), MPSK (M-ary Phase Shift Keying) 변조방식 등이 존재한다.

채널

신호를 채널을 통해서 주고받을 때에는 신호가 약해질 수도 있고, 경우에 따라 외란으로 인해 신호가 왜곡될 수도 있다. 이로 인해 수신 측에서 원래의 신호를 받는 것이 점점 어려워진다.

복조 (Demodulation)

변조된 신호를 다시 원래의 데이터로 되돌리는 것을 복조라고 한다. 복조는 신호 전달 과정에서 데이터가 왜곡될 수 있는 점까지 고려해야 하기 때문에 변조보다는 조금 더 복잡한 편이다. ADC 과정이라고도 볼 수 있다.

디코더 (Decoder)

디코딩은 인코더에 의해서 프레임 등의 형태로 들어가 있는 데이터를 분해해서 이해할 수 있는 단위로 구분하는 과정을 의미한다. CAN 을 예시로 들어보면 CAN 프레임 안에는 우리가 전달하고 싶은 데이터와 함께 ID, 우선순위 등이 존재한다. 이를 읽어내서 필요한 데이터를 추출하는 과정이 디코딩이고 이 디코딩의 주체를 디코더라고 한다.