getLatency

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

Синтаксис

Y = getLatency(hdlfir,inputType,[],isInputComplex)
Y = getLatency(hdlfir,coeffType,coeffPrototype,isInputComplex)
Y = getLatency(hdlfir)

Описание

пример

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 = 25

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

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

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

свернуть все

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

Тип входных данных, заданный как объект numerictype. Вызовите numerictype(s,w,f), где s 1 для со знаком и 0 для без знака, w является размером слова в битах, и f является количеством дробных битов.

Зависимости

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

Введите содействующий тип данных, заданный как объект numerictype. Этот аргумент применяется, когда 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