RS Decoder

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

  • Библиотека:
  • Беспроводной HDL Toolbox/Обнаружение и коррекция ошибок

  • RS Decoder block

Описание

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

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

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

Порты

Вход

расширить все

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

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

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

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

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

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

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

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

  • valid - Указывает, что данные входного data порта действительны

Для получения дополнительной информации см. Выборку шины управления.

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

Выход

расширить все

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

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

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

  • start - Указывает начало выходной системы координат

  • end - Указывает конец выходной системы координат

  • valid - Указывает, что данные выходного data порта действительны

Для получения дополнительной информации см. Выборку шины управления.

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

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

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

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

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

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

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

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

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

Максимальное количество ошибок, которые может исправить код RS, равно (Codeword length (N) - Message length (K) )/2. Если количество ошибок во входном кодовом слове больше, чем (Codeword length (N) - Message length (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 (<reservedrangesplaceholder0>) ).

  • Выберите Property задать примитивный полином используя параметр Primitive polynomial.

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

Для получения дополнительной информации о том, как задать примитивный полином, см. «Примитивные полиномы и представления элемента».

Зависимости

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

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите параметр Source of B, the starting power for roots of the primitive polynomial равным Property.

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

Алгоритмы

расширить все

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

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

Ссылки

[1] Wicker, Stephen B. Системы управления ошибками для цифровой связи и хранения данных. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1995.

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

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

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

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

.
Введенный в R2020a