#1 楼
从本质上讲,OS效率更高一些,因为它不需要添加重叠的瞬态。但是,如果需要以零填充而不是重复的采样重用FFT,则可能要使用OA。这里是我前一段时间写过的文章的快速概述
快速卷积是指圆卷积的逐块使用
以完成线性卷积。快速卷积可以通过OA或OS方法实现。操作系统也称为“重叠报废”。在OA
滤波中,每个信号数据块仅包含与
允许循环卷积等效于线性卷积的数量一样的采样。 “
”过滤器的冲动响应来自“包裹”
序列的末尾。 OA过滤将一个块的输入接通瞬态与前一个块的输入断开瞬态相加。在OS过滤中,
如图1所示,对输入数据不执行零填充,
因此,圆形卷积不等于线性卷积。
“环绕”的部分是无用的和被丢弃的。为了对此进行补偿,将上一个输入块的最后一部分用作下一个块的开头。 OS不需要添加任何瞬变,因此比OA更快。
评论
$ \ begingroup $
很棒的文章! =)
$ \ endgroup $
– Phonon
2012年6月29日,0:52
$ \ begingroup $
在OA缓冲区零填充部分的DFT的计算方式上可能会有一些优化,这为OA方法提供了优势。这将取决于您的处理器和FFT软件包。另外,您可以为考虑到零填充的OA编写适合自己的FFT算法。
$ \ endgroup $
–orodbhen
16-10-10在17:35
$ \ begingroup $
@orodbhen,您知道这样的FFT软件包吗?
$ \ endgroup $
–马克·博格丁
16-10-10在18:14
$ \ begingroup $
@MarkBorgerding在OpenCV中,您可以指定零行的数量,但这特定于2D。至于那个或其他FFT包中存在哪些隐式优化,我不知道。我可以想到很多情况下,使用自定义FFT来利用稀疏性会有所帮助,但我本人并未走这条路。还没。
$ \ endgroup $
–orodbhen
16-10-11在18:59
$ \ begingroup $
您引用的好消息是因为该链接已损坏:(
$ \ endgroup $
–user541686
19年5月10日在21:08