-10%
-40%
Профессии со скидками и подарки от Хекслета
Покупайте себе, дарите друзьям!

Python: NRZI кодирование

Python: Функции 3 сообщения
Обновлено: 14 сент., 10:24
265
Студентов
85%
Завершения

NRZI код (Non Return to Zero Invertive) — один из способов линейного кодирования. Обладает двумя уровнями сигнала и используется для передачи битовых последовательностей, содержащих только 0 и 1. NRZI применяется, например, в оптических кабелях, где устойчиво распознаются только два состояния сигнала — свет и темнота.

Принцип кодирования

При передаче логического нуля на вход кодирующего устройства передается потенциал, установленный на предыдущем такте (то есть состояние потенциала не меняется), а при передаче логической единицы потенциал инвертируется на противоположный.

nrzi

src/solution.py`

Реализуйте функцию decode(), которая принимает cтроку в виде графического представления линейного сигнала и возвращает строку с бинарным кодом.

decode('_|¯|____|¯|__|¯¯¯')
# '011000110100'
decode('|¯|___|¯¯¯¯¯|___|¯|_|¯')
# '110010000100111'
decode('¯|___|¯¯¯¯¯|___|¯|_|¯')
# '010010000100111'

Подсказки

  • Символ | в строке указывает на переключение сигнала и означает, что уровень сигнала в следующем такте, будет изменён на противоположный по сравнению с предыдущим.
  • Если вам нужно будет склеить список строк в одну, воспользуйтесь конструкцией ''.join(list_of_strings) (работает с любым итератором).

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов