Библиотека прямого и обратного преобразования Габора в C/C++
Мне интересно, существует ли высоко оптимизированная библиотека C/C++ для прямого и обратного преобразований Габора ( ссылка на Википедию). Это не то же самое, что фильтр Габора, который обычно применяется к изображениям. Библиотека может быть либо закрытой, либо FOSS/open-source, но я бы предпочел последнее, так как я работаю над исследовательским приложением.
Я реализую алгоритмы обратной Q-фильтрации из книги по сейсмической обратной Q-фильтрации (см. Стр. 125). Автор, похоже, любит использовать преобразование Габора.
Требуется прямое и обратное преобразование, поскольку некоторые операции вычисляются для сигналов частотной области, а обратное преобразование используется для вычисления дискретного сигнала во временной области.
2 ответа
Насколько мне известно, нет специализированной библиотеки для вычисления преобразования Габора (GT). По аналогии с непрерывным вейвлет-преобразованием (CWT) GT может быть аппроксимирован только до определенной степени, поскольку он определяется как непрерывная функция времени и частоты.
Тем не менее, стандартные инструменты могут быть использованы для получения достойного приближения GT. Обычный способ, аналогичный CWT, состоит в том, чтобы реализовать эти преобразования в пространстве Фурье. GT, как и CWT, по сути, просто банк фильтров. Для GT вы должны вычислить FFT, умножить на преобразование Фурье ядра GT, которое является гауссовым центром в желаемой полосе частот, а затем вычислить обратное FFT для каждой полосы.
Другое хорошее приближение GT, основанное на наборе фильтров IIR, описано в этой статье. Этот метод также может быть реализован с помощью стандартных инструментов (MatLab, SciPy и т. Д.)
Мне любопытно, какое научное приложение вы нацеливаете? Обычно CWT является лучшим выбором, так как он уважает естественное поведение скейлинга и имеет более высокую степень симметрии, в частности, он инвариантен относительно дилатаций.
На 2022 год существует набор инструментов библиотеки LTFAT с интерфейсами matlab/octave/python и бэкендом переменного тока, поддерживающим прямое и обратное преобразование габора 1D/2D.