BCH Encoder

Создайте код BCH из двоичных векторных данных

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

  • BCH Encoder block

Описание

Блок BCH Encoder создает код BCH с длиной сообщения K и длиной кодового слова (N - количество проколов).

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

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

Порты

Вход

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

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

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

Выход

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

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

Типы данных: 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 представляют индексы символов данных, которые прокалываются или удаляются из потока данных. Для получения дополнительной информации см. «Укорочение, прокалывание и стирание».

Примечание

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

Зависимости

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

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

Типы данных

Boolean | double | integer | single

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

no

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

no

Подробнее о

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

Совет

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

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

Алгоритмы

Этот блок реализует алгоритм, входы и выходы, описанные в Алгоритмах для декодирования только ошибок BCH и RS.

Ссылки

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

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

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

.

См. также

Блоки

Объекты

Функции

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