hht

Хилбэрт-Хуан преобразовывает

Синтаксис

hs = hht(imf,fs)
[hs,f,t] = hht(imf,fs)
[hs,f,t,imfinsf,imfinse] = hht(___)
[___] = hht(___,Name,Value)
hht(___)
hht(___,freqlocation)

Описание

hs = hht(imf,fs) возвращает Гильбертов спектр hs сигнала, заданного внутренними функциями режима imf и дополнительная частота дискретизации fs. hs полезен для анализа сигналов, которые включают смесь сигналов, спектральное содержимое которых изменяется вовремя. Используйте hht, чтобы выполнить Гильбертов спектральный анализ на сигналах идентифицировать локализованные функции.

[hs,f,t] = hht(imf,fs) возвращает вектор частоты f и временной вектор t в дополнение к hs.

пример

[hs,f,t,imfinsf,imfinse] = hht(___) также возвращает мгновенные частоты imfinsf и мгновенные энергии imfinse внутренних функций режима для диагностики сигнала.

[___] = hht(___,Name,Value) оценки параметры спектра Гильберта с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

hht(___) без выходных аргументов строит Гильбертов спектр в окне текущей фигуры. Можно использовать этот синтаксис с любым из входных параметров в предыдущих синтаксисах.

пример

hht(___,freqlocation) строит Гильбертов спектр с дополнительным аргументом freqlocation, чтобы задать местоположение оси частоты. Частота представлена на y - ось по умолчанию.

Примеры

свернуть все

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

Загрузите неустановившиеся данные сигнала с частотой дискретизации fs и визуализируйте смешанный синусоидальный сигнал.

load('sinusoidalSignalExampleData.mat','X','fs')
t = (0:length(X)-1)/fs;
plot(t,X)
xlabel('Time(s)')

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

Чтобы создать Гильбертов график спектра, вам нужны внутренние функции режима (IMFs) сигнала. Выполните эмпирическое разложение режима, чтобы вычислить IMFs и невязки сигнала. Поскольку сигнал не сглажен, задайте 'pchip' как метод Interpolation.

[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 секунду.

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

Загрузите неустановившиеся данные сигнала с частотой дискретизации 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, вектор частоты fs, временной вектор t, мгновенная частота imfinsf и мгновенная энергия imfinse.

[hs,f,t,imfinsf,imfinse] = hht(imf,fs);

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

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

свернуть все

Внутренняя функция режима, заданная как матрица или расписание. imf является любым сигналом, конверт которого симметричен относительно нуля и чьи количества экстремальных и нулевых пересечений отличаются самое большее один. emd используется, чтобы анализировать и упростить сложные сигналы в конечное число внутренних функций режима, требуемых выполнять Гильбертов спектральный анализ.

hht обрабатывает каждый столбец в imf как внутренняя функция режима. Для получения дополнительной информации о вычислении imf смотрите emd.

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

Если fs не предоставляется, нормированная частота используется, чтобы вычислить Гильбертов спектр. Если imf задан как расписание, время выборки выведено из него.

Местоположение оси частоты на графике, заданном как 'yaxis' или 'xaxis'. Чтобы отобразить данные о частоте по y - ось или x - ось графика, задайте freqlocation как 'yaxis' или 'xaxis' соответственно.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'FrequencyResolution',1

Пределы частоты, чтобы вычислить Гильбертов спектр, заданный как пара, разделенная запятой, состоящая из 'FrequencyLimits' и 1 2 вектора с целочисленным знаком. FrequencyLimits задан в Гц.

Разрешение частоты, чтобы дискретизировать пределы частоты, заданные как пара, разделенная запятой, состоящая из 'FrequencyResolution' и положительной скалярной величины.

Задайте FrequencyResolution в Гц. Если 'FrequencyResolution' не задан, значение (f_high-f_low)/100 выведено из FrequencyLimits. Здесь, f_high является верхним пределом FrequencyLimits, в то время как f_low является нижним пределом.

Минимальное пороговое значение Гильбертова спектра, заданного как пара, разделенная запятой, состоящая из 'MinThreshold' и скаляра.

MinThreshold устанавливает элементы hs к 0 когда соответствующие элементы 10журнал10(hs) меньше, чем MinThreshold.

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

свернуть все

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

Вектор частоты сигнала, возвращенного как числовой массив. hht использует вектор частоты f и временной вектор t, чтобы создать Гильбертов график спектра.

Математически, f обозначается как:

f = f_low:FrequencyResolution:f_high

Временной вектор сигнала, возвращенного как числовой массив или массив duration. hht использует временной вектор t и вектор частоты f, чтобы создать Гильбертов график спектра.

t возвращен как:

  • Массив, если imf задан как массив.

  • Массив duration, если imf задан как однородно выбранное расписание.

Мгновенная частота каждого МВФ, возвращенного как массив или расписание.

insf имеет одинаковое число столбцов как imf и возвращен как:

  • Массив, если imf задан как массив.

  • Расписание, если imf задан как однородно выбранное расписание.

Мгновенная энергия каждого МВФ, возвращенного как массив или расписание.

inse имеет одинаковое число столбцов как imf и возвращен как:

  • Массив, если imf задан как массив.

  • Расписание, если imf задан как однородно выбранное расписание.

Алгоритмы

Хилбэрт-Хуан преобразовывает, полезно для выполнения анализа частоты времени неустановившихся и нелинейных данных. Процедура Хилбэрт-Хуана состоит из следующих шагов:

  1. emd разлагает набор данных x на конечное число внутренних функций режима.

  2. Для каждой внутренней функции режима, xi, функционального hht:

    1. Использование hilbert, чтобы вычислить аналитический сигнал, zi(t)=xi(t)+jH{xi(t)}, где H {xi} является Гильбертовым преобразованием xi.

    2. Экспрессы zi как zi(t)=ai(t)ejθi(t), где ai (t) является мгновенной амплитудой и θi(t) мгновенная фаза.

    3. Вычисляет мгновенную энергию, |ai(t)|2, и мгновенная частота, ωi(t)dθi(t)/dt. Если дали частота дискретизации, hht преобразовывает ωi(t) к частоте в Гц.

    4. Выводит мгновенную энергию в imfinse и мгновенную частоту в imfinsf.

  3. Когда названо без выходных аргументов, hht строит энергию сигнала как функция времени и частоты с цветом, пропорциональным амплитуде.

Ссылки

[1] Хуан, Норден Э. и Сэмюэль С. П. Шен. Хилбэрт-Хуан преобразовывает и его приложения. Сингапур: научный мир, 2014.

[2] Хуан, Норден Э., Жаохуа Ву, Стивен Р. Лонг, Кеннет К. Арнольд, Ксиэньяо Чен и Карин Блэнк. "На Мгновенной Частоте". Усовершенствования в Адаптивном Анализе данных. Издание 1, № 2, 2009, стр 177–229.

Введенный в R2018a