Декодер Рида-Соломона
decoded = rsdec(code,n,k)
decoded = rsdec(code,n,k,genpoly)
decoded = rsdec(...,paritypos)
[decoded,cnumerr] = rsdec(...)
[decoded,cnumerr,ccode] = rsdec(...)
decoded = rsdec(code,n,k) пытается декодировать принятый сигнал в code с использованием [n,k] Процесс декодирования Рида-Соломона с помощью полинома генератора узких чувств. code является массивом Галуа символов, каждый из которых имеет m битов. Каждый n-элементный ряд code представляет поврежденное систематическое кодовое слово, где символы четности находятся в конце, а самый левый символ является наиболее значимым символом. n самое большее 2m-1. Если n не совсем 2m-1, rsdec предполагает, что code является поврежденной версией укороченного кода.
В массиве Galois decoded, каждая строка представляет попытку декодирования соответствующей строки в code. Сбой декодирования возникает, если rsdec обнаруживает более (n-k)/2 ошибки в строке code. В этом случае rsdec формирует соответствующую строку decoded путем простого удаления n-k символы из конца строки code.
decoded = rsdec(code,n,k,genpoly) является тем же, что и синтаксис выше, за исключением того, что непустое значение genpoly задает полином генератора для кода. В этом случае genpoly - вектор строки Галуа, который перечисляет коэффициенты в порядке степеней убывания полинома генератора. Полином генератора должен иметь степень n-k. Чтобы использовать полином генератора узких чувств по умолчанию, установите genpoly кому [].
decoded = rsdec(..., определяет, будут ли символы четности в paritypos)code были добавлены или добавлены к сообщению в операции кодирования. paritypos может быть либо 'end' или 'beginning'. Значение по умолчанию: 'end'. Если paritypos является 'beginning', причина сбоя декодирования rsdec удалить n-k символы от начала, а не от конца строки.
[decoded,cnumerr] = rsdec(...) возвращает вектор столбца cnumerr, каждый элемент которого представляет собой количество исправленных ошибок в соответствующей строке code. Значение -1 в cnumerr указывает на сбой декодирования в этой строке в code.
[decoded,cnumerr,ccode] = rsdec(...) прибыль ccode, исправленная версия code. Массив Галуа ccode имеет тот же формат, что и code. Если сбой декодирования происходит в определенной строке code, соответствующая строка в ccode содержит эту строку без изменений.
n и k должно отличаться на четное целое число. n должно быть от 3 до 65535.
rsdec использует алгоритм декодирования Берлекампа-Мэсси. Сведения об этом алгоритме см. в разделе Работы, перечисленные в разделе Ссылки ниже.
[1] Уикер, С. Б., Системы контроля ошибок для цифровой связи и хранения данных, Верхнее седло, Нью-Джерси, Прентис Холл, 1995.
[2] Берлекамп, Э. Р., Алгебраическая теория кодирования, Нью-Йорк, Макгро-Хилл, 1968.