exponenta event banner

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

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

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

  • Binary-Output RS Decoder block

Описание

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

Символами для кода являются двоичные последовательности длиной М, соответствующие элементам поля Галуа GF (2M). Первый бит в каждом символе является самым значительным битом .

На этом рисунке показана длина слова ввода-вывода декодера для длины кодового слова N = 7 и длины слова сообщения K = 2. Поскольку N = 2M-1, когда N = 7, длина символа M = 3.

Каждое входное кодовое слово является двоичным вектором длиной 21, который представляет 7 трёхбитовых целых чисел. Каждое соответствующее выходное слово сообщения является двоичным вектором длиной 6, который представляет 2 трёхбитовых целых числа. Дополнительные сведения см. в разделе Длина входного и выходного сигнала в блоках RS.

Этот значок показывает все порты, включая дополнительные:

Порты

Вход

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

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

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

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | ufix(1)

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

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

Зависимости

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

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

Продукция

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

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

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

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

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

Примечание

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

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

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | ufix(1)

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

Примечание

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

Зависимости

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

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

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

Параметры

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

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

Дополнительные сведения см. в разделе Ограничения длины N M и кодового слова и длины входного и выходного сигнала в блоках 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), соответствующее целым числам, которые образуют слова сообщения и кодовые слова. Укажите примитивный многочлен как один из следующих:

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

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

Зависимости

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

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

Зависимости

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

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

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

Тип вывода блока, указанный как Same as input, boolean, или double.

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

Типы данных

Boolean | double | fixed point[a] | integer | single

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

no

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

no

[a] ufix (1).

Подробнее

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

Алгоритмы

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

Ссылки

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

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

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

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

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

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