falltime
Время спада отрицательных фронтов двухуровневых сигналов.
| Библиотека |
|
Синтаксис
Вызов функции
-
___ = falltime(___, Name,Value)— возвращает время спада с дополнительными параметрами, заданными одним или несколькими аргументами типаName,Value.
Аргументы
Входные аргументы
#
x —
двухуровневый сигнал
вектор
Details
Двухуровневый сигнал, заданный как вещественный вектор.
#
fs —
частота дискретизации, Гц
скаляр
Details
Частота дискретизации в Гц, заданная как положительный вещественный скаляр.
Входные аргументы «имя-значение»
Укажите необязательные пары аргументов в формате Name, Value, где Name — имя аргумента, а Value — соответствующее значение. Аргументы типа «имя-значение» должны располагаться после других аргументов, но порядок пар не имеет значения.
Используйте запятые для разделения имени и значения, а Name заключите в кавычки.
Пример: f = falltime([4,3,2,1], "PercentReferenceLevels", [30 60]).
#
PercentReferenceLevels —
опорные уровни в процентах от амплитуды сигнала
[10 90] (по умолчанию) | двухэлементный вектор-строка
Details
Опорные уровни в процентах от амплитуды сигнала, заданные как двухэлементный положительный вектор-строка. Элементы вектора-строки соответствуют низкому и высокому опорным уровням в процентах. Высокий уровень состояния определяется как 100%, а низкий — как 0%. Подробнее см. в разделе Процентные опорные уровни.
#
StateLevels —
низкий и высокий уровни состояний
двухэлементный вектор-строка
Details
Низкий и высокий уровни состояний, заданные как двухэлементный вектор-строка. Первый и второй элементы вектора соответствуют низкому и высокому уровням состояний.
#
Tolerance —
верхняя и нижняя границы уровней состояний
2 (по умолчанию) | скаляр
Details
Верхняя и нижняя границы уровней состояний, заданные как вещественный положительный скаляр. Подробнее см. в разделе Допуски уровней состояний.
#
out —
тип выходных данных
:data (по умолчанию) | :plot
Details
Тип выходных данных:
-
:data— функция возвращает данные; -
:plot— функция возвращает график.
Выходные аргументы
#
f —
длительность отрицательного фронта
вектор
#
lt —
моменты пересечения нижнего опорного уровня
вектор
Details
Моменты пересечения нижнего опорного уровня, возвращаемые в виде вектора. Вектор lt содержит моменты времени, когда отрицательный фронт пересекает нижний опорный уровень. По умолчанию нижнее значение опорного уровня составляет 10% от опорного уровня. Вы можете изменить значения опорных уровней по умолчанию, указав аргумент PercentReferenceLevels.
#
ut —
моменты пересечения верхнего опорного уровня
вектор
Details
Моменты пересечения верхнего опорного уровня, возвращаемые в виде вектора. Вектор ut содержит моменты времени, когда отрицательный фронт пересекает верхний опорный уровень. По умолчанию верхнее значение опорного уровня составляет 90% от опорного уровня. Вы можете изменить значения опорных уровней по умолчанию, указав аргумент PercentReferenceLevels.
#
ll —
нижний опорный уровень
скаляр
Details
Нижний опорный уровень в единицах амплитуды сигнала, возвращаемый в виде вещественного числового скаляра.
По умолчанию нижнее значение опорного уровня составляет 10% от опорного уровня. Вы можете изменить значения опорных уровней по умолчанию, указав аргумент PercentReferenceLevels.
#
ul —
верхний опорный уровень
скаляр
Details
Верхний опорный уровень в единицах амплитуды сигнала, возвращаемый в виде вещественного числового скаляра.
По умолчанию верхнее значение опорного уровня составляет 90% от опорного уровня. Вы можете изменить значения опорных уровней по умолчанию, указав аргумент PercentReferenceLevels.
Примеры
Время спада сигнала
Details
Вычислим время спада сигнала.
import EngeeDSP.Functions: falltime
f = falltime([4,3,2,1], "PercentReferenceLevels", [30 60], out=:data)
(0.5940000000000003, 3.391, 2.7969999999999997, 1.609, 2.2030000000000003)
Выведем график.
import EngeeDSP.Functions: falltime
f = falltime([4,3,2,1], "PercentReferenceLevels", [30 60], out=:plot)

