Меню

Вычисление синдрома ошибки

Книга составлена таким образом, что обе части «Информация»

3.6. Синдром циклических кодов и контроль ошибок

Рассмотрим модель передачи информации (рис.3.11). При передаче по каналу связи с шумом к кодовому слову v(X) добавляется мно­гочлен ошибок е(Х). В результате, многочлен принятого кодового слова имеет вид:

где s(X) представляет собой синдром. Если r(Х) является кодовым словом, то s(X) — нулевой многочлен.

Рис. 3.11. Модель передачи информации.

Синдром s(X) может быть вычислен с помощью алгоритма деле­ния Евклида. Такое вычисление можно реализовать на простой цепи (рис. 3.12), во многом схожей с кодером систематического цикличе­ского кода (рис. 3.10). В схеме, приведенной на рис. 3.12, опреде­ляется остаток от деления некоторого многочлена на порождающий многочлен g(Х). Сначала, в декодере производится обнуление дво­ичных разрядов синдрома s, s1, . , sr—1, и в регистр синдрома за­носятся r первых принятых из канала бит. Остаток от деления r(Х) на порождающий многочлен g(Х) по алгоритму Евклида заносится в регистр синдрома. Рассмотрим процедуру вычисления синдрома s(X) на примере.

Рис. 3.12. Вычисление синдрома систематического (n, fc)-кода с порождающим многочленом fj(X].

Пример: Вычисление синдрома циклического (7,4)-кода Хэм-минга.

В качестве примера, рассмотрим уже известный циклический (7,4)-код Хэмминга с порождающим многочленом Пусть информационный вектор u = (1001). Как мы уже знаем из предыдущего примера, этому вектору соответствует кодовое слово v = (011 1001).

Рис. 3.13. Вычисление синдрома систематического (7,4)-кода по принятому слову в канале без шума.

При передаче по каналу без шума r = v. Процедура вычисле­ния синдрома по тактам, в этом случае, представлена на рис. 3.13. Так как принятое из канала слово является кодовым, мы получим нулевой синдром.

Пусть, из-за воздействия шума в канале произошла одна ошибка r = (011 1011). Тогда, в результате вычисления остатка от деления r(Х) на g(Х) (рис. 3.14), мы уже получаем ненулевой синдром. Та­ким образом, произошло распознавание ошибки.

Рис. 3.14. Вычисление синдрома систематического (7,4)-кода при одиночной ошибке в принятом слове.

Преимущества циклических кодов не ограничиваются одной лишь простотой вычисления синдрома. Рассмотрим некоторые дополни­тельные свойства, которыми обладают их синдромы.

Теорема 3.6.1. Пусть s(X) — синдром принятого из канала слова r(Х) некоторого циклического (n, k)-кода. Обозначим через s1(X) _J остаток от деления многочлена X s(X) на порождающий много­член g(Х). Тогда s1(X) является синдромом r (1) (Х), т.е. остатком от деления циклического сдвига r(Х) на порождающий многочлен g(Х)

Доказательство. Рассмотрим многочлен

Циклический сдвиг многочлена r(Х) можно записать следующим образом:

Запишем в виде , а r(Х) в виде , где и s(X) синдромы многочленов r(1)(Х) и r(Х). Воспользуемся соотношением Х п + 1 = g(X)h(X) из теоремы 3.2.5, тогда имеем

Переставляя слагаемые в (3.69), получим связь между синдромами s(X) и s(X)

Из 3.70 непосредственно следует формулировка теоремы.

Пример: Вычисление синдрома однократных ошибок для цик­лического (7,4)-кода Хэмминга.

Продолжим предыдущий пример. Из рис. 3.14 следует, что од­нократной ошибке в компоненте r5 вектора соот­ветствует синдром (такт n = 7). Отключив входной регистр, получим схему, изображенную на рис. 3.15. Заме­тим, что исходное состояние на такте п = 0 определяется синдромом однократной ошибки в компоненте r5. Произведя циклические сдви­ги регистра синдрома рис. 3.15, мы на каждом такте будем находить из (3.70). Последовательность соответствует синдромам однократных ошибок в компонентах r6, r и т.д. (Табл. 3.6). Зна­чения из таблицы 3.6 полностью совпадают со значениями таблицы 2.3. полученной для проверочной матрицы систематического (7,4)-кода Хэмминга.

Рис. 3.15. Вычисление синдромов циклических сдвигов принятого слова.

Таблица 3.6. Синдромы однократных ошибок циклического (7,4)-кода Хэмминга с порождающим многочле­ном

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

Рассмотрим связь между синдромом s(X) и многочленом ошибок е(Х). Из модели передачи информации (рис. 3.11) следует

* Из (3.74) следует, что e(X)mod(g(X)) = s(X). Так как код Хэмминга исправля­ет все однократные ошибки, то для построения таблицы синдромов (п, k)-кода Хэмминга в качестве е(Х) достаточно перебрать все одночлены X , X 1 . Х n -1 Прим. перев.

