В теории кодирования декодирование — это процесс перевода полученных сообщений в кодовые слова заданного кода . Существует много общих методов отображения сообщений в кодовые слова. Они часто используются для восстановления сообщений, отправленных по зашумленному каналу , например, по двоичному симметричному каналу .
считается двоичным кодом длиной ; должно быть элементов ; и — расстояние между этими элементами.
Можно дать сообщение , тогда идеальный наблюдатель декодирует кодовое слово . Результатом процесса является следующее решение:
Например, человек может выбрать кодовое слово , которое с наибольшей вероятностью будет получено в качестве сообщения после передачи.
Каждое кодовое слово не имеет ожидаемой возможности: может быть более одного кодового слова с равной вероятностью мутации в полученное сообщение. В таком случае отправитель и получатель(и) должны заранее договориться о соглашении декодирования. Популярные соглашения включают:
При наличии полученного вектора максимального правдоподобия декодирование выбирает кодовое слово , которое максимизирует
то есть кодовое слово , которое максимизирует вероятность того, что было получено, учитывая, что было отправлено. Если все кодовые слова одинаково вероятно будут отправлены, то эта схема эквивалентна декодированию идеального наблюдателя. Фактически, по теореме Байеса ,
При фиксации , реструктурируется и является константой, поскольку все кодовые слова с равной вероятностью будут отправлены. Следовательно, максимизируется как функция переменной именно тогда, когда максимизируется, и утверждение следует.
Как и в случае декодирования идеальным наблюдателем, необходимо согласовать соглашение для неуникального декодирования.
Задача декодирования максимального правдоподобия также может быть смоделирована как задача целочисленного программирования . [1]
Алгоритм декодирования максимального правдоподобия является примером проблемы «маргинализации функции произведения», которая решается путем применения обобщенного закона распределения . [2]
При наличии полученного кодового слова декодирование по минимальному расстоянию выбирает кодовое слово, минимизирующее расстояние Хэмминга :
т.е. выбрать кодовое слово , максимально близкое к .
Обратите внимание, что если вероятность ошибки на дискретном канале без памяти строго меньше половины, то декодирование по минимальному расстоянию эквивалентно декодированию по максимальному правдоподобию , поскольку если
затем:
который (поскольку p меньше половины) максимизируется путем минимизации d .
Декодирование по минимальному расстоянию также известно как декодирование по ближайшему соседу . Его можно облегчить или автоматизировать с помощью стандартного массива . Декодирование по минимальному расстоянию является разумным методом декодирования, когда выполняются следующие условия:
Эти предположения могут быть разумными для передач по двоичному симметричному каналу . Они могут быть неразумными для других носителей, таких как DVD, где одна царапина на диске может вызвать ошибку во многих соседних символах или кодовых словах.
Как и в случае с другими методами декодирования, необходимо согласовать соглашение для неуникального декодирования.
Синдромное декодирование — это высокоэффективный метод декодирования линейного кода по шумному каналу , т. е. по каналу, в котором допускаются ошибки. По сути, синдромное декодирование — это декодирование с минимальным расстоянием с использованием сокращенной таблицы поиска. Это допускается линейностью кода. [3]
Предположим, что — линейный код длины и минимального расстояния с матрицей проверки на четность . Тогда очевидно, что он способен исправлять до
ошибки, допущенные каналом (поскольку если допущено не более ошибок, то декодирование на минимальном расстоянии все равно правильно декодирует неправильно переданное кодовое слово).
Теперь предположим, что кодовое слово отправлено по каналу и происходит шаблон ошибки. Затем получено. Обычное декодирование минимального расстояния будет искать вектор в таблице размера для ближайшего совпадения - т.е. элемента (не обязательно уникального) с
для всех . Декодирование синдрома использует свойство матрицы четности, которое:
для всех . Синдром полученного определяется как:
Для выполнения ML-декодирования в двоичном симметричном канале необходимо найти предварительно вычисленную таблицу размера , соответствующую .
Обратите внимание, что это уже значительно менее сложно, чем стандартное декодирование массива .
Однако, если предположить, что во время передачи было допущено не более ошибок, получатель может найти значение в еще более сокращенной таблице размера
Это семейство вероятностных методов Лас-Вегаса , основанных на наблюдении, что легче угадать достаточное количество позиций без ошибок, чем угадать все позиции с ошибками.
Простейшая форма принадлежит Прейнджу: Пусть будет генераторной матрицей используемой для кодирования. Выбираем столбцы случайным образом и обозначаем соответствующей подматрицей . С разумной вероятностью будет иметь полный ранг, что означает, что если мы позволим быть подвектором для соответствующих позиций любого кодового слова для сообщения , мы можем восстановить как . Следовательно, если нам повезло, что эти позиции полученного слова не содержали ошибок и, следовательно, совпадали с позициями отправленного кодового слова, то мы можем декодировать.
Если произошли ошибки, вероятность такого удачного выбора столбцов определяется как .
Этот метод был усовершенствован различными способами, например, Стерном [4] , Канто и Сендриером [5] .
Метод максимального правдоподобия с частичным откликом ( PRML ) — это метод преобразования слабого аналогового сигнала с головки магнитного диска или ленточного накопителя в цифровой сигнал.
Декодер Витерби использует алгоритм Витерби для декодирования потока битов, который был закодирован с использованием прямой коррекции ошибок на основе сверточного кода. Расстояние Хэмминга используется в качестве метрики для декодеров Витерби с жестким решением. Квадрат евклидова расстояния используется в качестве метрики для декодеров с мягким решением.
Оптимальный алгоритм декодирования решений (ODDA) для асимметричной системы TWRC. [ необходимо разъяснение ] [6]