Документация Engee

risetime

Время нарастания положительного фронта двухуровневых сигналов.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • r = risetime(x) — возвращает вектор r, содержащий время каждого положительного фронта входного двухуровневого сигнала x от опорных уровней 10% до 90%. Для определения положительных фронтов функция risetime оценивает уровни состояния входного сигнала методом гистограммы. Функция risetime определяет все области, пересекающие верхнюю границу низкого уровня и нижнюю границу высокого уровня. Границы низкого и высокого уровня выражаются как уровень состояния плюс или минус кратное разности между уровнями. См. раздел Допуски уровней состояний. Поскольку функция risetime использует интерполяцию, r может содержать значения, не соответствующие моментам дискретизации двухуровневого сигнала x.

  • r = risetime(x, fs) — использует частоту дискретизации в Гц. Частота дискретизации определяет моменты дискретизации, соответствующие элементам x. Первый момент дискретизации x соответствует . Поскольку функция risetime использует интерполяцию, r может содержать значения, не соответствующие моментам дискретизации двухуровневого сигнала x.

  • r = risetime(x, t) — использует моменты дискретизации t, которые задаются как вектор с тем же количеством элементов, что и x.

  • r, lt, ut = risetime(___) — возвращает векторы lt и ut, элементы которых соответствуют моментам времени, когда x пересекает нижний и верхний процентные опорные уровни. Этот синтаксис выходных данных можно использовать с любым из предыдущих входных синтаксисов.

  • r, lt, ut, ll, ul = risetime(___) — также возвращает уровни ll и ul, соответствующие нижнему и верхнему процентным опорным уровням.

  • ___ = risetime(___, Name=Value) — возвращает время нарастания с дополнительными параметрами, заданными одним или несколькими аргументами Name=Value.

  • risetime(___) — строит график сигнала и затемняет области каждого фронта, где вычисляется время нарастания. На графике отмечены нижнее и верхнее пересечения и соответствующие опорные уровни. Также отображаются уровни состояний и соответствующие им нижняя и верхняя границы состояний.

Аргументы

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

# x — двухуровневый сигнал
вектор

Details

Двухуровневый сигнал, заданный как вещественный вектор.

# fs — частота дискретизации, Гц
скаляр

Details

Частота дискретизации в Гц, заданная как положительный вещественный скаляр.

# t — моменты дискретизации
вектор

Details

Моменты дискретизации, заданные в виде вещественного вектора. Длина t должна быть равна длине двухуровневого сигнала x.

Входные аргументы «имя-значение»

Укажите необязательные пары аргументов в формате Name=Value, где Name — имя аргумента, а Value — соответствующее значение. Аргументы типа Name=Value должны располагаться после других аргументов, но порядок пар не имеет значения.

# PercentReferenceLevels — опорные уровни в процентах от амплитуды сигнала
[10 90] (по умолчанию) | двухэлементный вектор-строка

Details

Опорные уровни в процентах от амплитуды сигнала, заданные как двухэлементный положительный вектор-строка. Элементы вектора-строки соответствуют нижнему и верхнему опорным уровням в процентах. Высокий уровень состояния определяется как 100%, а низкий — как 0%. Подробнее см. в разделе Процентные опорные уровни.

# StateLevels — низкий и высокий уровни состояний
двухэлементный вектор-строка

Details

Низкий и высокий уровни состояний, заданные как двухэлементный вектор-строка. Первый и второй элементы вектора соответствуют низкому и высокому уровням состояний.

# Tolerance — верхняя и нижняя границы уровней состояний
2 (по умолчанию) | скаляр

Details

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

# out — тип выходных данных
:plot (по умолчанию) | :data

Details

Тип выходных данных:

  • :plot — функция возвращает график;

  • :data — функция возвращает данные.

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

# r — длительность положительного фронта
вектор

Details

Длительность положительного фронта, возвращаемая в виде вектора. Если указана частота дискретизации fs или моменты дискретизации t,то время нарастания указывается в секундах. Если частота дискретизации или моменты дискретизации не указаны, то время нарастания указывается в отсчетах.

# lt — моменты пересечения нижнего опорного уровня
вектор

Details

Моменты пересечения нижнего опорного уровня, возвращаемые в виде вектора. Вектор lt содержит моменты времени, когда положительный фронт пересекает нижний опорный уровень. По умолчанию нижнее значение опорного уровня составляет 10% от опорного уровня. Вы можете изменить значения опорных уровней по умолчанию, указав PercentReferenceLevels.

# ut — моменты пересечения верхнего опорного уровня
вектор

Details

Моменты пересечения верхнего опорного уровня, возвращаемые в виде вектора. Вектор ut содержит моменты времени, когда положительный фронт пересекает верхний опорный уровень. По умолчанию верхнее значение опорного уровня составляет 90% от опорного уровня. Вы можете изменить значения опорных уровней по умолчанию, указав PercentReferenceLevels.

# ll — нижний опорный уровень
скаляр

Details

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

По умолчанию нижнее значение опорного уровня составляет 10% от опорного уровня. Вы можете изменить значения опорных уровней по умолчанию, указав PercentReferenceLevels.

# ul — верхний опорный уровень
скаляр

Details

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

По умолчанию верхнее значение опорного уровня составляет 90% от опорного уровня. Вы можете изменить значения опорных уровней по умолчанию, указав PercentReferenceLevels.

Примеры

Время нарастания синусоидального сигнала

Details

Вычислим время нарастания синусоидального сигнала.

import EngeeDSP.Functions: risetime
t = 0:pi/5:4*pi
risetime(cos.(t), t)

risetime 1

Укажем опорные уровни в процентах PercentReferenceLevels:

risetime(cos.(t), t, PercentReferenceLevels=[30, 60])

risetime 2

Укажем также допуск для уровней состояний Tolerance:

risetime(cos.(t), t, PercentReferenceLevels=[30, 60], Tolerance=10)

risetime 3

Укажем также низкий и высокий уровни состояний StateLevels:

risetime(cos.(t), t, PercentReferenceLevels=[30, 60], StateLevels=[0, 0.6], Tolerance=10)

risetime 4

Дополнительно

Положительный фронт

Details

Положительный фронт в двухуровневом сигнале — это переход из состояния с низким уровнем в состояние с высоким уровнем. Импульс положительной полярности (нарастающий) имеет конечное состояние, более высокое, чем начальное. Если сигнал дифференцируем в окрестности фронта, эквивалентным определением будет фронт с положительной первой производной.

Процентные опорные уровни

Details

Если — это низкое состояние, — высокое состояние, а — верхний процентный опорный уровень, то значение сигнала, соответствующее верхнему процентному опорному уровню, равно:

Если — это нижний процентный опорный уровень, то значение сигнала, соответствующее нижнему процентному опорному уровню, равно:

Допуски уровней состояний

Details

Вы можете указать нижнюю и верхнюю границы состояний для каждого уровня состояния. Определите границы как уровень состояния плюс или минус скалярное значение, кратное разнице между высоким и низким состояниями. Чтобы задать полезную область допуска, укажите скаляр в виде небольшого числа, например, 2/100 или 3/100. В общем случае область для низкого состояния определяется как:

где — низкое состояние, — высокое состояние. Замените первый член в уравнении на , чтобы получить область допуска для высокого состояния.

Литература

  1. IEEE® Standard on Transitions, Pulses, and Related Waveforms, IEEE Standard 181, 2003, pp. 15–17.