для чего нужен синдром в коде хэмминга

Код Хэмминга

Вы будете перенаправлены на Автор24

Код Хэмминга — это самый популярный первый самокорректирующийся код.

Введение

Целью помехоустойчивой системы кодирования является обеспечение защиты информации от вероятных ошибок помех при информационных обменах и сохранении данных. Помехоустойчивая система кодирования позволяет ликвидировать возникающие при информационном обмене ошибки, а также ошибки при хранении информации. При трансляции информационных данных по каналам связи, возможно появление помех и ошибок. При этом какая-то часть информации может быть утеряна. Без применения помехоустойчивого кодирования нет возможности передачи значительных информационных объёмов, поскольку практически во всех системах трансляции информации и её сохранения всегда возможно появление ошибок.

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

Исправление ошибок при помехоустойчивом кодировании

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

Готовые работы на аналогичную тему

Существует некоторый набор параметров помехоустойчивого кодирования:

Величина кратности обнаруженных ошибок. То есть число символов с ошибками, которое код способен определить.

Величина кратности исправленных ошибок. То есть число символов с ошибками, которые код способен скорректировать (обозначим символом t). Контроль чётности

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

При нечётном количестве единиц прибавляем нуль:

1 0 1 0 0 1 0 0 | 0

При чётном количестве единиц прибавляем единицу:

1 1 0 1 0 1 0 0 | 1

Когда при приёме информации полученный бит чётности не соответствует рассчитанному биту чётности, то фиксируется ошибка.

Классификация помехоустойчивых кодов

Существует следующая классификация помехоустойчивых кодов:

По применяемому символьному набору помехоустойчивые системы кодирования делятся на:

В свою очередь блочные коды подразделяются на:

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

Код Хэмминга

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

Ниже приведена методика кодирования по Хэммингу:

для чего нужен синдром в коде хэмминга

Рисунок 1. Методика кодирования по Хэммингу. Автор24 — интернет-биржа студенческих работ

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

Декодирование кодировки Хэмминга выполняется посредством определения синдрома по выражениям:

для чего нужен синдром в коде хэмминга

Рисунок 2. Декодирование кодировки Хэмминга. Автор24 — интернет-биржа студенческих работ

Синдромом является сложение битов по модулю два. Если синдром не равняется нулю, то коррекция ошибки выполняется согласно таблице декодирования:

для чего нужен синдром в коде хэмминга

Рисунок 3. Таблица декодирования. Автор24 — интернет-биржа студенческих работ

Источник

2.8 Коррекция ошибок

Семенов Ю.А. (ИТЭФ-МФТИ)
Yu. Semenov (ITEP-MIPT)

Рис. 1. Метод коррекции более одной ошибки в блоке данных (битам данных соответствуют окрашенные квадраты)

Алгоритм Хэмминга

Код Хэмминга представляет собой блочный код, который позволяет выявить и исправить ошибочно переданный бит в пределах переданного блока. Обычно код Хэмминга характеризуется двумя целыми числами, например, (11,7) используемый при передаче 7-битных ASCII-кодов. Такая запись говорит, что при передаче 7-битного кода используется 4 контрольных бита (7+4=11). При этом предполагается, что имела место ошибка в одном бите и что ошибка в двух или более битах существенно менее вероятна. С учетом этого исправление ошибки осуществляется с определенной вероятностью. Например, пусть возможны следующие правильные коды (все они, кроме первого и последнего, отстоят друг от друга на расстояние 4):

00000000
11110000
00001111
11111111

При получении кода 00000111 не трудно предположить, что правильное значение полученного кода равно 00001111. Другие коды отстоят от полученного на большее расстояние Хэмминга. Расстояние Хэмминга для двух кодов равной длины равно числу разных бит в этих кодах.

Рассмотрим пример передачи кода буквы s = 0x073 = 1110011 с использованием кода Хэмминга (11,7).

Позиция бита:1110987654321
Значение бита:111*001*1**

Символами * помечены четыре позиции, где должны размещаться контрольные биты. Эти позиции определяются целой степенью 2 (1, 2, 4, 8 и т.д.). Контрольная сумма формируется путем выполнения операции XOR (исключающее ИЛИ) над кодами позиций ненулевых битов. В данном случае это 11, 10, 9, 5 и 3. Вычислим контрольную сумму:

11 =1011
10 =1010
09 =1001
05 =0101
03 =0011
S =1110

Таким образом, приемник получит код:

Позиция бита:1110987654321
Значение бита:11110011110

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

11 =1011
10 =1010
09 =1001
08 =1000
05 =0101
04 =0100
03 =0011
02 =0010
S =0000

Ну а теперь рассмотрим два случая ошибок в одном из битов посылки, например, в бите 7 (1 вместо 0) и в бите 5 (0 вместо 1). Просуммируем коды позиций ненулевых бит еще раз.

11 =1011
10 =1010
09 =1001
08 =1000
07 =0111
05 =0101
04 =0100
03 =0011
02 =0010
S =0111
11 =1011
10 =1010
09 =1001
08 =1000
04 =0100
03 =0011
02 =0010
S =0101

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

В общем случае код имеет N=M+C бит и предполагается, что не более чем один бит в коде может иметь ошибку. Тогда возможно N+1 состояние кода (правильное состояние и n ошибочных). Пусть М=4, а N=7, тогда слово-сообщение будет иметь вид: M4, M3, M2, C3, M1, C2, C1. Теперь попытаемся вычислить значения С1, С2, С3. Для этого используются уравнения, где все операции представляют собой сложение по модулю 2:

С1 = М1 + М2 + М4
С2 = М1 + М3 + М4
С3 = М2 + М3 + М4

Для определения того, доставлено ли сообщение без ошибок, вычисляем следующие выражения (сложение по модулю 2):

С11 = С1 + М4 + М2 + М1
С12 = С2 + М4 + М3 + М1
С13 = С3 + М4 + М3 + М2

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

С11С12С13Значение
124Позиция бит
000Ошибок нет
001Бит С3 не верен
010Бит С2 не верен
011Бит М3 не верен
100Бит С1 не верен
101Бит М2 не верен
110Бит М1 не верен
111Бит М4 не верен

Описанная схема легко переносится на любое число n и М.

Можно доказать, что для исправления ошибок с кратностью не более qm кодовое расстояние должно превышать 2qm (как правило, оно выбирается равным D = 2qm +1). В теории кодирования существуют следующие оценки максимального числа N n-разрядных кодов с расстоянием D.

d=1n=2 n
d=2n=2 n-1
d=3n 2 n /(1+n)
d=2q+1(для кода Хэмминга это неравенство превращается в равенство)

В случае кода Хэмминга первые k разрядов используются в качестве информационных, причем

откуда следует (логарифм по основанию 2), что k может принимать значения 0, 1, 4, 11, 26, 57 и т.д., это и определяет соответствующие коды Хэмминга (3,1); (7,4); (15,11); (31,26); (63,57) и т.д.

Циклические коды

При кодировании слова все кодовые слова кратны g(x). g(x) определяется на основе сомножителей полинома x n +1 как:

Чтобы представить сообщение h(x) в виде циклического кода, в котором можно указать постоянные места проверочных и информационных символов, нужно разделить многочлен x n-k h(x) на g(x) и прибавить остаток от деления к многочлену x n-k h(x). См. Л.Ф. Куликовский и В.В. Мотов, “Теоретические основы информационных процессов”. Москва “Высшая школа” 1987. Привлекательность циклических кодов заключается в простоте аппаратной реализации с использованием сдвиговых регистров.

Пусть общее число бит в блоке равно N, из них полезную информацию несут в себе K бит, тогда в случае ошибки, имеется возможность исправить m бит. Таблица 2.8.1 содержит зависимость m от N и K для кодов ВСН.

Общее число бит NЧисло полезных бит МЧисло исправляемых бит m
31261
212
163
63571
512
453
1271201
1132
1063

Увеличивая разность N-M, можно не только нарастить число исправляемых бит m, но открыть возможность обнаружить множественные ошибки. В таблице 2.8.2 приведен процент обнаруживаемых множественных ошибок в зависимости от M и N-M.

Число полезных бит МЧисло избыточных бит (n-m)
678
3248%74%89%
4036%68%84%
4823%62%81%

Применение кодов свертки позволяют уменьшить вероятность ошибок при обмене, даже если число ошибок при передаче блока данных больше 1.

Линейные блочные коды

Блочный код определяется, как набор возможных кодов, который получается из последовательности бит, составляющих сообщение. Например, если мы имеем К бит, то имеется 2 К возможных сообщений и такое же число кодов, которые могут быть получены из этих сообщений. Набор этих кодов представляет собой блочный код. Линейные коды получаются в результате перемножения сообщения М на порождающую матрицу G[IA]. Каждой порождающей матрице ставится в соответствие матрица проверки четности (n-k)*n. Эта матрица позволяет исправлять ошибки в полученных сообщениях путем вычисления синдрома. Матрица проверки четности находится из матрицы идентичности i и транспонированной матрицы А. G[IA] ==> H[A T I].

