Выведенный целым числом декодер RS
Декодируйте код Тростника-Solomon, чтобы восстановить целочисленные векторные данные
Описание
Блок Integer-Output RS Decoder восстанавливает вектор сообщения с вектора кодовой комбинации Тростника-Solomon. Для соответствующего декодирования значения параметров в этом блоке должны совпадать с теми в соответствующем блоке Integer-Input RS Encoder.
Код Тростника-Solomon имеет длину сообщения K и длина кодовой комбинации N – number of punctures. Вы задаете N и K непосредственно в диалоговом окне блока. Символы для кода являются целыми числами между 0 и 2M-1, которые представляют элементы конечного поля GF (2M). Ограничения на M и N описаны в Ограничениях на M и Длину кодовой комбинации N ниже.
Блок может вывести сокращенные кодовые комбинации, когда Shortened message length S задан. В этом случае, длина кодовой комбинации N и длина сообщения, K должен задать во всю длину (N, K) код, который сокращен к (N –K+S, S) код.
Этот значок показывает дополнительные порты.
Ввод и вывод является сигналами с целочисленным знаком, которые представляют кодовые комбинации и сообщения, соответственно. Для получения дополнительной информации смотрите Длину сигнала Ввода и вывода в Блоках RS. Блок наследовал тип выходных данных от типа входных данных. Для получения информации о типах данных, которые поддерживает каждый порт блока смотрите Поддерживаемые Типы данных.
Для получения дополнительной информации о представлении данных для кодов Тростника-Solomon смотрите раздел Integer Format (Только Тростник-Solomon).
Если декодер обрабатывает несколько кодовых комбинаций на кадр, то тот же шаблон прокола содержит для всех кодовых комбинаций.
Значением по умолчанию M является ceil(log2(N+1))
, то есть, самое маленькое целое число, больше, чем или равный log2 (N+1). Можно изменить значение M от значения по умолчанию путем указывания, что примитивный полином для GF (2M), как описано в Задают Примитивный Полином ниже.
Можно также указать, что полином генератора для кода Тростника-Solomon, как описано в Задают Полином Генератора.
(N, K) код Тростника-Solomon может исправить до ошибок символа floor((N-K)/2)
(не битовые ошибки) в каждой кодовой комбинации.
Второй вывод является количеством ошибок, обнаруженных во время декодирования кодовой комбинации.-1 указывает, что блок обнаружил больше ошибок, чем он мог исправить использование схемы кодирования. (N, K) код Тростника-Solomon может исправить до ошибок символа floor((N-K)/2)
(не битовые ошибки) в каждой кодовой комбинации. Тип данных этого вывода также наследован от входного сигнала.
Можно отключить второй вывод путем отмены выбора Output number of corrected errors. Это удаляет второй выходной порт блока.
При декодировании сбоев фрагмент сообщения входа декодера возвращен неизменный как декодер вывод.
Шаги расчета сигналов ввода и вывода равны.
Параметры
- Codeword length N
Длина кодовой комбинации в символах.
- Message length K
Длина сообщения в символах.
- Specify shortened message length
Установка этого флажка включает текстовое поле Shortened message length S.
- Shortened message length S
Сокращенная длина сообщения в символах. Когда вы задаете этот параметр, обеспечьте N во всю длину и значения K, чтобы задать (N, K) код, который сокращен к (N –K+S, S) код.
- Specify generator polynomial
Установка этого флажка включает текстовое поле Generator polynomial.
- Generator polynomial
Целочисленный вектор - строка, записи которого находятся в диапазоне от 0 до 2M-1, представляя полином генератора в порядке убывания степеней. Каждый коэффициент является элементом Поля Галуа, заданного примитивным полиномом.
Этот параметр применяется только, когда вы выбираете Specify generator polynomial.
- Specify primitive polynomial
Установка этого флажка включает текстовое поле Primitive polynomial.
- Primitive polynomial
Этот параметр применяется только, когда вы выбираете Specify primitive polynomial.
Вектор строки двоичных знаков представление примитивного полинома в порядке убывания степеней.
- Puncture code
Установка этого флажка включает текстовое поле Puncture vector.
- Puncture vector
Вектор-столбец длины N–K. В Puncture vector значение 1
представляет это, неизменные передачи символа данных, и 0
представляют это, символ данных проколот или удалил от потока данных.
Значением по умолчанию является [ones(2,1); zeros(2,1)]
.
Этот параметр применяется только, когда вы выбираете Puncture code.
- Enable erasures input port
Установка этого флажка откроет порт, Era
. Этот порт принимает входной сигнал вектора столбца двоичных данных с тем же размером как кодовая комбинация.
Значения стирания 1
представляют символы в том же положении в кодовой комбинации, которая стирается, и значения 0
представляют символы, которые не становятся стертыми.
- Output number of corrected errors
Когда вы устанавливаете этот флажок, блок выводит количество исправленных ошибок символа в каждом слове через второй выходной порт. Отказ декодирования происходит, когда определенное слово во входе содержит больше, чем (N –K)/2 ошибки. Значение -1
указывает на отказ декодирования в соответствующем положении во втором выходном векторе.
Характеристики блока
Типы данных | double | integer | single
|
Многомерные сигналы | no
|
Сигналы переменного размера | no
|
Больше о
развернуть все
Длина сигнала ввода и вывода в блоках RS
Код Тростника-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
Выведите длину (символы):
N C × (N –P)
|
Введите длину (символы):
N C × S
Выведите длину (символы):
N C × (N –K+S–P)
|
Выведенный целым числом декодер RS
|
Введите длину (символы):
N C × (N –P)
Длина стираний (символы):
N C × (N –P)
Выведите длину (символы):
N C × K
|
Введите длину (символы):
N C × (N –K+S–P)
Длина стираний (символы):
N C × (N –K+S–P)
Выведите длину (символы):
N C × S
|
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), которое соответствует значениям, которые формируют слова сообщения и кодовые комбинации.
Задайте примитивный полином
Можно задать примитивный полином, который задает конечное поле GF (2M), соответствуя целым числам, которые формируют сообщения и кодовые комбинации. Для этого сначала выберите Specify primitive polynomial. Затем в текстовом поле Primitive polynomial введите вектор строки двоичных знаков, который представляет примитивный полином по GF (2M), в порядке убывания степеней. Например, чтобы задать полином x3+x+1, введите векторный [1 0 1 1]
.
Если вы не выбираете Specify primitive polynomial, блок использует примитивный полином по умолчанию степени M =, перекрывают (log2 (N+1)). Можно отобразить полином по умолчанию путем ввода primpoly(ceil(log2(N+1)))
в подсказке MATLAB®.
Задайте полином генератора
Выберите 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 |
Плавающая точка двойной точности Плавающая точка с одинарной точностью 8-, 16-, и 32-битные целые числа со знаком 8-, 16-, и 32-битное беззнаковое целое
|
|
Плавающая точка двойной точности Плавающая точка с одинарной точностью 8-, 16-, и 32-битные целые числа со знаком 8-, 16-, и 32-битное беззнаковое целое
|
Эра |
|
Допустить ошибку |
Плавающая точка двойной точности Плавающая точка с одинарной точностью 8-, 16-, и 32-битные целые числа со знаком Если вход является uint8, uint16, или uint32, то количество ошибок выходной тип данных является int8, int16, или int32, соответственно.
|
Ссылки
[1] Ивовый прут, Стивен Б., системы контроля ошибок для цифровой связи и устройства хранения данных. Верхний Сэддл-Ривер, Нью-Джерси: Prentice Hall, 1995.
[2] Berlekamp, Элвин Р., Алджебрэйк-Кодинг-Зэори, Нью-Йорк: McGraw-Hill, 1968.
[3] Кларк, Джордж К. младший и J. Затвор Каин. Кодирование с коррекцией ошибок для цифровой связи, Нью-Йорка: нажатие пленума, 1981.
Расширенные возможности
Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.
Смотрите также
Блоки
Системные объекты
Функции
Представлено до R2006a