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

envelope

Огибающая сигнала.

Библиотека

EngeeDSP

Синтаксис

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

  • yupper,ylower = envelope(x) — возвращает верхнюю и нижнюю огибающую входной последовательности x в качестве амплитуды ее аналитического сигнала. Аналитический сигнал x находится с помощью дискретного преобразования Фурье, реализованного в функции hilbert. Функция сначала удаляет среднее значение x и добавляет его обратно после вычисления огибающей. Если x — матрица, то envelope действует независимо над каждым столбцом x.

  • yupper,ylower = envelope(x,fl,"analytic") — возвращает огибающую x, определяемую по амплитуде ее аналитического сигнала. Аналитический сигнал вычисляется путем фильтрации x с помощью КИХ-фильтра Гильберта длиной fl. Этот синтаксис используется, если указано только два аргумента.

  • yupper,ylower = envelope(x,wl,"rms") — возвращает верхнюю и нижнюю среднеквадратичные огибающие x. Огибающие определяются с помощью скользящего окна длиной wl отсчетов.

  • yupper,ylower = envelope(x,np,"peak") — возвращает верхнюю и нижнюю пиковые огибающие x. Огибающие определяются с помощью сплайн-интерполяции по локальным максимумам, разделенным как минимум np отсчетами.

  • envelope(___) — без выходных аргументов строит график сигнала и его верхней и нижней огибающих. Этот синтаксис принимает любые входные аргументы из предыдущих синтаксисов.

Аргументы

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

# x — входная последовательность
вектор | матрица

Details

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

Типы данных

Float32, Float64

# fl — длина фильтра Гильберта
положительный целочисленный скаляр

Details

Длина фильтра Гильберта, заданная как положительный целочисленный скаляр. Фильтр создан путем наложения окна идеального фильтра с прямоугольной амплитудной характеристикой с окном Кайзера длиной fl и параметром формы .

Типы данных

Float32, Float64

# wl — длина окна
положительный целочисленный скаляр

Details

Длина окна, заданная как положительный целочисленный скаляр.

Типы данных

Float32, Float64

# np — интервал между пиками
положительный целочисленный скаляр

Details

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

Типы данных

Float32, Float64

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

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

Details

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

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

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

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

# yupper, ylower — верхняя и нижняя огибающие сигнала
векторы | матрицы

Details

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

Примеры

Огибающая асимметричной последовательности

Details

Создадим и отобразим сигнал, напоминающий первоначальное обнаружение светового импульса, распространяющегося через дисперсионную среду.

t = 0.5:-1/100:-2.49
z = airy.(t*10) .* exp.(-t.^2)

plot(z)

envelope 1

Определим огибающие последовательности, используя величину ее аналитического сигнала. Построим графики огибающих.

import EngeeDSP.Functions: envelope

envelope(z)

envelope 2

Вычислим аналитическую огибающую сигнала, используя 50-звенный фильтр Гильберта.

envelope(z, 50, "analytic")

envelope 3

Вычислим среднеквадратичную огибающую сигнала, используя 40-отсчетное скользящее окно. Построим график результата.

envelope(z, 40, "rms")

envelope 4

Определим огибающие пиков. Используем сплайн-интерполяцию с граничными условиями «not-a-knot» для локальных максимумов, отстоящих друг от друга не менее чем на 10 отсчетов.

envelope(z, 10, "peak")

envelope 5