| 
				     | 
				
| 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>
  |  |