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

时间:2012-06-28 01:37:45

标签: c++ c signal-processing

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

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

需要正向和反向变换,因为有些操作是在频域信号上计算的,而逆变换则用于计算离散时域信号。

1 个答案:

答案 0 :(得分:2)

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

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

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

我很好奇,你的目标是什么样的科学应用?通常CWT是更好的选择,因为它尊重自然缩放行为并且具有更高的对称度,特别是在扩张时它是不变的。