Двухмерный контроль паритета


 

Двухмерный контроль паритета позволяет:

1. Обнаруживать и исправлять одиночные ошибки.

2. Обнаруживать двойные ошибки.

Способность приемника обнаруживать и исправлять ошибки называют прямым исправлением ошибок (Forward Error Correction, FEC). Двухмерный контроль паритета применяются в устройствах хранения данных. Такие методы При двухмерном контроле вычисляются множественные биты паритета четности.

Кодирование данных и передача по линии связи :

1. Данное, состоящее из (n∙m)-разрядов разбивается на n-фрагментов, состоящих из m-разрядов.

Например, данное, состоящее из 16-разрядов, разбивается на 4 фрагмента длиной по 4 разряда (n = 4 фрагмента, m = 4 разряда).

 

Фрагмент 3 Фрагмент 2 Фрагмент 1 Фрагмент 0
                               

 

2. Фрагменты образуют прямоугольную матрицу, содержащую 4 строки и 4 столбца.

 

J3 J 2 J 1 J 0    
I3    
I2    
I1    
I0    
             
             

где , , , – номера строк; , , , – номера столбцов.

Соответствие прямоугольной матрицы и исходного сообщения приведено в таблице.

 

Фрагмент 3 (строка I3) Фрагмент 2 (строка I2) Фрагмент 1 (строка I1) Фрагмент 0 (строка I0)

 

3. Для каждой строки и столбца вычисляются биты паритета четности.

J3 J 2 J 1 J 0 PI
I3 РI3
I2 РI2
I1 РI1
I0 РI0
PJ РJ3 РJ2 РJ1 РJ0
           

где РI3, РI2, РI2 , РI0 - паритеты строк; РJ3, РJ2, РJ1, РJ0 - паритеты столбцов.

4. Для всех битов паритета строк и столбцов вычисляется дополнительный бит паритета паритетов РIJ строк и столбцов паритета .

J3 J 2 J 1 J 0 PI
I3 РI3
I2 РI2
I1 РI1
I0 РI0
PJ РJ3 РJ2 РJ1 РJ0 РIJ
           

5. Из фрагментов и битов паритета, содержащих (n+1)∙(m+1)-разрядов, образуется сообщение:

РI3 РI2 РI2 РI0 РJ3РJ2РJ1РJ0РIJ.

6. Передающий узел посылает по линии связи сообщение:

РI3 РI2 РI2 РI0 РJ3РJ2РJ1РJ0РIJ.

.

Прием и проверка данных:

1. Приемный узел принимает сообщение:

РI3 РI2 РI2 РI0 РJ3РJ2РJ1РJ0РIJ.

2. Сообщение разбивается на (n + 1) - фрагментов, состоящих из (m + 1) - разрядов:

  J3 J 2 J 1 J 0 PI          
  I3 РI3          
  I2 РI2          
  I1 РI1          
  I0 РI0          
  PJ РJ3 РJ2 РJ1 РJ0 РIJ          
                       

3. Для каждой строки вычисляются синдромы SI3, SI2, SI1, SI0, SР. Для каждого столбца вычисляются синдромы SJ3, SJ2, SJ1, SJ0, SР

J3 J 2 J 1 J 0 PI SI
I3 РI3 SI3
I2 РI2 SI2
I1 РI1 SI1
I0 РI0 SI0
PJ РJ3 РJ2 РJ1 РJ0 РIJ SРIJ
SJ SJ3 SJ2 SJ1 SJ0 SРJI

3. Проверка на наличие ошибок:

- если все синдромы равны нулю, то ошибки нет;

- если синдром строки и синдром столбца содержат только по одной единице, то есть одна ошибка, которая находится на пересечении соответствующих строк и столбца.

Например, если синдромы SI2 = 1 и РJ0 =1, то на пересечении строки I2 и столбца J0 находится испорченный бит D8, который может быть исправлен.

J3 J 2 J 1 J 0 PI SI
I3 РI3 SI3
I2 РI2 SI2
I1 РI1 SI1
I0 РI0 SI0
PJ РJ3 РJ2 РJ1 РJ0 РIJ SРIJ
SJ SJ3 SJ2 SJ1 SJ0 SРJI

 

- если обнаруживается более двух синдромов равных единице, то выявляется наличие множественных ошибок.

Например, если синдромы строк SI2 = 1, SI0= 1 и столбцов SJ3 = 1, РJ0 =1, то на пересечении строк I2, I0 и столбцов J3, J0 находятся биты , D8, , ,которые не могут быть идентифицированы, а поэтому и исправлены.

 

J3 J 2 J 1 J 0 PI SI
I3 РI3 SI3
I2 РI2 SI2
I1 РI1 SI1
I0 РI0 SI0
PJ РJ3 РJ2 РJ1 РJ0 РIJ SРIJ
SJ SJ3 SJ2 SJ1 SJ0 SРJI

 

 

