들어가기 전에

 

- Data Rate (Bit Rate) : 초당 비트수, bps

 

- Signal Rate (Baud Rate) : 초당 단위 신호 수

 

 

Modulation(Digital to Analog) 기술

변조 : 이진부호 -> 전기적 신호

변조 방식은 기존의 반송파 및 반송 주파수를 입력 신호에 맞게 진폭이나 주파수 및 위상 등 기존 반송파의 특성을 수정(변조)함으로써 원하는 아날로그 신호를 얻을 수 있다.

 

  • ASK(Amplitude Shift Keying) : 신호 크기로 0/1로 표시한다
  • FSK(Frequency Shift Keying): 주파수 변화로 0/1 표시한다.
  • PSK(Phase Shift Keying): 위상 차이로 0/1 표시한다
  • QAM(Quadrature Amplitude Modulation) : 위상+크기로 0/1 표시한다.

FSK를 제외하고, 대역폭(정보를 전송할 수 있는 능력, bandwidth)은 항상 Signal Rate와 비례한다.

 

ASK

 

기존의 반송파를 이진수 0 또는 1로 나타내기 위해 반송파의 진폭을 변화시켜 아날로그 신호를 얻는 방식이다.

- 노이즈에 영향을 많이 받는다.

 

FSK

기존의 반송파를 이진수 0 또는 1로 나타내기 위해 반송파의 주파수를 변화시켜 아날로그 신호를 얻는 방식이다.

 

-노이즈에 영향을 받지 않는다.

 

- 반송 주파수는 대역폭의 중간값이다.

 

 

PSK

1기존의 반송파를 이진수 0 또는 1로 나타내기 위해 반송파의 위상을 변화시켜 아날로그 신호를 얻는 방식이다.

서로 다른 신호간 위상이 180도 차이가 나는것

-노이즈에 영향을 받지 않는다.

 

 

QAM

PSK, ASK 합친 거

2개의 정보를, 동일 주파수이지만 위상이 90˚ 차이나는,
          서로다른 2개의 반송파에 진폭변조하고, 이를 합친 것

신호 레벨 = 진폭 * 위상 : 표현 가능한 정보의 수

 

위 그림인 16 QAM의 경우 12가지의 위상과 3가지의 신호크기를 조합하여 총 16개의 신호가 바둑판처럼 사용되게 된다. (I/Q 플롯에서 반지름은 신호의 크기를 말하며, I축을 기준으로 신호가 돌아간 각도는 위상을 의미한다. 1-10장 참조)

 

 

LTE 모뎀

: 스냅드래곤 X16 모뎀은 4x4 MIMO, QAM 등 퀄컴만의 기술력으로 기가비트급 LTE 속도를 지원하는 최초의 상용 모뎀

- 삼성전자는 데이터 전송 속도를 극대화 하기 위해 기지국과 단말기에 각각 4개의 안테나를 동시에 사용할 수 있는 4x4 MIMO 기술(다중 입출력), 주파수 변복조 방식을 기존의 6비트 단위(64QAM, 직교 진폭 변조)에서 8비트로 처리하는 '256QAM' 기술을 적용

 

아날로그데이터를 아날로그 신호로 바꾸기

 

라디오 주파수를 달리 해서 보내기

 

변조(Modulation)

● 대표기술

○ AM ○ FM ○ PM

 

 

 

Pied Piper Project( 문자열을 송수신 )

문자열을 디지털로 전송할 때, 소리로 전송할 수 있다. 이런 방식과 유사한 게 버튼식 전화기(DTMF) 이다. 우리가 전화를 위해 버튼을 누른다면 해당 주파수가 발생하고 전화국의 교환기에 전달되고, 교환기에 있는 디코더가 이것을 해석하여 주파수를 숫자로 인식하는 원리이다. 이 때, 전화기 버튼마다 어떤 숫자에 매핑되어있는지에 대한 '약속'이 필요하다. 이러한 약속을 프로토콜이라고 한다. 문자열을 소리로 전송하는 프로젝트인 Pied Piper Project   에서도 비슷하게 이용되는데 한 번 살펴보자.\

 

 

작동 순서

