Сверхдискретизируйте, отфильтруйте и субдискретизируйте — оптимизированный для генерации HDL-кода
Система dsp.HDLFIRRateConverter object™ сверхдискретизировала, фильтрует и субдискретизирует входные сигналы. Это оптимизировано для генерации HDL-кода и работает с одной выборкой каждого канала за один раз. Объект реализует эффективную многофазную архитектуру, чтобы избежать ненужных арифметических операций и высоких промежуточных частот дискретизации.

Объект сверхдискретизировал целочисленным фактором L, применяет КИХ-фильтр и субдискретизирует целочисленным фактором M. Объект принимает и возвращает аргументы управляющего сигнала для того, чтобы следовать по потоку выборок. Для детали интерфейса управления потоками смотрите Управление потоками.
Передискретизировать и отфильтровать входные данные:
Создайте объект dsp.HDLFIRRateConverter и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
HDLFIRRC = dsp.HDLFIRRateConverterHDLFIRRC = dsp.HDLFIRRateConverter(L,M,num)HDLFIRRC = dsp.HDLFIRRateConverter(___,Name,Value) возвращает Системный объект, HDLFIRRC = dsp.HDLFIRRateConverterHDLFIRRC, который передискретизирует каждый канал входа. Объект сверхдискретизировал целочисленным фактором L, применяет КИХ-фильтр и субдискретизирует целочисленным фактором M. L/M по умолчанию является 3/2.
устанавливает свойство HDLFIRRC = dsp.HDLFIRRateConverter(L,M,num)InterpolationFactor на L, свойство DecimationFactor к M и свойство Numerator к num.
свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки. Например:HDLFIRRC = dsp.HDLFIRRateConverter(___,Name,Value)
HDLFIRRC = dsp.HDLFIRRateConverter(L,M,Num,'ReadyPort',true,'RequestPort',true);
Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.
Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.
[dataOut,validOut]
= HDLFIRRC(dataIn,validIn)[dataOut,ready,validOut]
= HDLFIRRC(dataIn,validIn)[dataOut,ready,validOut]
= HDLFIRRC(dataIn,validIn,request)[ передискретизирует dataOut,validOut]
= HDLFIRRC(dataIn,validIn)dataIn согласно свойствам InterpolationFactor (L) и DecimationFactor (M). Чтобы избежать пропущенных выборок при использовании этого синтаксиса, примените новые допустимые входные выборки, с набором validIn к true, только каждый ceil(L/M) вызовы объекта. Объект устанавливает validOut на true, когда dataOut является новой допустимой выборкой.
[ передискретизирует входные данные и возвращает dataOut,ready,validOut]
= HDLFIRRC(dataIn,validIn)ready, чтобы указать, может ли объект принять новую выборку на следующем вызове.
Этот синтаксис применяется, когда вы устанавливаете свойство ReadyPort на true. Например:
HDLFIRRC = dsp.HDLFIRRateConverter(...,'ReadyPort',true); ... [dataOut,validOut,ready] = rateConverter(dataIn,validIn);
[ передискретизирует входные данные, указывает, может ли объект принять новую выборку, и, если dataOut,ready,validOut]
= HDLFIRRC(dataIn,validIn,request)request является true, возвращает следующую доступную выборку.
Этот синтаксис применяется, когда вы устанавливаете свойство RequestPort на true. Например:
HDLFIRRC = dsp.HDLFIRRateConverter(...,'RequestPort',true); ... [dataOut,validOut] = rateConverter(dataIn,validIn,request);
Можно соединить ready вывод нисходящего объекта к входу request восходящего объекта.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:
release(obj)