Код Modulo- N - это алгоритм сжатия с потерями, используемый для сжатия коррелированных источников данных с использованием модульной арифметики.
При применении к двум узлам в сети, данные которых находятся в близком диапазоне друг от друга по модулю N, код требует, чтобы один узел (скажем, нечетный) отправлял значение закодированных данных в качестве необработанных данных ; четный узел требуется для отправки закодированных данных как. Отсюда и название кода по модулю N.
Поскольку для представления числа K в двоичном формате требуются по крайней мере биты, для данных двух узлов, кодированных по модулю, требуются биты. Как обычно можно ожидать всегда, потому что. Так достигается сжатие.
Достигнутая степень сжатия составляет
На приемнике путем совместного декодирования мы можем завершить процесс извлечения данных и восстановления исходных значений. Код из четного узла реконструируется в предположении, что он должен быть близок к данным из нечетного узла. Следовательно, алгоритм декодирования извлекает данные четного узла как
По сути, декодер находит наиболее близкое совпадение, и декодированное значение объявляется как
Для кода mod-8 у нас есть кодировщик
D_o=43,D_e=47 M_o=43,M_e=47 mod(8) = 7,
Декодер
M_o=43,M_e=47 mod(8) = 7, D_o=43,D_e=CLOSEST(43,8⋅k + 7) D_o=43,D_e=47
Декодирование по модулю N аналогично разворачиванию фазы и имеет то же ограничение: если разница от одного узла к следующему больше, чем N / 2 (если фаза изменяется от одного отсчета к следующему более чем), то декодирование приводит к неверное значение.