Знание синдрома не позволяет однозначно определить многочлен е(Х). Так, например, если е(Х) делится без остатка на д(Х), то это­му случаю соответствует нулевой синдром и ошибка не может быть распознана. В этом случае говорят о необнаружимой или остаточной ошибке декодирования.

Вычисление синдрома и исправление ошибок в циклических кодах;

Вычисление синдрома для циклических кодов является довольно простой процедурой.

Пусть U(x) и r(х) ‑ полиномы, соответствующие переданному кодовому слову и принятой последовательности.

Разделив r(x) на g(x), получим

r(x) = q(x)× g(x) + s(x), (3.73)

где — q(x) — частное от деления, s(x) — остаток от деления.

Если r(x) является кодовым полиномом, то он делится на g(x) без остатка, то есть s(x) = 0.

Следовательно, s(x)¹ 0 является условием наличия ошибки в принятой последовательности, то есть синдромом принятой последовательности.

Синдром s(x) имеет в общем случае вид

Очевидно, что схема вычисления синдрома является схемой деления, подобной схемам кодирования рис. 3.10 или 3.11 .

При наличии в принятой последовательности r хотя бы одной ошибки вектор синдрома S будет иметь, по крайней мере, один нулевой элемент, при этом факт наличия ошибки легко обнаружить, объединив по ИЛИ выходы всех ячеек регистра синдрома.

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

— полином вектора ошибки.

Тогда полином принятой последовательности

Прибавим в этом выражении слева и справа U(x), а также учтем, что

r(x) = q(x)× g(x) + S(x), U(x) = m(x)× g(x), (3.77)

, (3.78)

то есть синдромный полином S(x) есть остаток от деления полинома ошибки e(x) на порождающий полином g(x).

Отсюда следует, что по синдрому S(x) можно однозначно определить вектор ошибки e(x), а следовательно, исправить эту ошибку.

На рис. 3.14 приведена схема синдромного декодера с исправлением однократной ошибки для циклического (7,4)-кода. По своей структуре она подобна схеме, приведенной на рис. 3.6, с той лишь разницей, что вычисление синдрома принятой последовательности производится здесь не умножением на проверочную матрицу, а делением на порождающий полином. При этом она сохраняет и недостаток, присущий всем синдромным декодерам: необходимость иметь запоминающее устройство, ставящее в соответствие множеству возможных синдромов S множество векторов ошибок e. Цикличность структуры кода в этом случае не учитывается.

Вычисление абсолютных ошибок измерения

Далее сгенерированные данные использовались для вычисления оценок р, и 8. истинных значений латентных переменных р; и б.. Для нахождения оценок использовалась лицензионная диалоговая система ИЛП («Измерение латентных переменных»), разработанная в Лаборатории объективных измерений филиала Кубанского государственного университета в г. Славянске-на-Кубани [32].

Затем вычислялась абсолютная погрешность вычисления латентной переменной:

В целях иллюстрации на рис. 8.1—8.4 приведена точность измерения уровня знаний на всем интервале ее варьирования с числом тестовых заданий 10, 30, 50 и 100 соответственно.

Рис. 8.1. Точность измерения латентной переменной в зависимости от ее значения; число тестовых заданий п- 10

Рис. 8.2. Точность измерения латентной переменной в зависимости от се значения; число тестовых заданий п = 30

Рис. 83. Точность измерения латентной переменной в зависимости от ее значения; число тестовых заданий п = 50

Рис. 8.4. Точность измерения латентной переменной в зависимости от ее значения; число тестовых заданий п — 100

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

Из представленных графиков видно, что:

  • • точность измерения уровня знаний примерно одна и та же на всем диапазоне варьирования латентной переменной;
  • • с увеличением числа тестовых заданий средняя абсолютная ошибка уменьшается. Так, при 10 тестовых заданиях максимальное значение абсолютной ошибки превышает 1,5 логита (рис. 8.1), при 100 тестовых заданиях абсолютная ошибка не превышает 1,0 логита (рис. 8.4);
  • • кроме того, с увеличением числа тестовых заданий разброс ошибок оценки одного и того же уровня знаний уменьшается.

Вычисление синдрома и исправление ошибок в циклических кодах

Вычисление синдрома для циклических кодов является довольно простой процедурой, совершенно аналогичной процедуре кодирования. Рассмотрим ее.

Пусть и(х) и и(х) — полиномы, соответствующие переданному кодовому слову и принятой последовательности. Они могут совпадать, если передача сообщения была осуществлена безошибочно, или не совпадать в противном случае.

Читайте так же:  Последствия гнойной ангины у ребенка

Разделив й(х) на порождающий полином g(x), получим

где q(х) — частное от деления; s(x) — остаток от деления.

Если й(х) является допустимым кодовым полиномом, то он делится на g(x) без остатка, т.е. s(x) = 0.

Следовательно, результат s(x) ф 0 является условием наличия ошибки в принятой последовательности, а полином s(x) имеет смысл синдрома ошибки в последовательности и(х).

