envelope

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

Описание

пример

[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(___) без выходных аргументов строит графики сигнала и его верхней и нижней огибающих. Этот синтаксис принимает любые входные параметры из предыдущих синтаксисов.

Примеры

свернуть все

Сгенерируйте квадратичный щебет, модулируемый Гауссовым. Задайте частоту дискретизации 2 кГц и длительность сигнала 2 секунды.

t = 0:1/2000:2-1/2000;
q = chirp(t-2,4,1/2,6,'quadratic',100,'convex').*exp(-4*(t-1).^2);
plot(t,q)

Figure contains an axes. The axes contains an object of type line.

Вычислите верхнюю и нижнюю огибающие щебета с помощью аналитического сигнала.

[up,lo] = envelope(q);
hold on
plot(t,up,t,lo,'linewidth',1.5)
legend('q','up','lo')
hold off

Figure contains an axes. The axes contains 3 objects of type line. These objects represent q, up, lo.

Сигнал асимметричен из-за ненулевого среднего.

Использование envelope без выходных аргументов для построения графика сигнала и огибающих как функции от числа дискретизации.

envelope(q)

Figure contains an axes. The axes with title Analytic Envelope contains 3 objects of type line. These objects represent signal, envelope.

Создайте двухканальный сигнал, дискретизированный на частоте 1 кГц в течение 3 секунд:

  • Один канал является экспоненциально распадающейся синусоидой. Задайте частоту 7 Гц и постоянную времени 2 секунды.

  • Другой канал является перемещенной во времени Гауссовой модулированной щебетом со значением постоянного тока 2. Задайте начальную частоту щебета 30 Гц, которая уменьшается до 5 Гц через 2 секунды.

Постройте график сигнала.

t = 0:1/1000:3;
q1 = sin(2*pi*7*t).*exp(-t/2);
q2 = chirp(t,30,2,5).*exp(-(2*t-3).^2)+2;
q = [q1;q2]';

plot(t,q)

Figure contains an axes. The axes contains 2 objects of type line.

Вычислите верхнюю и нижнюю огибающие сигнала. Используйте фильтр Гильберта длиной 100. Постройте график каналов и огибающих. Используйте сплошные линии для верхних огибающих и штриховые линии для нижних огибающих.

[up,lo] = envelope(q,100,'analytic');
hold on
plot(t,up,'-',t,lo,'--')
hold off

Figure contains an axes. The axes contains 6 objects of type line.

Функции envelope без выходных аргументов для создания графика сигнала и его огибающих как функции от числа выборок. Увеличьте длину фильтра до 300, чтобы получить более гладкую форму. The 'analytic' флаг является значением по умолчанию, когда вы задаете два входных параметров.

envelope(q,300)

Figure contains an axes. The axes with title Analytic Envelope contains 6 objects of type line.

Вычислите и постройте график движущихся огибающих RMS записи свистка train. Используйте окно длиной 150 образцов.

load('train')

envelope(y,150,'rms')

Figure contains an axes. The axes with title RMS Envelope contains 3 objects of type line. These objects represent signal, envelope.

Постройте график верхней и нижней пиковых огибающих речевого сигнала, сглаженных в течение 30 интервалов дискретизации.

load('mtlb')

envelope(mtlb,30,'peak')

Figure contains an axes. The axes with title Peak Envelope contains 3 objects of type line. These objects represent signal, envelope.

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

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

plot(z)

Figure contains an axes. The axes contains an object of type line.

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

envelope(z)

Figure contains an axes. The axes with title Analytic Envelope contains 3 objects of type line. These objects represent signal, envelope.

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

envelope(z,50,'analytic')

Figure contains an axes. The axes with title Analytic Envelope contains 3 objects of type line. These objects represent signal, envelope.

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

envelope(z,40,'rms')

Figure contains an axes. The axes with title RMS Envelope contains 3 objects of type line. These objects represent signal, envelope.

Определите огибающие пиков. Используйте сплайн с не узловыми условиями по локальным максимумам, разделенным по крайней мере 10 выборками.

envelope(z,10,'peak')

Figure contains an axes. The axes with title Peak Envelope contains 3 objects of type line. These objects represent signal, envelope.

Входные параметры

свернуть все

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

Пример: cos(pi/4*(0:159))+randn(1,160) является одноканальным вектором-строкой.

Пример: cos(pi./[4;2]*(0:159))'+randn(160,2) является двухканальным сигналом.

Типы данных: single | double

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

Типы данных: single | double

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

Типы данных: single | double

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

Типы данных: single | double

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

свернуть все

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

Расширенные возможности

.
Введенный в R2015b