BCH Decoder

Декодируйте код BCH, чтобы восстановить двоичные векторные данные

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

  • BCH Decoder block

Описание

Блок BCH Decoder восстанавливает двоичный вектор сообщения из двоичного вектора кодового слова BCH. Для правильного декодирования значения параметров Codeword length, N и Message length, K в этом блоке должны совпадать с параметрами в соответствующем блоке BCH Encoder. Полнометражные значения N и K должны создать действительный узкополосный код BCH.

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

Смотрите Советы для получения информации о допустимых значениях N, допустимых (N,K) парах и возможностях исправления ошибок для данного кода BCH.

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

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

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

Порты

Вход

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

Закодированное сообщение, заданное как двоичный вектор-столбец. Закодированное сообщение является кодом BCH с длиной сообщения K и длиной кодового слова (N - количество проколов).

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

Вектор стирания, заданный как двоичный вектор-столбец, имеющий ту же длину, что и In. Значения стирания 1 соответствуют удаленным битам в том же положении в кодовом слове. Значения 0 соответствуют битам, которые не стираются.

Зависимости

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

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

Выход

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

Декодированное сообщение, возвращаемое как двоичный вектор-столбец входной сигнал с целым числом, кратным Message length, K элементам или Shortened message length, S элементам, если код укорочен. Каждая группа входа элементов представляет одно кодовое слово для декодирования. Входы и выход длин сигнала перечислены в Вход и Выход Длины сигнала в таблице BCH Blocks.

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

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

Зависимости

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

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

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

Параметры

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

Длина кодового слова, заданная как целое число вида N = 2M-1, где M является целым числом от 3 до 16. Для получения дополнительной информации см. советы».

Длина сообщения, заданная в виде целого числа. The (N, K) пара должна создать узкополосный код BCH.

Укороченная длина сообщения, заданная как целое число. Когда вы задаете этот параметр, предоставьте полноразмерные N и K значения, чтобы задать (N, K) код, который укорочен до кода (N - K + S, S).

Зависимости

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

Полином генератора, заданный как один из следующих:

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

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

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

Пример: 'X^10 + X^8 + X^5 + X^4 + X^2 + X + 1', что эквивалентно bchgenpoly(15,5)

Зависимости

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

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

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

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

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

Зависимости

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

Выберите этот параметр, чтобы отключить проверку полинома генератора.

Каждый раз, когда модель инициализируется, блок выполняет полиномиальную проверку. Эта проверка проверяет, что X N + 1 делится на заданный полином генератора, где N представляет полную длину кодового слова. Для больших кодов отключение проверки ускоряет процесс симуляции.

Совет

Всегда запускайте проверку по крайней мере один раз, прежде чем отключать эту функцию.

Зависимости

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

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

Зависимости

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

Установка этого флажка включает порт стирания Era.

Через порт можно ввести двоичный вектор-столбец, которая в 1/ M раза больше, чем вход кодовое слово.

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

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

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

Типы данных

Boolean | double | integer | single

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

no

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

no

Подробнее о

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

Совет

  • Чтобы сгенерировать список допустимых (N, K) пары вместе с соответствующими значениями возможности исправления ошибок, запуск bchnumerr(N).

  • Допустимые значения для N = 2M-1, где M является целым числом от 3 до 16. Максимально допустимое значение N составляет 65 535.

Алгоритмы

Этот блок реализует алгоритм, входы и выходы, описанные в Алгоритмах для декодирования только ошибок 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