Декодируйте код Тростника-Solomon, чтобы восстановить бинарные векторные данные
Communications Toolbox / Выявление ошибок и Коррекция / Блок
Блок 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.
Этот значок показывает все порты, включая дополнительные единицы:
In
— Кодовая комбинация тростника-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)
Era
— Вектор стиранияВектор стирания в символах в виде (N C× (N – K + S – P))-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
Out
— Декодируемое сообщениеДекодируемое сообщение в битах, возвращенных как одно из следующего:
Когда нет никакого сокращения сообщения, (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)
Err
— Декодирование ошибокОшибки декодирования символа, возвращенные как целочисленный вектор с N C элементы, где N C является количеством кодовых комбинаций. Этот порт указывает на количество ошибок символа, обнаруженных во время декодирования каждой кодовой комбинации. Отрицательное целое число указывает, что блок обнаружил больше ошибок, чем это могло откорректировать при помощи заданной схемы кодирования.
(N, K) код Тростника-Solomon может откорректировать до floor((N-K)/2)
ошибки символа (не битовые ошибки) в каждой кодовой комбинации. Когда полученная кодовая комбинация содержит больше, чем (N-K)/2 ошибки символа, отказ декодирования происходит.
Чтобы включить этот порт, выберите Output number of corrected symbol errors.
Типы данных: double
Для получения дополнительной информации смотрите Поддерживаемые Типы данных.
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), код Тростника-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, которые проколоты или удалили от потока данных. Для получения дополнительной информации смотрите Прокалывание и Стирания.
Чтобы включить этот параметр, выберите Punctured code.
Enable erasures input port
— Включите входной порт стиранийУстановка этого флажка включает порт стираний, Era. Для получения дополнительной информации смотрите Прокалывание и Стирания.
Output number of corrected symbol errors
— Позвольте порту вывести количество откорректированных ошибок символаУстановка этого флажка включает дополнительный выходной порт, Err, который указывает на количество ошибок символа блок, откорректированный во входной кодовой комбинации.
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 является размером слова сообщения.
1s и
0
s имеют точно противоположные значения для векторов стирания и прокола.
В векторе прокола,
1 средние значения, что символ данных передается через неизменный блок.
0 средние значения, что символ данных должен быть проколот или удален от потока данных.
В векторе стирания,
1 средние значения, что символ данных должен быть заменен символом стирания.
0 средние значения, что символ данных передается через неизменный блок.
Эти соглашения применяются и к энкодеру и к декодеру. Для получения дополнительной информации смотрите Сокращение, Прокалывание и Стирания.
Порт | Поддерживаемые типы данных |
---|---|
\in |
|
| |
Эра |
|
Допустить ошибку |
|
Этот блок использует Berlekamp-Massey декодирование алгоритма. Для получения информации об этом алгоритме см. Алгоритмы для BCH и RS Декодирование Только для ошибок.
[1] Ивовый прут, системы контроля ошибок Стивена Б. для цифровой связи и устройства хранения данных. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1995.
[2] Berlekamp, Элвин Р. Алгебраическая теория кодирования. Нью-Йорк: McGraw-Hill, 1968.
[3] Кларк, Джордж К. младший и J. Затвор Каин. Кодирование с коррекцией ошибок для цифровой связи. Нью-Йорк: нажатие пленума, 1981.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.