exponenta event banner

dsp. HDLFIRDecimation

Децимационный фильтр с конечной импульсной характеристикой (FIR) - оптимизирован для генерации кода HDL

Описание

dsp.HDLFIRDecimation Система object™ реализует многофазный децимационный фильтр FIR, оптимизированный для генерации кода HDL. Он обеспечивает аппаратный интерфейс с входными и выходными управляющими сигналами. Для обеспечения точного по циклу моделирования генерируемого кода HDL объектные модели архитектурных задержек, включая регистры конвейера и совместное использование ресурсов.

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

Объект имеет две структуры фильтров. Систолическая архитектура прямого вида обеспечивает полностью параллельную реализацию, которая обеспечивает эффективное использование блоков Intel ® и Xilinx ® DSP. Транспонированная архитектура прямой формы является полностью параллельной реализацией, которая подходит для приложений FPGA и ASIC. Для реализации фильтра, соответствующего множителям, регистрам конвейера и предварительным сумматорам конфигурации DSP поставщика FPGA, укажите целевое устройство при создании кода HDL.

Объект реализует один фильтр для каждой выборки во входном векторе. Затем объект совместно использует этот фильтр между многофазными субфильтрами путем перемежения коэффициентов субфильтра во времени.

Для фильтрации и децимации входных данных с помощью алгоритма, оптимизированного для HDL:

  1. Создать dsp.HDLFIRDecimation и задайте его свойства.

  2. Вызовите объект с аргументами, как если бы это была функция.

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

firDecim = dsp.HDLFIRDecimation создает объект System фильтра децимации FIR, оптимизированный по умолчанию для HDL.

firDecim = dsp.HDLFIRDecimation(dec,num) устанавливает DecimationFactor свойство для dec и Numerator свойство для num.

firDecim = dsp.HDLFIRDecimator(___,Name,Value) задает свойства, используя одну или несколько пар имя-значение в дополнение к любой комбинации входных аргументов из предыдущих синтаксисов. Заключите каждое имя свойства в кавычки. Например, 'FilterStructure','Direct form transposed' определяет архитектуру фильтра как полностью параллельную реализацию, подходящую для приложений FPGA и ASIC.

Свойства

развернуть все

Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.

Если свойство настраивается, его значение можно изменить в любое время.

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Главный

Коэффициенты КИХ-фильтра, заданные как действительный или комплексный вектор. Вектор можно указать как переменную рабочей области или как вызов функции проектирования фильтра. Когда входной тип данных является типом с плавающей запятой, объект переводит коэффициенты в тот же тип данных, что и входные. Если входной тип данных является целым типом или типом с фиксированной точкой, можно изменить тип данных коэффициента с помощью CoefficientsDataType собственность.

Пример: firpm(30,[0 0.1 0.2 0.5]*2,[1 1 0 0]) определяет коэффициенты с помощью функции проектирования фильтра линейной фазы.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Архитектура фильтра HDL, указанная как одна из следующих структур:

  • 'Direct form systolic' - Эта архитектура обеспечивает реализацию полностью параллельного фильтра, что позволяет эффективно использовать блоки Intel и Xilinx DSP.

  • 'Direct form transposed' - Эта архитектура является полностью параллельной реализацией, которая подходит для приложений FPGA и ASIC.

Обе реализации совместно используют ресурсы путем перемежения коэффициентов субфильтра по одной реализации фильтра для каждой выборки во входном векторе.

Объект реализует многофазный фильтр разложения с помощью dsp.HDLFIRFilter Системные объекты. Дополнительные сведения об архитектуре см. в разделах «Полностью параллельная систолическая архитектура» и «Полностью параллельная транспонированная архитектура» на странице ссылок на блоки, оптимизированные для дискретного КИХ-фильтра HDL.

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

Типы данных

Метод округления для литья по типу выходных данных, указанный как 'Floor', 'Ceiling', 'Convergent', 'Nearest', 'Round', или 'Zero'. Объект использует это свойство при приведении выходных данных к типу данных, указанному OutputDataType собственность. Если входной тип данных - плавающая точка, объект игнорирует это свойство. Дополнительные сведения см. в разделе Режимы округления.

Обработка переполнения для литья по типу выходного сигнала, указанного как 'Wrap' или 'Saturate'. Объект использует это свойство при приведении выходных данных к типу данных, указанному OutputDataType собственность. Если входной тип данных - плавающая точка, объект игнорирует это свойство. Дополнительные сведения см. в разделе Обработка переполнения.

Тип данных коэффициентов фильтра, указанный как 'Same word length as input' или numerictype (Конструктор фиксированных точек). Чтобы указать numerictype объект, вызов numerictype(s,w,f), где:

  • s является 1 для подписанных и 0 для неподписанных.

  • w - длина слова в битах.

  • f - количество дробных битов.

Объект преобразует коэффициенты фильтра в указанный тип данных. Квантование округляется до ближайшего представимого значения и насыщается при переполнении. Если входной тип данных - плавающая точка, объект игнорирует это свойство.

Тип данных выходного сигнала фильтра, указанный как 'Same word length as input', 'Full precision', или numerictype (Конструктор фиксированных точек). Чтобы указать numerictype объект, вызов numerictype(s,w,f), где:

  • s является 1 для подписанных и 0 для неподписанных.

  • w - длина слова в битах.

  • f - количество дробных битов.

Объект приводит выходные данные фильтра к указанному типу данных. Квантование использует настройки RoundingMethod и OverflowAction свойства. Если входной тип данных - плавающая точка, объект игнорирует это свойство.

Объект увеличивает длину слова для полной точности в каждом отводе фильтра и переводит окончательный вывод в заданный тип. Максимальный окончательный внутренний тип данных (WF) зависит от типа входных данных (WI), типа данных коэффициента (WC) и количества коэффициентов (L) и задается

