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

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

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