dsp. PeakFinder

Идентифицируйте пиковые значения во входном сигнале

Описание

Система dsp.PeakFinder object™ считает количество пиковых значений (максимумы, минимумы или оба) в каждом столбце входного сигнала с действительным знаком. Чтобы квалифицировать как пик, точка должна быть больше (или меньшей), чем обе из ее соседних точек. Конечные точки не рассматриваются как пиковые значения. Объект может также вывести индексы и значения peaks и двоичный массив, который указывает, является ли пик максимумами или минимумы.

Чтобы вывести пиковые индексы и пиковые значения, установите PeakIndicesOutputPort и PeakValuesOutputPort к true, соответственно. Кроме того, можно определить, какое из пиковых значений является максимумами или минимумы с помощью матрицы полярности. Матрица полярности является логическим массивом, в котором 1 указывает на максимумы, и 0 указывает на минимумы. Чтобы просмотреть матрицу полярности, установите PeakType на 'Maxima and Minima' и получите доступ к четвертому выводу.

Используйте свойство MaximumPeakCount задать сколько пиковых значений, чтобы искать в каждом входном сигнале. Объект прекращает искать входной сигнал, если это максимальное количество пиковых значений было найдено.

Если вы устанавливаете IgnoreSmallPeaks на true, объект больше не обнаруживает низкую амплитуду, достигает максимума и игнорирует шум в пороговом значении, которое вы задаете. В этом режиме текущее значение является максимумом если (currentprevious)> threshold и (currentnext)> threshold. Текущее значение является минимумом если (currentprevious) <–threshold и (currentnext) <–threshold.

Определить пиковые значения во входном сигнале:

  1. Создайте объект dsp.PeakFinder и установите его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Синтаксис

pkFind = dsp.PeakFinder
pkFind = dsp.PeakFinder(Name,Value)

Описание

пример

pkFind = dsp.PeakFinder создает пиковый Системный объект средства поиска, который идентифицирует пиковые значения (максимумы, минимумы или оба) во входном сигнале.

пример

pkFind = dsp.PeakFinder(Name,Value) создает пиковый Системный объект средства поиска с каждым заданным набором свойств к заданному значению. Заключите каждое имя свойства в одинарные кавычки.

Пример: задержитесь = dsp. PeakFinder ('PeakType', 'Максимумы');

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и функция release разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Тип peaks, чтобы идентифицировать, заданный как одно из следующего:

  • 'Maxima' – Если IgnoreSmallPeaks установлен в true, текущее значение, идентифицирован как максимум если (currentprevious)> threshold и (currentnext)> threshold. Задайте threshold в свойстве PeakThreshold. Если IgnoreSmallPeaks установлен в false, текущее значение должно быть больше, чем обе его соседних точки.

  • 'Minima' – Если IgnoreSmallPeaks установлен в true, текущее значение, идентифицирован как минимум если (currentprevious) <–threshold и (currentnext) <–threshold. Если IgnoreSmallPeaks установлен в false, текущее значение должно быть меньшим, чем обе его соседних точки.

  • 'Maxima and Minima' – Объект идентифицирует и максимумы и точки минимумов.

Включите вывод пиковых индексов, заданных как также:

  • tRUE Объект возвращает индексы пиковых значений входного сигнала.

  • ложь Объект не возвращает индексы пиковых значений входного сигнала.

Включите вывод пиковых значений, заданных как также:

  • tRUE Объект возвращает пиковые значения входного сигнала.

  • ложь Объект не возвращает пиковые значения входного сигнала.

Максимальное количество пиковых значений, чтобы идентифицировать в каждом входном сигнале, заданном как целое число, больше, чем или равный 1. Объект прекращает искать входной сигнал peaks, если это идентифицирует максимальное количество.

Пример 5

Пример: 50

Проигнорируйте peaks ниже порога, заданного как также:

  • ложь Объект идентифицирует текущее значение как пик, если текущее значение больше (или меньше), чем обе из его соседних точек.

  • true – объект идентифицирует текущее значение как максимум если (currentprevious)> threshold и (currentnext)> threshold. Объект идентифицирует текущее значение как минимум если (currentprevious) <–threshold и (currentnext) <–threshold.

Порог, ниже которого проигнорирован peaks, задал как действительный скаляр, больше, чем или равный 0 или вектор со всеми элементами, больше, чем или равный 0. Длина вектора должна быть равна количеству каналов.

Это свойство идентифицирует текущее входное значение, чтобы быть максимумом если (текущее входное значение – предыдущее входное значение)> порог и (текущее входное значение – следующее входное значение)> порог. Текущее значение является минимумом если (текущее входное значение – предыдущее входное значение) <-порог и (текущее входное значение – следующее входное значение) <-порог.

Пример: 0.2

Пример: [0.3 2.4]

Пример: [3; 0.4]

Зависимости

Это свойство применяется только, когда вы устанавливаете IgnoreSmallPeaks на true.

Свойства фиксированной точки

Округление метода, заданного как 'Floor', который эквивалентен усечению. Установка округляет результат вычисления к самому близкому представимому номеру в направлении отрицательной бесконечности.

