Создайте код Тростника-Solomon из бинарных векторных данных
Communications Toolbox / Выявление ошибок и Исправление / Блок
Блок Binary-Input RS Encoder создает код Тростника-Solomon.
Символы для кода являются двоичными последовательностями длины 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)
— Длина кодовой комбинации7
(значение по умолчанию) | целое числоДлина кодовой комбинации в символах, заданных как целое число.
Для получения дополнительной информации смотрите Ограничения на M и Длину кодовой комбинации N и Длину сигнала Ввода и вывода в Блоках RS.
Message length K (symbols)
— Передайте размер слова3
(значение по умолчанию) | целое числоПередайте размер слова в символах, заданных как целое число от 1 до N –2, где N является длиной кодовой комбинации.
Shortened message length S (symbols)
— Сокращенный размер слова сообщения3
(значение по умолчанию) | целое числоСокращенный размер слова сообщения в символах, заданных как целое число, такое, что S ≤ K. Когда Shortened message length S (symbols) <Message length K (symbols), код Тростника-Solomon сокращен.
Вы все еще задаете N и значения K для во всю длину (N, K) код, но декодирование сокращено к (N –K+S, S) код.
Чтобы включить этот параметр, выберите Specify shortened message length.
Generator polynomial
— Полином генератораrsgenpoly(7, 3, [], [], 'double')
(значение по умолчанию) | полиномиальный вектор символов | вектор строки двоичных знаков | двоичный файл вектор - строка Галуа Полином генератора со значениями от 0 до 2M–1, в порядке убывающей степени, заданной как одно из следующего:
Полиномиальный вектор символов. Для получения дополнительной информации смотрите Символьное представление Полиномов.
Целочисленный вектор - строка, который представляет коэффициенты полинома генератора в порядке убывающей степени.
Целочисленный вектор - строка Галуа, который представляет коэффициенты полинома генератора в порядке убывающей степени.
Каждый коэффициент является элементом Поля Галуа, заданного примитивным полиномом. Для получения дополнительной информации смотрите, Задают Полином Генератора.
Пример: [1 3 1 2 3]
, который эквивалентен rsgenpoly(7,3)
Чтобы включить этот параметр, выберите Specify generator polynomial.
Primitive polynomial
— Примитивный полином'X^3 + X + 1'
(значение по умолчанию) | полиномиальный вектор символов | вектор строки двоичных знаковПримитивный полином в порядке убывающей степени. Этот полином имеет порядок M и задает конечный GF Поля Галуа (2M) соответствие целым числам, которые формируют слова сообщения и кодовые комбинации. Задайте примитивный полином как одно из следующего:
Полиномиальный вектор символов. Для получения дополнительной информации смотрите Символьное представление Полиномов.
Вектор строки двоичных знаков, который представляет коэффициенты полинома генератора.
Для получения дополнительной информации смотрите Ограничения на M и Длину кодовой комбинации N.
Пример: 'X^3 + X + 1'
, который является примитивным полиномом, используемым для (7,3) код, de2bi(primpoly(3,'nodisplay'),'left-msb')
Чтобы включить этот параметр, выберите 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
.
Код Тростника-Solomon имеет размер слова сообщения, 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 смотрите Целочисленный формат (Только Тростник-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 для определения полинома генератора кода Тростника-Solomon. Введите целочисленный вектор - строку со значениями элемента от 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 является размером слова сообщения.
1
s и 0
s имеют точно противоположные значения для векторов стирания и прокола.
В векторе прокола,
1
означает, что символ данных передается через неизменный блок.
0
означает, что символ данных должен быть проколот или удален от потока данных.
В векторе стирания,
1
означает, что символ данных должен быть заменен символом стирания.
0
означает, что символ данных передается через неизменный блок.
Эти соглашения применяются и к энкодеру и к декодеру. Для получения дополнительной информации смотрите Сокращение, Прокалывание и Стирания.
Порт | Поддерживаемые типы данных |
---|---|
\in |
|
|
Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные в Алгоритмах для BCH и RS Декодирование Только для ошибок.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.