c++ - C/C++ 中的正向和反向 Gabor 变换库

标签 c++ c signal-processing

我想知道是否存在针对正向和反向 Gabor 变换的高度优化的 C/C++ 库( Wikipedia link )。这与通常应用于图像的 Gabor 滤波器不同。该库可以是封闭的,也可以是 FOSS/开源的,但我更喜欢后者,因为我正在开发一个研究应用程序。

我正在实现 Seismic Inverse Q filtering 中的逆 Q 滤波算法书(见第 125 页)。作者似乎喜欢使用 Gabor 变换。

需要正变换和逆变换,因为一些运算是在频域信号上计算的,而逆变换用于计算离散时域信号。

最佳答案

据我所知,没有专门的库来计算 Gabor 变换(GT)。与连续小波变换 (CWT) 类似,GT 只能在一定程度上近似,因为它被定义为时间和频率连续函数。

但是,可以使用标准工具来获得 GT 的近似值。与 CWT 类似,通常的方法是在傅里叶空间中实现这些变换。 GT 和 CWT 本质上只是一个滤波器组。对于 GT,您将计算 FFT,乘以 GT 内核的傅里叶变换(它是以所需频带为中心的高斯变换),然后计算每个频带的逆 FFT。

this article 中描述了基于 IIR 滤波器组的 GT 的另一个良好近似。 。该方法也可以使用标准工具(MatLab、SciPy等)来实现

我很好奇,你的目标是什么科学应用?通常 CWT 是更好的选择,因为它尊重自然缩放行为并具有更高程度的对称性,特别是它在膨胀下保持不变。

关于c++ - C/C++ 中的正向和反向 Gabor 变换库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11237030/

相关文章:

c++ - 如何实现将用户输入读取到提供的所有变量中的可变参数模板?

matlab - 设计低通滤波器

c - 为什么使用 memset 手动设置字节时字符串会缩短?

c - 有没有更好的方法来检查这两个变量而不是四个 ifs?

c - 如何使用 gcc 编译器 __attribute__ 收集 ELF 部分中的结构?

python - 计算限制内的数据点,并对孤立点应用缓冲区[数据分析]

c++ - 如何将谐波添加到正弦波中

c++ - std::thread 是 boost::thread 的替代品吗?

c++ - 英特尔编译器与 GCC

c++ - 如果他们没有牙套,程序会怎样?