Синдром s(x) имеет в общем случае вид

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

При наличии в принятой последовательности й хотя бы одной ошибки вектор синдрома s будет иметь по крайней мере один ненулевой элемент, при этом факт наличия ошибки легко обнаружить, объединив по элементу ИЛИ выходы всех ячеек регистра синдрома.

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

Рис. 4.8. Схема получения синдрома для порождающего полинома д(х) =х 3 +х+1

Пусть е(х) — полином вектора ошибки. Тогда полином принятой последовательности

Учтем, что п(х) — допустимый кодовый полином, нацело делящийся на порождающий полином g(x), и запишем два выражения:

По определению вектора (полинома) ошибки:

То есть синдромный полином s(x) есть остаток от деления полинома ошибки е(х) на порождающий полином д(х).

Отсюда следует, что по синдрому s(x) можно однозначно определить вектор ошибки е(х), а следовательно, и исправить эту ошибку.

Декодирование двоичного кода БХЧ. Вычисление синдромов.Предмет от клиента: Основы теории информации и криптографии.

Нажмите, чтобы зарегистрироваться. Работа будет добавлена в личный кабинет.

ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ 2
1 ТЕОРИЯ:МЕТОДЫ РЕАЛИЗАЦИИ ЭТАПОВ ДЕКОДИРОВАНИЯ КОДОВ БЧХ 4
1.1 ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ 6
1.2 ИЗБЫТОЧНОСТЬ – ОСНОВА ПОМЕХОЗАЩИЩЕННОГО КОДИРОВАНИЯ 6
1.3 ГРУППОВЫЕ КОДЫ И УНИВЕРСАЛЬНЫЕ МЕТОДЫ ДЕКОДИРОВАНИЯ ТАКИХ КОДОВ 6
1.4 АЛГОРИТМ ПИТЕРСОНА-ГОРЕНСТЕЙНА-ЦИРЛЕРА 8
1.4.1СПЕЦИАЛИЗИРОВАННЫЕ АЛГОРИТМЫ ДЕКОДИРОВАНИЯ БЧХ 8
1.4.2 АЛГОРИТМ ПИТЕРСОНА-ГОРЕНСТЕЙНА-ЦИРЛЕРА 9
1.4.3 ПОШАГОВОЕ ОПИСАНИЕ АЛГОРИТМА ПИТЕРСОНА-ГОРЕНСТЕЙНА-ЦИРЛЕРА 10
2 ПРАКТИЧЕСКАЯ ЧАСТЬ 12
3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМОВ ДЕКОДИРОВАНИЯ 25
3.1 ОБЩЕЕ ОПИСАНИЕ ДЕМОСТРАЦИОННОЙ ПРОГРАММЫ 41
3.2 ОПИСАНИЕ ТАБЛИЧНОГО ДЕКОДИРОВАНИЯ 41
3.3 ОПИСАНИЕ ДЕКОДИРОВАНИЯ ПИТЕРСОНА-ГОРЕНСТЕЙНА-ЦИРЛЕРА 44
ЗАКЛЮЧЕНИЕ 47
СПИСОК ЛИТЕРАТУРЫ 48

Синдром воспаления;

Общее понятие и классификация хирургической инфекции, синдром воспаления.

I. Введение.

II. Основная часть.

I. Введение.

1. Общее понятие и классификация хирургической инфекции,

2. Местная гнойная хирургическая инфекция.

3. Отдельные формы местной гнойной инфекции.

4. Методы диагностики местной гнойной инфекции:

5. Основные принципы лечения.

6. Особенности ухода за больными с аэробной хирургической

III. Заключение.

По материалам XXIV конгресса Международного общества хирургов, каждый третий больной, обращающийся к хирургу в поликлинике, имеет ту или иную форму гнойного заболевания.

В среднем около 30% всех хирургических вмешательств, производимых в стационарах, осложняется инфекцией, около 40 % летальных исходов вызваны раз­личными инфекционными осложнениями.

В детских хирургических стационарах от 30 до 50% коек заняты больными с гнойными заболеваниями, а в 80% случаев летального исхода у детей с хирургической патологией обусловлены гнойными осложнениями.

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

II. Основная часть.

Хирургическая инфекция – это воспалительные за­болевания:

1) лечение которых проводится преимущественно хирургическими методами – операция;

2) осложнения, возникающие в послеоперацион­ном периоде.

Классификация хирургической инфекции по клиническому течению:

Составляющие хирургической инфекции:

один возбуди­тель (моноинфекция),

— несколько возбудителей (полиинфекция или смешанная инфекция).

