getLatency

Задержка КИХ-фильтра

Описание

пример

Y = getLatency(hdlfir,inputType,[],isInputComplex) возвращает задержку, Y, между первой допустимой входной выборкой и первой допустимой выходной выборкой, принимая непрерывные входные выборки. Задержка зависит от структуры фильтра и коэффициентов фильтра. Используйте этот синтаксис, когда вы не будете использовать программируемые коэффициенты. Итоговые три аргумента могут быть дополнительными, в зависимости от конфигурации объекта.

  • Используйте inputType когда вы устанавливаете CoefficientsDataType свойство к 'Same word length as input'. Задержка может измениться с типом входных данных, потому что объект приводит коэффициенты к типу входных данных, который может влиять на совместное использование множителя для коэффициентов равного абсолютного значения.

  • Используйте isInputComplex когда ваши входные данные являются комплексными, и вы используете частично последовательную систолическую архитектуру. Задержка изменяется, когда вы имеете комплексные данные и объединяете коэффициенты из-за дополнительного конвейера сумматора. Когда вы задаете isInputComplex, необходимо также дать аргумент заполнителя, [] для неиспользованного третьего аргумента.

пример

Y = getLatency(hdlfir,coeffType,coeffPrototype,isInputComplex) возвращает задержку, Y, между первой допустимой входной выборкой и первой допустимой выходной выборкой, принимая непрерывные входные выборки. Задержка зависит от структуры фильтра и коэффициентов фильтра. Используйте этот синтаксис, когда вы будете использовать программируемые коэффициенты. coeffType тип данных входных коэффициентов. Итоговые два аргумента могут быть дополнительными, в зависимости от конфигурации объекта.

  • Используйте coeffPrototype оптимизировать программируемый фильтр для симметричных или антисимметричных коэффициентов. Прототип задает шаблон, за которым должны следовать все входные коэффициенты. На основе прототипа объект реализует оптимизированный фильтр, который совместно использует множители для симметричных коэффициентов. Если ваши входные коэффициенты все не соответствуют тому же шаблону, или выбирать из оптимизации множителя, можно не использовать этот аргумент или задать прототип как пустой вектор, [].

  • Используйте isInputComplex когда ваши входные данные являются комплексными. Когда вы задаете isInputComplex, необходимо также задать coeffPrototype или аргумент заполнителя, [].

пример

Y = getLatency(hdlfir) возвращает задержку, Y. Используйте этот синтаксис когда CoefficientsDataType установлен в числовой тип, вы не используете программируемые коэффициенты, и входные данные не являются комплексными.

Примеры

свернуть все

Задержка dsp.HDLFIRFilter Система object™ меняется в зависимости от структуры фильтра, опций сериализации, и обеспечивают ли содействующие значения возможности оптимизации. Используйте getLatency функционируйте, чтобы найти задержку особой настройки. Задержка является количеством циклов между первым допустимым входом и первым допустимым выходом.

Создайте dsp.HDLFIRFilter Система object™ и запрос задержка. Архитектура по умолчанию полностью параллельна систолический. Типом данных по умолчанию для коэффициентов является 'Same word length as input'. Поэтому, когда вы вызываете getLatency возразите функции, необходимо задать тип входных данных. Объект бросает содействующие значения к типу входных данных, и затем проверяет на симметричные коэффициенты. Этот Numerator имеет 31 симметричный коэффициент, таким образом, объект оптимизирует для разделяемых коэффициентов и реализует 16 множителей.

Numerator = firpm(30,[0 0.1 0.2 0.5]*2,[1 1 0 0]);
Input_type = numerictype(1,16,15); % object uses only the word length for coefficient type cast
hdlfir = dsp.HDLFIRFilter('Numerator',Numerator);
L_sysp = getLatency(hdlfir,Input_type)
L_sysp = 23

Проверяйте задержку на частично последовательную систолическую реализацию того же фильтра. По умолчанию, SerializationOption свойством является 'Minimum number of cycles between valid input samples', и таким образом, необходимо задать правило сериализации с помощью NumberOfCycles свойство. Чтобы совместно использовать каждый множитель между 8 коэффициентами, установите NumberOfCycles к 8. Объект затем оптимизирует на основе содействующей симметрии, таким образом, существует 16 уникальных коэффициентов, совместно использованных 8 раз каждый более чем 2 множителя. Эта последовательная реализация фильтра требует входных выборок, которые допустимы каждые 8 циклов.

hdlfir = dsp.HDLFIRFilter('Numerator',Numerator,'FilterStructure','Partly serial systolic','NumberOfCycles',8);
L_syss = getLatency(hdlfir,Input_type)
L_syss = 19

Проверяйте задержку несимметричного полностью параллельного систолического фильтра. Numerator имеет 31 коэффициент.

Numerator = sinc(0.4*[-30:0]);
hdlfir = dsp.HDLFIRFilter('Numerator',Numerator);
L_sysp = getLatency(hdlfir,Input_type)
L_sysp = 37

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

hdlfir = dsp.HDLFIRFilter('Numerator',Numerator,'FilterStructure','Partly serial systolic',...
                          'SerializationOption','Maximum number of multipliers','NumberOfMultipliers',2);
L_syss = getLatency(hdlfir,Input_type)
L_syss = 37

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

hdlfir = dsp.HDLFIRFilter('Numerator',Numerator,'FilterStructure','Direct form transposed');
L_trans = getLatency(hdlfir,Input_type)
L_trans = 6

Входные параметры

свернуть все

Оптимизированный HDL КИХ фильтрует Системный объект, который вы создали и сконфигурировали. Смотрите dsp.HDLFIRFilter.

Входные данные вводят в виде a numerictype Объект (Fixed-Point Designer). Вызовите numerictype(s,w,f), где s 1 для со знаком и 0 для без знака, w размер слова в битах и f количество дробных битов.

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

Зависимости

Этот аргумент применяется когда CoefficientsDataType 'Same word length as input'.

Введите содействующий тип данных в виде a numerictype Объект (Fixed-Point Designer). Этот аргумент применяется, когда tyou используют программируемые коэффициенты. Вызовите numerictype(s,w,f), где s 1 для со знаком и 0 для без знака, w размер слова в битах и f количество дробных битов.

Зависимости

Этот аргумент применяется, когда вы устанавливаете NumeratorSource к 'Input port (Parallel interface)'.

Моделируйте коэффициенты фильтра в виде вектора из числовых действительных значений. Прототип задает шаблон, за которым должны следовать все входные коэффициенты. На основе прототипа объект реализует оптимизированный фильтр, который совместно использует множители для симметричных коэффициентов. Если ваши входные коэффициенты все не соответствуют тому же шаблону, или выбирать из оптимизации множителя, задайте прототип как пустой вектор, [].

Содействующая оптимизация влияет на задержку объекта фильтра.

Зависимости

Этот аргумент применяется, когда вы устанавливаете NumeratorSource к 'Input port (Parallel interface)'. Когда вы будете иметь комплексные входные данные, но не будете использовать программируемые коэффициенты, установите этот аргумент на [].

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

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

Типы данных: логический

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

свернуть все

Циклы задержки, которую объект фильтра берет между первым допустимым входом и первым допустимым выходом. Каждый вызов объекта симулирует один цикл. Эта задержка принимает допустимые входные данные на каждом цикле.

Смотрите также

Объекты

Введенный в R2018b