본문 바로가기
학교

데이터통신 3주차 공부내용

by 발빠진 쥐 2026. 4. 23.

아날로그 -> 디지털 소리 변환

1. 소리와 주파수

전화기 : DTMF (아날로그 소리 신호 -> 디지털 숫자 정보 전달)

사람 목소리 전송 주파수 : 가청주파수 : 20~20,000Hz

(아날로그 소리 -> 디지털 신호) == PCM 과정

  1. 1초에 8,000개의 샘플(스냅샷) 사람 최대 4000hz * 2(나이퀴스트)
  2. 1개 샘플은 8bit 로 표현
  3. 8,000 * 8 -> 64k, 즉 64kbps (1초에 64k 의 bit 가 전송 됨)

변조는?
==샘플링 -> 양자화 -> 인코딩 ==
샘플링 : 사람의 목소리는 가청주파수대역의 일부분(300-3400hz)

연속 신호-> 디지털 변환해주는 하드웨어 = ADC
(ex)
샘플링 : 44.1kHz 샘플링 (1초에 44100개/ 즉 1개에 0.023ms 소요)
양자화 : 특정 전압 레벨로 구분,
10bit ADC 에서 5V / 2^10 = 4.88mV

나이퀴스트 공식
==fs = 2 max(아날로그 주파수) ==
사람이면 2 4000개의 샘플

ADC 는 아날로그 신호를 디지털로 바꾸는 하드웨어라 10bit 면 2^10 단계로 쪼갬 . 그리고 측정범위 V 를 나눔
0-5V 를 1024로 나눠서 칸 간격을 구함. 즉 4.88mV 보다 작은 차이는 구분 못함.

따라서 양자화 bit 가 크면 잘개잘개 측정할 수 있다

사람 목소리는 1초에 몇 비트가 전송되어야하나요?

즉, 사람 목소리를 전송할 때 드는 비트 수

1초에
2 4000 (<- 샘플링 개수) 8bit = 64k 비트 전송해야함
즉 64bps

• 전화: 300 – 3400 Hz
• AM 라디오: 100 – 5000 Hz
• FM 라디오: 100 – 10,000 Hz, 50 – 15,000 Hz
• CD: 20 – 20,000 Hz
Common sampling frequencies are 48 kHz as used with DVD format
videos, or 44.1 kHz as used in Compact discs
44.1 kHz 16 bits 2(스테레오, 스피커 개수) = 1411 kbps

Python pyaudio 이용 wav 녹음하기

RATE : 샘플링주파수
CHUNK : 한번에 읽는 단위

디지털 -> 아날로그 소리 변환

1. 변조 기술(이진부호를 전기적 신호로..)

  1. ASK : 신호 크기로 0/1 (신호가 클때)
  2. FSK : 주파수 변화로 0/1 (신호가 빼곡할 때)
  3. PSK : 위상 차이로 0/1 (정상위상)
  4. QAM : 위상 + 크기로 0/1 (크기와 각도를 섞음.)
    - 16-QAM = 4bit
    (sin 함수에 들어가는 3가지 변수 ㄷㄷ)

(송신자)디지털 -> 모듈(변조) -> 아날로그 -> 디모듈(복조) -> 디지털 (수신자)

16QAM : 디지털 쾀

2. 모뎀소리(FSK) 설명

디지털 데이터 통신 단계

  1. 초기 신호
  2. 핸드쉐이크 프로토콜 협상
  3. 동기화 및 압축
  4. 데이터 전송 (위상 변조 PM, 주파수 변조 FM, 진폭 변조 AM)
  5. 연결 종료

모뎀 장치는 통신장치면 모두 다 있다.

LTE : 4세대 이동통신표준
스마트폰 <-> 기지국 통신 핵심 부품
무선주파수 : 700MHz ~ 2.6 GHz
주파수 대역 전환 + 전력제어 + MIMO (다중 인풋 다중 아웃풋, 다중 안테나 사용, 동시에 여러 데이터 송수신)
채널 코딩 및 복호화, 오류 수정 및 복원

