Ответ односкоростного БИХ-фильтра фиксированной точки
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
польза переполняет предельного обнаружения цикла и создания отчетов.