Сборка исходного сообщения:

1. При отсутствии ошибки из принятого сообщения собирается исходное данное .

2. При наличии одной ошибки:

- собирается исходное сообщение

;

- для синдромов SI3, SI2, SI1, SI0, SJ3, SJ2, SJ1, SJ0 в таблице приведены идентификаторы ошибок:

 

Синдромы строк   Идентификатор ошибки строки Синдромы столбцов   Идентификатор ошибки столбца
SI3 SI2 SI1 SI0 SJ3 SJ2 SJ1 SJ0
Ошибки нет Ошибки нет
Ошибка строки 0 Ошибка столбца 0
Ошибка строки 1 Ошибка столбца 1
Ошибка строки 2 Ошибка столбца 2
Ошибка строки 3 Ошибка столбца 3

 

Для синдромов SI3, SI2, SI1, SI0, SJ3, SJ2, SJ1, SJ0 рассчитывается идентификатор ошибки, который является номером N ошибочного бита данного:

N = 4∙KI + KJ = 4∙ log2 (WI) + log2 (WJ),

где WI - вес синдромов строк SI3, SI2, SI1, SI0; WJ - вес синдромов столбцов SJ3, SJ2, SJ1, SJ0.

Например. Рассчитать номер ошибочного бита N для синдрома строк SI3SI2SI1SI0 = 01002 = 410 и синдрома столбцов SJ3SJ2SJ1SJ0 = 00012 = 110:

N = 4∙ log2 (410) + log2 (110) = 4∙ 2 + 0 = 8.

Получаем ошибку в восьмом бите . Местонахождения ошибочного бита показано в таблице.

Фрагмент 3 (строка I3) Фрагмент 2 (строка I2) Фрагмент 1 (строка I1) Фрагмент 0 (строка I0)
J3 J 2 J 1 J 0 J3 J 2 J 1 J 0 J3 J 2 J 1 J 0 J3 J 2 J 1 J 0

 

Пример. Применить двухмерный контроль паритета для исходного сообщения 0001 0010 0100 1100.

Кодирование данных и передача по линии связи :

1. Сообщение разбивается на четыре фрагмента, для которых вычисляются паритеты четности

  J3 J 2 J 1 J 0 PI
I3
I2
I1
I0
PJ

 

2. Передающий узел собирает из фрагментов сообщение 00011 00101 01001 11000 10111 и посылает его по линии связи.

Прием и проверка данных:

1. Приемный узел принимает сообщение 00011 00101 01001 11000.

2. Сообщение разбивается на фрагменты, для которых рассчитываются синдромы 0001 0010 0100 1100

  J3 J 2 J 1 J 0 PI SI
I3
I2
I1
I0
PJ
SJ            

 

2. Выполняется анализ синдромов: все синдромы равны нулю, следовательно ошибок нет.

3. Исходное сообщение равно 0001 0010 0100 1100.

 

Прием и проверка данных (с одной ошибкой):

1. Приемный узел принимает сообщение 00011 00101 11001 11000.

2. Сообщение разбивается на фрагменты, для которых рассчитываются синдромы

  J3 J 2 J 1 J 0 PI SI
I3
I2
I1
I0
PJ
SJ            

 

4. Расчет номера ошибочного бита N для синдрома строк SI3SI2SI1SI0 = 00102 = 210 и синдрома столбцов SJ3SJ2SJ1SJ0 = 10002 = 810:

N = 4∙ log2 (210) + log2 (810) = 4∙ 1 + 3 = 7.

Получаем ошибку в восьмом бите .

5. Восстановление данного 0001 0010 1100 1100.

6. Исправление ошибки, выполняется инверсией бита :

0001 0010 100 1100 = 0001 0010 0100 1100.

 

Код Хемминга

Помехоустойчивое кодирование методом Хемминга позволяет:

- обнаруживать одиночные ошибки;

- исправлять одиночные ошибки.

Метод основан на перекрестном вычислении битов паритета.

Основными свойствами кода Хемминга являются:

- расстояние по Хеммингу;

- минимальное расстояние по Хеммингу;

- вес Хемминга.

Расстоянием по Хеммингу d(x,y) называется число позиций, в которых различаются два n-разрядных кода.

Минимальным расстоянием d* называется наименьшее из всех расстояний по Хеммингу между различными парами всех n-разрядных кодов.

Весом Хемминга w(x) называется число ненулевых компонент n-разрядного кода.

Пример.Определить расстояние по Хеммингу d(x,y) для кодов х = 0110 и y = 1011:

  Код х
  Сумма по модулю два
  Код y
  Результат

В результате 1101 единицы отражают число позиций, в которых различаются коды 0110 и 1011. Количество единиц равно 1 + 1 + 0 + 1 = 3.

Ответ. Расстояние по Хеммингу d(0110, 1011) = 3.

Пример.Определить минимальное расстояние d* для кодов 0110, 1011, 1101:

d(0110, 1011) = 3;

d(1011, 1101) = 2;

d(0110, 1101) = 2.

Ответ. Минимальное расстояние d* = 2.

Пример.Определить вес Хемминга w(x) для кода х = 0110.

Ответ. Вес Хемминга w(0110) = 0 + 1 + 1 + 0 = 2.

Помехоустойчивые коды характеризуется выражениями:

(n, k, d) или (n, k),

где n – общее число разрядов в передаваемом сообщении; k – число информационных разрядов (k = n - r); r – число проверочных разрядов; d* – минимальное кодовое расстояние между разрешенными кодовыми комбинациями.

Дополнительным показателями избыточности являются:

- относительная избыточность ;

- относительная скорость передачи .

 

Рассмотрим работу метода на примере кода Хемминга (7,4) для данного D3D2D1D0 (n =7, k = 4).

Кодирование данных и передача по линии связи :

1. Вычисление для данного D3D2D1D0 поверочных битов Р2Р1Р0 по формулам:

Р0 = D2 Å D1 Å D0;

Р1 = D3 Å D1 Å D0;

Р2 = D3 Å D2 Å D0.

2. Переда сообщения D3D2D1D0Р2Р1Р0 по линии связи.

Прием и проверка данных:

1. Прием сообщения D3D2D1D0Р2Р1Р0.

2. Вычисление синдромов по формулам:

S0 = D2 Å D1 Å D0 Å Р0;

S1 = D3 Å D1 Å D0 Å Р1;

S2 = D3 Å D2 Å D0 Å Р2.

Трёхразрядный код называется синдромом.

Синдром представляет собой сочетание результатов проверки на чётность соответствующих символов кодовой группы и характеризует определённую конфигурацию ошибок (шумовой вектор).

3. Проверка на наличие ошибок:

- получение идентификаторов ошибки для синдромов (восемь идентификаторов ошибки), приведенных в таблице.

 

Таблица Идентификаторы ошибок

Синдромы Идентификатор ошибки
S2 S1 S0
Ошибки нет
Ошибка в P0
Ошибка в P1
Ошибка в D1
Ошибка в Р2
Ошибка в D2
Ошибка в D3
Ошибка в D0

 

Пример. Передать четырехразрядное данное D3D2D1D0 = 0000 с контролем достоверности по Хеммингу.

Кодирование данных и передача по линии связи :

1. Вычисление для данного D3D2D1D0 = 0000 поверочных битов Р2Р1Р0 по формулам:

Р0 = D2 Å D1 Å D0 = 0 Å 0 Å 0 = 0;

Р1 = D3 Å D1 Å D0 = 0 Å 0 Å 0 = 0;

Р2 = D3 Å D2 Å D0 = 0 Å 0 Å 0 = 0.

Поверочные биты Р2Р1Р0 равны 000.

2. Передача сообщения D3D2D1D0Р2Р1Р0 = 0000 000.

Прием и проверка данных:

1. Прием сообщения D3D2D1D0Р2Р1Р0 = 0000 000.

2. Вычисление синдромов :

S0 = D2 Å D1 Å D0 Å Р0 = 0 Å 0 Å 0 Å 0 = 0;

S1 = D3 Å D1 Å D0 Å Р1 = 0 Å 0 Å 0 Å 0 = 0;

S2 = D3 Å D2 Å D0 Å Р2 = 0 Å 0 Å 0 Å 0 = 0.

Синдромы равны 000.

3. Проверка на наличие ошибок:

- из таблицы идентификаторов получаем, что для синдромов = 0000 ошибки нет.

 

Пример. Выполнить верификацию принятого сообщения 0100000, использующее кодирование методом Хемминга (7,4).

Прием и проверка данных:

1. Прием сообщения D3D2D1D0Р2Р1Р0 = 0100 000.

2. Анализ принятого сообщения:

Данное Код Хемминга
D3 D2 D1 D0 Р2 Р1 Р0

 

2. Вычисление синдромов :

S0 = D2 Å D1 Å D0 Å Р0 = 1 Å 0 Å 0 Å 0 = 1 Å 0 Å 0 = 1 Å 0 = 1;

S1 = D3 Å D1 Å D0 Å Р1 = 0 Å 0 Å 0 Å 0 = 0 Å 0 Å 0 = 0 Å 0 = 0;

S2 = D3 Å D2 Å D0 Å Р2 = 0 Å 1 Å 0 Å 0 = 1 Å 0 Å 0 = 1 Å 0 = 1.

3. Проверка на наличие ошибок:

- для синдромов = 101 из таблицы синдромов извлекаем сообщение: «Ошибка в D2».

4. Исправление ошибки:

- исправление ошибки с помощью логической операции инверсии (второго разряда) = 0000.

Ответ. Передавалось данное 0000.

 



Дата добавления: 2019-02-08; просмотров: 597;


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

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

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

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