안드로이드 앱에서 HelloWorld 문자 보낼 때, 소리로 HelloWorld를 전송한다. 수신 프로그램은 리눅스 파이썬 프로그램에서 소리를 듣고 PCM을 이용하여 디코딩 후, helloWorld 출력하게 된다. PCM 은 음성의 표본화를 통해 이진식 디지털 데이터로 기록하여 아날로그->디지털로 변환할 수 있는 시스템이다. 

 

 

 

사용되는 기술

- 송신자-수신자 약속(프로토콜) 

sampling interval(샘플링 간격) : 삐~ 소리 얼마나 지속되는지/ 톤 한 개가 지속하는 시간

chunk size : 삐~ 소리가 몇 비트로 표혀노디는지/ 톤 한 개가 포함하는 비트 수

handshake start frequency : 청크 시퀀스가 시작하는 것을 알리는 주파수

handshake end frequency : 청크 시퀀스가 끝나는 것을 알리는 주파수

transmission start and step frequency : freq = start + (i*step) : 시작 주파수 start = 1024Hz 로 설정하고 4비트 숫자(i)마다 256Hz step 씩 다르게 한다. 즉, 어떤 알파벳에 대응되는 숫자 i에 대하여 소리를 만들 수 있는 주파수 freq 이 만들어지게 된다.

비트 오류 복구 : Reed Solomon 

 

 

송신자가 송신하는 과정

1.보낼 텍스트(페이로드)에 대하여 Reed Solomon 인코딩을 계산한다.

2. handshake start frequency 전송하기(청크 시퀀스의 시작을 알린다)

3. 보낼 텍스트 chunk 비트크기로 나누고, 해당 주파수로 변환하기

4. handshake end frequency 전송하기(청크 시퀀스의 끝을 알린다.)

 

수신자가 수신하는 과정

0. 리눅스 사운드 구동을 위한 alsa  드라이버를 이용하여 PCM 코덱 호출

1. FFT(고속 푸리에 변환) 으로 주요 주파수(dominant frequency) 찾기

2. handshake start 일 경우 해당 주파수 데이터를 수집하기

3. handshake end 일 경우 수집 종료 후 디코딩하기.

- 주요 주파수 이외 데이터 필터링 -  bit chunk 단위로 변환 후 바이트 생성 -  Reed Solomon 코드로 검증

 

 

 

* 푸리에 변환

-시간에 대한 함수 -> 주파수 성분으로 분해하는 변환

-서로 다른 주파수가 섞인 신호에서 개별적인 신호 추출하는 수학 도구 

 

 

 

 

 

728x90

 

디지털 통신은 1비트 보내는 것을 이해하는 것부터 시작한다.

 

소리전송을 예로 들어보자

 

소리전송

소리란 사람들의 이야기, 전화 통신, 디지털 통신의 기초(무선랜, 3/4/5G 통신) 등이 있다. 

 

소리 전송을 응용한 예

-실내위치: 스타벅스 모바일 앱 사이렌 오더

-결제: 신용카드

 -음악: 샤잠(Shazam) 

-IoT: Amazon Dash button

 

 

아날로그 vs 디지털

아날로그: 전송, 저장, 오류 복구 어렵다/ 옆자리 친구와 대화/ 멀리 떨어져있는 친구와는 편지로 대화해야/ 아날로그 감성

디지털 : 가공, 편집, 복제, 용량 편리성/ 옆자리 친구와 카톡/ 멀리 떨어져있는 친구와 카톡/ 디지털의 편리성

 

가청주파수

: 사람 목소리가 전달되는 주파수로 20~ 20,000Hz 이다.


아날로그-> 디지털 신호

 

아날로그와 달리 디지털은 자유롭게 사용이 가능하다. 따라서 아날로그 데이터를 디지털로 바꾸는 기술이 필요 !

디지털 데이터로 바꿔놓으면 라인코딩을 이용해 변조해서 보내면 전송할 수 있다. 

이를 Modulation(변조) 이라고 하는데 이것을 수행하는 것을 "모뎀"이라고 한다. 

 

 1초에 8,000개의 샘플로 표현한다. 1개 샘플은 8비트로 표현된다. 따라서 1초에 64,000bit 이므로 64Kbits 의 데이터이다.

* 샘플링 : 기본적으로 수많은 데이터들 가운데 유한한 개수의 데이터를 뽑아내는 것

 

목소리 전송

:아날로그-> 디지털 / 이때 필요한 것이 PCM

 

 