2. Входные ворота – место куда и каким способом внедряется возбудитель ( раны, укусы, царапины, переломы открытые, ожоговая поверхность и т.д.

3. Организм человека:

— синдром воспаления: местная и общая реакция организма.

Местная реакция имеет 5 признаков воспаления:

1. гиперемия кожи;

2. припухлость за счет отека;

3. боль пульсирующего характера и болезненность при пальпации;

4. местное повышение температуры;

5. нарушение функции происходит из-за боли и отека.

Общая реакция – признаки воспаления:

1. чувство жара, озноб;

2. общее повышение температуры тела – утром снижается, вечером повышается;

3. недомогание, слабость, разбитость;

4. головная боль, головокружение;

5. тошнота, потеря аппетита;

6. тахикардия, одышка;

7. спутанность сознания;

8. увеличение печени и селезенки;

9. изменения в ОАК: лейкоцитоз, сдвиг формулы слево, увеличение СОЭ;

10. изменения в анализе мочи — в очень тяжелых случаях протеинурия.

2. Местная гнойная хирургическая инфекция – это острая аэробная инфекция

Вобудители — аэробы:

— стафилококк золотистый в 78,6 % случаев,

Предрасполагающие факторы:

— эндокринные заболевания, особенно сахарный диабет,

— загрязненность кожи и одежды,

— пол – чаще мужской,

— возраст – чаще пожилой.

Классификация острой гнойной хирургической инфекции мягких тканей:

Вычисление синдрома ошибки

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

После подстановки (13) в выражение (11) получается:

С учетом свойства -функции

Составляющая Den дисперсии De от помехи N(t) определяется следующим образом.

Рис. 4.3. Спектральная плотность помехи.

На рис. 4.3. приведен график спектральной плотности помехи. Из графика видно, что математическое ожидание помехи равно нулю. Величина Sno определяется из выражения

Верхняя n2 и нижняя n1 частоты спектра помехи и среднеквадратичное отклонение n заданы.

Дисперсия ошибки от помехи согласно (12) определяется следующим образом:

Суммарная дисперсия ошибки

(14)

Выражение (14) позволяет построить график зависимости дисперсии ошибки от постоянной времени Т02. Характер этой зависимости показан на рис.4.4. Как видно из графика, функция De(T02) имеет минимум при T02опт.

Рис. 4.4. Графики зависимостей дисперсии ошибки САУ

от постоянной времени объекта управления.

Определение оптимального значения постоянной времени T02опт является конечной целью данной лабораторной работы.

Значения параметров, входящих в формулу (14):

Экспериментальное определение дисперсии.

В данной лабораторной работе сигнал ошибки e(t) проходит через квадратор, на выходе которого получается сигнал e 2 (t). Затем этот сигнал поступает на вход апериодического звена с постоянной времени Т.

Сигнал на выходе апериодического звена можно описать функцией:

где exp(-t/T)/T = L -1 < 1/(Tp+1) >— весовая функция апериодического звена.

При T предел функции f(e) определяется следующей зависимостью:

Положив верхний предел равным Т и переобозначив переменную интегрирования, можно получить

Таким образом, если постоянная времени апериодического звена T, то на его выходе получается значение дисперсии ошибки De. Но, так как время наблюдения и постоянная времени не могут быть бесконечными, то фактически на выходе апериодического звена получается приближенная оценка дисперсии

Если время наблюдения выбрать равным постоянной времени Т, которая определяется из условия

где н — низшая частота спектра случайного сигнала e 2 (t), то точность вычисления дисперсии составит примерно 2%, что вполне достаточно для практики. За низшую частоту спектра принимают частоту полезного сигнала = 6 c -1 . Тогда необходимая постоянная времени апериодического звена Т = 10 с, что и реализовано в лабораторном стенде.

Калькулятор

Сервис бесплатной оценки стоимости работы

  1. Заполните заявку. Специалисты рассчитают стоимость вашей работы
  2. Расчет стоимости придет на почту и по СМС

Номер вашей заявки

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

Исследование кодов хэмминга

Главная > Исследование

ИССЛЕДОВАНИЕ КОДОВ ХЭММИНГА


ЦЕЛЬ РАБОТЫ

Ознакомление студентов с принципами построения кодов Хэмминга, их свойствами и способами реализации кодирующих и декодирующих устройств.

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

ОСНОВНЫЕ СВЕДЕНИЯ

Все корректирующие коды по способу обработки исходной информационной последовательности делятся на два класса – блоковые и непрерывные. В блоковых кодах исходная последовательность разбивается на отрезки фиксированной длины (или блоки) и кодирование выполняется поблочно. В непрерывных кодах кодирование исходной последовательности осуществляется без разбиения ее на блоки, т.е. непрерывно, при любой длине передаваемого сообщения. В современных системах телемеханики (СТМ) и передачи данного (СПД) в основном используется блоковые коды.

Важнейшей разновидностью блоковых кодов являются групповые систематические коды (ГСК). У этих кодов при поблочном кодировании к исходной информационной последовательности состоящей из k символов добавляются контрольные символы, которые получаются путем выполнения некоторых операций (как правило линейных) над информационными символами. В результате после кодирования, получается выходной блок длинной n, в котором в явном виде содержится k информационных символов. Обычно ГСК описываются в виде (n, k) или (n, k, d). Здесь n – длина кода (общее число символов в блоке), k – число информационных символов, d – кодовое расстояние. Чаще используется первый вариант обозначения, поэтому иногда встречается название n, k – коды.

Групповые систематические коды обладают следующими свойствами:

все символы кода делятся на информационные и контрольные (проверочные);

Читайте так же:  Спрей блеск для волос глис кур

каждая кодовая комбинация ГСК содержит k информационных и (nk) контрольных символов;

месторасположение информационных и контрольных символов строго определенно;

нулевая кодовая комбинация является разрешенной и может принадлежать ГСК;

кодовая комбинация, полученная поразрядным суммированием по модулю два разрешенных кодовых комбинаций так же является разрешенной и принадлежит данному коду;

кодовое расстояние ГСК связано с корректирующей способностью соотношением d =r + s + 1,

здесь d – кодовое расстояние кода, r — число обнаруживаемых ошибок, s – число корректируемых ошибок.

Обычно в ГСК используют так называемое «стандартное расположение» символов (стандартную компоновку), когда на старших позициях (слева) располагаются информационные символы, а на младших позициях (справа) – контрольные. Число контрольных символов в коде зависит от его мощности (М) и корректирующей способности. Примерно оценить число контрольных символов можно по следующим формулам, которые получили название «оценок».

Оценка Плоткина

Оценка Хэмминга

Оценка Варшамова – Гилберта

Здесь использованы те же обозначения, что и раньше, а под подразумевается число сочетаний из () по (). Оценки Плоткина и Хэмминга дают верхнюю границу для кодового расстояния, т.е. определяют максимальное значение d которое теоретически может быть обеспечено в ГСК с параметрами n и k. Оценка Варшамова – Гилберта дает нижнюю границу для d, т.е. определяет величину кодового расстояния, которое в ГСК с параметрами n и k может быть реализовано наверняка.

Как правило ГСК задаются с помощью порождающей Р или проверочной Н матриц. Обычно матрицы записываются в каноническом виде. Для матрицы Р это означает, что на позициях, где расположены информационные символы записывается единичная диагональная матрица размером k×k, а на остальных – приписная подматрица размером k×(nk). Для матрицы Н единичная диагональная матрица размером (nk)×(nk), будет располагаться на позициях, занимаемых контрольными символами, на остальных позициях будет располагаться приписная часть, представляющая собой транспонированную приписную подматрицу матрицы Р. При стандартном расположении символов в ГСК получим

здесь I – единичная диагональная матрица, B(B T ) – приписная (приписная транспонированная) подматрица.

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

Приписная подматрица B должна удовлетворять следующим требованиям:

вес каждой строки должен быть не меньше (d1);

кодовое расстояние между двумя любыми строками должно быть не меньше (d – 2).

Очевидно, что ГСК полностью задается любой из матриц (P или Н), при этом недостающая матрица может быть восстановлена по известной. Например, для кода (5, 2) матрицы Р и Н будут иметь вид

Данный код имеет d = 3 и позволяет обнаружить и исправить любую одиночную ошибку.

По матрице Н можно составить уравнения проверок и рассчитать по ним синдромы ошибок S для заданных векторов ошибок E.

Число уравнений проверок равно числу строк в проверочной матрице. В уравнение проверок входят те элементы кодовой комбинации, на позициях которых расположены единицы в данной строке проверочной матрицы. Суммирование выполняется по модулю два. Первое уравнение проверок (полученное из первой строки матрицы Н) формирует младший разряд (с наименьшим весом) синдрома ошибки. Второе – следующий по весу разряд, и т.д. Последнее уравнение формирует старший разряд синдрома ошибки.

Для рассмотренного ранее кода (5, 2) из

получим уравнения проверок

и далее синдромы ошибок. Например, для вектора Е1 = 10000 синдром будет равен S1=011, а для E2 = 01000 S2 = 101. Разрешая уравнения проверок относительно контрольных символов, можно получить уравнения кодирования. Для рассмотренного кода (5, 2) они будут иметь вид:

(перенос слагаемых из одной части уравнения в другую проходит без изменения знака, т.к. суммирование выполняется по модулю два).

Коды Хэмминга являются одной из разновидностей ГСК. Они обладают всеми свойствами ГСК, а так же имеют некоторые особенности – так у кода Хэмминга (КХ):

кодовое расстояние d=3, т.е. КХ может обнаруживать и исправлять все одиночные ошибки или обнаруживать все одиночные и двойные;

проверочные символы в КХ располагаются на позициях с номером 2 i , где i – целое положительное число (i = 0, 1, 2, 3…), на остальных позициях располагаются информационные символы;

при формировании разряда синдрома ошибки с весом 2 i в уравнения проверки входят символы начиная с 2 i по 2 i через 2 i , где i – целое положительное число;

синдром ошибки в КХ представляет собой номер искаженной позиции, записанный в двоичном коде;

КХ является совершенным и оптимальным кодом (или близким к нему), мощность КХ определяется по формуле

где n – длинна кодовой комбинации.

Теория КХ разработана выдающимся американским ученым Р.В.Хэммингом и опубликована в 1950 году. Несмотря на то, что в последующие годы были разработаны более эффективные коды, КХ применяются и сегодня достаточно широко, причем постоянно появляются все новые области применения этих кодов. Так уже в течение ряда лет выпускаются ИС ЗУ со встроенными схемами кодирования и декодирования КХ, что позволяет повысить надежность хранения информации в ЗУ. Основными достоинствами КХ, которые определили их широкое распространение, является возможность обнаружения и коррекции ошибок малой кратности (т.е. наиболее распространенных) при минимальной избыточности, простота реализации кодирующих и декодирующих устройств, а так же простая и строго формализованная процедура построения кода. Рассмотрим пример кодирования кодом Хэмминга.

Закодируем в КХ число 1989.

Проверочные символы располагаются на позициях с номерами 1(i =0), 2(i =1), 4(i =2), 8(i =3), на остальных будут информационные

_ _ 1 _ 1 1 1 _ 1 0 0 0 1 0 1

Записываем уравнения проверок:

i =0, 2 0 =1, получаем “с первого по одному через один”, т.е.

Здесь и далее суммирование ведется по модулю 2.

i =1, 2 1 =2 – “со второго по два через два”

i =2, 2 2 =4 – “с четвертого по четыре через четыре”

i =3, 2 3 =8 – “с восьмого по восемь через восемь”

Разрешая уравнения относительно контрольных символов и подставляя значения информационных, найдем а1, а2, а4, а8:

В результате число 1989, закодировано двоичным кодом Хэмминга, запишется в виде

0 0 1 1 1 1 1 1 1 0 0 0 1 0 1.

Допустим, исказилась 10-я позиция и получили

0 0 1 1 1 1 1 1 1 1 0 0 1 0 1

Вычислим синдром ошибки по записанным выше уравнениям проверок. В итоге получим

2 3 2 2 2 1 2 0

S10= 1 0 1 0 10102 1010

т.е. искаженная позиция найдена, и ошибка может быть исправлена. Некоторые авторы под КХ понимают любые ГСК с d=3, и в первую очередь ГСК со стандартной компоновкой, когда на старших позициях располагается блок информационных символов, а затем идет соответствующий ему блок контрольных символов (на младших позициях). Однако в этом случае теряются такие замечательные свойства КХ как формализованная и однозначная процедура построения кода, представление синдрома ошибок как номера искаженной позиции записанного двоичным кодом и т.д. Поэтому считать кодами Хэмминга любые ГСК для исправления одиночных ошибок не совсем корректно.

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

0 0 1 1 1 1 1 1 1 0 0 0 1 0 1

1 1 1 1 1 0 0 0 1 0 1 0 0 1 1

0 0 1 1 1 1 1 1 1 0 0 0 1 0 1

Такой КХ с компоновкой типа ГСК в лабораторной работе обозначен как СКХ, а КХ с классической компоновкой (по Хэммингу) как ККХ.

На основе КХ был разработан модифицированный код Хэмминга (МКХ),который имел d=4 и мог обнаруживать двойные ошибки и исправлять одиночные. МКХ получается из КХ путем добавления контрольного разряда общей проверки на четность (ОПЧ). Декодирование МКХ от КХ отличается тем, что при этом вычисляются два синдрома – синдром Хэмминга SH и синдром ОПЧ SP (контроля по паритету). По результатам анализа обеих синдромов принимается решение о декодировании.

Различные сочетания значений синдромов и соответствующие им режимы приведены в таблице 1.

Разрешено с предварительной коррекцией ошибки

Разряд ОПЧ при вычислении синдрома Хэмминга не учитывается и в уравнения проверок не входит, он принимается во внимание только при вычислении синдрома ОПЧ.

Возможно перестроение МКХ из классической (по Хэммингу) компоновки в структуру типа классического ГСК. Перестроение идет также, как описывалось выше для КХ, разряд ОПЧ как правило располагается на младшей позиции.

Если использовать рассмотренный ранее пример и выполнить кодирование числа 1989 МКХ получим следующее. К результату, сформированному в предыдущем примере добавим разряд ОПЧ (a16)

0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1

При ошибке как и ранее в 10-м разряде будет принята комбинация

0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1

ОПИСАНИЕ ЛАБОРАТОРНОГО СТЕНДА

В лабораторной работе исследуется код Хэмминга с d=3 в компоновках ККХ и СКХ и модифицированный код Хэмминга с d=4 в тех же компоновках, а также МКХ (22,16), реализованный в схеме обнаружения и исправления ошибок (ОИО). Лабораторный стенд состоит из системы передачи данных, в которой используются коды Хэмминга и микросхемы ОИО К555ВЖ1. Переключение осуществляется с помощью переключателя “Система” – “К555ВЖ1”. При работе с системой может исследоваться КХ в компоновке систематического кода (СКХ) или классического (ККХ) (тумблер SB1). Переход от КХ к МКХ осуществляется с помощью тумблера SB2. Стенд может работать в автоматическом режиме или по тактам (тумблер “Авт.”-“Ручн.”). При работе в ручном режиме в начале каждого цикла (кодирования или декодирования) нажимается кнопка “Пуск” и затем нажатием кнопки “Такт” подаются тактовые импульсы. Циклы кодирования и декодирования занимают по 8 тактов. При работе в автоматическом режиме после нажатия кнопки “Пуск” проходит один цикл (8 тактов). Нажатием кнопки “Сброс” система устанавливается в исходное состояние. При исследовании системы в лабораторном стенде предусмотрено введение ошибок в передаваемую кодовую комбинацию с помощью встроенного генератора помех. Ошибки типа “трансформация” (тумблер “Трансф.”) могут вводиться в ручном режиме или в автоматическом (тумблер “Ручн.”-“Авт.” в генераторе помех). Ручной ввод ошибок рекомендуется производить при работе по тактам, при этом число ошибок и их расположение определяются исследователем. При автоматическом вводе ошибок за один цикл передачи в автоматическом режиме вводиться не более одной ошибки случайным образом, иногда ошибка может и не возникать. Ошибки типа “стирание” (тумблер “стир.”) вводятся только в ручном режиме. Распределители на ПУ и КП запитаны от одного генератора, считается, что вопросы синхронизации решены, и в данной лабораторной работе они не рассматриваются. Поэтому в схемах отсутствуют формирователи и выявители синхросигналов и ряд других устройств канала синхронизации. Входная информационная последовательность задается ключами Кл1-Кл16, причем при работе с системой задействуются только четыре первых ключа, а при работе со схемой ОИО – все шестнадцать. Схема ОИО работает независимо от системы.

Читайте так же:  Что делать если в семье больной с гепатитом в

При использовании в системе КХ с d=3 и классической (по Хэммингу) компоновкой проверочные разряды формируются на трёх комбинационных сумматорах по модулю 2 (D1D3) в соответствии с уравнениями кодирования (рис.1). Полученный параллельный код с выхода элементов D4¸D10 с помощью распределителя, набора схем совпадения D12¸D18 и схемы “ИЛИ” D20 преобразуется в последовательный и передаётся в линию связи (ЛС). При использовании МКХ в классической (по Хэммингу) компоновке разряд ОПЧ формируется накапливающим сумматоры по модулю 2, реализованным на элементах D24, D28 и через элементы D11, D19, D20 передаётся в ЛС в конце кодовой комбинации. Если используется компоновка КХ в виде систематического кода, то проверочные символы формируются в ходе передачи информационных символов на накапливающих сумматорах по модулю 2 (элементы D25¸D27, D29¸D31). Информационные символы подаются на сумматоры по модулю 2 через элементы D21¸D23 в соответствии с уравнениями кодирования. Сформированные проверочные символы передаются в ЛС после информационных через элементы D8¸D10, D16¸D18, D20. При использовании МКХ в компоновке систематического кода разряд ОПЧ формируется и передается так же, как и в предыдущем случае.

ЛС для удобства работы на стенде представлена набором триггеров с индикацией состояния. Передаваемая кодовая комбинация индицируется с помощью красных светодиодов. Это позволяет контролировать передаваемую в ЛС кодовую комбинацию не пользуясь дополнительными приборами. Ввод ошибок в ручном режиме осуществляется на выходе элемента D20 (на входе в ЛС) путем включения тумблера соответствующего типа ошибки, а затем подачей подлежащего искажению символа нажатием кнопки “Такт”. При вводе ошибок типа “стирание” на соответствующей позиции загорается зелёный светодиод, а индикация кодовой комбинации красными светодиодами не меняется. При вводе ошибок типа “трансформация” значения символов в кодовой комбинации на соответствующих позициях заменяются на противоположные, что отражается на индикации красными светодиодами, зеленые светодиоды при этом не светятся. Представление ЛС с помощью 8 триггеров с индикацией (рис.2) служит только для удобства работы, наглядности и не вносит задержку на 8 тактов, так как фактически одновременно с записью в триггеры передаваемая комбинация поступает на решающий блок (РБ) контролируемого пункта (показано пунктиром) и далее в регистры сдвига РС. В РБ осуществляется оценка принятых символов, при этом в РС1 (верхний) всегда записывается пришедшая из ЛС из кодовая комбинация, которая индицировалась красными светодиодами, а в РС2 (нижний) записываются векторы ошибок типа “стирание”, т.е. на позициях, где произошло стирание, пишется единица, а на остальных – нули (комбинация, индицируемая зелеными светодиодами). С выходов РС1 и РС2 кодовая комбинация (возможно, с ошибками типа “трансформация” или без них) и вектор ошибок типа “стирание” поступают на схему D32 “ИЛИ”. В результате получается комбинация, в которой могут быть только ошибки типа “трансформация”, обнаружение и коррекция которых осуществляются известными методами. Сформированная комбинация записывается в триггеры D50¸D56 по сигналам с распределителя, которые проходят через элементы D40¸D46. Назначение этих элементов аналогично назначению элементов D4¸D10 на ПУ – они обеспечивают “сортировку” элементов кодовой последовательности и формируют нужную структуру. При работе с КХ в классической компоновке все принимаемые символы по порядку записываются в триггеры с D50 по D56. При использовании КХ со структурой систематического кода он на элементах D40¸D46, D50¸D56 преобразуется в КХ с классической компоновкой, при этом первый пришедший символ записывается в D52, второй — D54, третий – в D55 и т.д. Одновременно с записью комбинации в триггеры D50¸D56 с помощью элементов D33¸D39, D47¸D49, D58¸D60, D69¸D71 вычисляется синдром ошибки. Здесь используется накапливающие сумматоры по модулю 2 D69¸D71, на которые

подаются элементы кода в соответствии с уравнениями проверок. Выбор элементов в зависимости от структуры кода (классическая компоновка – систематическая) обеспечивается счетчиком D33 и элементами D37¸D39 или распределителем и элементами D34¸D39 соответственно. На 8-м такте (прием комбинации и вычисление синдрома осуществляется за 7 тактов) вычисленный синдром ошибки с триггеров D69¸D71 через элементы D72¸D74 поступают на селектор синдромов, реализованный на стандартном дешифраторе D77. По сигналам с селектора на корректирующих сумматорах реализованных на элементах “исключающие ИЛИ” D61¸D67 осуществляется исправление ошибки. Если используется МКХ, то синдром общей проверки на четность формируется с помощью элементов D57, D68 (при любой структуре кода). Элементы D75, D76 формируют сигнал и зажигают светодиод при наличии в кодовой комбинации двойной ошибки. Состояние триггеров, на которых вычисляются синдромы ошибок, принятая кодовая комбинация с ошибкой и затем откорректированная индицируются с помощью светодиодов. При выявлении двойной ошибки загорается соответствующий светодиод индикации, а на выходах элементов D61¸D67 имеется неверная комбинация, дальнейшее декодирование которой должно быть запрещено. При переключении лабораторного стенда на исследование схемы ОИО К555ВЖ1 система передачи данных полностью отключается.

Микросхема К555ВЖ1 представляет собой схему обнаружения и исправления ошибок при работе с 16-разрядными данными. В справочной литературе по ИМС указывается, что в данной схеме используется модифицированный код Хэмминга. Фактически же в схеме реализован групповой систематический код (22,16), который обеспечивает коррекцию любых одиночных ошибок, обнаружение всех двойных ошибок, некоторых ошибок более высокой кратности (нечетных), а также ошибок типа “все нули” и “все единицы”. Последнее особенно важно при работе с ЗУ, для чего в основном данная схема и создавалась. Схема является быстродействующей – прием и выдача данных, контрольных разрядов и синдромов осуществляется в параллельном коде. Для обеспечения одинаковой задержки во всех параллельных каналах, максимальной унификации элементов для кодирования и декодирования кода и для обнаружения возможно большего числа ошибок кратности три и пять код значительно отличается (по структуре) от МКХ. Так, в каждое уравнение кодирования входит одинаковое число информационных символов. Каждый информационный символ входит ровно в три уравнения кодирования, причем их структура определена с учетом обеспечения указанных выше требований.

Для обнаружения ошибок типа «все нули» и «все единицы» часть проверочных символов инвертируется (т.е. они вычисляются как обычно, а затем результат вычисления инвертируется), при этом комбинации состоящие только из нулей или единиц становятся запрещенными. Синдромы ошибок вычисляются также нетрадиционным путем. Они определяются как результат поразрядного сравнения принятых контрольных символов и контрольных символов, восстановленных по принятым информационным. Причем если символы равны, то в соответствующем разряде синдрома формируется «1», если не равны – «0». Условное изображение схемы К555ВЖ1 приведена на панели лабораторного стенда и на рис.2. По двунаправленной 16 – разрядной шине данных D¸D15 осуществляется параллельный ввод и вывод информационных разрядов кода (данных). По двунаправленной 6 – разрядной шине К¸К55 осуществляется ввод и вывод контрольных разрядов кода и вывод синдрома ошибки. Сигналы О и М представляют собой флаги одиночной (корректируемой) ошибки или многократной (некорректируемой) ошибки. Если ошибок нет, то оба флага нулевые. Задание режима работы схемы ОИО обеспечивается сигналами на входах управления Y и Y1. Процессы функционирования схемы иллюстрируются таблицей 2.

В таблице 3 приведено соответствие синдромов и ошибок. Все входные сигналы для схемы задаются и индицируются соответствующим положением тумблеров, выходные отображаются с помощью светодиодов (кроме сигналов управления Y, Y1, которые являясь входными также индицируются светодиодами)