Декодируйте сообщение с помощью декодера кода Рида-Соломона
Оптимизированная HDL Система HDLRSDecoder
object™ восстанавливает вектор сообщения с вектора кодовой комбинации Тростника-Solomon (RS). Для соответствующего декодирования код и полиномиальные значения свойств для этого объекта должны совпадать с теми значениями в соответствующем энкодере.
Восстановить вектор сообщения с вектора кодовой комбинации Тростника-Solomon:
Создайте объект comm.HDLRSDecoder
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
Каждый входной кадр должен содержать больше, чем символы (N-K)*2
и меньше, чем или точно символы N
. Объект выводит сокращенный код, когда количество допустимых выборок данных между startIn
и endIn
является меньше, чем N
. Сокращенный код все еще требует, чтобы циклы N
выполнили поиск Цзяня. Если входной сигнал является меньше, чем символы N
, оставьте защитный интервал, по крайней мере, N - size
неактивными циклами прежде, чем запустить следующий кадр, где size
является длиной сообщения.
Декодер может работать максимум с четырьмя сообщениями за один раз. Если объект получает запуск пятого сообщения прежде полностью декодировать первое сообщение, объектные выборки данных об отбрасываниях из первого сообщения. Чтобы избежать этой проблемы, увеличьте число неактивных циклов между входными сигналами.
Полином генератора не задан явным образом. Однако это задано длиной кодовой комбинации, длиной сообщения и значением B для стартовой экспоненты корней. Чтобы получить значение B от полинома генератора, используйте функцию genpoly2b
.
RSDec = comm.HDLRSDecoder
RSDec = comm.HDLRSDecoder(Name,Value)
RSDec = comm.HDLRSDecoder(N,K,Name,Value)
создает оптимизированный HDL Системный объект декодера RS, RSDec
= comm.HDLRSDecoderRSDec
, который выполняет декодирование Тростника-Solomon.
свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки. Например, RSDec
= comm.HDLRSDecoder(Name,Value)
comm.HDLRSDecoder('BSource','Property','B',2)
устанавливает свойство RSDec
= comm.HDLRSDecoder(N,K,Name,Value)CodewordLength
на N
, свойство MessageLength
к K
и другие заданные имена свойства к заданным значениям.
Для версий ранее, чем R2016b, используйте функцию step
, чтобы запустить алгоритм Системного объекта. Аргументы к step
являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.
Например, y = step(obj,x)
и y = obj(x)
выполняют эквивалентные операции.
[Y,startOut,endOut,validOut,errOut] = RSDec(X,startIn,endIn,validIn)
[Y,startOut,endOut,validOut,errOut,numErrors] = RSDec(X,startIn,endIn,validIn)
[
декодирует тот, закодировал символ сообщения, Y
,startOut
,endOut
,validOut
,errOut
] = RSDec(X
,startIn
,endIn
,validIn
)X
, и возвращает декодируемый символ Y
. start
и сигналы end
указывают на контуры кадра сообщения. Если errOut
является 1
(true
), то объект обнаружил некорректируемые ошибки во входном кадре.
[
декодирует входные данные, и также возвращает количество ошибок, обнаруженных и исправленных. Чтобы использовать этот синтаксис, установите свойство Y
,startOut
,endOut
,validOut
,errOut
,numErrors
] = RSDec(X
,startIn
,endIn
,validIn
)NumErrorsOutputPort
на true
. Если errOut
является 1
(true
), то объект обнаружил некорректируемые ошибки в выходном кадре, и numErrors
недопустим.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)