Время спада двухуровневого сигнала
Details
Определим время спада двухуровневого сигнала, используя значения опорных уровней, равные по умолчанию 10% и 90%. Отметим время спада на графике сигнала.
t = [0, 2.5000e-07, 5.0000e-07, 7.5000e-07, 1.0000e-06, 1.2500e-06, 1.5000e-06, 1.7500e-06, 2.0000e-06, 2.2500e-06, 2.5000e-06, 2.7500e-06, 3.0000e-06,
3.2500e-06, 3.5000e-06, 3.7500e-06, 4.0000e-06, 4.2500e-06, 4.5000e-06, 4.7500e-06, 5.0000e-06, 5.2500e-06, 5.5000e-06, 5.7500e-06, 6.0000e-06,
6.2500e-06, 6.5000e-06, 6.7500e-06, 7.0000e-06, 7.2500e-06, 7.5000e-06, 7.7500e-06, 8.0000e-06, 8.2500e-06, 8.5000e-06, 8.7500e-06, 9.0000e-06,
9.2500e-06, 9.5000e-06, 9.7500e-06]
x = [2.3026, 2.2907, 2.2628, 2.3515, 2.2769, 2.2981, 2.3281, 2.3088, 2.2934, 2.2302, 2.2527, 2.3326, 2.2343, 2.2934, 2.3041, 2.2866, 2.3062,
2.3055, 2.2707, 2.1992, 2.4520, -0.1271, 0.1181, -0.0250, -0.0227, -0.0061, -0.0216, -0.0125, 0.0085, -0.0031, 0.0175, -0.0202, 0.0273,
0.0227, 0.0199, 0.0644, -0.0326, 0.0011, 0.0162, -0.0264]
import EngeeDSP.Functions: falltime
falltime(x, out=:plot)

Снова определим время спада и укажем примерные моменты времени t. Изобразим результат на новом графике.
falltime(x, t, out=:plot)

Время спада по опорным уровням 20% и 80%
Details
Рассчитаем время спада двухуровневого сигнала, используя опорные уровни 20% и 80%. Построим график сигнала и обозначим на нем время спада.
falltime(x, "PercentReferenceLevels", [20 80], out=:plot)

Время спада, моменты временни опорного уровня и опорные уровни
Details
Для двухуровневого сигнала определим время спада, моменты времени опорного уровня и опорные уровни. Укажем моменты времени выборки t.
f, lt, ut, ll, ul = falltime(x, t, out=:plot)

Рассчитаем время спада как разность между моментами нижнего и верхнего опорных уровней.
print("Fall time is ", lt-ut, " seconds")
Fall time is 1.7999999999999828e-7 seconds
Дополнительно
Фронт сигнала
Details
Для определения фронта функция falltime оценивает уровни состояния входного сигнала с помощью метода гистограммы. Функция определяет все области, пересекающие нижнюю границу высокого состояния и верхнюю границу низкого состояния. Границы низкого и высокого состояний выражаются как уровень состояния плюс или минус кратное разности между уровнями состояний.
Отрицательный фронт
Details
Отрицательный фронт в двухуровневом сигнале — это переход из состояния с высоким уровнем в состояние с низким уровнем. Если сигнал дифференцируем в окрестности фронта, эквивалентным определением будет фронт с отрицательной первой производной.
Процентные опорные уровни
Details
Если — это низкое состояние, — высокое состояние, а — верхний процентный опорный уровень, то значение сигнала, соответствующее верхнему процентному опорному уровню, равно
Если — это нижний процентный опорный уровень, то значение сигнала, соответствующее нижнему процентному опорному уровню, равно
Допуски уровней состояний
Details
Вы можете указать нижнюю и верхнюю границы состояний для каждого уровня состояния. Определите границы как уровень состояния плюс или минус скалярное значение, кратное разнице между высоким и низким состояниями. Чтобы задать полезную область допуска, укажите скаляр в виде небольшого числа, например 2/100 или 3/100. В общем случае область для низкого состояния определяется как
где — низкое состояние, — высокое состояние. Замените первый член в уравнении на , чтобы получить область допуска для высокого состояния.