Действие переполнения для операций фиксированной точки, заданных как одно из следующего:

  • 'Wrap' – Объект переносит результат своих операций фиксированной точки.

  • 'Saturate' – Объект насыщает результат своих операций фиксированной точки.

Для получения дополнительной информации на действиях переполнения, смотрите режим переполнения для операций фиксированной точки.

Использование

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

cnt = pkFind(input)
[cnt,idx] = pkFind(input)
[___,val] = pkFind(input)
[___,pol] = pkFind(input)

Описание

пример

cnt = pkFind(input) возвращает количество пиковых значений (минимумы, максимумы или оба) во входном сигнале. Каждый столбец входа обработан как отдельный канал.

пример

[cnt,idx] = pkFind(input) возвращает количество пиковых значений, cnt, и пиковых индексов, idx, во входном сигнале.

Чтобы получить доступ к пиковым индексам вывод, установите свойство PeakIndicesOutputPort на true.

pkFind = dsp.PeakFinder('PeakType','Maxima', ...
'PeakIndicesOutputPort',true);
...
[cnt,idx] = pkFind(input);

пример

[___,val] = pkFind(input) возвращает пиковые значения val во входном сигнале.

Чтобы получить доступ к пиковым значениям вывод, установите свойство PeakValuesOutputPort на true.

pkFind = dsp.PeakFinder('PeakType','Maxima', ...
'PeakValuesOutputPort',true);
...
[cnt,idx,val] = pkFind(input);

пример

[___,pol] = pkFind(input) возвращает полярность пикового значения pol во входном сигнале. Полярностью является 1 для максимумов и 0 для минимумов.

Чтобы получить доступ к полярности вывод, установите свойство PeakType на 'Maxima and Minima' и свойство PeakIndicesOutputPort к true.

pkFind = dsp.PeakFinder('PeakType','Maxima and Minima', ...
'PeakIndicesOutputPort',true);
...
[cnt,idx,val,pol] = pkFind(input);

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

развернуть все

Ввод данных, пиковые значения которого обнаруживаются объектом, задал как вектор или матрица, содержащая по крайней мере три строки.

Пример: [9 6 10 3 5 5 0 12; 9 6 1 13 4 1 0 12]'

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

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

развернуть все

Количество пиковых значений, возвращенных как скаляр или вектор - строка из длины, равняется количеству каналов во вводе данных.

Пример: [4 3]

Типы данных: uint32

Индексы пиковых значений во входном сигнале, возвращенном как вектор-столбец или матрица. Размер пиковых индексов вывод совпадает с размером входа. Все ненулевые элементы представляют пиковые индексы.

Пример: [1 2 3 6 0 0 0 0 0 0; 2 3 6 0 0 0 0 0 0 0]'

Зависимости

Чтобы включить этот вывод, установите свойство PeakIndicesOutputPort на true.

Типы данных: uint32

Пиковые значения во входном сигнале, возвращенном как вектор-столбец или матрица.

Пример: [6 10 3 0 0 0 0 0 0 0; 1 13 0 0 0 0 0 0 0 0]'

Зависимости

Чтобы получить доступ к пиковым значениям вывод, установите свойство PeakValuesOutputPort на true.

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

Полярность пикового значения во входном сигнале, возвращенном как вектор-столбец или матрица логической 1 с и 0s. Полярностью является 1 для максимумов и 0 для минимумов.

Пример: [0 1 0 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0 0 0]'

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

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

развернуть все

Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным синтаксисом step. Например, obj(x) становится step(obj,x).

Определите, является ли каждое значение входного сигнала локальным максимумом или минимумом.

pkFind = dsp.PeakFinder;
pkFind.PeakIndicesOutputPort = true;
pkFind.PeakValuesOutputPort = true;

x1 = [9 6 10 3 4 5 0 12]';

Найдите peaks каждого входа [prev;cur;next]: {[9; 6; 10], [6; 10; 3]...}

[cnt1, idx1, val1, pol1] = pkFind(x1)
cnt1 = uint32
    5
idx1 = 10x1 uint32 column vector

   1
   2
   3
   5
   6
   0
   0
   0
   0
   0

val1 = 10×1

     6
    10
     3
     5
     0
     0
     0
     0
     0
     0

pol1 = 10x1 logical array

   0
   1
   0
   1
   0
   0
   0
   0
   0
   0

Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным синтаксисом step. Например, obj(x) становится step(obj,x).

Определите пиковые значения для входного сигнала фиксированной точки.

pkFind = dsp.PeakFinder('PeakType', 'Maxima', ...
    'PeakValuesOutputPort', true, ...
    'MaximumPeakCount', 2, ...
    'IgnoreSmallPeaks', true, ...
    'PeakThreshold', 0.25, ...
    'OverflowAction', 'Saturate');
x2 = fi([-1;0.5;0],true,16,15);
[cnt2, val2] = pkFind(x2)
cnt2 = uint32
    1
val2 = 
    0.5000
         0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 15

Расширенные возможности

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

Функции

Системные объекты

Блоки

Представленный в R2012a