데이터통신

[데이터통신 #2] Analog

우당탕탕코딩일기 2023. 4. 4. 22:50

 

디지털 : 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