Синдром полученного сообщения равен

S = [полученное сообщение] . [матрица проверки четности].

Кодовые векторы для этих сообщений приведены во второй колонке. На основе этой информации генерируется таблица 2.8.3, которая называется стандартным массивом. Стандартный массив использует кодовые слова и добавляет к ним биты ошибок, чтобы получить неверные кодовые слова.

Таблица 2.8.3. Стандартный массив для кодов (6,3)

000000001101010011100110011110101011110101111000
000001001100010010100111011111101010110100111001
000010001111010001100100011100101001110111111010
000100001001010111100010011010101111110001111100
001000000101011011101110010110100011111101110000
010000011101000011110110001110111011100101101000
100000101101110011000110111110001011010101011000
001001000100011010101111010111100010111100011001

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

Синдром = CL . H TЛевая колонка стандартного массива
000000000
001000001
010000010
100000100
110001000
101010000
011100000
111001001

Чтобы преобразовать полученный код в правильный, нужно умножить полученный код на транспонированную матрицу проверки четности, с тем чтобы получить синдром. Полученное значение левой колонки стандартного массива добавляется (XOR!) к полученному коду, чтобы получить его истинное значение. Например, если мы получили 001100, умножаем этот код на H T :

этот результат указывает на место ошибки, истинное значение кода получается в результате операции XOR:

под горизонтальной чертой записано истинное значение кода.

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

Когда вероятность искажения велика, например, в каналах коммуникаций с геостационарными спутниками, используются методы коррекции ошибок. Одним из таких методов является FEC (Forward Error Correction, иногда называемое канальным кодированием [1]). Технология FEC последнее время достаточно широко используется в беспроводных, локальных сетях (WLAN). Существуют две основные разновидности FEC: блочное кодирование и кодирование по методу свертки.

Блочное кодирование работает с блоками (пакетами) бит или символов фиксированного размера. Метод свертки работает с потоками бит или символов произвольной протяженности. Коды свертки при желании могут быть преобразованы в блочные коды.

Существует большое число блочных кодов, одним из наиболее важных является алгоритм Рида-Соломона, который используется при работе с CD, DVD и жесткими дисками ЭВМ. Блочные коды и коды свертки могут использоваться и совместно.

Метод коррекции ошибок FEC (Forward Error Correction)

В 1967 году Эндрю Витерби (Andrew Viterbi) разработал технику декодирования, которая стала стандартной для кодов свертки. Эта методика требовала меньше памяти. Метод свертки более эффективен, когда ошибки распределены случайным образом, а не группируются в кластеры. Работа же с кластерами ошибок более эффективна при использовании алгебраического кодирования.

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

В результате через канал передается n-битовое кодовое слово (n>k). Конкретная реализация алгоритма FEC характеризуется комбинацией (n,k). Применение FEC в Интернет регламентируется документом RFC-3452. Коды FEC могут исключить необходимость обратной связи при потере или искажении доставленных данных (запросы повторной передачи). Особенно привлекательна технология FEC при работе с мультикастинг-потоками, где ретрансмиссия не предусматривается (см. RFC-3453).

В 1974 году Йозеф Оденвальдер (Joseph Odenwalder) объединил возможности алгебраического кодирования и метода свертки. Хорошего результата можно добиться, введя специальную операцию псевдослучайного перемешивания бит (interleaver).

В 1993 году группой Клода Берроу (Claude Berrou) был разработан турбо код. В кодеке, реализующем этот алгоритм, содержатся кодировщики как минимум двух компонент (реализующие алгебраический метод или свертку). Кодирование осуществляется для блоков данных. Здесь также используется псевдослучайное перемешивание бит перед передачей. Это приводит к тому, что кластеры ошибок, внесенных при транспортировке, оказываются разнесенными случайным образом в пределах блока данных.

На рис. 2. проводится сравнение вариантов BER (bit error rate) при обычной транспортировке данных через канал и при передаче тех же данных с использованием коррекции ошибок FEC для разных значений отношения сигнал-шум (S/N). Из этих данных видно, что при отношении S/N= 8 дБ применение FEC позволяет понизить BER примерно в 100 раз. При этом достигается результат, близкий (в пределах одного децибела) к теоретическому пределу Шеннона.

За последние пять лет были разработаны программы, которые позволяют оптимизировать структуры турбо-кодов. Улучшение BER для турбо-кодов имеет асимптотический предел и дальнейшее увеличение S/N уже не дает никакого выигрыша. Но схемы, позволяющие смягчить влияние этого насыщения, продолжают разрабатываться.

