Определите, является ли каждое значение входного сигнала локальным минимумом или максимумом
Сигнальные операции
dspsigops
Блок Peak Finder отсчитывает количество локальных экстремумов в каждом столбце вещественного входного сигнала. Блок выводит количество локальных экстремумов в порте Cnt. Можно также сконфигурировать блок, чтобы вывести индексы extrema, значения extrema и двоичный индикатор того, являются ли extrema максимумами или минимумами.
Чтобы квалифицироваться как экстрема, точка должна быть больше (или меньше), чем обе ее соседние точки. Таким образом, конечные точки никогда не считаются экстремальными.
Если установить флажок Output peak indices, на блоке появится порт Idx. Блок выводит индексы extrema в порту Idx. Если для Index base задано значение Zero
блок выводит нулевые индексы экстремумов. Если для Index base задано значение One
блок выводит индексы extrma на основе одного.
Если установить флажок Output peak values, на блоке появится порт Val. Блок выводит значения extrema в порту Val. Если установить один из этих флажков и установить для Peak type(s) значение Maxima and Minima
Порт Pol также появляется на блоке. Если значение сигналов является максимальным, блок выводит 1 в порт Pol («Полярность»). Если значение сигналов является минимальным, блок выводит 0 в порт Pol.
Используйте параметр Maximum number of peaks to find, чтобы задать, сколько экстремм нужно искать в каждом входном сигнале. Блок останавливает поиск входного сигнала, когда это максимальное количество экстремумов найдено.
Если установить флажок Ignore peaks within threshold of neighboring values, блок больше не обнаруживает peaks с низкой амплитудой. Эта функция позволяет блоку игнорировать шум в пределах заданного вами порогового значения. Введите пороговое значение для параметра Threshold. Теперь текущее значение является максимальным, если (текущий - предыдущий) > порог и (текущий - следующий) > порог. Текущее значение является минимальным, если (текущий - предыдущий) < -порог и (текущий - следующий) < -порог.
Рассмотрим вектор входа
[9 6 10 3 4 5 0 12]
В таблице ниже показан анализ, выполненный блоком Peak Finder. Обратите внимание, что первое и последнее значения входного сигнала не рассматриваются:
Предыдущие, текущие и следующие значения | 9 6 10 | 6 10 3 | 10 3 4 | 3 4 5 | 4 5 0 | 5 0 12 |
Текущее значение, если это экстремум | 6 | 10 | 3 | — | 5 | 0 |
Индекс текущего значения, если это экстремум | 1 | 2 | 3 | — | 5 | 6 |
Полярность текущего значения, если это экстремум | 0 | 1 | 0 | — | 1 | 0 |
В данном примере выходы в портах блоков:
Cnt: 5
Идкс: [1 2 3 5 6]
Val: [6 10 3 5 0]
Пол: [0 1 0 1 0]
Параметр Overflow mode может повлиять на выход блока, когда вход является фиксированной точкой. Рассмотрим следующую модель:
В этой модели настройки в блоке Constant:
Constant value — [-1 0.5 -1]
Interpret vector parameters as 1–D - не выбран
Sampling mode — Sample based
Sample time — 1
Output data type — <data type expression>
Mode — Fixed point
Sign — Signed
Scaling — Binary point
Word length — 16
Fraction length — 15
Настройки в блоках Peak Finder:
Peak type(s) — Maxima
Output peak indices - не выбран
Output peak values - выбран
Maximum number of peaks to find — 2
Ignore peaks within threshold of neighboring values - выбран
Threshold — 0.25
Overflow mode — Wrap
для Peak Finder Wrap, Saturate
для Peak Finder Saturate
Установка параметра Overflow mode блока Peak Finder Wrap равной Wrap
приводит к тому, что вычисления (текущий - предыдущий) > порог и (текущий - следующий) > порог оборачиваются при переполнении, что приводит к пропуску максимального значения.
Укажите, ищете ли вы maxima, minima или и то, и другое.
Задайте основу индексов extrema как:
Zero
(по умолчанию) -- Первый индекс начинается с 0. Для примера рассмотрим вектор входа [-1,5, 0,5, 0]. Пиковое значение этого вектора составляет 0,5, и индекс этого пикового значения равен 1.
One
- В этой настройке первый индекс начинается с 1. Индекс пикового значения в [-1,5, 0,5, 0] равен 2.
Установите этот флажок, если необходимо, чтобы блок выводил индексы extrema в порте Idx.
Установите этот флажок, если необходимо, чтобы блок выводил значения экстремумов в порте Val.
Введите количество экстремумов для поиска в каждом входном сигнале. Блок останавливает поиск входного сигнала для extrema, когда найдено максимальное количество extrema. Значение этого параметра должно быть целым числом, большим или равным единице.
Установите этот флажок, если вы хотите исключить обнаружение peaks, амплитуды которых находятся в пределах заданного порога соседних значений.
Введите значение порога. Этот параметр появляется, если установить флажок Ignore peaks within threshold of neighboring values.
При установке флажка Ignore peaks within threshold of neighboring values появляется Fixed-point operational parameters раздел.
Когда вы выбираете этот параметр, блок насыщает результат своей операции с фиксированной точкой. Когда вы очищаете этот параметр, блок переносит результат своей операции с фиксированной точкой. Для получения дополнительной информации о saturate
и wrap
, см. Режим переполнения для операций с фиксированной точкой.
Порт | Поддерживаемые типы данных |
---|---|
Вход |
|
Cnt |
|
Idx |
|
Val |
|
Политик |
|