Сверхдискретизируйте, отфильтруйте и субдискретизируйте — оптимизированный для генерации HDL-кода
Система dsp.HDLFIRRateConverter
object™ сверхдискретизировала, фильтрует и субдискретизирует входные сигналы. Это оптимизировано для генерации HDL-кода и работает с одной выборкой каждого канала за один раз. Объект реализует эффективную многофазную архитектуру, чтобы избежать ненужных арифметических операций и высоких промежуточных частот дискретизации.
Объект сверхдискретизировал целочисленным фактором L, применяет КИХ-фильтр и субдискретизирует целочисленным фактором M. Объект принимает и возвращает аргументы управляющего сигнала для того, чтобы следовать по потоку выборок. Для детали интерфейса управления потоками смотрите Управление потоками.
Передискретизировать и отфильтровать входные данные:
Создайте объект dsp.HDLFIRRateConverter
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
HDLFIRRC = dsp.HDLFIRRateConverter
HDLFIRRC = 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)