для чего нужен синдром в коде хэмминга

Турбо кодек должен иметь столько же компонентных декодеров, сколько имеется кодировщиков на стороне передатчика. Декодеры соединяются последовательно

для чего нужен синдром в коде хэмминга

Рис. 3. Турбо декодер

Техника FEC находит все большее применение в телекоммуникациях, например, при передачи мультимедиа [2].

Следует помнить, что как в случае FEC, так и в других известных методах коррекции ошибок, (BCH, Golay, Hamming и др.) скорректированный код является верным лишь с определенной конечной вероятностью.

Ссылки

Введение в коды Рида-Соломона: принципы, архитектура и реализация

Коды Рида-Соломона были предложены в 1960 Ирвином Ридом (Irving S. Reed) и Густавом Соломоном (Gustave Solomon), являвшимися сотрудниками Линкольнской лаборатории МТИ. Ключом к использованию этой технологии стало изобретение эффективного алгоритма декодирования Элвином Беликамфом (Elwyn Berlekamp; http://en.wikipedia.org/wiki/Berlekamp-Massey_algorithm), профессором Калифорнийского университета (Беркли). Коды Рида-Соломона (см. также http://www.4i2i.com/reed_solomon_codes.htm) базируются на блочном принципе коррекции ошибок и используются в огромном числе приложений в сфере цифровых телекоммуникаций и при построении запоминающих устройств. Коды Рида-Соломона применяются для исправления ошибок во многих системах, включая:

На рис. 4 показаны практические приложения (дальние космические проекты) коррекции ошибок с использованием различных алгоритмов (Хэмминга, кодов свертки, Рида-Соломона и пр.). Данные и сам рисунок взяты из http://en.wikipedia.org/wiki/Reed-Solomon_error_correction..

для чего нужен синдром в коде хэмминга

Рис. 4. Несовершенство кода, как функция размера информационного блока для разных задач и алгоритмов

Типовая система представлена ниже (см. http://www.4i2i.com/reed_solomon_codes.htm):

для чего нужен синдром в коде хэмминга

Рис. 5. Схема коррекции ошибок Рида-Соломона

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

Свойства кодов Рида-Соломона

Коды Рида-Соломона являются субнабором кодов BCH и представляют собой линейные блочные коды. Код Рида-Соломона специфицируются как RS(n,k) s-битных символов..

Это означает, что кодировщик воспринимает k информационных символов по s бит каждый и добавляет символы четности для формирования n символьного кодового слова. Имеется n-k символов четности по s бит каждый. Декодер Рида-Соломона может корректировать до t символов, которые содержат ошибки в кодовом слове, где 2t = n-k.

Диаграмма, представленная ниже, показывает типовое кодовое слово Рида-Соломона:

для чего нужен синдром в коде хэмминга

Рис. 6. Структура кодового слова R-S

Пример: Популярным кодом Рида-Соломона является RS(255,223) с 8-битными символами. Каждое кодовое слово содержит 255 байт, из которых 223 являются информационными и 32 байтами четности. Для этого кода:

n = 255, k = 223, s = 8
2t = 32, t = 16

Декодер может исправить любые 16 символов с ошибками в кодовом слове: то есть, ошибки могут быть исправлены, если число искаженных байт не превышает 16.

При размере символа s, максимальная длина кодового слова (n) для кода Рида-Соломона равна n = 2 s – 1.

Например, максимальная длина кода с 8-битными символами (s=8) равна 255 байтам.

Коды Рида-Соломона могут быть в принципе укорочены путем обнуления некоторого числа информационных символов на входе кодировщика (передавать их в этом случае не нужно). При передаче данных декодеру эти нули снова вводятся в массив.

Пример: Код (255,223), описанный выше, может быть укорочен до (200,168). Кодировщик будет работать с блоком данных 168 байт, добавит 55 нулевых байт, сформирует кодовое слово (255,223) и передаст только 168 информационных байт и 32 байта четности.

Объем вычислительной мощности, необходимой для кодирования и декодирования кодов Рида-Соломона зависит от числа символов четности. Большое значение t означает, что большее число ошибок может быть исправлено, но это потребует большей вычислительной мощности по сравнению с вариантом при меньшем t.

Ошибки в символах

Одна ошибка в символе происходит, когда 1 бит символа оказывается неверным или когда все биты не верны.

Пример: Код RS(255,223) может исправить до 16 ошибок в символах. В худшем случае, могут иметь место 16 битовых ошибок в разных символах (байтах). В лучшем случае, корректируются 16 полностью неверных байт, при этом исправляется 16 x 8=128 битовых ошибок.

Коды Рида-Соломона особенно хорошо подходят для корректировки кластеров ошибок (когда неверными оказываются большие группы бит кодового слова, следующие подряд).

Декодирование

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

Когда кодовое слово декодируется, возможны три варианта:

Архитектура кодирования и декодирования кодов Рида-Соломона

Кодирование и декодирование Рида-Соломона может быть выполнено аппаратно или программно.

Арифметика конечного поля Галуа

Образующий полином

Кодовое слово Рида-Соломона формируется с привлечением специального полинома. Все корректные кодовые слова должны делиться без остатка на эти образующие полиномы. Общая форма образующего полинома имеет вид:

а кодовое слово формируется с помощью операции:

где g(x) является образующим полиномом, i(x) представляет собой информационный блок, c(x) – кодовое слово, называемое простым элементом поля.

Пример: Генератор для RS(255,249)

g(x)= (x-a 0 )(x-a 1 )(x-a 2 )(x-a3)(x-a 4 )(x-a 5 )
g(x)= x 6 + g5x 5 + g3x 3 + g2x 2 + g1x 1 + g0

Архитектура кодировщика

2t символов четности в кодовом слове Рида-Соломона определяются из следующего соотношения:.

Ниже показана схема реализации кодировщика для версии RS(255,249):

для чего нужен синдром в коде хэмминга

Рис. 7. Схема кодировщика R-S

Каждый из 6 регистров содержит в себе символ (8 бит). Арифметические операторы выполняют сложение или умножение на символ как на элемент конечного поля..

Архитектура декодера

Общая схема декодирования кодов Рида-Соломона показана ниже на рис. 8.

для чего нужен синдром в коде хэмминга

Рис. 8. Схема работы с кодами Рида-Соломона

Полученное кодовое слово r(x) представляет собой исходное (переданное) кодовое слово c(x) плюс ошибки:.

Декодер Рида-Соломона пытается определить позицию и значение ошибки для числа t ошибок (или 2t потерь) и исправить ошибки и потери.

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

Вычисление синдрома похоже на вычисление четности. Кодовое слово Рида-Соломона имеет 2t синдромов, это зависит только от ошибок (а не передаваемых кодовых слов). Синдромы могут быть вычислены путем подстановки 2t корней образующего полинома g(x) в r(x).

Нахождение позиций символьных ошибок

Это делается путем решения системы уравнений с t неизвестными. Существует несколько быстрых алгоритмов для решения этой задачи. Эти алгоритмы используют особенности структуры матрицы кодов Рида-Соломона и сильно сокращают необходимую вычислительную мощность. Делается это в два этапа:

Это может быть сделано с помощью алгоритма Berlekamp-Massey или алгоритма Эвклида. Алгоритм Эвклида используется чаще на практике, так как его легче реализовать, однако, алгоритм Berlekamp-Massey позволяет получить более эффективную реализацию оборудования и программ..

Нахождение значений символьных ошибок

Здесь также нужно решить систему уравнений с t неизвестными. Для решения используется быстрый алгоритм Forney.

Реализация кодировщика и декодера Рида-Соломона
Аппаратная реализация

Существует несколько коммерческих аппаратных реализаций. Имеется много разработанных интегральных схем, предназначенных для кодирования и декодирований кодов Рида-Соломона. Эти ИС допускают определенный уровень программирования (например, RS(255,k), где t может принимать значения от 1 до 16).

Программная реализация

До недавнего времени, программные реализации в «реальном времени» требовали слишком большой вычислительной мощности для практически всех кодов Рида-Соломона. Главной трудностью в программной реализации кодов Рида-Соломона являлось то, что процессоры общего назначения не поддерживают арифметические операции для поля Галуа. Однако оптимальное составление программ в сочетании с возросшей вычислительной мощностью позволяют получить вполне приемлемые результаты для относительно высоких скоростей передачи данных.

На рис. 9 показана фотография поверхности Марса, полученная американской станцией «Curiosity» (2012г). Сам Марс с Земли даже с помощью бинокля виден плохо. Современные методы коррекции ошибок позволяют получить приемелемы результат даже в условиях, когда шум на порядки превышает сигнал. Смотри также рис. 4.

для чего нужен синдром в коде хэмминга

Рис. 9. Фотография, полученная марсианской станцией Curiosity (США)

Источник


Добавить комментарий

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