pulsewidth
Длительность импульса двухуровневого сигнала.
| Библиотека |
|
Синтаксис
Вызов функции
-
w,initcross,finalcross = pulsewidth(___)— возвращает моментыfinalcrossсреднего опорного уровня конечного перехода каждого импульса.
-
w,initcross,finalcross,midlev = pulsewidth(___)— возвращает значение сигналаmidlev, соответствующее среднему опорному уровню.
-
W = pulsewidth(___,Name,Value)— задает дополнительные параметры, используя один или несколько аргументов типаName,Value.
-
pulsewidth(___)— строит график сигнала и затемняет области каждого импульса, в которых функция вычисляет его длительность. Функция отмечает положение средних пересечений и соответствующий им опорный уровень. Функция также строит графики уровней состояний и связанных с ними нижних и верхних границ.
Аргументы
Входные аргументы
#
x —
двухуровневый сигнал
вещественный вектор
Details
Двухуровневый сигнал, заданный как вещественный вектор.
#
fs —
частота дискретизации
положительный вещественный скаляр
Details
Частота дискретизации, заданная как положительный вещественный скаляр, выраженный в Гц.
Входные аргументы «имя-значение»
Укажите необязательные пары аргументов в виде Name,Value, где Name — имя аргумента, а Value — соответствующее значение. Аргументы типа «имя-значение» должны располагаться после других аргументов, но порядок пар не имеет значения.
Используйте запятые для разделения имени и значения, а Name заключите в кавычки.
#
MidPercentReferenceLevel —
средний опорный уровень
50 (по умолчанию) | вещественный скаляр
Details
Средний опорный уровень в процентах от амплитуды сигнала, заданный как вещественный скаляр. Подробнее см. в разделе Средний опорный уровень.
#
Polarity —
полярность импульса
"positive" (по умолчанию) | "negative"
Details
Полярность импульса, заданная как "positive" или "negative". Если задано "positive", функция ищет импульсы с положительными начальными переходами (положительная полярность). Если задано "negative", функция pulsewidth ищет импульсы с отрицательными начальными переходами (отрицательная полярность). Подробнее см. в разделе Полярность импульса.
#
StateLevels —
уровни нижнего и верхнего состояний
вещественный вектор
Details
Уровни нижнего и верхнего состояний, заданные как вектор вещественных значений размером 1 на 2. Первый элемент — уровень нижнего состояния. Второй элемент — уровень верхнего состояния. Если уровни нижнего и верхнего состояний не указаны, функция pulsewidth оценивает уровни состояний по входному сигналу с помощью метода гистограмм. Подробное описание метода гистограмм см. в разделе Оценка на уровне состояний.
#
Tolerance —
уровни допуска
2 (по умолчанию) | вещественный скаляр
Details
Уровни допуска (границы нижнего и верхнего состояний), заданные как вещественный скаляр, выраженный в процентах. Подробнее см. в разделе Допуски на уровне состояний.
#
out —
тип выходных данных
:plot (по умолчанию) | :data
Details
Тип выходных данных:
-
:plot— функция возвращает график; -
:data— функция возвращает данные.
Выходные аргументы
#
w —
длительности импульсов
вектор
Details
Длительность импульса в секундах, возвращаемая в виде вектора. Длительность импульса — это разница во времени между начальным и конечным переходами импульса. В [1] моменты начального и конечного переходов называются моментами возникновения переходов.
Поскольку функция pulsewidth использует интерполяцию для определения моментов среднего опорного уровня, w может содержать значения, которые не соответствуют моментам дискретизации двухуровневого сигнала x.
|
#
initcross —
момент среднего опорного уровня начального перехода
вектор-столбец
Details
Моменты среднего опорного уровня начальных переходов каждого импульса, возвращаемые в виде вектора-столбца.
#
finalcross —
момент среднего опорного уровня конечного перехода
вектор-столбец
Details
Моменты среднего опорного уровня конечных переходов каждого импульса, возвращаемые в виде вектора-столбца.
#
midlev —
значение сигнала
скаляр
Details
Значение сигнала, соответствующее среднему опорному уровню, возвращаемое в виде скаляра.
Примеры
Начальный и конечный переходы двухуровневого сигнала
Details
Вычислим начальный и конечный переходы для двухуровневой формы сигнала, дискретизированной на частоте 400 кГц.
import EngeeDSP.Functions: pulsewidth
fs = 4e5
t1 = collect(0:1/fs:3)
x1 = zeros(length(t1))
t2 = collect((3+1/fs):1/fs:4)
x2 = fill(5, length(t2))
t3 = collect((4+1/fs):1/fs:7)
x3 = zeros(length(t3))
t = vcat(t1, t2, t3)
x = vcat(x1, x2, x3)
w, initcross, finalcross, midlev = pulsewidth(x, fs)
(1.0000000000000004, 3.00000125, 4.00000125, 2.5)
Дополнительно
Оценка на уровне состояний
Details
Для определения переходов функция pulsewidth оценивает уровни нижнего и верхнего состояний входного сигнала x, используя метод гистограмм по следующим шагам.
-
Определить минимальную и максимальную амплитуды данных.
-
Для заданного количества столбцов гистограммы определить ширину столбца, которая представляет собой отношение амплитудного диапазона к количеству столбцов.
-
Отсортировать значения данных по столбцам гистограммы.
-
Определить самый низкий и самый высокий индексированные столбцы гистограммы с ненулевыми значениями.
-
Разделить гистограмму на две подгистограммы.
-
Вычислить уровни состояний, определив моду или среднее значение верхней и нижней гистограмм.
Функция идентифицирует все области, пересекающие верхнюю границу нижнего состояния и нижнюю границу верхнего состояния. Границы нижнего и верхнего состояний выражаются как уровень состояния плюс или минус кратное разности между уровнями состояний.
Средний опорный уровень
Details
Средний опорный уровень в двухуровневом сигнале с уровнем нижнего состояния и уровнем верхнего состояния равен
Момент среднего опорного уровня
Details
Момент среднего опорного уровня равен
где
-
обозначает средний опорный уровень;
-
и обозначают два последовательных момента дискретизации, соответствующих значениям сигнала, ближайшим по значению к ;
-
и обозначают значения сигнала в моменты и .
Полярность импульса
Details
Если начальный переход импульса положительный, импульс имеет положительную полярность. Аналогично, импульс положительной полярности (с положительным нарастанием) имеет конечное состояние более положительное, чем начальное. На этом рисунке показан импульс положительной полярности.
Если начальный переход импульса отрицательный, импульс имеет отрицательную полярность. Аналогично, импульс отрицательной полярности (с отрицательным нарастанием) имеет начальное состояние более положительное, чем конечное. На этом рисунке показан импульс отрицательной полярности.
Допуски на уровне состояний
Details
Можно указать границы нижнего и верхнего состояний для каждого уровня состояний. Определим границы как уровень состояний плюс или минус скалярное значение, кратное разности между верхним и нижним состояниями. Чтобы задать полезную область допуска, зададим скалярное значение в виде небольшого числа, например или . В общем случае область для нижнего состояния определяется как
где — уровень нижнего состояния, а — уровень верхнего состояния. Заменим первый член в уравнении на , чтобы получить область допуска для уровня верхнего состояния.