퀄컴 스냅드래곤 X16 모뎀 : 4 * 4 MIMO, QAM 등 퀄컴 기가비트급 LTE 속도

삼성전자 기지국과 단말기는 256QAM - 8bit ㅋㅋ

3. Github Pied Piper

목표 : 문자열 -> 소리 -> 문자열 수신

작동순서

  1. 안드로이드 앱에서 HelloWorld 문자 보내기
  2. 소리로 HelloWorld 전송
  3. 리눅스 파이썬 프로그램에서 소리를 듣고 HelloWorld 출력

4. 아날로그 매체(소리)로 디지털 정보 보내기

아날로그 매체 : 소리(가청주파수)
디지털 정보 : 아스키 코드
목적 : 아스키 코드를 송수신
통신의 기초 원리 : 아날로그 + 디지털 변환 + 주파수 (푸리에 변환)
프로토콜 이해 : 시작, 종료 신호, 알파벳 주파수 매핑
실제 환경 고려 : 오류 탐지 및 제어

문자 -> 소리 -> 문자 해독
ASCII 코드는 7bit 문자열로 128개 (출력가능 95개)

7bit 를 전송 -> 95개 서로 다른 아날로그 소리로 표현
주파수와 시간 길이를 약속 (어떤 주파수를 얼만큼 낼 지를 미리 약속해놔야 해독이 가능하다)
디지털을 아날로그로 보낼 때 실제 구현은 n bit 청크로 묶어서 보낸다.
데이터 수집 시작점과 수집 종료점을 정확하게 구분하여 통신을 제어하기 위해 주파수를 다르게 설정한다.

5. 송신자-수신자(프로토콜) D->A->D

  1. sampling interval : 삐소리 tone 이 얼마나 지속되는가 (100ms)
  2. chunk size : 삐소리가 몇 bit 인가 (4bit)
  3. handshake start frequency : 시작 8192Hz
  4. handshake start frequency : 청크 끝 알림 8704Hz (8192+512)
  5. 컴퓨터의 bit 를 주파수로 변환하는(FSK) 주파수 매핑 공식
    • freq = start+(i * step)
    • 내가 전송할 데이터를 몇 Hz 의 소리로 낼 것 인가
    • 4bit 면 i = 16, start step 은 주어짐
  6. 비트 오류 복구 = Reed Solomon (4byte)

송신자 동작 4단계

  1. 보낼 텍스트에 대해서 Reed Solomon 인코딩 계산
  2. handshake start frequency 전송하기
  3. 보낼 텍스트 chunk 비트 크기로 나누고 해당 주파수로 변환하기
  4. handshake end frequency 전송하기

수신자 동작 4단계

  1. FFT (Fast Fourier Transform) 으로 주요 주파수 찾기
  2. handshake start 감지 시 주파수 데이터 수집
  3. handshake end 주파수 감지시 종료 후 디코딩 시작
    1. Reed Solomon코드로 검증
  4. w=np.fft.fft

6. Reed Solomon

오류 정정기술
n개 심볼 전송 시 k개 심볼은 원래 데이터 n-k는 오류 정정코드
(n-k)/2 = t 개 이하 symbol 오류 -> 어떤 오류라도 수정 가능

7. 퓨리에 변환

시간에 대한 함수 -> 주파수 성분으로 분해하는 변환
주파수가 섞인 신호에서 개별적인 신호를 추출하는 수학 도구

'학교' 카테고리의 다른 글

데이터통신 5주차 공부내용  (1) 2026.04.23
데이터통신 4주차 공부내용  (1) 2026.04.23
데이터통신 2주차 공부내용  (1) 2026.04.23
데이터통신 1주차 공부내용  (1) 2026.04.23
C언어 - Pointer, Array 정리  (0) 2026.04.08