Binary-Output RS Decoder

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

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

  • Binary-Output RS Decoder block

Описание

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

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

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

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

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

Порты

Вход

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

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

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

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

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

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

Зависимости

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

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

Выход

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

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

  • Когда нет никакого сокращения сообщения, (N C× <reservedrangesplaceholder1> × <reservedrangesplaceholder0>)-by-1 двойной вектор - столбец.

  • Когда есть сокращение сообщения, (N C× <reservedrangesplaceholder1> × <reservedrangesplaceholder0>)-by-1 двойной вектор - столбец.

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

Примечание

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

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

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

Ошибки декодирования символов, возвращенные как целочисленный вектор с 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 (symbols) < Message length K (symbols) код Рида-Соломона сокращается.

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

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

  • Двоичный вектор-строка, который представляет коэффициенты полинома генератора.

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

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

Зависимости

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

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

Зависимости

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

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

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

Выход блока, заданный как Same as input, boolean, или double.

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

Типы данных

Boolean | double | фиксированную точку[a] | integer | single

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

no

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

no

[a] только ufix (1).

Подробнее о

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

Алгоритмы

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

Ссылки

[1] Wicker, Stephen B. Системы управления ошибками для цифровой связи и хранения данных. Upper Saddle River, NJ: Prentice Hall, 1995.

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

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

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

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

.

См. также

Блоки

Объекты

Функции

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