Ответ односкоростного БИХ-фильтра фиксированной точки
report = limitcycle(hd)
report = limitcycle(hd,ntrials,inputlengthfactor,stopcriterion)
report = limitcycle(hd)
возвращает структуру report
, который содержит информацию о том, как фильтр hd
отвечает на входной вектор с нулевым знаком. По умолчанию входной вектор имеет длину, равную дважды импульсной продолжительности ответа фильтра.
limitcycle
возвращает структуру, элементы которой содержат детали о предельном тестировании цикла. Как показано в этой таблице, отчет включает в себя следующие детали.
Выведите свойство объекта | Описание |
---|---|
| Содержит один из следующих результатов:
|
| Содержит начальное значение (значения) условия, которое заставило обнаруженный предельный цикл происходить. |
| Содержит вывод фильтра в устойчивом состоянии. |
| Возвращает количество суда Монте-Карло по который предельное остановленное тестирование цикла. Например, |
Используя входной вектор дольше, чем импульсный ответ фильтра гарантирует, что фильтр находится в установившейся операции во время предельного тестирования цикла. limitcycle
игнорирует вывод, который происходит, прежде чем фильтр достигает устойчивого состояния. Например, если импульсная длина фильтра является 500 выборками, limitcycle
игнорирует фильтр вывод от первых 500 входных выборок.
Чтобы выполнить предельное тестирование цикла на вашем БИХ-фильтре, необходимо установить свойство Arithmetic
фильтра на fixed
, и hd
должен быть БИХ-фильтром фиксированной точки одной из следующих форм:
df1
— прямая форма I
df1t
— прямая форма я транспонировал
df1sos
— прямая форма I с разделами второго порядка
df1tsos
— прямая форма я транспонировал с разделами второго порядка
df2
— прямая форма II
df2t
— прямая форма II транспонированный
df2sos
— прямая форма II с разделами второго порядка
df2tsos
— прямая форма II транспонированный с разделами второго порядка
Когда вы используете limitcycle
без дополнительных входных параметров, настройки по умолчанию
Запустите 20 испытаний Монте-Карло
Используйте входной вектор дважды продолжительность импульсного ответа фильтра
Прекратите тестировать, если процесс симуляции сталкивается или с гранулированным или с предельным циклом переполнения
Чтобы определить продолжительность импульсного ответа фильтра, используйте impzlength
:
impzlength(hd)
Во время предельного тестирования цикла, если выполнения симуляции показывают и переполнение и гранулированные предельные циклы, предельный цикл переполнения более приоритетен и является предельным циклом, который появляется в отчете.
Каждый раз, когда вы запускаете limitcycle
, он использует различную последовательность случайных начальных условий, таким образом, результаты могут отличаться от запущенного, чтобы запуститься.
Каждое испытание Монте-Карло использует новый набор случайным образом решительных начальных состояний для фильтра. Протестируйте остановки обработки, когда limitcycle
обнаружит введенный нулем предельный цикл в фильтре hd
.
report = limitcycle(hd,ntrials,inputlengthfactor,stopcriterion)
возвращает отчет того, как фильтр hd
отвечает на входной вектор с нулевым знаком, с помощью следующих дополнительных входных параметров:
ntrials
— Количество испытаний Монте-Карло (значение по умолчанию равняется 20).
inputlengthfactor
— целочисленный фактор раньше вычислял длину входного вектора. Длина входного вектора прибывает из (impzlength(hd)
* inputlengthfactor
), где inputlengthfactor
= 2 является значением по умолчанию.
stopcriterion
— критерий остановки испытательной обработки Монте-Карло. stopcriterion
может быть установлен в either
(значение по умолчанию), granular
, overflow
. Эта таблица описывает результаты каждого критерия остановки.
Установка stopcriterion | Описание |
---|---|
| Остановите испытания Монте-Карло, когда |
| Остановите испытания Монте-Карло, когда |
| Остановите испытания Монте-Карло, когда |
Важная функция - то, что, если вы задаете определенный предельный критерий остановки цикла, такой как overflow
, испытания Монте-Карло не останавливаются при тестировании обнаружения гранулированный предельный цикл. Вы получаете предупреждение, что никакой предельный цикл overflow
не произошел, но полагайте, что предельный цикл granular
может произойти.
В этом примере существует область начальных условий, в которых никакие предельные циклы не происходят и область, где они делают. Если никакие предельные циклы не обнаруживаются, прежде чем испытания Монте-Карло закончены, последовательность состояния сходится, чтобы обнулить. Когда предельный цикл найден, состояния не заканчиваются в нуле. Каждый раз, когда вы запускаете этот пример, он использует различную последовательность случайных начальных условий, таким образом, график, который вы получаете, может отличаться от того, отображенного в следующей фигуре.
s = [1 0 0 1 0.9606 0.9849]; hd = dfilt.df2sos(s); hd.arithmetic = 'fixed'; greport = limitcycle(hd,20,2,'granular') oreport = limitcycle(hd,20,2,'overflow') figure, subplot(211),plot(greport.Output(1:20)), title('Granular Limit Cycle'); subplot(212),plot(oreport.Output(1:20)), title('Overflow Limit Cycle'); greport = LimitCycle: 'granular' Zi: [2x1 double] Output: [1303x1 embedded.fi] Trial: 1 oreport = LimitCycle: 'overflow' Zi: [2x1 double] Output: [1303x1 embedded.fi] Trial: 2
Графики, показанные в этой фигуре, представляют оба предельных типа цикла — первые отображения небольшой амплитудный гранулированный предельный цикл, второе больший амплитудный предельный цикл переполнения.
Как вы видите из графиков, и как обычно верно, предельные циклы переполнения являются намного большим значением, чем гранулированные предельные циклы. Поэтому limitcycle
способствует предельному обнаружению цикла переполнения и созданию отчетов.