Какое минимальное количество бит необходимо для исправления всех 2-битных ошибок? - PullRequest
8 голосов
/ 12 апреля 2011

Я узнал о кодах Хэмминга и о том, как их использовать для исправления 1-битных ошибок и обнаружения всех 2-битных ошибок, но как расширить это до исправления 2-битных, а может и больше?

Какое минимальное количество бит необходимо для исправления всех 2-битных ошибок?

1 Ответ

7 голосов
/ 12 апреля 2011

Кажется, я понял это.

N = количество бит данных, k = число исправляющих ошибки битов (например, четность по Хэммингу)

В любой схеме ECC у вас есть 2 ^ (N + k) возможных битовых строк.

Для ошибки одного бита:

Вы должны найти k таким, чтобы общее количество возможных битовых строк превышало возможное количество строк с не более чем 1-битной ошибкой для данной строки.

Общее количество возможных строк с ошибкой не более 1 бита составляет 2 ^ N (n + k + 1)

1 строка без ошибок, N + k строк с 1-битной ошибкой

2 ^ (N + K)> = (2 ^ N) * (N + к + 1)

Вам просто нужно добавить значения k, пока вы не найдете то, что удовлетворяет вышеприведенному (или как бы вы ни хотели его решить)

Аналогично для 2-битной ошибки это

1 строка без ошибок, N + k строк с 1-битной ошибкой, N + k выбирает 2 строки с 2-битной ошибкой.

2 ^ (N + k)> = (2 ^ N) * (N + k + 1 + (N + k выберите 2))

...