Изменения

Перейти к: навигация, поиск

Избыточное кодирование, код Хэмминга

638 байт добавлено, 21:19, 12 января 2013
Оптимизация памяти
Легко понять, что если в одном бите из строки допущена ошибка, то с помощью дописанных <tex>k</tex> пар бит можно точно определить, какой именно бит ошибочный. Это объясняется тем, что каждая пара определяет один бит номера ошибочного бита в строке. Всего пар <tex>k</tex>, следовательно мы имеем <tex>k</tex> бит номера ошибочного бита, что вполне достаточно: общее число бит строки не превосходит <tex>2^k</tex>.
ИтогоТеперь заметим, увеличивая код длиной что в случае наличия ошибки в исходной строке, ровно один бит в каждой паре будет равен единице. Тогда нам достаточно хранить только один бит из пары, при этом потребуется добавить ещё бит, отвечающий за местонахождение ошибки - в исходной или добавленной части, пусть он будет равен <tex>nxor</tex> на 'у всех исходных битов (заметим, что в этом случае этот бит <tex>2\log_2 noplus</tex>бит из пары = второй бит из пары, можно обнаружить и исправить одну ошибкупотому вторые биты в парах не нужны)
== Определение и устранение ошибок в общем случае ==
Пусть <tex>\Sigma</tex> &mdash; исходный алфавит, <tex>C: \Sigma \to B^m</tex> &mdash; кодирование, <tex>B=(0,1)</tex>
308
правок

Навигация