ADC(Analog to Digital Conversiont)

  • 아날로그 신호(연속 신호)를 디지털 신호로 바꾸는 기법
  • 샘플링 : 소리를 44.1 kHZ 샘플링 (0.023ms 마다 1개)
  • 양자화 : 특정 전압 레벨로 구분, 10-bit ADC 에서 5V/2^10 = 4.88mV 단위
  • 가장 흔하게 쓰이고 유명한 방식에 PCM 이 있다. 
PCM
:디지털 오디오 표준
목소리를 사진과 같은 샘플을 디지털로 만들어서 비트로 표현하기(인코딩)
*샘플링 : 사람의 목소리는 가청주파수대역의 일부분(300-3400 Hz)

  • 아날로그 데이터와 양자와 과정에서 나타나는 양자화 값의 차를 "양자화 잡음" 이라고한다.
양자화 잡음 
1. A/D 변환 과정 중 표본화 직후 양자화 시 나타나는 오차
2. 아날로그 신호가 표본화되고 표본이 유한 개의 진폭 값 중 하나가 될 때 아날로그 표본값과 양자화된 값의 차이

같은 진폭과 진동수 sin 함수여도, bit 값이 높아질수록 양자화 잡음 적어진다.(=샘플링 간격 줄어들수록 오디오 품질이 좋아진다.)

 

 

나이퀴스트 전송률

- 잡음이 없는 채널의 경우 사용한다. 

- 대역폭은 채널의 대역폭, L은 데이터 나타내는 데 사용한 신 호준위의 개수, 전송률은 초당 비트수라고 할 때

전송률 = 2*대역폭* $log_2{L}$

 

 


ex) 사람 목소리는 1초에 몇 비트가 전송되어야 할지 ?

=>1초에 8,000개의 샘플로 표현한다. 1개 샘플은 8비트로 표현된다. 따라서 1초에 64,000bit 이므로 64Kbits 의 데이터이다.

 

서비스 음성/가청주파수 대역

  • 전화 : 300-3400Hz
  • AM 라디오: 100-5000Hz
  • FM 라디오 : 100-10,000Hz, 50-15,000Hz
  • CD : 20-20,000 Hz
728x90

 

디지털 : 0과 1 메시지 -> 1비트를 만들기 위해선 ? => 물리계층(L1) 에서 만든다

 

물리계층에서의 신호

아날로그 신호는 왼쪽 사진 처럼 연속적이다. 아날로그 신호는 사인함수의 조합으로 구성된다. 

디지털 신호는 오른쪽 사진처럼 0과 1로 구성된다.

 

python 에선 numpy 를 import 하여 사인함수를 표현할 수 있다.

아래 코드를 확인해보자

numpy 의 arrange 함수는 [start,stop, step) 구간에서 step 단위로 배열을 생성한다. numpy 의 sin 함수를 통해 사인함수를 만들 수 있고, subplot(m,n,p)는 현재 Figure를 m×n 그리드로 나누고, p로 지정된 위치에 좌표축을 만든다. 좌표축을 만들고 plot 함수에 단위값과 해당 함수를 인자로 넣어서 격자를 넣어주는 grid() 함수를 호출한다.

 

이제 다음 코드를 보자.

 

numpy 의 linspace 함수는 Linearly spaced 의 줄임말로, 1차원 배열 만들기 함수이다.  시작, 끝, 간격을 순서대로 인자로 넣으면 해당 배열을 만들어준다. 

 

 

모스부호

소리 : 아날로그 신호, 데이터 : 디지털 이다.

소리로 데이터 통신할 수 있는 방법 중 모스부호가 있다.

 

모스부호 Encoder

아날로그 신호를 알파벳 모스코드에 매핑한다. 그 후 해당 wav 파일을 저장한다. 

 

모스부호 Decoder

wav 파일을 입력받으면 이를 frame 으로 나눈 후 , chunk 로 나눈다. 그 후 chunk 를 디코딩한다. 

 

Data over Sound 응용

스타벅스 사이렌 오더: 고객의 실내위치 파악을 위한 스피커와 스마트폰 마이

728x90

 

OSI 계층

: OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 

반면, TCP/IP 개념 레이어는 4단계로 나눈다. 

이더넷, IP, TCP/UDP, HTTP 같은 것을 프로토콜이라고 한다.


프로토콜

