이중 위상 인코딩: Difference between revisions
From IT위키
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
* '''상위 문서: [[디지털 신호 인코딩]]''' | |||
'''Biphase Encoding''' | '''Biphase Encoding''' | ||
Line 39: | Line 41: | ||
=== 알고리즘 코드 === | === 알고리즘 코드 === | ||
<syntaxhighlight lang="python3" line="1"> | |||
def differential_manchester(nrzl_input): | |||
output = [] | |||
previous_level = 0 # Assume initial level is high (0) | |||
for bit in nrzl_input: | |||
if bit == 0: | |||
# Transition at the start, and again in the middle | |||
output.append((1 - previous_level, previous_level)) | |||
else: | |||
# No transition at the start, transition in the middle | |||
output.append((previous_level, 1 - previous_level)) | |||
previous_level = 1 - previous_level # Always flip in the middle | |||
return output | |||
# 실행 예시 | |||
nrzl_input = [0,1,0,0,1,1,0,1,0,0] | |||
print("Differential Manchester:", differential_manchester(nrzl_input)) | |||
</syntaxhighlight> | |||
* 결과 값: Differential Manchester: [(1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (1, 0), (1, 0)] | |||
== 장단점 == | == 장단점 == | ||
Line 56: | Line 80: | ||
[[파일:NRZ와 맨체스터 변조율 차이.png]] | [[파일:NRZ와 맨체스터 변조율 차이.png]] | ||
== 같이 보기 == | |||
* [[NRZ 인코딩]] | |||
* [[다중 레벨 이진 인코딩]] | |||
* [[스크램블 인코딩]] |
Latest revision as of 02:41, 10 October 2024
- 상위 문서: 디지털 신호 인코딩
Biphase Encoding
이중 위상 인코딩은 한 신호 안에 두개의 위상이 다 있기 때문에 이중 위상(Biphase)이라고 불린다. 한 신호 안에서 올라가고 내려가는 방향을 통해 0 또는 1을 나타낸다.
맨체스터(Manchester)[edit | edit source]
- 각 이진 값을 전달하는 그 사이에 전압이 바뀐다.
- 중간에 올라가면 1, 중간에 내려가면 0이다.
알고리즘 코드[edit | edit source]
def manchester(nrzl_input):
output = []
for bit in nrzl_input:
if bit == 0:
output.append((1, 0)) # High-to-low transition
else:
output.append((0, 1)) # Low-to-high transition
return output
# 실행 예시
nrzl_input = [0,1,0,0,1,1,0,0,0,1,1]
print("Manchester:", manchester(nrzl_input))
변동 맨체스터(Differential Manchester)[edit | edit source]
- 한 신호 중간에 항상 전압이 바뀌는 것은 동일하다.
- 단 변동 맨체스터 기법에서 중간의 전압 변동은 동기화를 위해서만 사용된다.
- 이진 값이 무엇이냐에 따라 방향이 전환되거나 유지되거나 한다.
- 이진 값이 0이면 방향이 유지된다.
- 이진 값이 1이면 방향이 전환된다.
- 다른 말로 하면 다음 비트가 무엇이냐에 따라 시작 비트가 바뀌거나 유지되거나 한다.
- 이진 값이 0이면 시작 위치가 바뀐다. (중간에 변동이 있어야 하므로, 시작 위치가 바뀐다는 건 방향이 유지된다는 것이다.)
- 이진 값이 1이면 시작 위치가 유지된다. (중간에 변동이 있어야 하므로, 시작 위치가 유지 된다는 건 방향이 바뀐다는 뜻이다.)
- IEEE 802.5에서 사용된다.
알고리즘 코드[edit | edit source]
def differential_manchester(nrzl_input):
output = []
previous_level = 0 # Assume initial level is high (0)
for bit in nrzl_input:
if bit == 0:
# Transition at the start, and again in the middle
output.append((1 - previous_level, previous_level))
else:
# No transition at the start, transition in the middle
output.append((previous_level, 1 - previous_level))
previous_level = 1 - previous_level # Always flip in the middle
return output
# 실행 예시
nrzl_input = [0,1,0,0,1,1,0,1,0,0]
print("Differential Manchester:", differential_manchester(nrzl_input))
- 결과 값: Differential Manchester: [(1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (1, 0), (1, 0)]
장단점[edit | edit source]
장점[edit | edit source]
- 동기화가 용이하다:
- 중간에 전압이 바뀌므로 어디가 시작점이고 끝점인지 판단하기가 명확하다.
- DC 성분이 없다.
- 에러 탐지가 가능하다.
- 중간에 전압이 안 바뀌면 에러
단점[edit | edit source]
- 큰 대역폭이 요구된다.
- 최대 NRZ 대비 2배의 변조율(modulation rate)이 사용된다.