dsp.ZeroCrossingDetector

Обнаружение пересечений нуля

Описание

The dsp.ZeroCrossingDetector Системная object™ отсчитывает количество раз, когда сигнал пересекает нуль, или изменяет знак. Чтобы обнаружить, пересекает ли сигнал в данном канале нуль, объект ищет следующие условия, где, xi-l - текущее значение сигналов, а xi-1 - предыдущее значение сигналов:

  • xi < 0 и xi-1 > 0

  • xi > 0 и xi-1 < 0

  • Для некоторых положительных целочисленных L xi < 0, xi-l = 0 и xi-L-1 > 0, где 0lL.

  • Для некоторых положительных целочисленных L xi > 0, xi-l = 0 и xi-L-1 < 0, где 0lL.

Для первого входного значения xi-1 и xi-2 равны нулю.

Чтобы подсчитать количество раз, когда сигнал пересекает нуль или изменяет знак:

  1. Создайте dsp. Объект ZeroCrossingDetector.

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?»

Создание

Описание

пример

zcd = dsp.ZeroCrossingDetector возвращает объект обнаружения пересечения нуля, который вычисляет количество раз, когда сигнал пересекает ноль.

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

Синтаксис

Описание

пример

zcdOut = zcd(input) вычисляет количество пересечений нуля входа. Каждый столбец входа рассматривается как независимый канал.

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

расширить все

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

Пример: rand(20,1)-0.3

Пример: rand(20,2)-0.3

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

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

расширить все

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

  • скаляр -- Когда вход данных является вектором-столбцом, скалярный выход является количеством пересечений нуля во входе данных..

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

Пример: 10

Пример: [9,6]

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

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

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

release(obj)

расширить все

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

Примеры

свернуть все

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

Найдите количество пересечений нуля в данных электрокардиограммы.

EcgData = ecg(500)';
zcd = dsp.ZeroCrossingDetector;
numZeroCross = zcd(EcgData)
numZeroCross = uint32
    4
plot(1:500,EcgData,'b',[0 500],[0 0],'r','linewidth',2)

Figure contains an axes. The axes contains 2 objects of type line.

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

.

См. также

Объекты

Введенный в R2012a