exponenta event banner

Декодер RS с целочисленным выходом

Декодирование кода Рида-Соломона для восстановления целочисленных векторных данных

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

  • Integer-Output RS Decoder block

Описание

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

Код Рида-Соломона имеет длину сообщения K, а длина кодового слова N - количество проколов. N и K задаются непосредственно в диалоговом окне блока. Символами кода являются целые числа в диапазоне [0, 2M-1], представляющие элементы конечного поля GF (2M). Ограничения на M и N описаны ниже в разделе Ограничения на M и длину N кодового слова.

Этот значок показывает дополнительные порты.

Входные и выходные сигналы представляют собой целочисленные сигналы, представляющие кодовые слова и сообщения соответственно. Дополнительные сведения см. в разделе Длина входного и выходного сигнала в блоках RS. Блок наследует тип выходных данных от типа входных данных. Сведения о типах данных, поддерживаемых каждым блочным портом, см. в разделе Поддерживаемые типы данных.

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

Если декодер обрабатывает несколько кодовых слов в кадре, то для всех кодовых слов сохраняется один и тот же шаблон прокола.

Значение по умолчанию M равно ceil(log2(N+1)), то есть наименьшее целое число, большее или равное log2 (N + 1). Можно изменить значение M по умолчанию, указав примитивный многочлен для GF (2M), как описано ниже в разделе Задание примитивного многочлена.

Можно также задать полином генератора для кода Рида-Соломона, как описано в разделе Задание полинома генератора.

Код Рида-Соломона (N, K) может исправлять до floor((N-K)/2) символьные ошибки (не битовые ошибки) в каждом кодовом слове.

Если декодирование завершается неуспешно, то часть сообщения входного сигнала декодера возвращается без изменений в качестве выходного сигнала декодера.

Время выборки входного и выходного сигналов равно.

Порты

Вход

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

Кодовое слово Рида - Соломона, указанное как (NC × (N - K + S - P) -на-1 целочисленный вектор-столбец. NC - количество кодовых слов, N - длина кодового слова N, K - длина сообщения K, S - длина укороченного сообщения S, P - количество проколов на кодовое слово.

Дополнительные сведения см. в разделе Длина входного и выходного сигнала в блоках RS.

Типы данных: single | double | integer

Вектор стирания, заданный как входной сигнал вектора двоичного столбца с тем же размером, что и входное кодовое слово Рида-Соломона.

Значения стирания 1 соответствуют стертым битам в одной позиции в кодовом слове. Значения 0 соответствуют битам, которые не стерты. Дополнительные сведения см. в разделе Прокалывание и стирание.

Зависимости

Чтобы включить этот порт, выберите Enable erasures input port.

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

Продукция

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

Декодированное сообщение, возвращенное как одно из следующих:

  • При отсутствии укорочения сообщения вектор целочисленного столбца (NC × K) -на-1.

  • При укорочении сообщения вектор целочисленного столбца (NC × S) -на-1.

NC - количество слов сообщения, K - длина сообщения K (символы), S - длина укороченного сообщения S (символы).

Примечание

Количество декодированных слов сообщения равно количеству кодовых слов.

Дополнительные сведения см. в разделе Длина входного и выходного сигнала в блоках RS.

Ошибки декодирования символов, возвращаемые как целочисленный вектор с элементами ЧПУ, где ЧПУ - количество кодовых слов. Этот порт указывает количество символьных ошибок, обнаруженных во время декодирования каждого кодового слова. Отрицательное целое число указывает, что блок обнаружил больше ошибок, чем мог бы исправить с помощью указанной схемы кодирования.

Примечание

Код Рида-Соломона (N, K) может исправлять до floor((N-K)/2) символьные ошибки (не битовые ошибки) в каждом кодовом слове. Когда принятое кодовое слово содержит более (N-K )/2 символьных ошибок, происходит сбой декодирования .

Зависимости

Чтобы включить этот порт, выберите Output number of corrected symbol errors.

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

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

Параметры

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

Длина кодового слова, заданная как целое число.

Дополнительные сведения см. в разделе Ограничения для M и длины N кодового слова и длины входного и выходного сигнала в блоках RS.

Длина слова сообщения, заданная как целое число в диапазоне [1, N-2], где N - длина кодового слова.

Сокращенная длина слова сообщения, заданная как целое число, так что SK. Когда сокращенная длина сообщения S < длина сообщения K, код Рида-Соломона сокращается.

Значения N и K по-прежнему задаются для полноразмерного (N, K) кода, но декодирование сокращается до кода (N-K + S, S).

Зависимости

Чтобы включить этот параметр, выберите Указать укороченную длину сообщения.

Генераторный многочлен со значениями в диапазоне [0, 2M-1], в порядке убывания мощности, заданными как одно из следующих:

  • Вектор многочлена. Дополнительные сведения см. в разделе Символьное представление многочленов.

  • Целочисленный вектор строки, представляющий коэффициенты генераторного многочлена в порядке степени убывания.

  • Целочисленный вектор строки Галуа, представляющий коэффициенты генераторного многочлена в порядке степени убывания.

Каждый коэффициент является элементом поля Галуа, определяемым примитивным многочленом. Дополнительные сведения см. в разделе Задание полинома генератора.

Пример: [1 3 1 2 3], что эквивалентно rsgenpoly(7,3)

Зависимости

Чтобы включить этот параметр, выберите Задать полином генератора (Specify generator polynomial).

Примитивный многочлен в порядке степени убывания. Этот многочлен имеет порядок M и определяет конечное поле Галуа GF (2M), соответствующее целым числам, которые образуют слова сообщения и кодовые слова. Укажите примитивный многочлен как один из следующих:

Дополнительные сведения см. в разделе Указание полинома примитива.

Пример: 'X^3 + X + 1', который является примитивным многочленом, используемым для (7,3) кода, de2bi(primpoly(3,'nodisplay'),'left-msb')

Зависимости

Чтобы включить этот параметр, выберите Задать примитивный полином.

Вектор прокола, заданный как вектор двоичного столбца (N-K) -by-1. Индексы элементов с1s представляют индексы символов данных, которые проходят через блок без изменений. Индексы элементов с 0s представляют индексы символов данных, которые проколоты или удалены из потока данных. Дополнительные сведения см. в разделе Прокалывание и стирание.

Примечание

Если кодер обрабатывает множество кодовых слов в кадре, то один и тот же шаблон прокола сохраняется для всех кодовых слов.

Зависимости

Чтобы включить этот параметр, выберите Код прокола.

При установке этого флажка включается порт стирания Era. Дополнительные сведения см. в разделе Прокалывание и стирание.

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

Характеристики блока

Типы данных

double | integer | single

Многомерные сигналы

no

Сигналы переменного размера

no

Подробнее

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

Алгоритмы

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

Ссылки

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

[2] Берлекамп, Элвин Р., Алгебраическая теория кодирования, Нью-Йорк: Макгро-Хилл, 1968.

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

См. также

Блоки

Объекты

Функции

Представлен до R2006a