Integer-Output RS Decoder

Декодируйте код Рида-Соломона, чтобы восстановить целочисленные векторные данные

  • Библиотека:
  • Communications Toolbox/Обнаружение и исправление ошибок/Блокировка

  • Integer-Output RS Decoder block

Описание

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

Код Рида-Соломона имеет K длины сообщения и N длины кодового слова - number of punctures. Вы задаете 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) символьные ошибки (не битовые ошибки) в каждом кодовом слове.

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

Шаги расчета сигналов входа и выхода равны.

Порты

Вход

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

Ключевое слово тростника-Solomon, определенное как (N (N - K + S - P)-by-1 целочисленный вектор - столбец. <reservedrangesplaceholder7> C - количество ключевых слов, N Codeword length N, K Message length K, S Shortened message length S, P - количество проколов за ключевое слово.

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

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

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

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

Зависимости

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

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

Выход

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

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

  • Когда нет сокращения сообщения, a (N C × K) -на-1 целое число вектора-столбца.

  • Когда происходит сокращение сообщения, a (N C × S) -на-1 целое число вектора-столбца.

N C - количество слов сообщения, K - Message length K (symbols), и S - Shortened message length S (symbols).

Примечание

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

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

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

Примечание

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

Зависимости

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

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

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

Параметры

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

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

Для получения дополнительной информации смотрите Ограничения на M и Длину кодового слова N и Входа и Выхода Длины сигнала в Блоках RS.

Размер слова виде целого числа в области значений [1, N -2], где N - длина кодового слова.

Сокращённый размер слова сообщения, заданная как целое число, такое, что SK. При Shortened message length S < Message length K код Рида-Соломона сокращается.

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

Зависимости

Чтобы включить этот параметр, выберите Specify shortened message length.

Полином генератора со значениями в области значений [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')

Зависимости

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

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

Примечание

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

Зависимости

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

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

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

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

Типы данных

double | integer | single

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

no

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

no

Подробнее о

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

Алгоритмы

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

Ссылки

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

[2] Berlekamp, Elwyn R., Algebraic Coding Theory, New York: McGraw-Hill, 1968.

[3] Clark, George C., Jr., and J. Bibb Cain. Кодирование ошибок для цифровых коммуникаций, Нью-Йорк: Пленум Пресс, 1981.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.

См. также

Блоки

Объекты

Функции

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