Преобразование Гильберта – Хуанга: мгновенная частота

1

Я реализую "Разложение эмпирического режима" на Java. Следующий шаг - преобразование Гильберта-Хуанга, и мне нужно найти, как получить "Мгновенную частоту". Кто-нибудь знает, как это получить?

Используя метод EMD, любой сложный набор данных можно разложить на конечное и часто небольшое количество компонентов, которое представляет собой набор функций внутреннего режима (IMF). Следующий шаг - преобразование Гильберта-Хуанга. Из этого я вычисляю фазу сигнала и после того, как я должен вычислить мгновенную частоту, я ищу в коде Matlab, как в этой ссылке: http://read.pudn.com/downloads100/sourcecode/math/408870/emd/instfreq/archive/ifreq.m __. HTM

но я этого не понимаю.

благодаря

  • 0
    Пожалуйста, опишите, чего вы хотите достичь и чего вы пытались достичь.
  • 0
    Вы готовы поделиться своим Java-кодом, чтобы другие могли извлечь выгоду из его реализации?
Теги:
frequency
hilbert-curve

3 ответа

0

Вы можете обработать данные своего сигнала, используя преобразование Гильберта-Хуанга (HHT), которое является комбинацией эмпирической модовой декомпозиции (EMD) и анализа спектра Гильберта (HSA) с Matlab или Python. В Matlab или Python есть метод HHT, который вы можете использовать напрямую, и вам не нужно самостоятельно рассчитывать мгновенную частоту (IF).

Например с Matlab:

Во-первых, вы можете получить IMF и остаток, реализовав emd для передачи данных, код: [IMF, остаток, информация] = emd (сигнал, 'интерполяция', 'pchip', 'дисплей', 0);

Тогда IF, то есть IMFINSF, может быть получен с помощью hht (IMF, fs), в котором fs - частота выборки [P, F, T, IMFINSF, IMFINSE] = hht (IMF, fs);

Кроме того, в Python есть также некоторые инструменты и методы.

0

Частоту экземпляра можно вычислить в Python

def hilb(s, unwrap=False):
    from scipy.signal import hilbert
    H = hilbert(s)
    amp = np.abs(H)
    phase = np.arctan2(H.imag, H.real)
    if unwrap: phase = np.unwrap(phase)
    return amp, phase

inst_amp, phase = hilb(imf, unwrap=True)
inst_freq = np.diff(phase)
0

Преобразование Гильберта-Хуан представляет собой комбинацию эмпирического разложения мод (EMD) и преобразования Гильберта.

Во-первых, EMD - это алгоритм, который дает вам функции внутреннего режима (IMF).

Затем преобразование Гильберта применяется к каждому из МВФ.

Из МВФ преобразование Гильберта дает сигнал с задержкой pi/2 фазы, из которого вы можете вычислить фазу, и производную по времени фазы, которая пропорциональна мгновенной частоте.

Вы найдете интересные руководства и подробности об алгоритмических вариациях EMD на этой странице: http://perso.ens-lyon.fr/patrick.flandrin/emd.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню