3.30. multiplexing review & L2 error detection/correction

1231·2026년 3월 30일

AI네트워킹

목록 보기
3/13
post-thumbnail

Multiplexing review

아날로그 -> PCM -> 디지털
디지털 -> QAM -> 아날로그

PCM, Quantization

양자화: 연속적인 아날로그 신호를 디지털 신호로 변환하는것.

PCM? Pulse Code Modulation.
아날로그 신호를 디지털 신호로 표현하기 위해서는 sampling을 수행한다.
어떤 위치에서, 몇개의 sampling을 수행할 것인가?

-> 가장 높은곳과 가장 낮은곳에서 sampling을 수행한다.
한 Hz당 2개만큼만 잡도록 함. 그보다 더 많이 잡는것은 불필요하다.(bit수가 그만큼 더 많이 필요함.)

가장 높은 곳과 가장 낮은곳. 이렇게 2곳에서 샘플링을 수행하는것이 가장 이상적이다.

사람의 목소리는 통상적으로 4KHz의 주파수를 가진다. 따라서 한주기당 2개의 sampling을 한다면, 8K개의 sample이 새기게 된다.

Digital -> Analog 변환

그렇다면, discrete한 digital 신호를 어떻게 연속적인 analog 신호로 변환할 수 있는가?

스피커를 살펴보자.

discrete한 전기 신호가 자석의 힘을 다르게 만들고, 그 힘이 스피커 진동막에 서로 다른 진동을 준다.

진동막이 앞뒤로 움직이면, 스피커 바로 앞에 있는 공기의 상태가 달라집니다. 진동판이 앞으로 튀어나올 때는 공기를 빽빽하게 압축시키고, 뒤로 들어갈 때는 공기를 느슨하게 팽창시킵니다. 즉, 공기의 밀도(압력)에 차이가 생기는 것

그 공기의 변화 사이는 아날로그적인것이기 때문에, 자연스럽게 아날로그 신호가 복원된다.

마치 종이에 입을 갖다대고 소리지르면 그 종이가 떨리는 것을 이용하는 느낌이다.

DM

DM - PCM도 bit수를 너무 많이 사용한다. 기준값을 가지고 변환된 값을 기록하자는 새로운 방식

예를 들어, 사람이 말하는 소리는 그 신호의 변화가 적다.
사람이 말하다가 갑자기 소리를 지르는 확률은 매우 낮음.

따라서, 기준점을 두고 변화되는 값에 대해서만 기록한다.

방금 측정한 값과 바로 다음에 측정할 값이 거의 똑같다는 것을 이용.
PCM의 경우 이렇게 거의 비슷한 신호를 표현할때도 절대적인 수의 bit를 이용해서 표현한다.

DM의 경우 동일한 10000을 기준으로 두고, 높고 낮음만 표현한다.

Spread Spectrum

Spread Spectrum은 주파수의 대역폭을 넓게 사용할 수 있게 하는 방법이며, 도청을 쉽게 할 수 없게 만든다.

FHSS

Frequency Hopping Spread Spectrum

표현되는 bit마다 각기 다른 주파수를 사용하여 전송될 수 있도록 만든다.

이때, multiplexing 기법을 사용하여, channel 마다, 시간대별로 사용하는 주파수를 다르게 만든다. 물론 상대방도 그 순서를 알고 있어야한다.

DSSS

Direct Sequence Spread Spectrum Synchronous
CDMA와 유사한 방법이다.
Spreading code를 사용함. 원본 신호에 Spreading code를 XNOR 하여 Spread signal을 뽑아낸다.

수신측에서는 그대로 다시 XNOR를 수행한다.(Spreading code를 알고 있어야함.)
전달된 신호 10110111000 과 10110111000 을 XNOR하면 111111111111 가 나오고, 1로 인식할 수 있다. 0으로 인식하는것은 반대로 00000000000이 나옴.

L2 error control

L2에서 ARQ를 이용해서 link control을 하였고, 이제 error control을 어떻게 하냐는 것이다.

Error detection/correction

error를 detect하고, 재전송을 요청하거나 수신측에서 알아서 내가 바꾸도록 만든다.

Redundancy

"부과"라는 의미.
똑같은 신호 2개를 보내면 서로 비교하여 잘못된것을 알 수 있다.
1 0 -> 둘 중 하나는 잘못된거구나 다시 보내라

하지만 correction은 불가능하다. 3개를 보내면 correction 가능
1 1 0 -> 0이 아니라 1이 정상적인 값이구나.

Forward Error Correction, FEC

receiver가 correction을 시도하는것을, FEC라고 한다.

에러가 났을 때 "뒤로(송신자에게)" 다시 돌아가서 재전송을 요구하지 않고, 데이터를 받는 수신자가 "앞으로" 계속 나아가며 스스로 고친다.

송신자에게 되돌아가야하는(Retransmission) ARQ와는 정반대의 기술이다.

Coding

이렇게 에러를 잡기 위해서 어던 체계로 Redundant bit를 원본에 추가하는것을 "coding" 이라고 한다.

Block Coding/Convolution Coding 방식이 존재한다. 우리는 block coding을 중점적으로 볼 것.

메시지를 여러개 block으로 나눈다. 그 각각을 Dataword, 추가적인 비트를 r,
n = k + r -> Codeword라고 함.

Partity bit?
Even/Odd parity bit. 전체 bit에서 1의 개수가 짝수로 만드는 even parity 와 홀수로 만드는 odd parity bit가 존재한다.

2개의 bit corruption 은 감지할 수 없다.

ex)
corrputed 111 수신 -> codeword에 존재하지 않아서 discard,
corrupted 000 수신 -> codeword에 존재하므로 받는다.

Error correction

3개의 redundant bit를 추가하였다.

codeword table에 존재하지않는 01001 이 도착했을때

codeword에 있는 것들과 하나씩 비교해본다.

2번째, 01011와 1bit가 다르다. 차이가 가장 적으므로 이것으로 guess한다.

Hamming Distance



단순 parity bit는 이 차이가 전부 2이다.
방금 한 5개짜리는 3도 있고, 4도 있는데, d min 은 3이다.

s개만큼의 error detection을 gurantee 할 수 있다.

Two-dimension parity check code

1,2,3개의 error는 확인할 수 있지만, 4개는 불가능하다.


Hamming code

4 bit에 3개를 추가하는 기법
데이터들의 관계를 가지고 값을 넣어보자는 것.
syndrome에 따라 어디가 문제인지 알려준다.


...


0100 의 경우
r0 = 1 r1 = 1 r2 = 0
따라서 codeword는 0100011 이다.

0000011 로 변질되었다고 가정하면,
신드롬은 다음과 같이 계산한다.
s0 = 0+0+0+1 = 1
s1 = 0+0+0+1 = 1
s2 = 0+0+0+0 = 0
,따라서 신드롬은 011,
업로드중..
상단의 표에 따라 b2가 잘못되었음을 알 수 있다.

0개의 댓글