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

Обновлено: 14 сент., 14:02
1112
Студентов
86%
Завершения

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

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

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

nrzi

solution.js

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

Примеры:

const signal1 = '_|¯|____|¯|__|¯¯¯';
nrzi(signal1); // '011000110100'

const signal2 = '|¯|___|¯¯¯¯¯|___|¯|_|¯';
nrzi(signal2); // '110010000100111'

const signal3 = '¯|___|¯¯¯¯¯|___|¯|_|¯';
nrzi(signal3); // '010010000100111'

const signal4 = '';
nrzi(signal4); // ''

const signal5 = '|';
nrzi(signal5); // ''

Подсказки

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

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

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

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

Отзывы

Аватар пользователя Андрей Шляпников
Андрей Шляпников 21 апреля 2021

Спасибо за интересное задание! Мне конечно помогли его решить прочтение обсуждений;) Но все равно я рад что решил сам)))


Аватар пользователя Владимир Беседин
Владимир Беседин 19 июня 2020

А ведь действительно полезное задание, я тоже как-то упустил из виду, что в качестве аргументов callback-функция в map может принимать не только текущий элемент массива, но и некоторые другие важные вещи.


Аватар пользователя Sergei Zheludkov
Sergei Zheludkov 20 февраля 2020

Интересная задача. Помогает взглянуть на функцию map по другому))