해석하면 외교적 의례, 통신을 위한 약속이다. 따라서 통신을 위해 필요한 약속이다. 물리적 형태로는 전송매체, 단자, 신호, 회선 규격 등이 있고, 논리적 형태로는 메시지 구성, 필드의 구성, 전송 절차 등이 있다.

운영 체제 내에서 SW 또는 HW로 존재한다.

 

인터넷 프로토콜

- HTTPS, HTTP, TCP, IP, SMTP, SSH, SSL

 

프로토콜 스위트

-HTTP+TCP+IP+ARP

 

계층별 메시지  + 헤더

Router : 내부와 외부 네트워크 신호를 구분할 줄 알기 때문에 외부 네트워크와 통신이 가능하게 한다. 

 

스위치 네트워크 회선과 서버 컴퓨터를 연결하는 네트워크 장비이다. 스위치는 내부 네트워크 간 통신만 가능하다. 그래서 Router 가 필요하다.

MAC 주소를 이용하여 스위칭(Switching)을 하는 2계층(데이터 링크 계층)의 장비는 L2 스위치, 즉, 스위치이고,

IP 주소를 이용하여 스위칭(Switching)을 하는 3계층(네트워크 계층)의 장비는 L3 스위치, 즉, 라우터이다

 

Host : Computer + Network 로 네트워크가 가능한 컴퓨터를 의미한다. Host 가 Data를 송신할 때 정보를 포장하는 과정인 캡슐화( Encapsulation ) 을 필요로 한다. 반면, Data 를 수신할 때는 반대로 정보를 풀어헤치는 Decapsulation 을 필요로 한다.

캡슐화된 정보는 Router 를 거치고 거쳐서 수신자에에 전달된다. 

 

 

디지털 통신과 아날로그 통신과의 관계

패킷은 L3 의 전송 단위이다. 패킷은 0,1 비트로 이루어져있다. 이것은 패킷이 디지털이라는 것을 의미한다. 그러나 실제 전송은 아날로그로 이루어진다. 예를 들어 물리계층으로 유선, 무선의 방법을 통해 통신이 이루어진다. 따라서 디지털통신과 아날로그 통

 

728x90

 

L3 Packet

( Packet 은 단위 데이터 ) ( L2 에서는 Frame 이 단위 데이터)

( 16진수 덩어리로 되어있다)

ㅇ Packet 이라는 말은 L3 IP Packet 으로 외운다.

ㅇ Header(주소, Src -> Dst) 와 Payload(전달내용) 로 나뉘며 이는 상대적인 분류이다.

최대 크기는 MTU

 


WireShark

: 패킷 분석 도구

 


 

Encapsulation

 

우리는 택배를 보낼 때 상자에 무언가를 담는다. 이 물건을 포장하는 것과 같다. 이런걸 "단위화"라고 한다. 박스에 넣어두면 무엇이 들었는지 모르기 때문에, 캡슐화도 내용을 모르게 담는 것과 같다.

DataLink L2 계층 뜯었더니 L3 계층이 있고, 또 뜻으면 Transport 있고 이런 식으로 캡슐화 해서 보냄

 Decapsulation 은 반대로 생각하면 된다. 포장을 푸는 개념!


패킷의 생성과 전달

 철수가 영희에게 책을 보낸다고 하자. 책을 보내기 위한 수단이 필요하다. 예를 들어 택배로 보낸다고 가정해보자. 처음 준비해야 할 것은 보낼 물건인 책을 준비하는 것일 테고, 그 후 상자를 구해야한다. 그렇게 물건을 담고, 송장을 붙여서 택배 기사님께 전달한다. 기사님은 트럭에 택배들을 취합하여 담고 여기저기에 배송한다. 영희네 집에도 갈 것이다.  그러나 영희네 집에는 영희의 부모님, 형제 자매 또한 살고 있다. 그렇기 때문에 송장에는 집 주소 뿐만 아니라 받는 사람 이름 또한 써야한다. 

이 비유에서, 영희나 철수는 프로세스이고, 책은 데이터이다. 택배는 패킷이다.  택배 기사님은 GateWay 이다.  송장에 적힌 목적지 주소는 IPv4  Dst 에 적혀있다. 영희네 집이 host 이고, 받는 사람의 이름을 Port 번호라고 한다.

 

728x90

+ Recent posts