Многофазные конвертеры частоты дискретизации

Генерация кода для многофазного конвертера частоты дискретизации

Кодер поддерживает генерацию 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™.

Реализация HDL для многофазного конвертера частоты дискретизации

Поток сигналов, задержка и синхронизация

Поток сигналов для 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)