Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
9.3. Декодирование циклических AN-кодовТак как при декодировании арифметических кодов все вычисления выполняются в поле действительных чисел, то обнаружение и исправление ошибок легко можно реализовать с помощью универсальной вычислительной машины, разработав для нее специальную программу. Это является одним из достоинств арифметических кодов. Арифметические коды могут исправлять ошибки, возникающие в арифметических устройствах, при передаче данных между вычислительными машинами, во входных и выходных устройствах, и другие ошибки, результатом которых является арифметическая ошибка. Декодер арифметического кода рассматривает все ошибки независимо от причин, породивших их, как арифметические, и если эти ошибки лежат в области корректирующей способности используемого кода, то он правильно восстанавливает исходное кодовое слово. В разд. 8.7 был описан метод декодирования произвольных арифметических кодов по синдрому. В этом разделе будут описаны два эффективных алгоритма декодирования циклических 9.3.1. Вычеты по модулю А и конфигурации ошибокТогда как при построении и вычислении минимального расстояния циклических AN-кодов важную роль выполняют вычеты по модулю В, при исправлении ошибок более важными оказываются вычеты по модулю А. Установим сначала связь между ошибками и вычетами по модулю А, а также укажем некоторые свойства ошибок. Ошибка всегда может быть задана с помощью двоичного представления целого числа Е:
(здесь же конфигурацию, что и Если в процессе передачи в арифметическом устройстве возникает ошибка, в результате которой вместо кодового слова
Взяв остаток от деления числа, соответствующего этому слову, на А, получим
Этот остаток зависит только от ошибки Чтобы исправить эту ошибку, необходимо определить конфигурацию ошибки Следующая лемма устанавливает взаимно однозначное соответствие между ошибками Лемма 9.4. Если
то ни при каком
не совпадает с
Доказательство. Поскольку
Если
Так как минимальное расстояние кода равно
Однако
Так как
Отсюда можно найти минимальное значение Пример 9.3. Циклический AN-код длины
Эта конфигурация является двоичным представлением числа 513. Легко проверить, что Лемма 9.5. Если исправляемая конфигурация ошибок Доказательство. Если предположить, что
Следовательно,
Однако так как
Таким образом, для веса
Эта граница показывает, что Пример 9.4. В табл. 9.16 приведены результаты вычисления вычетов Таблица 9.16 (см. скан) Циклические сдвиги конфигурации ошибок 9.3.2. Метод декодирования, основанный на циклических сдвигах вычетовВ этом разделе описывается алгоритм декодирования, использующий циклический сдвиг вычетов. Сначала заметим, что если
так как то Пример 9.5. Вновь рассмотрим циклический AN-код с параметрами Таблица 9.17 (см. скан) Результаты этих вычислений приведены в табл. 9.17, где
Осуществляя четыре сдвига в обратном направлении, находим ошибку
Вычитая эту ошибку из принятого кодового слова, получаем исходное кодовое слово. Если бы в действительности возникла ошибка 7761, имеющая двоичное представление
и вес которой превышает корректирующую способность кода, то при декодировании принятого кодового слова с помощью описанного выше алгоритма декодирования было бы получено то же кодовое слово, что и ранее, т. е. произошла бы ошибка декодирования. Однако, как уже указывалось в разд. 8.3, арифметические ошибки бывают двух типов: ошибки сложения и ошибки вычитания. Ошибки сложения могут быть исправлены с помощью описанного выше алгоритма, но в действительности существуют еще ошибки вычитания. Хотя ошибка вычитания Например, в табл. 9.18 приведены вычеты Таблица 9.18 (см. скан) Вычеты Таким образом, если задан только вычет
то ошибка является ошибкой сложения. Если проведение циклических сдвигов заканчивается, когда в области корректирующей способности кода оказывается Таким образом, при использовании описанного выше алгоритма декодирования необходимы веса как вычета На фиг. 9.3 приведена блок-схема алгоритма декодирования, детально описанного выше. 9.3.3. Метод декодирования, основанный на перебореБолее простым методом декодирования по сравнению с тем, что был описан в предыдущем разделе, является метод декодирования, описанный ниже. Этот метод предусматривает вычисление расстояний между принятым словом и кодовыми словами и основан на том, что если расстояние между принятым словом и некоторым кодовым словом оказывается меньше или равным кода, то это кодовое слово является искомым кодовым словом. Для реализации этого метода необходимо иметь таблицу, в которой хранились бы все кодовые слова, или порождать кодовые слова некоторым способом. Фиг. 9.3. (см. скан) Алгоритм декодирования, основанный на циклических сдвигах вычетов. Этот метод применим не только для циклических AN-кодов, но и для произвольных последовательное построение кодовых слов может быть реализовано сравнительно просто. Для того чтобы декодировать этим методом одно принятое слово, необходимо провести сравнение этого слова приблизительно с половиной всех возможных кодовых слов. Более того, все эти сравнения необходимо проводить даже в том случае, если ошибок не было. Чтобы избежать этого, можно сначала вычислить вычет принятого кодового слова по модулю Лемма 9.6. Пусть
и d - минимальное расстояние кода, то неравенства
одновременно выполняться не могут. Кроме того, если выполняется первое из этих неравенств, то Доказательство. Если оба приведенных выше неравенства выполняются одновременно, то
Однако так как код имеет минимальное расстояние На фиг. 9.4 приведена блок-схема описанного выше алгоритма декодирования, в котором, однако, предусмотрено обнаружение ошибок путем вычисления вычета по модулю А для принятого слова. Фиг. 9.4. (см. скан) Алгоритм декодирования, основанный на переборе.
|
1 |
Оглавление
|