Обнаружение и исправление одиночных ошибок путем


Использования дополнительных разрядов

Рассмотрим возможность использования дополнительных (контрольных) разрядов для обнаружения и исправления ошибок. Эта возможность заключается в том, что к n информационным разрядам добавляется один контрольный разряд. В него записывается 0 или 1 таким образом, чтобы для каждого из передаваемых чисел сумма разрядов по модулю 2 была бы равна 0 (кодирование по методу четности) или 1 (нечетности).Появление ошибки в числе обнаружится по нарушению четности или нечетности. При этом виде кодирования допускается возможность выявления только одиночной ошибки. Чтобы одна комбинация разрядов числа превратилась в другую без выявления ошибки, необходимо изменение четного (2, 4, 6 и так далее) числа разрядов одновременно. Пример реализации метода контроля по методу четности-нечетности приведен ниже в табл. 5.

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

Таблица 5.

  Число Контрольный разряд Проверка (нечетности)  
   
  1-ошибка  
   
   
   

 

Контрольные разряды выделяются всем группам по строкам и по столбцам согласно следующей схеме:

 

  a1 a2 a3 A4 a5 k1  
  a6 a7 a8 a9 a10 k2  
  a11 a12 a13 a14 a15 k3  
  a16 a17 a18 a19 a20 k4  
  a21 a22 a23 a24 a25 k5  
  k6 k7 k8 k9 k10    

Если ошибка произошла в разряде as (единица изменилась на ноль или наоборот), то при проверке на четность (нечетность) сумма по i-й строке и j-му столбцу (на пересечении которых находится элемент as) изменится. Следовательно, можно зафиксировать нарушение четности (нечетности) по этой строке и столбцу. Это не только позволит обнаружить ошибку, но и локализовать ее место. Изменив значение разряда as на противоположное можно исправить возникшую ошибку.

Контроль по методу четности-нечетности используется для контроля записи и считывания информации, а также для выполнения арифметических операций.

Коды Хемминга

Американский ученый Р. Хемминг предложил способ кодирования информации, позволяющий не только обнаруживать, но и исправлять ошибки при передаче одиночного слова любой разрядности. Эти коды – систематические. Пусть разрядность слова равна m. Для контроля информации требуется k дополнительных разрядов. Число k выбирается согласно следующим правилам.

1. Контролирующее число k выбирается таким образом, чтобы оно имело количество комбинаций, достаточное для распознавания одной из m+k позиций или для сигнализации отсутствия ошибки. Полученное таким образом число описывает n=m+k+1 событий. Следовательно, необходимо чтобы выполнялось неравенство 2k≥(m+n+1).

2. (m+k) – разрядные позиции нумеруются от единицы до (m+k), начиная от младшей значащей. Контрольные разряды k обознаются P0, P1, P2, …,Pk-1 и помещаются в разряды, имеющие номера 1,2,4,8, …,2k-1 (m+k) – разрядного числа. Остальные m разрядов могут быть размещены в любом порядке между контрольными разрядами.

3. Контрольные разряды P0, P1, P2, …,Pk-1 выбраны таким образом, чтобы для определенных разрядов слова служить в качестве контрольных избыточных разрядов.

Проверка Проверяемые разряды
             
       
     
     
      . . .                    

P0 выбрано с таким расчетом, чтобы в позициях 1, 3, 5, 7, 9, 11 … число единиц каждого слова было четным, P1 – выбрано для того, чтобы выполнялось условие четности в разрядах 2, 3, 6, 7, 10, 11, 14, 15 …, аналогично P2 контролирует позиции 4, 5, 6, 7,12,13,14,15,20… и P3 для разрядов 8, 9,10,11,12,13,14,15,24,25…

На основании рассмотренных правил в таблице показаны семиразрядные коды. Контрольные разряды обозначены P0, P1 и P2 и помещены в позициях 1, 2 и 4.

Таблица 6.

    Разряды    
  Число  
    A B C P2 D P1 P0  
   
   
   
     
   
   
   
   
   
   
   
   
   
   
   
   

Операция обнаружения и исправления ошибок выполняется путем нахождения k-разрядного контрольного числа. При этом младший значащий разряд контрольного числа находится посредством проведения контроля на четность над разрядами 1,3,5,7,9… . Если контроль показывает правильность передачи, то пишется нуль, иначе единица. Следующий разряд контрольного числа определяется путем проверки на четность разрядов 2,3,7,10,11,14,15,… . Остальные разряды контрольного числа находятся аналогично.

Если контрольное число равно нулю, то это означает, что при передаче информации ошибка не произошла. Если же контрольное число не равно нулю, то оно указывает на тот разряд числа, где зафиксирована ошибка и которую необходимо исправить.

Пусть, например, передается число шесть 0110011, а принимается в виде 0110111, то есть произошла ошибка в третьем разряде. Выполняя контроль на четность с помощью разрядов P0, P1 и P2, находим:

Контрольное число

P0 (1, 3, 5, 7) = (1, 1, 1, 0) нечетность 1

P1 (2, 3, 6, 7) = (1, 1, 1, 0) нечетность 1

P2 (4, 5, 6, 7) = (0, 1, 1, 0) четность 0

Полученное контрольное число равно 011, что соответствует ошибке в третьем разряде.

Таким образом, дополнительный разряд Pi выбран так, чтобы проверять четность той совокупности разрядных позиций, чьи контрольные числа содержат единицу в позиции 2i.



Дата добавления: 2022-02-05; просмотров: 230;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.