Signal Encoding 이란 Signal 을 코드화 한다. 라고 알아두면 될꺼같다.
Digital or Analog 가 들어오면 Digital 이 된다.
Encoding 과 반대로 Data 를 넣게 되면 Analog 가 된다.
Carrier 는 각 스펙트럼의 중간 주파수를 Carrier 라 한다.
Modulation 은 BroadBand 사용 방식에서 각각 맞는 스펙트럼에 맞춰줘야 하기에 Carrier 를 넣어줘야한다.
Digital Data , Analog Data -> Digital signal , Analog signal 2개가 2개에 갈수 있음으로 총 4개의 조합이 나온다.
우리가 주로 공부할 파트이다.
주로 Recoding 에서 사용된다.
몇몇 전송 Media 는 analog signal 만을 취급할수 있다.
무선에서 사용한다.
라디오 방송에서 사용된다.
이렇게 4개의 조합이 나오는데 우리는 Digital Data -> Digital signal 에 대해 주로 공부를 하게 될것이다.
Digital signal 은 이산적이고 불연속적인 전압의 연속이다.
각각의 Pulse 는 signal element 를 가지고 있다.
_ | 이 각각 signal element 이다.
Line encoding 은 Digital data -> Digital Signal 로 변환 하는 방법이다 .
이렇게 Data 를 Signal 로 바꾸는 작업을 한다.
Block encoding 은 Data 를 M 비트로 짤라서 N 비트로 만드는 작업이다.
그래서 이렇게 Block Encoding 된 0101...101 이란 Digital Data 들을 Line Encoding 을 통해서 Digital Signal 로 변환 후 Line Decoder 를 통해서 다시 Digital Data 로 전송 받는다.
모든 signal 이 (0,+) or (0,-) 를 가진다.
모든 signal element 가 같은 sign 이다.
Polar 는 극이 있다. unipolar 는 +면 +만 -면 -만 쓰는 반면에 Polar 는 +,- 만 사용하게 된다.
Bipolar 는 또 +,-만 사용하는 Bipolar 와는 다르게 +,0,- 3개를 사용하게 된다.
주어진 시간에 몇비트를 보내는가 이다.
한 Bit 를 표현하는데 필요한 거리
신호 Level이 변화가 되는 rate => baud rate 라고도 불린다.
이 그림을 보면 한 시그널당 1bit 를 표현할수 있다면 Data Rate 은 4번이 될것이다. 그리고 신호 Leveldl 2번 바뀌었기에 baud Rate 는 2번이라 할수 있다.
Mark = 1
Space = 0 이다.
1이 나오는면 극을 한번씩 바꾸는것을 의미한다.
이 Signal 을 보면 1 개의 Data element 에 1개의 signal 이 있다.
그러면 Data Rate 과 Signal Rate(Baud Rate) 는 같다.
그럼 이 signal 은 1개의 Data element 에 2개의 signal element 가 있다.
2개의 signal element 가 1bit 를 나타낼수있으니 r=data element / signal element 로 r= 1/2 가 되는것이다.
간단하게 보면 NRZ-L 방식은 Sync(동기화) 문제가 잘 일어난다.
서로간의 Clock 정보를 모르기에 만약 000 을 보내면 상대방과의 Sync 가 맞지않아 상대는 0000 을 00000000으로 받을수 있게 되는것이다.
그리고 NRZ-L 방식과 Manchester 방식을 보자
Manchester 방식은 NRZ-L 방식에 비하면 변화가 많다.
변화가 많다는 것은 주파수가 높다는 것이고
주파수가 높으면 대역폭이 넓어져야하고
Medium이 고가여야하는 문제가 있다.
하지만 Manchester 방식은 변화가 이뤄지는것이 한 비트이다.
시간이 밀려도 변화에 따라 값이 변하기에 변화의 개수만 세면 된다
그렇기에 Sync 문제가 발생하지 않는다.
이렇게 보듯이 어떤 Encoding 방식에 장단점은 있지만 정답은 없다.
원하는 상황에 맞는 방법을 쓰는게 최고이다.
NRZ 방식이다. 데이터를 전송하는 가장 쉬운 방법이다.
NRZ 방식은 Unipolar 방식이기에 준위의 변화가 없다.
장점으로는 간단하다.
단점으로는 동기화문제, Direct Current 성분 발생이 있다.
동기화 문제(Synchronization) 로는 Timing 문제이다
NRZ 방식으로 상대에게 1111 이라는 Data를 보냈는데 상대는 Timing 이 맞지않아서 111111 로 받을수 있게 되는 문제이다. 어디서 짤라야하는지 모른다는 뜻.
그리고 뒤에서 많이 나올 DC 성분 문제는 변화가 없다는것을 의미한다.
이말은 전류가 흐르는 방향이 정해져있어서 한 방향으로만 흐르는 것이다.
변화가 없으면 주파수는 0임을 우린 알고있다.
특정 통신선로에서는 주파수가 낮은 대역을 통과시키지 못하는 문제가 있고
통신성분이 확장하려면 DC 성분이 없어야하는데 DC 문제가 생기면 통신성분이 확장하지못하는 문제가 생긴다.
이렇게 상대방과의 Clock 정보를 모르기에 내가 보냈던 Data에서 어떻게 받아드려야하는지의 Timing 을 모르게되어 생기는 문제이다.
NRZ-I 방식은 NRZ 방식은 극이 바뀌지 않았던것에 비해 극이 바뀌는 방식이다. 즉 Polar 방식이다.
NRZ - L 방식과
NRZ - I 방식이 있는데 Level 과 Inverted 라는 뜻이다.
NRZ-L 은 그냥 0 은 High level 1은 Low level 로 나타내면 된다.
NRZ-I 방식은 다음 비트가 0이면 전압은 그대로, 다음비트가 1이면 전압은 반대로 하는 것이다.
NRZ-I 방식에서 1이 계속 나오면 어떻게 될까.
다음비트가 1이면 전압이 반대가 되기에 동기화문제가 생기지 않는다.
하지만 0이 계속 나오게 된다면?
전압이 변화가 없기에 동기화 문제가 생기고 DC성분 문제도 생기게 된다.
그리고 NRZ-L 방식을 보자.
NRZ-L 방식은 0,1 뭐가 됐든 같은 Bit 가 연속해서 계속 나오게 된다면 Sync 문제와 Dc 성분 문제가 발생하게 될것이다.
위에서도 말했듯이 방법에는 정답이없다.
봤을때는 I방식이 좋을꺼같지만 I방식이 좋은건 아니다.
1이 계속해서 나올경우는 값이 변경되어 Sync 문제와 Dc 성분 문제를 해결할수 있다는 장점이 있지만 그만큼 변화율이 높아지게 되면서 주파수가 많아질것이고
Bandwidth 가 많이들고 고비용으로 이어지게된다.
위에서 설명한 두 방식은 각 규칙에 따라 이동했다
RZ(Return-to-zero) 방식은 일단 항상 0에 있다가
0은 밑에서 위로 1은 위에서 밑으로 가는 방식이다.
그림을 보면 더 이해가 쉬울건데
RZ 방식만의 규칙에 따라 값이 변화하기에 동기화문제는 해결된다.
+와 -의 균형으로 인해 DC 성분 문제도 해결하게 된다.
하지만 한 Bit 당 꼭 변화를 하게됨으로 변화율이 높다.
그럼 높은 대역폭을 요구하게되고 이것도 고비용으로 이어진다,,,
Manchester 방식은 Biphase 이지만 0으로 가지않는다.
트랜지션을 통해 변화를 알수 있기에 동기화 문제를 해결하게 된다.
그리고 값이 변했으면 값을 나타낼수있기에 Error Detection 도 쉽다.
그리고 DC 성분 문제도 해결하게 된다.
하지만 잘 쓰지 않는다. 주파수가 높다.
Differential Manchester 방식은 기존 Manchester 방식에서 다음 비트가 1이면 변화가 없고 다음 비트가 0 이면 Inversion 을 하는 방식이다.
Biphase 방식은 값이 변화하는것에 따라 알수있기에 동기화문제도 해결되고 DC 성분도 없고 Error detection 이 쉽다
하지만 한 Bit 당 최소 한번의 변화가 있기에 Modulation Rate 가 NRZ 에 비해 2배이다. 그래서 대역폭이 더 넓은것을 필요하게 되고 고비용,,,,,
Multilevel 이란 이름에서도 알수있다시피 레벨이 여러게이다.
AMI, pseudoternary 이 두개가 있다.
AMI 는 Alternative mark inversion 인데 Mark 는 1 을 뜻하고 1을 계속 바꾼다는 말이다.
위의 그림을 보면 0은 0에 유지시키다가 1을 만나면 +나-로 간다.
그리고 다음 1을 또만나면 그전의 1의 반대 전압을 가지면 된다.
AMI 방식은 DC 성분 문제가 발생하지 않는다. 전의 값과 반대 값을 가지기 떄문.
하지만 Sync 문제는 여전하다. 1이 없고 0만 연속적으로 나온다면? 당연하게 상대방은 어떻게 받아야할지 모르기에 문제가 발생한다.
AMI 는 1에 대해서 전압을 바꿨다면 pseudoternary 는 0에 대해서 Inversion 하는 방식이다.
똑같이 1이 계속나오면 Sync 문제가 발생하지 않을까.
각각 Sync 문제가 발생하는것에 대해선 Scrambling 방식을 사용해서 해결해주면 되는데 뒤에서 더 설명하겠다.
0 또는 1 이 계속 나올떄 Synchronization 문제가 있다.
이런 문제를 해결하기위해 추가적인 Bit 를 넣어주면 된다.
하지만 이런 해결법은 강제적으로 Transition이 일어나게 함으로 Data Rate 이 낮을떈 상관이 없지만 Data Rate 이 높을떈 대역폭을 더 요구한다.
그리고 NRZ 에 비해 효율적이지 않다.
Bipolar 는 3개의 level 을 사용한다. + 0 -
3개의 Level 을 사용하기에 한 레벨당 Log2(3) = 1.58 bit를 담을수 있는데 한비트만 보내기에 0.58이 낭비가 된다.
그리고 간격이 좁으면 구별이 힘든데 간격을 높일려면 전압을 높여야한다.
이렇게 알수있다시피 NRZ에 비교하면 무조건 좋은건 아니다.
2B 는 2 Bit를 뜻하는거고 1Q는 1 Quadratic 을 뜻한다.
한 signal 당 2 Bit를 표현할수 있고 4개의 레벨이 있다.
Digital subscriber Line(DSL) 방식은 전화선 쓰는 방식이다.
위의 사진을 보면 알수있지만 Baud Rate 는 5이고 Data Rate 는 10 이다.
그래서 r은 Data Rate/ Baud Rate 로 2 이다.
하지만 2B1Q 방식은 4개의 Level 을 사용하기에 구분하는것에 있어서 더많은 Power 가 필요하게 된다.
8B6T는ㄴ 고속 랜을 사용할때 자주 사용했던 방식이다.
8B 는 8Bit를 뜻하고 6T는 Tunnel 이 3가지를 나타낼수 있는것이고 6개의 Signal 로 보낸다는 뜻이다.
위 그림은 100Base-4T 인데
100 은 속도를 뜻하여 100bps 를 나타내고
BASE 는 BaseBand 방식
4T는 선이 4개라는 말이다.
8Bit를 6Bit로 만든다음 표현한다.
8B6T 는 0 아니면 +1 로만 존재해야한다.
그래서 0101001 는 -+-++0 으로 총 +이고
01010000 은 +--+0+ 은 + 이다
그래서 총 +2 가 되는데 이렇게 되면 안된다는 뜻이다.
그래서 마지막 01010000 을 Inverted 해줘서 -로 만들게되면 총 0을 가지게된다.
4D 는 4 Dimension 으로 라인을 4개쓴다는 말이고
PAM 은 Pulse Amplitude Moudlation 을 뜻하고
5 는 Level 수이다.
1000BASE-T 도 앞에서 설명해서 넘어가겠다.
5개의 Level 이 있지만 0Level 은 Error Control 하는곳으로 받는측에서 에러를 발견할수있다.
MLT-3 은 상태전이를 통한 방식이다
만약 다음비트가 0 이라면 변화가 없지만
다음 비트가 1 이고 현재 전압이 0이 아니면 다음 전압은 0 이다
그리고 다음 비트가 1 이고 현재 전압이 0 이면 이전 전압 0이 아닌 전압의 반대 전압을 넣어준다.
그럼 위 그림이 구해진다는것을 알수 있다.
M Bit 씩 끊어서 N Bit로 보낸다.
동기화를 위해 추가 비트를 보내기위한 Redundancy
M 보단 N 이 더 크기에
각각 표현할수 있는 수도 2의 M 제곱 2의 n 제곱이다.
2의 M 제곱 < 2의 N 제곱 이여서 2의 N 제곱중 Sync 문제를 안일으키는 예쁜 패턴만 뽑아 쓰겠다는 말이다.
Block Encoding 이 수행되고 Line Encoding 이 수행된다.
4B/5B 는 4B 씩 짤라서 5B로 만드는것이다.
여기서 왜 NRZ-I 방식을 쓰는지 궁금해 할것이다.
NRZ-I 방식은 Polar 방식으로 1이면 그전의 전압과 다른 값을 가지고 0이면 그대로 유지하였다. 0 이 계속적으로 반복되면 Sync 문제 및 DC 성분 문제가 발생한다는것을 알수 있다.
하지만 4B/5B 방식으로 Block encoding 을 수행후 NRZ-I 방식을 수행한다면 애초에 Sync 문제를 일으키는 패턴은 없이 들어오기 떄문에 Sync 문제를 제외한 장점이 좋은 NRZ-I 방식을 사용하는 것이다.
이렇게 0이 연속적으로 3개 이상 나오지 않는 비트열로 바꾼다.
장점으로는 동기화문제 해결,변환 테이블에서 존재하지 않는 5Bit 수신되는 경우에는 오류로 인식한다.
단점으로는 데이터량이 20% 증가하게 되고 신호율증가,대역폭 증가가 있다.
8B/10B 는 8B 를 10B 로 만드는것이다.
8B 를 각각 5,3 Bit 로 나뉘어 각각 6,4Bit로 만든 뒤 합치면 10B 가 된다.
Block Encoding + NRZ 방식을 쓰면 동기 문제을 해결하지만 DC 성분 문제가 여전하고 , 대역폭 요구 증가가 된다.
하지만 Scrambling 방식은 동기문제 해결 그리고 DC 성분 문제를 해결한다.
AMI 는 1을 보고 극을 바꾼다.
하지만 0이 계속 나오게 된다면 Sync 문제가 발생한다.
이떄 Scrambling으로 해결한다.
B8ZS 는 8개의 Zero 는 Substitution 을 한다.
주로 북미에서 사용하고
00000000 을 000VB0VB 로 바꾼다
여기서 V 는 Violation
B 는 Bipolar 이다
이 A 사진을 보면 처음 1 일때 + 를 가져서 다음 전압은 AMI 규칙에 따라 - 를 가져야하지만 V 가 나타나 그대로 + 를 가진다. 그래서 V 는 Violation (위반) 이라고도 말한다.
B 는 Bipolar 로 V가 + 였기에 B는 그의 반대인 -를 가지게 되는것이다.
이것이 Scrambling 이다.
HDBS 는 4개의 0이 나오면 바꾼다는 말이다.
HDB3 의 규칙은 이전 Substitution 후의 1의 개수에 따라
그 1의 개수가 Odd 이면 000V 로 Even 이면 B00V 로 바꾸는것이다.
처음 First substitution 에서는 1이 2개 임으로 Even 인 B00V 로 바꾸고 Second Substitution 에서는 이전 substitution 인 first 이후의 1의 개수가 하나 임으로 Odd 인 000V 로 바꾸는 것이다.
Digitization 은 Analog Data 를 Digital Data 로 바꾸는 방식이다.
NRZ-L 방식을 사용하고 Digital Data 로 바꾼걸 Analog signal 로 바꿀수 있다.
Codec 을 사용하여 변환한다.
-> Pulse code Modulation(PCM), Delta Modulation(DM)
이렇게 Analog Data 를 Digitizer 를 통해서 Digital Data 로 변환이 가능하고 이 Digital Data 를 ASK,FSK,PSK 를 통해서 Analog Signal 로 변환 할수 있다.
Analog Signal 을 Digital Signal 로 변환 할떈, Sampling , Quantization ,Encoding 을 통해서 변환한다.
PAM(Pulse Amplitude Modulation) 을 통해 Sampling 하고
한 싸이클 내에서 2 점의 값과 간격 -> 2점을 연결하는 사인파 복원 가능하다.
Analog Sampling 은 Fmax 2 만큼 채취하는데
Fmax 는 4KHz 2 => 8000번 ==> 1/8000 은 125us 단위로 Sampling 한다.
Sampling 한 Analog Signal 을 Digital Signal 로 매핑한다.
Analog Signal 을 Digital 로 mapping 한다는건 특정한 Level 로 할당하기에 Data 손실 발생한다.
125us 마다 Sampling 을 하니까 8Bit 로 전송한다.
음질을 높일려면 Sampling을 더 많이하고 , Level 을 높인다.
Mapping 시 Level 간격 어떡할까?
Levle 이 많으면 정교해 지지만, 많은 Bit 가 필요하다.
A 와 B 의 그래프를 보면 중간에 간격이 다른걸 확인할수있다.
값이 몰리면 B 와 같이 간격이 일정하지 않은 방법이 효과적이다.
애초에 Sampling 이란 할떄마다 8Bit 전송한다
8 * 8000/s = 6400Kbps 이므로 수용가능하는한 network 가 필요하다.
그래서 DM 사용한다.
여려 라인을 병렬적으로 동시에 보낸다.
Clock 을 일치시켜서 여러 Bit 를 전송하므로 전송량이 증가한다.
그래서 단거리여야하고 장거리가 되면 Sync 문제도 생기고 신호가 변화생긴다.
1개의 채널만 사용해서 1Bit씩 전송한다.
시간 동기화 수행하지않는다. SYnc 문제 막을려고 1Byte 씩 보낸다.
data 는 start,stop bit 가 있는데
sender 가 data 를 보내겠다는 것을 알려주는 Bit 로 start bit 를 쓰고 1byte 의 전송의 끝을 알리는 Bit 로 Stop bit 를 쓴다.
시간 동기화를 수행하고 data 를 Frame 단위로 보낸다
Frame 단위로 보내기에 Frame 이 아무리 길어도 상관없다.그래서 많은 data 를 전송할수있다.
Receiver 는 Frame 이 전송되어오고 있는 것을 알아야함
그래서 Frame 시작을 알려주는 STX(start of text) 가 존재한다.