Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
InfoSec_Shpors.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.44 Mб
Скачать

15. Алгоритм использования корректирующего кода

На стороне ИС

  1. Построить проверочную матрицу Hn,k для заданного k (Хk)

  2. Вычислить символы избыточного слова Хr (на основе (6) )

  3. Cформировать кодовое слово Хn = х12,…,хk,xk+1,…xk+r и осуществить его передачу

На стороне ПС

  1. Получение сообщения (Yn = y1,y2,…,yk,yk+1,…yk+r )

  2. Вычисление синдрома (на основе (5) ), используя ту же Hn,k :

S =HT *Yn = H *(Yn)T =HT *(Хn +En) =HT *Хn + HT *En = HT *En (10)

для этого вычисляем Yr= yri : yri= yk+i = Σ hij *yj (11)

и далее: S = s1,s2,…sr , где si = yk+i + yri(12)

4. Анализ (декодирование синдрома) – определение местоположения ошибочного бита (En посредством S hm )

5. Исправление ошибки: Хn = Yn + En (13)

Теорема 1. Минимальное кодовое расстояние линейного кода равно минимальному весу ненулевых кодовых слов

  • Rи=r/k относительная избыточность кода

  • Rс=k/n - cкорость кода

  • Выбор кода определяется вероятностью ошибки в канале, р (чем больше р, тем с большим d , т.е. с большим r следует выбирать код, однако это снижает Rс )

Определение 10. Пропускная способность ДСК с вероятностью ошибки р равна

С(р) = 1 + р log2 р + q log2 q (14)

Теорема 2 (Шеннона). Для любого ДСК и любого ε >0 существует (n,k)- двоичный код со скоростью Rс, если Rс< C(p), n достаточно велико и р < ε.

ОСНОВНАЯ ПРОБЛЕМА ТЕОРИИ КОДИРОВАНИЯ: НАЙТИ КОДЫ С БОЛЬШИМИ d И Rс (задача оптимизационная)

15. Декодирования кодовых слов. Поиск и исправление ошибок. Особенности программной реализации

17. Код Хемминга с минимальным кодовым расстоянием dmin = 3. Особенности программной реализации

Данный код характеризуется минимальным кодовым расстоянием dmin = 3. При его использовании кодирование сообщения также должно удовлетворять соотношению (3.4). Причем вес столбцов подматрицы А должен быть больше либо равен 2. Второй особенностью данного кода является то, что используется расширенный контроль четности групп символов информационного слова, т. е. r > 1. Для упрощенного вычисления r можно воспользоваться следующим простым соотношением:

(3.8)

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

В нашем случае подматрицу А можно определить как

. (3.9)

Элемент этой подматрицы (0 или 1) hij относится к i-й строке и j-му столбцу ( ).

Вычислим проверочные символы в соответствии с (3.4):

(3.10)

Определим синдром:

(3.11)

Пример 3.6. Имеется информационное слово Xk = 1001. Проанализируем использование рассматриваемого кода.

Для начала отмечаем, что k = 4. В соответствии с (3.8) подсчитываем длину избыточного слова: r ≥ log2(4 + 1) = 3, тогда n k r = 7.

Создаем проверочную матрицу Н7,4:

.

Вычисляем проверочные символы, используя (3.10).

В соответствии с этим первый проверочный символ хr1 будет равен 1, остальные – нулю:

Таким образом, избыточное слово будет таким: Xr = 100, а кодовое слово – Xn = 1001 100.

Рассмотрим ситуацию, когда ошибок в переданной информации нет, = 0, т.е. Xn = Yn=1001 100

Вычислим новый набор проверочных символов в соответствии с (3.11) и синдром:

Y ΄r=100,

Нулевой синдром означает безошибочную передачу (или прием) информации.

Рассмотрим ситуацию, когда возникает одиночная ошибка, t = 1:

Пусть ошибка произошла в служебных символах (ошибочный символ подчеркнут).

Синдром вычисляем по методике, приведенной для случая отсутствия ошибок. Получаем = 100. Вес синдрома равен 1 и это означает, что произошла ошибка. Местоположение ошибки выявляется анализом (декодированием) синдрома. Декодирование опирается на вышеприведенное соотношение (3.5), в соответствии с которым, принимая во внимание (3.6), можем записать:

(3.12)

где h5 – пятый столбец матрицы, номер которого соответствует номеру ошибочного символа в принятом кодовом слове. Действительно, h5 S = 100.

В результате декодирования синдрома получается вектор ошибки (унарный вектор, имеющий единичный вес): Е = 0000100. Исправление ошибочного бита достигается простым сложением по модулю 2 два вектора Е и кодового слова Yn:

.

Пусть ошибка произошла в бите информационного слова .

Вычислим дополнительные проверочные символы и синдром:

Убеждаемся, что синдром соответствует первому столбцу используемой проверочной матрицы. Это означает, что декодирование синдрома однозначно укажет на местоположение ошибочного бита: E = 1000000 и ΄n = Е   Yn  = 

= 0001100  1000000 = 1001100  Xn.

При возникновении ошибок кратности два (например, на позициях l и m) данный код не позволяет однозначно идентифицировать ошибки, поскольку с учетом (3.12) имеем:

(3.13)

Таким образом, код Хемминга с dmin = 3 гарантированно обнаруживает и исправляет одиночную ошибку в любом разряде кодового слова.

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

+ см. IS_Help

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]