익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
다중 레벨 이진 인코딩
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
[[파일:다중 레벨 이진 인코딩.png|섬네일|다중 레벨 이진 인코딩]] * '''상위 문서: [[디지털 신호 인코딩]]''' '''Multilevel Binary Encoding''' == Bipolar-AMI == '''Bipolar Alternate Mark Inversion''' 한국에서는 '''양극성 AMI''' 또는 '''양극성 대체 마크 반전'''이라는 표현들이 간혹 사용되나 영어 그대로 사용하는 경우가 많다. * 이진 값이 0일 땐 전압도 0이다. * 이진 값이 1일 땐 전압이 움직인다. 이때 교대로 움직인다. ** 첫번째 1은 양의 전압으로, 두번째 1은 음의 전압으로 ** 1이 연속해서 나올 경우 양/음으로 진동한다. === 알고리즘 === <syntaxhighlight lang="python3" line="1"> def bipolar_ami(nrzl_input): output = [] current_level = 0 # 0 means no signal for bit in nrzl_input: if bit == 1: # 1이면 양의 전압과 음의 전압을 교대로 바꿈 current_level = 1 if current_level <= 0 else -1 output.append(current_level) else: # 0은 신호가 없음 output.append(0) return output # 실행 예시 nrzl_input = [0,1,0,0,1,1,0,0,0,1,1] print("Bipolar-AMI:", bipolar_ami(nrzl_input)) </syntaxhighlight> == Pseudoternary == 한국에서는 '''유사 3진법'''이라는 표기가 간혹 쓰이나, 영어로 그대로 쓰는 경우가 많다. * Bipolar-AMI와 동일한 방식이지만 이진값 0과 1에 대한 인식만 반대다. * 이진 값이 1일 땐 전압이 0이다. * 이진 값이 0일 땐 전압이 움직인다. 이때 교대로 움직인다. ** 첫번째 0은 양의 전압으로, 두번째 0은 음의 전압으로 ** 0이 연속해서 나올 경우 양/음으로 진동한다. === 알고리즘 === <syntaxhighlight lang="python3" line="1"> def pseudoternary(nrzl_input): output = [] current_level = 0 # 초기 상태는 0으로 가정 (전압 없음) for bit in nrzl_input: if bit == 0: # 0일 때 전압이 교대로 반전 (양->음, 음->양) current_level = 1 if current_level <= 0 else -1 output.append(current_level) else: # 1일 때는 전압 없음 (0) output.append(0) return output # 실행 예시 nrzl_input = [0,1,0,0,1,1,0,0,0,1,1] print("Pseudoternary:", pseudoternary(nrzl_input)) </syntaxhighlight> == 장단점 == === 장점 === * '''직류 성분이 없다:''' ** 멀티레벨 바이너리 신호는 평균적으로 양의 전압과 음의 전압이 균형을 이루어 순 DC 성분이 없다. ** 이는 장거리 전송 시 DC 성분으로 인한 신호 왜곡을 줄이는 데 도움이 된다. * '''에러 탐지가 가능하다:''' ** 예를 들어 Bipolar-AMI에서 이진 비트 1값을 표현하려고 양의 전압이 쓰였으면 그 다음엔 음의 전압이 나와야 한다. *** 양의 전압 이후 0으로 유지되다가 다시 양의 전압이 사용되면 이는 오류다. ** ex) 0, 5, 0, 0, 5 *** 0, 5, 0, 0 뒤에는 0 또는 -5 밖에 올 수 없다. 5가 왔다는 건 최소 하나의 신호가 전달되지 않았다는 뜻이다. * '''동기화가 가능하다.''' ** 위에서 설명하였듯이 극성 변화로 인해 일부 예상되는 신호가 있으므로 이를 이용해 동기화를 정확하게 유지할 수 있다. * '''필요 대역폭이 낮다.''' === 단점 === 아래 내용을 실제로는 거의 동일한 단점을 여러 관점에서 설명한 것이다. 주로 NRZ에 비해 효율이 떨어지는 단점에 관한 내용들이다. * '''NRZ(Non-Return-to-Zero)만큼 효율적이지 않음:''' ** NRZ 방식은 두 가지 레벨(예: 0과 1)만 사용하여 데이터를 전송한다. ** 반면에 멀티레벨 바이너리는 더 많은 레벨을 사용하지만, 각 신호 요소가 한 비트만을 나타내므로 정보 밀도가 낮아질 수 있다. * '''각 신호 요소가 한 비트만을 나타냄:''' ** 멀티레벨 바이너리에서 각 신호 요소는 단일 비트 정보만을 나타내므로, 정보 전송 효율이 떨어질 수 있다. ** 예를 들어, NRZ에서는 두 가지 상태(0과 1)만을 사용하여 한 비트를 나타내지만, 멀티레벨 바이너리에서는 여러 상태를 사용해도 각 신호가 한 비트만을 나타낼 수 있다. * '''3레벨 시스템에서는 log2(3) = 1.58 비트를 나타낼 수 있음:''' ** 3레벨 시스템에서는 세 가지 상태(+A, -A, 0)를 사용한다. ** 이 경우, 정보 이론적으로는 log2(3) ≈ 1.58 비트를 나타낼 수 있지만, 실제로는 각 신호 요소가 한 비트만을 나타내기 때문에 이론적인 정보 밀도를 완전히 활용하지 못한다. * '''수신기가 세 가지 레벨을 구분해야 함 (+A, -A, 0):''' ** 수신기는 +A, -A, 0의 세 가지 신호 레벨을 정확히 구분해야 한다. ** 이는 두 가지 레벨만 구분하는 것보다 더 복잡하고, 신호 간섭이나 잡음이 있을 때 오류가 발생할 가능성이 높다. * '''동일한 비트 오류 확률을 위해 약 3dB 더 많은 신호 전력이 필요함:''' ** 멀티레벨 신호는 더 많은 레벨을 구분해야 하므로, 동일한 비트 오류 확률을 유지하기 위해 더 강한 신호 전력이 필요하다. ** 이는 수신기가 신호를 정확히 구분할 수 있도록 하기 위함. == 같이 보기 == * [[NRZ 인코딩]] * [[이중 위상 인코딩]] * [[스크램블 인코딩]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록