
В процессе обсуждения с KW4TI предложенного им проекта цифровой моды SCAMP я предложил экономный код для предотвращения передачи длинных последовательностей нулей и единиц.
Кодек пребразует 4х битные данные в 5ти битные коды, такие, что формируя из них поток, мы гарантированно не получим последовательность нулей или единиц с длиной более 4 бит.
Идея кода состоит в следующем. Для 5ти битов существует ровно 16 битовых комбинаций, каждая из которых не содержит последовательности одинаковых битов длиной более двух.
Code: Select all
00100
00101
00110
01001
01010
01011
01100
01101
10010
10011
10100
10101
10110
11001
11010
11011
Code: Select all
11011 11011 11011
00100 00100 00100
Если все остальные 5ти битовые последовательности интерпретировать как неверный код, то такое кодирование обнаруживает 22.5% одиночных ошибок и 28.75% двойных, что очень даже не плохо.
Кроме перечисленных выше 16ти последовательностей существуют еще две, которые содержат в себе последовательности одинаковых бит длиной 3, и поэтому не подпадают на сформулированное ограничение при построение кода.
Code: Select all
10001
01110
Code: Select all
11011 10001 11011
00100 01110 00100