应用于傅里叶变换信号的卷积滤波器

Posted

技术标签:

【中文标题】应用于傅里叶变换信号的卷积滤波器【英文标题】:Convolutional filter applied to Fourier-transformed signal 【发布时间】:2020-06-22 21:05:30 【问题描述】:

我知道两个信号卷积的傅里叶变换是它们的傅里叶变换的逐点乘积 (convolutional theorem)。我想知道的是,在已知情况下,卷积可以有意义地应用于频域中的傅立叶变换信号(例如时间序列或图像),以充当滤波器,而不是乘以方阵。此外,是否存在增加时域大小的滤波器的已知应用,即频域中的矩阵是矩形的,然后应用逆 FT 回到时域?特别是,我对这种深度学习方法的已知示例感兴趣。

【问题讨论】:

【参考方案1】:

正如您所说,两个信号的卷积是它们傅里叶变换的逐点乘积。这在两个方向上都是正确的——两个傅里叶变换信号的卷积等于两个时间序列的逐点乘积。

您必须适当地定义“卷积” - 对于离散傅里叶变换,卷积是循环卷积。

在时域中进行逐点块乘法肯定有有意义的用途(例如,在转换到频域之前将数据窗口应用于信号,或调制载波),因此您可以说它是有意义的在频域中进行卷积。但与仅在时域中进行操作相比,它不太可能高效。

请注意,多年来在优化傅里叶变换方面付出了很多努力,这正是因为在频域中进行块乘法(它是 O(n))比在时域(即 O(n^2))。由于傅立叶变换为 O(n log(n)),因此 forwardTransform-b​​lockMultiply-inverseTransform 的组合通常比进行卷积更快。在另一个方向上仍然如此,因此如果您从频率数据开始,则 inverseTransform-b​​lockMultiply-forwardTransform 通常比在频域中进行卷积更快。当然,通常你已经在某处拥有原始时间数据,因此时域中的块相乘会更快。

不幸的是,我不知道有哪些应用程序会在我的脑海中增加时域的大小。而且我对深度学习一无所知,所以在这方面我帮不了你。

【讨论】:

以上是关于应用于傅里叶变换信号的卷积滤波器的主要内容,如果未能解决你的问题,请参考以下文章

Opencv 实现图像的离散傅里叶变换(DFT)卷积运算(相关滤波)

数字信号处理2:傅里叶变换

傅里叶变换滤波之生物信号滤波(笔记03)

频率域滤波

数字信号入门笔记4—离散傅里叶变换

python_傅里叶变换(DFTFFTSTFT)