конверт

Синтаксис

[yupper,ylower] = envelope(x)
[yupper,ylower] = envelope(x,fl,'analytic')
[yupper,ylower] = envelope(x,wl,'rms')
[yupper,ylower] = envelope(x,np,'peak')
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)

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

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

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

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

envelope(q)

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

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

  • Другой канал является перемещенным временем Модулируемым гауссовым образом щебетом со значением DC 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)

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

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

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

envelope(q,300)

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

load('train')

envelope(y,150,'rms')

График верхние и более низкие пиковые конверты речевого сигнала смягчил интервалы с 30 выборками.

load('mtlb')

envelope(mtlb,30,'peak')

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

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

plot(z)

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

envelope(z)

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

envelope(z,50,'analytic')

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

envelope(z,40,'rms')

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

envelope(z,10,'peak')

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

Смотрите также

| | | | |

Введенный в R2015b

Для просмотра документации необходимо авторизоваться на сайте