ΣSigmaStudio English

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


Блок «Обнаружение пересечения значения» (Value Cross Detection) выдает импульс каждый раз, когда входной сигнал пересекает значение, указанное в ячейке. По умолчанию эта ячейка работает как детектор пересечения нуля, но она может сравнивать сигнал с любым пороговым значением.Обнаружение пересечения значения

Входные пины

NameFormat [int/dec] - [control/audio]Function Description
Pin 0: Input Signaldec - audioВходной сигнал для мониторинга

Выходные пины

NameFormat [int/dec] - [control/audio]Function Description
Pin 0: Pulse Outputdecimal - controlВыходной импульс в формате 5.23

Элемент управления GUI

GUI Control NameDefault ValueRangeFunction Description
Value Threshold0-15, 15Это пороговое значение, с которым сравнивается входной сигнал.

Информация о параметрах DSP

GUI Control NameCompiler NameFunction Description
Value ThresholdCrossValueCrossAlg1При изменении порогового значения оно напрямую записывается в DSP

Описание алгоритма

Входной сигнал сравнивается с пороговым значением (Value Threshold). Каждый раз, когда входной сигнал пересекает это значение (возрастая или убывая), выход блока переходит в высокое состояние. В противном случае выход блока находится в низком состоянии. Ниже приведен пример работы алгоритма, выполняющего детектирование пересечения нуля, которое является состоянием блока по умолчанию.

Описание алгоритма

Пример

В некоторых приложениях полезно не только знать о факте пересечения значения, но и подсчитывать количество таких пересечений за определенное время. Использование блока «Обнаружение пересечения значения» (Value-Cross Detection) вместе с счетчиком импульсов (Pulse Counter) позволяет подсчитать количество пересечений значения. На следующем изображении используются синусоидальный тон (sine tone) на входе, переключатели вкл/выкл (on/off switches), счетчик импульсов, ячейка Readback и выход GPIO.

Пример

Детали алгоритма

Путь в ToolboxBasic DSP - Logic - Value Cross Detection
Поддерживаемые ядраAD1940
ADAU170x
ADAU144x
ADAU176x
ADAU178x
Поддержка «Grow Algorithm»нет
Поддержка «Add Algorithm»да - см. Информацию о добавлении алгоритма
На основе подпрограммы/цикланет
Program RAM15*
Data RAM3*
Parameter RAM1*

*Числа основаны на одном экземпляре алгоритма без дополнительных «add»

Информация о добавлении алгоритма

ОписаниеПри добавлении алгоритма генерируется новый набор входных/выходных пинов, но элемент управления остается тем же. Пороговое значение (Value Threshold) повторяется, но для всех «adds» алгоритма используется одно и то же значениеИнформация о добавлении алгоритма
Повторение Program RAM15 на каждое добавление
Повторение Data RAM3 на каждое добавление
Повторение Parameter RAM1 на каждое добавление

Value Cross Detection в SigmaStudio: настройка и параметры

Блок Value Cross Detection (обнаружение пересечения значения) в среде SigmaStudio предназначен для формирования импульса в момент, когда входной аудиосигнал пересекает заданный пороговый уровень. По умолчанию алгоритм работает как детектор пересечения нуля, однако с помощью параметра Value Threshold порог может быть установлен в диапазоне от -15 до 15. Это делает блок универсальным инструментом для мониторинга уровня сигнала в проектах на базе процессоров Analog Devices ADAU. Принцип работы алгоритма основан на непрерывном сравнении входного сигнала с заданным значением. Когда сигнал пересекает порог (при возрастании или убывании), выходной пин Pulse Output переходит в высокое состояние. В остальное время выход удерживается в низком состоянии. Входной сигнал подается на пин Input Signal в формате audio, а выходной импульс формируется в формате 5.23 как control-сигнал, что позволяет использовать его для управления другими элементами схемы. Настройка блока в Signal Chain не требует сложных манипуляций. Достаточно разместить алгоритм из раздела Basic DSP — Logic и при необходимости изменить значение Value Threshold в GUI. При изменении порога новое значение напрямую записывается в DSP через компилятор. Для детектирования пересечения нуля достаточно оставить значение по умолчанию — 0. Стоит учитывать, что при использовании функции Add Algorithm пороговое значение будет общим для всех добавленных экземпляров, хотя наборы пинов генерируются отдельно для каждого.