Binary-Output RS Decoder

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

  • Библиотека:
  • Communications Toolbox / Выявление ошибок и Коррекция / Блок

  • Binary-Output RS Decoder block

Описание

Блок Binary-Output RS Decoder восстанавливает вектор двоичного сообщения с бинарного вектора кодовой комбинации Тростника-Solomon. Для соответствующего декодирования значения параметров в этом блоке должны совпадать со значениями параметров в соответствующем блоке 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 (NK + SP) ×M)-by-1 вектор столбца двоичных данных. N 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 (NK + SP))-by-1 вектор столбца двоичных данных. N 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×K×M)-by-1 вектор столбца двоичных данных.

  • Когда существует сокращение сообщения, (N C×S×M)-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, в порядке убывающей степени в виде одного из следующего:

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

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

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

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

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

Зависимости

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

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

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

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

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

Пример: 'X^3 + X + 1', который является примитивным полиномом, используемым для (7,3) код, ppoly = primpoly(3,'nodisplay'); int2bit(ppoly,ceil(log2(max(ppoly))))'

Зависимости

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

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

Зависимости

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

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

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

Выходной тип блока в виде Same as input, boolean, или double.

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

Типы данных

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

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

no

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

no

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

Больше о

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

Алгоритмы

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

Ссылки

[1] Ивовый прут, системы контроля ошибок Стивена Б. для цифровой связи и устройства хранения данных. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1995.

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

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

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

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

Смотрите также

Блоки

Объекты

Функции

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