WF = WI + WC + ceil(log2(L)).

Поскольку значения коэффициентов ограничивают потенциальный рост, обычно фактическая внутренняя длина слова полной точности меньше, чем WF.

Аргументы управления

Параметр для включения параметра reset input, указанный как true или false. При установке для этого свойства значения true, объект ожидает значение для reset входной аргумент. Сигнал сброса реализует локальный синхронный сброс регистров тракта данных.

Дополнительные сведения о сбросе см. в разделе Советы.

Опция подключения регистров тракта данных к сгенерированному сигналу глобального сброса HDL, указанная как true или false. Установить для этого свойства значение true для подключения сгенерированного сигнала глобального сброса HDL к регистрам тракта данных. Это свойство не изменяет аргументы объекта и поведение моделирования в MATLAB ®. При установке для этого свойства значенияfalseсгенерированный глобальный сброс HDL очищает только регистры тракта управления. Сгенерированный глобальный сброс HDL может быть синхронным или асинхронным в зависимости от настроек генерации кода HDL.

Дополнительные сведения о сбросе см. в разделе Советы.

Использование

Описание

[dataOut,validOut] = firDecim(dataIn,validIn) фильтрует входные данные только тогда, когда validIn является true.

[dataOut,validOut] = firDecim(dataIn,validIn,reset) фильтрует данные при reset является false. Когда reset является trueобъект сбрасывает регистры фильтра. Объект ожидает reset аргумент только при установке ResetInputPort свойство для true. Дополнительные сведения о сбросе см. в разделе Советы.

Входные аргументы

развернуть все

Входные данные, заданные как скаляр или вектор с реальным или комплексным значением. При использовании векторного ввода коэффициент прореживания должен быть целым числом, кратным размеру вектора. Размер вектора должен быть меньше или равен 64.

Если входной тип данных является целым типом или типом с фиксированной точкой, объект использует арифметику с фиксированной точкой для внутренних вычислений.

double и single типы данных поддерживаются для моделирования, но не для генерации кода HDL.

Типы данных: fi | single | double | int8 | int16 | int32 | uint8 | uint16 | uint32
Поддержка комплексного номера: Да

Достоверность входных данных, указанных как логический скаляр. dataIn действителен только в том случае, если этот аргумент 1 (true).

Типы данных: logical

Управляющий сигнал, который очищает состояние пути данных, указанное как логический скаляр. Когда этот аргумент 1объект останавливает текущий расчет и очищает внутреннее состояние фильтра. Сигнал сброса является синхронным и сбрасывает состояние тракта данных и управляющего тракта. Дополнительные сведения о сбросе см. в разделе Советы.

Зависимости

Чтобы включить этот аргумент, установите ResetInputPort свойство для true.

Типы данных: logical

Выходные аргументы

развернуть все

Отфильтрованные выходные данные, возвращаемые как скаляр реального или комплексного значения. Когда входные данные являются данными с плавающей запятой, выходные данные наследуют тип данных входных данных. Если входные данные являются целочисленным типом или типом с фиксированной точкой, свойство OutputDataType указывает тип выходных данных.

Продукция valid сигнал указывает, какие выборки действительны после прореживания.

Типы данных: fi | single | double
Поддержка комплексного номера: Да

Достоверность выходных данных, возвращаемых как логический скаляр. Объект задает для этого аргумента значение 1 (true) с каждой допустимой выходной информацией в dataOut аргумент.

Типы данных: logical

Функции объекта

Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:

release(obj)

развернуть все

getLatencyЗадержка фильтра децимации FIR
stepЗапустить алгоритм объекта System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
resetСброс внутренних состояний объекта System

Совет

Сбросить поведение

  • По умолчанию dsp.HDLFIRFilter объект соединяет сгенерированный глобальный сброс HDL только с регистрами тракта управления. Два свойства ResetInputPort и HDLGlobalReset соединяют сигнал сброса с регистрами путей данных. Из-за дополнительной маршрутизации и нагрузки на сигнал сброса сброс регистров тракта данных может снизить производительность синтеза.

  • ResetInputPort активизирует свойство reset аргумент объекта. Сигнал сброса реализует локальный синхронный сброс регистров тракта данных. Для оптимального использования ресурсов FPGA эта опция не подключает сигнал сброса к регистрам, предназначенным для блоков DSP FPGA.

  • HDLGlobalReset свойство соединяет сгенерированный сигнал глобального сброса HDL с регистрами тракта данных. Это свойство не изменяет аргументы объекта и поведение моделирования в MATLAB. Сгенерированный глобальный сброс HDL может быть синхронным или асинхронным в зависимости от настроек генерации кода HDL. В зависимости от устройства использование глобального сброса может привести к перемещению регистров из блоков DSP и увеличению использования ресурсов.

  • При установке обоих параметров ResetInputPort и HDLGlobalReset свойства для true, сигналы глобального и локального сброса очищают регистры тракта управления и передачи данных.

Алгоритмы

Этот объект System реализует алгоритмы, описанные на странице ссылок блока «FIR Decimation HDL Optimized».

Примечание

Выходной сигнал dsp. Объект эксимации HDLFAXimation не соответствует выходному сигналу dsp.FIRDecimation образец объекта для образца. Это различие обусловлено главным образом фазой, на которой образцы применяются к субфильтрам. Для соответствия dsp.FIRDecimation объект, применить DecimationFactor - 1 нуль в dsp. Объект-эксимация HDLFA.в начале потока данных.

DSP. Объект-эксимация HDLFAXimation также использует несколько другие типы данных для вычислений с полной точностью. Различные типы данных могут также вводить различия в выходных значениях, если значения переполняют внутренние типы данных.

Представлен в R2020b