exponenta event banner

Декодер RS

Декодирование и восстановление сообщения из кодового слова RS

  • Библиотека:
  • Беспроводная панель инструментов HDL/обнаружение и исправление ошибок

  • RS Decoder block

Описание

Блок декодера RS декодирует и восстанавливает сообщение от кодового слова Рида-Соломона (RS). Блок принимает данные кодового слова и samplecontrol шину и выводит декодированные данные сообщения, samplecontrol шину, повреждены ли принятые данные, индикатор готовности блока и (необязательно) количество исправленных ошибок. Блок обеспечивает архитектуру, подходящую для генерации кода HDL и аппаратного развертывания, и поддерживает укороченные длины сообщений.

Поскольку задержка блока изменяется, блок предоставляет выходной порт nextFrame, который указывает, когда блок готов принять новые входные данные кодового слова. Дополнительные сведения о задержках см. в разделе Алгоритмы.

Этот блок можно использовать для моделирования многих кодов прямого исправления ошибок (FEC) в системе связи. Блок поддерживает цифровые абонентские линии (DSL), WiMAX (802.16 m и e), карманные терминалы цифрового видеотрансляции (DVB-H), услуги цифрового видеотрансляционного спутникового (DVB-S) и услуги цифрового видеотрансляционного спутникового вещания на карманные устройства (DVB-SH) с частотой ниже 3 МГц.

Порты

Вход

развернуть все

Входные данные кодового слова, заданные как скаляр, представляющий один символ.

Длина кодового слова в символах, заданных параметром Codeword length (N), должна быть целым числом, равным 2M - 1, где M - целое число в диапазоне от 3 до 16.

Длина входного слова должна быть целым числом без знака, равным ceil(log2 (длина кодового слова (N))). Для длины кодового слова 7, длина входного слова данных должна быть 3.

double и single типы данных разрешены для моделирования, но не для генерации кода HDL.

Типы данных: double | single | uint8 | uint16 | fixed point

Управляющие сигналы, сопровождающие поток проб, указанные как samplecontrol Шина включает в себя start, end, и valid управляющие сигналы, которые указывают границы кадра и достоверность выборок.

  • start - Указывает начало входного кадра.

  • end - Указывает конец входного кадра

  • valid - Указывает, что данные на порте входных данных являются допустимыми

Дополнительные сведения см. в разделе Пример шины управления.

Типы данных: bus

Продукция

развернуть все

Декодированные данные сообщения, возвращенные в виде скаляра. Эта ширина выходных данных совпадает с шириной входных данных.

Типы данных: double | single | uint8 | uint16 | fixed point

Управляющие сигналы, сопровождающие поток проб, возвращаемые в виде samplecontrol Шина включает в себя start, end, и valid управляющие сигналы, которые указывают границы кадра и достоверность выборок.

  • start - Указывает начало выходного кадра.

  • end - Указывает конец выходного кадра

  • valid - Указывает, что данные порта выходных данных являются допустимыми

Дополнительные сведения см. в разделе Пример шины управления.

Типы данных: bus

Индикация повреждения полученных данных, возвращаемых в виде скаляра.

Когда это значение равно 1 (true), выходные данные содержат ошибки. Когда это значение равно 0 (false), выходные данные содержат нулевые ошибки.

Если количество ошибок во входном кодовом слове больше, чем (длина кодового слова (N) - длина сообщения (K) )/2, блок выводит данные без исправления ошибок и устанавливает порт ошибки в значение1 (true), чтобы указать, что ошибки, которые не могут быть исправлены, существуют во входном кодовом слове.

Типы данных: Boolean

Индикатор готовности блока, возвращаемый как скаляр.

Блок устанавливает этот сигнал на 1 (true), когда блок готов принять начало следующего кадра. Если блок принимает входной сигнал ctrl.start, пока nextFrame имеет значение 0 (false), блок отбрасывает текущий кадр и начинает обработку новых данных.

Типы данных: Boolean

Число исправленных ошибок, возвращаемых как неотрицательный скаляр.

Максимальное число ошибок, которые может исправить код RS, равно (длина кодового слова (N) - длина сообщения (K) )/2. Если количество ошибок во входном кодовом слове больше, чем (длина кодового слова (N) - длина сообщения (K) )/2, блок выводит данные без исправления ошибок и устанавливает порт numErrors в значение0 чтобы указать, что ни одна из этих ошибок не может быть исправлена.

Зависимости

Для активизации этого порта выберите параметр Output number of corrected symbol errors.

Типы данных: uint8

Параметры

развернуть все

Укажите длину кодового слова.

Длина кодового слова N должно быть целым числом, равным 2M - 1, где M - целое число в диапазоне от 3 до 16. Дополнительные сведения о представлении данных для кодов RS см. в разделе Целочисленный формат (только для Рида-Соломона).

Укажите длину сообщения.

Дополнительные сведения о представлении данных для кодов RS см. в разделе Целочисленный формат (только для Рида-Соломона).

Укажите источник полинома примитива.

  • Выбрать Auto для задания примитивного многочлена на основе значения параметра Codeword length (N). Степень примитивного многочлена вычисляется как M = ceil(log2 (длина кодового слова (N ))).

  • Выбрать Property для задания примитивного многочлена с помощью параметра Примитивный многочлен.

Укажите двоичный вектор строки, представляющий примитивный многочлен в порядке убывания степеней.

Дополнительные сведения о задании примитивного многочлена см. в разделе Примитивные многочлены и представления элементов.

Зависимости

Чтобы включить этот параметр, задайте для параметра Source of primitive polynomial значение Property.

Укажите источник начальной степени для корней примитивного многочлена.

  • Выбрать Auto, для использования значения параметра значения B по умолчанию, 1.

  • Выбрать Property для включения параметра значения B.

Укажите начальную степень для корней примитивного многочлена.

Зависимости

Чтобы включить этот параметр, задайте для параметра Source of B, начальной степени корней примитивного полинома значение Property.

Выберите этот параметр, чтобы включить выходной порт numErrors. Этот порт выводит количество исправленных ошибок.

Алгоритмы

развернуть все

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

Этот блок использует алгоритм декодирования Берлекампа-Мэсси. Сведения об этом алгоритме см. в разделе Алгоритмы декодирования только ошибок BCH и RS.

Ссылки

[1] Уикер, Стивен Б. Системы управления ошибками для цифровой связи и хранения. Энглвуд Клиффс, Нью-Джерси: Прентис Холл, 1995.

[2] Берлекамп, Элвин Р. Алгебраическая теория кодирования. Пересмотренное издание. Серия McGraw-Hill в области системной науки. Нью-Джерси: World Scientific, 2015.

[3] Кларк, Джордж К. и J. Затвор Каин. Кодирование с исправлением ошибок для цифровой связи. Приложения теории коммуникаций. Нью-Йорк: Пленум Пресс, 1981.

[4] Мун, Тодд К. Глава 6, Кодирование с исправлением ошибок: математические методы и алгоритмы. Хобокен, N.J.: Wiley-Interscience, 2005.

Расширенные возможности

.
Представлен в R2020a