Создайте код Рида-Соломона из бинарных векторных данных
Communications Toolbox / Выявление ошибок и Коррекция / Блок
Блок Binary-Input RS Encoder создает код Рида-Соломона.
Символы для кода являются двоичными последовательностями длины M, соответствуя элементам Поля Галуа GF (2M). Первый бит в каждом символе является старшим значащим битом.
Предположим M = 3, N = 23- 1 = 7, и K = 2. Затем сообщение является вектором из длины 2, чьи записи являются целыми числами между 0 и 7. Соответствующая кодовая комбинация является вектором из длины 7, чьи записи являются целыми числами между 0 и 7. Следующая фигура иллюстрирует возможные сигналы ввода и вывода с этим блоком когда длина кодовой комбинации N =7 и размер слова сообщения K =2. Начиная с N =2M– 1, когда N =7, длина символа, M =3.
Каждое слово входного сигнала является бинарным вектором из длины 6, который представляет 2 трехбитных целых числа. Каждая соответствующая выходная кодовая комбинация является бинарным вектором из длины 21, который представляет 7 трехбитных целых чисел. Для получения дополнительной информации смотрите Длину сигнала Ввода и вывода в Блоках RS.
In
сообщениеОбменивайтесь сообщениями в битах в виде одного из следующего:
Когда нет никакого сокращения сообщения, (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)
Out
— Кодовая комбинация тростника-SolomonКодовая комбинация тростника-Solomon в битах, возвращенных как (N C× (N – K + S – P) ×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)
Для получения дополнительной информации смотрите Поддерживаемые Типы данных.
Codeword length N (symbols)
— Длина кодовой комбинации
(значение по умолчанию) | целое числоДлина кодовой комбинации в символах в виде целого числа.
Для получения дополнительной информации смотрите Ограничения на M и Длину кодовой комбинации N и Длину сигнала Ввода и вывода в Блоках RS.
Message length K (symbols)
— Передайте размер слова
(значение по умолчанию) | целое числоПередайте размер слова в символах в виде целого числа в области значений [1, N –2], где N является длиной кодовой комбинации.
Shortened message length S (symbols)
— Сокращенный размер слова сообщения
(значение по умолчанию) | целое числоСокращенный размер слова сообщения в символах в виде целого числа, такого, что S ≤ K. Когда Shortened message length S (symbols) <Message length K (symbols), код Рида-Соломона сокращен.
Вы все еще задаете N и значения K для во всю длину (N, K) код, но декодирование сокращено к (N –K+S, S) код.
Чтобы включить этот параметр, выберите Specify shortened message length.
Generator polynomial
— Порождающий полиномrsgenpoly(7, 3, [], [], 'double')
(значение по умолчанию) | полиномиальный вектор символов | вектор строки двоичных знаков | двоичный файл вектор-строка Галуа Порождающий полином со значениями от 0 до 2M– 1, в порядке убывающей степени в виде одного из следующего:
Полиномиальный вектор символов. Для получения дополнительной информации смотрите Представление Полиномов в Communications Toolbox.
Целочисленный вектор-строка, который представляет коэффициенты порождающего полинома в порядке убывающей степени.
Целочисленный вектор-строка Галуа, который представляет коэффициенты порождающего полинома в порядке убывающей степени.
Каждый коэффициент является элементом Поля Галуа, заданного примитивным полиномом. Для получения дополнительной информации смотрите, Задают Порождающий полином.
Пример: [1 3 1 2 3]
, который эквивалентен rsgenpoly(7,3)
Чтобы включить этот параметр, выберите Specify generator polynomial.
Primitive polynomial
— Примитивный полином'X^3 + X + 1'
(значение по умолчанию) | полиномиальный вектор символов | вектор строки двоичных знаковПримитивный полином в порядке убывающей степени. Этот полином имеет порядок 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.
Puncture vector
— Вектор прокола[ones(2,1); zeros(2,1)]
(значение по умолчанию) | вектор столбца двоичных данныхВектор прокола в виде (N –K)-by-1 вектор столбца двоичных данных. Индексы элемента с 1
s представляют данные индексы symbol, которые проходят через неизменный блок. Индексы элемента с 0
s представляют данные индексы symbol, которые проколоты или удалили от потока данных. Для получения дополнительной информации смотрите Прокалывание и Стирания.
Чтобы включить этот параметр, выберите Puncture code.
Output data type
— Выходной тип блокаSame as input
(значение по умолчанию) | boolean
| double
Выходной тип блока в виде Same as input
, boolean
, или double
.
Код Рида-Соломона имеет размер слова сообщения, K, или сокращенный размер слова сообщения, S. Длиной кодовой комбинации является N – K + S – P, где N является полной длиной кодовой комбинации, и P является количеством проколов на кодовую комбинацию. Когда нет никакого сокращения сообщения, выражение длины кодовой комбинации уменьшает до N – P, потому что K = S. Если декодер обрабатывает несколько кодовых комбинаций на систему координат, то тот же шаблон прокола содержит для всех кодовых комбинаций.
Эта таблица обеспечивает выражения для длин сигнала ввода и вывода для энкодера Тростника-Solomon и декодера.
Обозначение y = N C × x обозначает, что y является целочисленным кратным x.
Введите, стирание и длины выходного вектора | ||
---|---|---|
Кодер блока RS | Никакое используемое сокращение сообщения | Передайте используемое сокращение |
Двоичный вход энкодер RS |
Введите длину (биты): N C × K × M Выведите длину (биты): N C × (N –P) × M |
Введите длину (биты): N C × S × M Выведите длину (биты): N C × (N –K+S–P) × M |
Двоичный выход декодер RS |
Введите длину (биты): N C × (N –P) × M Длина стираний (символы): N C × (N –P) Выведите длину (биты): N C × K × M |
Введите длину (биты): N C × (N –K+S–P) × M Длина стираний (символы): N C × (N –K+S–P) Выведите длину (биты): N C × S × M |
N является длиной кодовой комбинации.
K является размером слова сообщения.
S является сокращенным размером слова сообщения.
N C является количеством кодовых комбинаций (и слова сообщения).
P является количеством проколов на кодовую комбинацию и равен количеству нулей в векторе прокола.
M является степенью примитивного полинома. Каждая группа битов M представляет целое число между 0
и 2M–1
это принадлежит конечному полю Галуа GF (2M)
.
Для получения дополнительной информации о представлении данных для кодов Рида-Соломона смотрите Целочисленный формат (Только Тростник-Solomon).
Кроме того, смотрите Ограничения на M и Длину кодовой комбинации N.
Если вы не выбираете Specify primitive polynomial, допустимые значения для длины кодовой комбинации, N, от 7 до 65 535. В этом случае блок использует примитивный полином по умолчанию степени M = ceil(log2(N+1))
. Можно отобразить примитивный полином по умолчанию путем выполнения primpoly(ceil(log2(N+1)))
.
Если вы выбираете Specify primitive polynomial, допустимые значения для примитивной полиномиальной степени, M, от 3 до 16. Допустимые значения для N в этом случае от 7 до 2M– 1. Выбор Specify primitive polynomial позволяет вам задать примитивный полином, который задает конечное поле GF (2M), который соответствует значениям, которые формируют слова сообщения и кодовые комбинации.
Выберите Specify generator polynomial, чтобы включить параметр Generator polynomial для определения порождающего полинома кода Рида-Соломона. Введите целочисленный вектор-строку со значениями элемента от 0 до 2M- 1. Вектор представляет полином, в порядке убывания степеней, коэффициенты которых являются элементами GF (2M) представленный в целочисленном формате. Для получения дополнительной информации о целочисленном и двоичном формате, смотрите Целочисленный формат (Только Тростник-Solomon). Порождающий полином должен быть равен полиному с этой учтенной формой:
g (x) = (x +αb) (x +αb+1) (x +αb+2)... (x +αb+N-K-1)
α является примитивным элементом Поля Галуа, по которому задан входной сигнал, и b является целым числом.
Если вы не выбираете Specify generator polynomial, блок использует порождающий полином по умолчанию, соответствуя b=1, для кодирования Тростника-Solomon. Можно отобразить порождающий полином по умолчанию путем выполнения rsgenpoly
.
Если вы используете примитивный полином по умолчанию (Specify primitive polynomial не выбран), порождающим полиномом по умолчанию является rsgenpoly(N,K)
, где N = 2M-1
.
Если вы не используете примитивный полином по умолчанию (Specify primitive polynomial выбран), и вы задаете примитивный полином как poly
, порождающим полиномом является rsgenpoly(N,K,poly)
.
Примечание
Степенью порождающего полинома является N − K, где N является длиной кодовой комбинации, и K является размером слова сообщения.
1s и
0
s имеют точно противоположные значения для векторов стирания и прокола.
В векторе прокола,
1 средние значения, что символ данных передается через неизменный блок.
0 средние значения, что символ данных должен быть проколот или удален от потока данных.
В векторе стирания,
1 средние значения, что символ данных должен быть заменен символом стирания.
0 средние значения, что символ данных передается через неизменный блок.
Эти соглашения применяются и к энкодеру и к декодеру. Для получения дополнительной информации смотрите Сокращение, Прокалывание и Стирания.
Порт | Поддерживаемые типы данных |
---|---|
\in |
|
|
Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные в Алгоритмах для BCH и RS Декодирование Только для ошибок.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.