Преобразование Гильберта-Хуанга
возвращает Гильбертов спектр hs
= hht(imf
)hs
из сигнала, заданного внутренним режимом, функционирует imf
. hs
полезно для анализа сигналов, которые включают смесь сигналов, спектральное содержимое которых изменяется вовремя. Используйте hht
выполнять Гильбертов спектральный анализ на сигналах идентифицировать локализованные функции.
[___] = hht(___,
оценки параметры спектра Гильберта с дополнительными опциями, заданными одним или несколькими Name,Value
)Name,Value
парные аргументы.
hht(___)
без выходных аргументов строит Гильбертов спектр в окне текущей фигуры. Можно использовать этот синтаксис с любым из входных параметров в предыдущих синтаксисах.
hht(___,
строит Гильбертов спектр с дополнительным freqlocation
)freqlocation
аргумент, чтобы задать местоположение оси частоты. Частота представлена на y - ось по умолчанию.
Сгенерируйте Модулируемый гауссовым образом квадратичный щебет. Задайте частоту дискретизации 2 кГц и длительность сигнала 2 секунд.
fs = 2000; t = 0:1/fs:2-1/fs; q = chirp(t-2,4,1/2,6,'quadratic',100,'convex').*exp(-4*(t-1).^2); plot(t,q)
Используйте emd
визуализировать внутренние функции режима (IMFs) и невязку. Функция выходными параметрами по умолчанию таблица, которая указывает на количество отсеивания итераций, относительного допуска и критерия остановки отсеивания каждого МВФ.
emd(q)
Current IMF | #Sift Iter | Relative Tol | Stop Criterion Hit 1 | 2 | 0.0063952 | SiftMaxRelativeTolerance 2 | 2 | 0.1007 | SiftMaxRelativeTolerance 3 | 2 | 0.01189 | SiftMaxRelativeTolerance 4 | 2 | 0.0075124 | SiftMaxRelativeTolerance The decomposition stopped because the number of extrema of the residual signal is less than 'MaxNumExtrema'.
Вычислите IMFs сигнала. Установите 'Display'
к 0
скрыть таблицу.
imf = emd(q,'Display',0);
Используйте вычисленный IMFs, чтобы построить Гильбертов спектр квадратичного щебета. Ограничьте частотный диапазон [0, 20] Гц.
hht(imf,fs,'FrequencyLimits',[0 20])
Загрузите и визуализируйте неустановившийся непрерывный сигнал, состоявший из синусоидальных волн с отличным изменением в частоте. Вибрация отбойного молотка и звук фейерверков являются примерами неустановившихся непрерывных сигналов. Сигнал производится на уровне fs
.
load('sinusoidalSignalExampleData.mat','X','fs') t = (0:length(X)-1)/fs; plot(t,X) xlabel('Time(s)')
Смешанный сигнал содержит синусоидальные волны с различной амплитудой и значениями частоты.
Чтобы создать Гильбертов график спектра, вам нужны внутренние функции режима (IMFs) сигнала. Выполните эмпирическое разложение моды, чтобы вычислить IMFs и остаточные значения сигнала. Поскольку сигнал не является гладким, задайте 'pchip
'как метод интерполяции.
[imf,residual,info] = emd(X,'Interpolation','pchip');
Current IMF | #Sift Iter | Relative Tol | Stop Criterion Hit 1 | 2 | 0.026352 | SiftMaxRelativeTolerance 2 | 2 | 0.0039573 | SiftMaxRelativeTolerance 3 | 1 | 0.024838 | SiftMaxRelativeTolerance 4 | 2 | 0.05929 | SiftMaxRelativeTolerance 5 | 2 | 0.11317 | SiftMaxRelativeTolerance 6 | 2 | 0.12599 | SiftMaxRelativeTolerance 7 | 2 | 0.13802 | SiftMaxRelativeTolerance 8 | 3 | 0.15937 | SiftMaxRelativeTolerance 9 | 2 | 0.15923 | SiftMaxRelativeTolerance The decomposition stopped because the number of extrema of the residual signal is less than 'MaxNumExtrema'.
Таблица, сгенерированная в командном окне, показывает, что количество отсеивает итерации, относительный допуск, и отсеять критерий остановки каждого сгенерировал МВФ. Эта информация также содержится в info
. Можно скрыть таблицу путем добавления 'Display',0
пара значение-имя.
Создайте Гильбертов график спектра с помощью imf
компоненты, полученные с помощью эмпирического разложения моды.
hht(imf,fs)
Частота по сравнению с графиком временной зависимости является разреженным графиком с вертикальной цветной полосой, указывающей на мгновенную энергию в каждой точке в МВФ. График представляет мгновенный спектр частоты каждого компонента, анализируемого от исходного смешанного сигнала. Три IMFs появляются в графике с отличным изменением в частоте в 1 секунду.
Загрузите файл, который содержит аудиоданные от Тихоокеанского голубого кита, произведенного на уровне 4 кГц. Файл от библиотеки вокализаций животных, обеспеченных Программой исследований Биоакустики Корнелльского университета. Масштаб времени в данных сжат фактором 10, чтобы повысить подачу и выполнить более слышимые вызовы. Преобразуйте сигнал в расписание MATLAB® и постройте его. Четыре функции выделяются от шума в сигнале. Первое известно как трель, и другие три известны как стоны.
whaleFile = fullfile(matlabroot,'examples','matlab','bluewhale.au'); [w,fs] = audioread(whaleFile); whale = timetable(w,'SampleRate',fs); stackedplot(whale);
Используйте emd
визуализировать первые три внутренних функции режима (IMFs) и невязку. Функция выходными параметрами по умолчанию таблица, которая указывает на количество отсеивания итераций, относительного допуска и критерия остановки отсеивания каждого МВФ.
emd(whale,'MaxNumIMF',3)
Current IMF | #Sift Iter | Relative Tol | Stop Criterion Hit 1 | 1 | 0.13523 | SiftMaxRelativeTolerance 2 | 2 | 0.030198 | SiftMaxRelativeTolerance 3 | 2 | 0.01908 | SiftMaxRelativeTolerance The decomposition stopped because 'MaxNumIMF' was reached.
Вычислите первые три IMFs сигнала. Установите 'Display'
к 0
скрыть таблицу.
imf = emd(whale,'MaxNumIMF',3,'Display',0);
Используйте вычисленный IMFs, чтобы построить Гильбертов спектр сигнала. Ограничьте частотный диапазон [0, 1400] Гц.
hht(imf,'FrequencyLimits',[0 1400])
Вычислите Гильбертов спектр для той же области значений частот. Визуализируйте Гильбертовы спектры трели и стонов как сетчатый график.
[hs,f,t] = hht(imf,'FrequencyLimits',[0 1400]); mesh(seconds(t),f,hs,'EdgeColor','none','FaceColor','interp') xlabel('Time') ylabel('Frequency') zlabel('Instantaneous Energy')
Загрузите и визуализируйте неустановившийся непрерывный сигнал, состоявший из синусоидальных волн с отличным изменением в частоте. Вибрация отбойного молотка и звук фейерверков являются примерами неустановившихся непрерывных сигналов. Сигнал производится на уровне fs
.
load('sinusoidalSignalExampleData.mat','X','fs') t = (0:length(X)-1)/fs; plot(t,X) xlabel('Time(s)')
Смешанный сигнал содержит синусоидальные волны с различной амплитудой и значениями частоты.
Чтобы вычислить Гильбертовы параметры спектра, вам нужен IMFs сигнала. Выполните эмпирическое разложение моды, чтобы вычислить внутренние функции режима и остаточные значения сигнала. Поскольку сигнал не является гладким, задайте 'pchip'
как метод интерполяции.
[imf,residual,info] = emd(X,'Interpolation','pchip');
Current IMF | #Sift Iter | Relative Tol | Stop Criterion Hit 1 | 2 | 0.026352 | SiftMaxRelativeTolerance 2 | 2 | 0.0039573 | SiftMaxRelativeTolerance 3 | 1 | 0.024838 | SiftMaxRelativeTolerance 4 | 2 | 0.05929 | SiftMaxRelativeTolerance 5 | 2 | 0.11317 | SiftMaxRelativeTolerance 6 | 2 | 0.12599 | SiftMaxRelativeTolerance 7 | 2 | 0.13802 | SiftMaxRelativeTolerance 8 | 3 | 0.15937 | SiftMaxRelativeTolerance 9 | 2 | 0.15923 | SiftMaxRelativeTolerance The decomposition stopped because the number of extrema of the residual signal is less than 'MaxNumExtrema'.
Таблица, сгенерированная в командном окне, показывает, что количество отсеивает итерации, относительный допуск, и отсеять критерий остановки каждого сгенерировал МВФ. Эта информация также содержится в info
. Можно скрыть таблицу путем определения 'Display'
как 0
.
Вычислите Гильбертовы параметры спектра: Гильбертов спектр hs
, вектор частоты f
, временной вектор t
, мгновенная частота imfinsf
, и мгновенная энергия imfinse
.
[hs,f,t,imfinsf,imfinse] = hht(imf,fs);
Используйте вычисленные Гильбертовы параметры спектра в частотно-временном анализе и диагностике сигнала.
Симулируйте сигнал вибрации от поврежденного подшипника. Вычислите Гильбертов спектр этого сигнала и ищите дефекты.
Терпение диаметра подачи 12 см имеет восемь прокручивающихся элементов. Каждый элемент прокрутки имеет диаметр 2 см. Внешняя гонка остается стационарной, когда внутренняя гонка управляется в 25 циклах в секунду. Акселерометр производит колебания подшипника на уровне 10 кГц.
fs = 10000; f0 = 25; n = 8; d = 0.02; p = 0.12;
Сигнал вибрации от здорового подшипника включает несколько порядков ведущей частоты.
t = 0:1/fs:10-1/fs; yHealthy = [1 0.5 0.2 0.1 0.05]*sin(2*pi*f0*[1 2 3 4 5]'.*t)/5;
Резонанс взволнован в вибрации подшипника на полпути посредством процесса измерения.
yHealthy = (1+1./(1+linspace(-10,10,length(yHealthy)).^4)).*yHealthy;
Резонанс вводит дефект во внешней гонке подшипника, который приводит к прогрессивному износу. Дефект вызывает ряд ударов, которые повторяются на частоте передачи шара внешняя гонка (BPFO) подшипника:
где пропускная способность, количество прокручивающихся элементов, диаметр прокручивающихся элементов, диаметр подачи подшипника, и угол контакта подшипника. Примите угол контакта 15 ° и вычислите BPFO.
ca = 15; bpfo = n*f0/2*(1-d/p*cosd(ca));
Используйте pulstran
функционируйте, чтобы смоделировать удары, когда периодическое обучается синусоид с 5 миллисекундами. Каждая синусоида на 3 кГц является оконной окном с плоской вершиной. Используйте закон о степени, чтобы ввести прогрессивный износ в сигнале вибрации подшипника.
fImpact = 3000; tImpact = 0:1/fs:5e-3-1/fs; wImpact = flattopwin(length(tImpact))'/10; xImpact = sin(2*pi*fImpact*tImpact).*wImpact; tx = 0:1/bpfo:t(end); tx = [tx; 1.3.^tx-2]; nWear = 49000; nSamples = 100000; yImpact = pulstran(t,tx',xImpact,fs)/5; yImpact = [zeros(1,nWear) yImpact(1,(nWear+1):nSamples)];
Сгенерируйте сигнал вибрации BPFO путем добавления ударов на здоровый сигнал подшипника. Постройте сигнал и выберите 0,3 вторых интервала, запускающиеся в 5,0 секунд.
yBPFO = yImpact + yHealthy; xLimLeft = 5.0; xLimRight = 5.3; yMin = -0.6; yMax = 0.6; plot(t,yBPFO) hold on [limLeft,limRight] = meshgrid([xLimLeft xLimRight],[yMin yMax]); plot(limLeft,limRight,'--') hold off
Увеличьте масштаб выбранного интервала, чтобы визуализировать эффект ударов.
xlim([xLimLeft xLimRight])
Добавьте белый Гауссов шум в сигналы. Задайте шумовое отклонение .
rn = 150; yGood = yHealthy + randn(size(yHealthy))/rn; yBad = yBPFO + randn(size(yHealthy))/rn; plot(t,yGood,t,yBad) xlim([xLimLeft xLimRight]) legend('Healthy','Damaged')
Используйте emd
выполнять эмпирическое разложение моды здорового сигнала подшипника. Вычислите первые пять внутренних функций режима (IMFs). Функция выходными параметрами по умолчанию таблица, которая указывает на количество отсеивания итераций, относительного допуска и критерия остановки отсеивания каждого МВФ.
imfGood = emd(yGood,'MaxNumIMF',5);
Current IMF | #Sift Iter | Relative Tol | Stop Criterion Hit 1 | 3 | 0.017132 | SiftMaxRelativeTolerance 2 | 3 | 0.12694 | SiftMaxRelativeTolerance 3 | 6 | 0.14582 | SiftMaxRelativeTolerance 4 | 1 | 0.011082 | SiftMaxRelativeTolerance 5 | 2 | 0.03463 | SiftMaxRelativeTolerance The decomposition stopped because 'MaxNumIMF' was reached.
Используйте emd
без выходных аргументов, чтобы визуализировать первые три режима и невязку. Установите 'Display'
к 0
скрыть таблицу.
emd(yGood,'MaxNumIMF',5,'Display',0)
Вычислите и визуализируйте IMFs дефектного сигнала подшипника. Первый эмпирический режим показывает высокочастотные удары. Этот высокочастотный режим увеличения энергии как износ прогрессирует.
imfBad = emd(yBad,'MaxNumIMF',5);
Current IMF | #Sift Iter | Relative Tol | Stop Criterion Hit 1 | 2 | 0.041274 | SiftMaxRelativeTolerance 2 | 3 | 0.16695 | SiftMaxRelativeTolerance 3 | 3 | 0.18428 | SiftMaxRelativeTolerance 4 | 1 | 0.037177 | SiftMaxRelativeTolerance 5 | 2 | 0.095861 | SiftMaxRelativeTolerance The decomposition stopped because 'MaxNumIMF' was reached.
emd(yBad,'MaxNumIMF',5,'Display',0)
Постройте Гильбертов спектр первого эмпирического режима дефектного сигнала подшипника. Первый режим получает эффект высокочастотных ударов. Энергия увеличений ударов как износ подшипников прогрессирует.
figure hht(imfBad(:,1),fs)
Гильбертов спектр третьего режима показывает резонанс в сигнале вибрации. Ограничьте частотный диапазон [0, 100] Гц.
hht(imfBad(:,3),fs,'FrequencyLimits',[0 100])
Для сравнения постройте Гильбертовы спектры первых и третьих режимов здорового сигнала подшипника.
subplot(2,1,1)
hht(imfGood(:,1),fs)
subplot(2,1,2)
hht(imfGood(:,3),fs,'FrequencyLimits',[0 100])
imf
— Внутренняя функция режимаВнутренняя функция режима, заданная как матрица или расписание. imf
любой сигнал, конверт которого симметричен относительно нуля и чьи количества экстремальных и нулевых пересечений отличаются самое большее один. emd
используется, чтобы анализировать и упростить сложные сигналы в конечное число внутренних функций режима, требуемых выполнять Гильбертов спектральный анализ.
hht
обработки каждый столбец в imf
как внутренняя функция режима. Для получения дополнительной информации о вычислении imf
, смотрите emd
.
fs
— Частота дискретизации
(значение по умолчанию) | положительная скалярная величинаЧастота дискретизации, заданная как положительная скалярная величина. Если fs
не предоставляется, нормированная частота 2π
используется для расчета Гильбертов спектр. Если imf
задан как расписание, частота дискретизации выведена из него.
freqlocation
— Местоположение оси частоты на графике'yaxis'
(значение по умолчанию) | 'xaxis'
Местоположение оси частоты на графике, заданном как 'yaxis'
или 'xaxis'
. Чтобы отобразить данные о частоте по y - ось или x - ось графика, задайте freqlocation
как 'yaxis'
или 'xaxis'
соответственно.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'FrequencyResolution',1
'FrequencyLimits'
— Пределы частоты, чтобы вычислить Гильбертов спектр[0, fs
/2]
(значение по умолчанию) | 1 2 вектор с целочисленным знакомПределы частоты, чтобы вычислить Гильбертов спектр, заданный как разделенная запятой пара, состоящая из 'FrequencyLimits
'и 1 2 вектор с целочисленным знаком. FrequencyLimits
задан в Гц.
'FrequencyResolution'
— Разрешение частоты, чтобы дискретизировать частотный диапазонРазрешение частоты, чтобы дискретизировать пределы частоты, заданные как разделенная запятой пара, состоящая из 'FrequencyResolution
'и положительная скалярная величина.
Задайте FrequencyResolution
в Гц. Если 'FrequencyResolution'
не задан, значение (fhigh-flow)/100 выведено из FrequencyLimits
. Здесь, fhigh является верхним пределом FrequencyLimits
и flow является нижним пределом.
'MinThreshold'
— Минимальное пороговое значение Гильбертова спектра-inf
(значение по умолчанию) | скалярМинимальное пороговое значение Гильбертова спектра, заданного как разделенная запятой пара, состоящая из 'MinThreshold
'и скаляр.
MinThreshold
элементы наборов hs
к 0, когда соответствующие элементы меньше MinThreshold
.
hs
— Гильбертов спектр сигналаГильбертов спектр сигнала, возвращенного как разреженная матрица. Используйте hs
для частотно-временного анализа и идентифицировать локализованные функции в сигнале.
f
— Значения частотыЗначения частоты сигнала, возвращенного как вектор. hht
использует вектор частоты f
и временной вектор t
создать Гильбертов график спектра.
Математически, f
обозначается как: f = flow: fres: fhigh, где fres является разрешением частоты.
t
— Временные стоимостиduration
массивimfinsf
— Мгновенная частота каждого МВФМгновенная частота каждого МВФ, возвращенного как вектор, матрица или расписание.
imfinsf
имеет одинаковое число столбцов как imf
и возвращен как:
Вектор, если imf
задан как вектор.
Матрица A, если imf
задан как матрица.
Расписание, если imf
задан как однородно произведенное расписание.
imfinse
— Мгновенная энергия каждого МВФМгновенная энергия каждого МВФ, возвращенного как вектор, матрица или расписание.
imfinse
имеет одинаковое число столбцов как imf
и возвращен как:
Вектор, если imf
задан как вектор.
Матрица A, если imf
задан как матрица.
Расписание, если imf
задан как однородно произведенное расписание.
Преобразование Гильберта-Хуанга полезно для выполнения частотно-временного анализа неустановившихся и нелинейных данных. Процедура Хилбэрт-Хуана состоит из следующих шагов:
emd
разлагает набор данных x на конечное число внутренних функций режима.
Для каждой внутренней функции режима, xi, функционального hht
:
Использование hilbert
вычислить аналитический сигнал, , где H {xi} является преобразованием Гильберта xi.
Экспрессы zi как , где ai (t) является мгновенной амплитудой и мгновенная фаза.
Вычисляет мгновенную энергию, , и мгновенная частота, . Если дали частота дискретизации, hht
преобразует к частоте в Гц.
Выводит мгновенную энергию в imfinse
и мгновенная частота в imfinsf
.
Когда названо без выходных аргументов, hht
строит энергию сигнала как функция времени и частоты, с цветом, пропорциональным амплитуде.
[1] Хуан, Норден Э. и Сэмюэль С. П. Шен. Преобразование Гильберта-Хуанга и его приложения. Сингапур: научный мир, 2014.
[2] Хуан, Норден Э., Жаохуа Ву, Стивен Р. Лонг, Кеннет К. Арнольд, Ксиэньяо Чен и Карин Блэнк. "На Мгновенной Частоте". Усовершенствования в Адаптивном Анализе данных. Издание 1, Номер 2, 2009, стр 177–229.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.