NRZ 기법: 두 판 사이의 차이

IT위키
(새 문서: '''Non-Return to Zero''' 참고로 아래 문서에서 말하는 +5v는 그냥 예를 들기 위한 전압이다. 항상 +5v여야 하는 것은 아니며 그냥 특정 양의 전압 또는 음의 전압이면 된다. 대체글=NRZ-L과 NRZI 기법|섬네일|NRZ-L과 NRZI 기법 == NRZ-L == '''Non-Return to Zero-Level''' * 두개의 다른 볼트(예를 들어 0과 +5V)가 0과 1비트에 맞게 변한다. * 하나의 볼트값은 하나의 비트에...)
 
(NRZ 인코딩 문서로 넘겨주기)
태그: 새 넘겨주기
 
1번째 줄: 1번째 줄:
'''Non-Return to Zero'''
#넘겨주기 [[NRZ 인코딩]]
 
참고로 아래 문서에서 말하는 +5v는 그냥 예를 들기 위한 전압이다. 항상 +5v여야 하는 것은 아니며 그냥 특정 양의 전압 또는 음의 전압이면 된다.
[[파일:NRZ 기법.png|대체글=NRZ-L과 NRZI 기법|섬네일|NRZ-L과 NRZI 기법]]
 
== NRZ-L ==
'''Non-Return to Zero-Level'''
 
* 두개의 다른 볼트(예를 들어 0과 +5V)가 0과 1비트에 맞게 변한다.
* 하나의 볼트값은 하나의 비트에 할당된다. 예를 들어 0을 +5v에 할당할 경우
** 011011은
** 0v, +5v, +5v, 0v, +5v, +5v로 변환된다.
 
=== 장점 ===
 
* 매우 직관적이다.
* 구현이 간단하고 경제적이다.
 
=== 단점 ===
 
* 동기화가 매우 어렵다. 1클럭만 어긋나버려도 모든 값이 달라진다.
* 특히 연속된 값 중 동기화가 어긋나면 이를 교정할 방법이 없다.
 
== NRZI ==
'''Non-Return to Zero Inverted'''
 
* 바이너리 값이 1일 때만 값이 변한다.
* 즉 볼트값이 0v에서 +5v로 바뀌는 것, 그리고 +5v에서 0v로 바뀌는 것은 모두 값이 1이라는 것이다.
** 1값이 연속될 경우 볼트가 계속 진동한다.
* 볼트값이 0v이든 +5v이든 멈춰 있다면 그건 0이라는 의미이다.
 
=== 예시 ===
'''아래 예시에서 0은 0v, 5는 +5v를 의미한다.'''
 
* '''예시1'''
** 0, 1, 0, 0
** 0, 5, 5, 5
* '''예시2'''
** 0, 1, 0, 1
** 0, 5, 5, 0
* '''예시3'''
** 0, 1, 1, 1, 1, 0
** 0, 5, 0, 5, 0, 0
 
=== 알고리즘 ===
Python 함수<syntaxhighlight lang="python3" line="1">
def nrzi(nrzl_input):
    output = []
    current_level = 0  # 초기 상태는 0으로 가정 (낮은 전압)
    for bit in nrzl_input:
        if bit == 1:
            current_level = 1 - current_level  # 1이면 상태 변경 (반전)
        output.append(current_level)  # 상태 유지 또는 반전된 값 기록
    return output
 
# 실행 예시
nrzl_input = [0,1,0,0,1,1,0,0,0,1,1]
print("NRZI:", nrzi(nrzl_input))
</syntaxhighlight>

2024년 10월 10일 (목) 02:24 기준 최신판

넘겨줄 대상: