exponenta event banner

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

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

Кодер поддерживает генерацию кода HDL для преобразователей частоты многофазных выборок прямой формы FIR. 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 справочная страница в документации по Toolbox™ системы DSP.

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

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

Поток сигналов для dsp.FIRRateConverter фильтр аналогичен полифазному FIR-интерполятору (dsp.FIRInterpolator). Линия задержки продвигается для подачи каждого входного сигнала после обработки требуемого набора многофазных коэффициентов.

Диаграмма иллюстрирует время реализации HDL для dsp.FIRRateConverter. Вход включения синхронизации (ce_in) указывает допустимые входные выборки. Выходные данные и выходной сигнал включения тактового синхросигнала (ce_out), производятся и доставляются одновременно, что приводит к непериодическому выходу.

Тактовая частота

Тактовая частота, необходимая для обработки аппаратной логики, связана с входной скоростью как:

ceil(InterpolationFactor/DecimationFactor) 

Для коэффициента повторной выборки 5/3 тактовая частота равна ceil(5/3) = 2или в два раза больше входной частоты дискретизации. Входные сигналы поступают в каждый другой тактовый цикл. Выходные данные выдаются по мере их получения и поэтому являются непериодическими.

Примечание

Когда генерируемый код или аппаратная логика развернута, выходы должны быть приняты в FIFO, сконструированный с выходами, происходящими с требуемой частотой дискретизации.

Порты включения тактового синхросигнала

Объект или модуль HDL, сгенерированный из dsp.FIRRateConverter фильтр имеет один входной и два выходных порта включения тактового синхросигнала:

  • Clock enable outts: имя выходного порта clock enable по умолчанию: ce_out. Этот сигнал указывает, когда выборка выходных данных действительна. Как и в случае с другими многоскоростными фильтрами, для указания имени порта можно использовать поле Clock enable output port на вкладке Global Settings > Ports диалогового окна Generate HDL. Кроме того, можно использовать ClockEnableOutputPort для установки имени порта в generatehdl команда.

    Фильтр также проходит через вход включения синхронизации к выходному порту с именем ce_in. Этот сигнал указывает, когда объект принял входной образец. Этот сигнал можно использовать для управления восходящим потоком данных. Невозможно настроить это имя порта.

  • Clock enable input: имя входного порта clock enable по умолчанию: clk_enable. Этот сигнал указывает, когда выборка входных данных действительна. Для указания имени порта можно использовать поле Clock enable input port на вкладке Global Settings диалогового окна Generate HDL. Кроме того, можно использовать ClockEnableInputPort для установки имени порта в generatehdl команда.

Создание испытательного стенда

Созданные тестовые стенды применяют тестовые векторы с правильной скоростью, затем наблюдают и проверяют наличие выходных данных. Тестовые стенды управляют потоком данных с помощью входного и выходного синхросигнала.

Создание кода

В следующем примере создается фиксированная точка dsp.FIRRateConverter объект с коэффициентом повторной выборки 5/3 и генерирует код фильтра VHDL. При создании кода HDL для объекта System укажите тип входных данных с фиксированной точкой. Объект определяет внутренние типы данных на основе типа ввода и параметров свойств.

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)