Кодер поддерживает генерацию HDL-кода для прямого КИХ формы многофазные конвертеры частоты дискретизации. dsp.FIRRateConverter
структура многоскоростного фильтра, которая комбинирует коэффициент интерполяции и фактор децимации. Эта комбинация позволяет вам выполнить дробную интерполяцию или децимацию на входном сигнале.
Коэффициент интерполяции (l
) и фактор децимации (m
) для многофазной частоты дискретизации конвертер заданы как целые числа в InterpolationFactor
и DecimationFactor
свойства dsp.FIRRateConverter
Система object™. Этот код создает объект с отношением передискретизации 5/3:
frac_cvrter = dsp.FIRRateConverter('InterpolationFactor',5, ... 'DecimationFactor',3)
Дробная передискретизация уровня может визуализироваться как двухступенчатый процесс: интерполяция факторным l
, сопровождаемый децимацией факторным m
. Для отношения передискретизации 5/3 объект повышает частоту дискретизации фактором 5 использований многофазного фильтра с пятью путями. Переключатель передискретизации затем уменьшает новый уровень фактором 3. Этот процесс извлекает пять выходных выборок для каждых трех входных выборок.
Для получения общей информации об этой структуре фильтра смотрите dsp.FIRRateConverter
страница с описанием в документации DSP System Toolbox™.
Поток сигналов для dsp.FIRRateConverter
фильтр похож на многофазный КИХ-интерполятор (dsp.FIRInterpolator
). Линия задержки совершенствуется, чтобы поставить каждый вход после того, как необходимый набор многофазных коэффициентов будет обработан.
Схема иллюстрирует синхронизацию реализации HDL для dsp.FIRRateConverter
. Часы включают вход (ce_in
) указывает на допустимые входные выборки. Выходные данные и часы включают выход (ce_out
), производятся и поставляются одновременно, который приводит к апериодическому выходу.
Тактовая частота, требуемая обработать аппаратную логику, связана с входным уровнем как:
ceil(InterpolationFactor/DecimationFactor)
Для отношения передискретизации 5/3 тактовой частотой является ceil(5/3) = 2
, или дважды входная частота дискретизации. Входные параметры поставляются в любом такте. Выходные параметры поставляются, когда они производятся и поэтому апериодические.
Когда логика сгенерированного кода или оборудования развертывается, выходные параметры должны быть взяты в FIFO, спроектированный с выходными параметрами, происходящими на желаемом уровне выборки.
Сущность HDL или модуль сгенерированы от dsp.FIRRateConverter
фильтр имеет вход того, и два выходных часов включают порты:
Часы включают выходные параметры: часы по умолчанию включают имя выходного порта, ce_out
. Этот сигнал указывает, когда выборка выходных данных допустима. Как с другими многоскоростными фильтрами, можно использовать поле Clock enable output port на вкладке Global Settings> Ports диалогового окна Generate HDL, чтобы задать имя порта. В качестве альтернативы можно использовать ClockEnableOutputPort
свойство определить имя порта в generatehdl
команда.
Фильтр также проходит через часы, включают вход к выходному порту под названием ce_in
. Этот сигнал указывает, когда объект принял входную выборку. Можно использовать этот сигнал управлять восходящим потоком данных. Вы не можете настроить это имя порта.
Часы включают вход: часы по умолчанию включают имя входного порта, clk_enable
. Этот сигнал указывает, когда выборка входных данных допустима. Можно использовать поле Clock enable input port на вкладке Global Settings диалогового окна Generate HDL, чтобы задать имя порта. В качестве альтернативы можно использовать ClockEnableInputPort
свойство определить имя порта в generatehdl
команда.
Сгенерированные испытательные стенды применяют тестовые векторы на правильном уровне, затем наблюдают и проверяют выход, когда это доступно. Управление испытательными стендами поток данных с помощью часов ввода и вывода включает.
Следующий пример создает фиксированную точку dsp.FIRRateConverter
объект с отношением передискретизации 5/3, и генерирует код фильтра VHDL. Когда вы генерируете HDL-код для Системного объекта, задаете входной тип данных с фиксированной точкой. Объект определяет внутренние типы данных на основе входного типа и настроек свойства.
frac_cvrter = dsp.FIRRateConverter('InterpolationFactor',5,'DecimationFactor',3) generatehdl(frac_cvrter,'InputDataType',numerictype(1,16,15))
### Starting VHDL code generation process for filter: filter ### Generating: H:\hdlsrc\filter.vhd ### Starting generation of filter VHDL entity ### Starting generation of filter VHDL architecture ### Successful completion of VHDL code generation process for filter: filter ### HDL latency is 2 samples
Следующие опции генерации кода не поддержаны для dsp.FIRRateConverter
фильтры:
Использование конвейерных регистров (AddPipelineRegisters
)
Распределенная Арифметическая архитектура (DARadix
и (DALUTPartition
))
Полностью или частично последовательная архитектура (SerialPartition
и ReuseAccum
)
Несколько входных параметров часов (ClockInputs
)