3

我有 16 个一维数组,每个数组大约有 10-11 百万个双精度元素。我需要在它们之间执行互相关,即 1 与 2、1 与 3、...、1 与 16、2 与 3、2 与 4、...、2 与 16,等等。这在我的 MacBook Intel Core 2 duo 2.4 GHz 和 4GB RAM 上无法有效完成。我的问题是,如果不是人们用来克服这个问题或类似问题的蛮力(更快的处理器,更多的 RAM),那么典型的方法是什么?谢谢!

4

2 回答 2

2

如果您计算每个数组的傅立叶变换,您应该能够使用变换后的数组来有效地计算每对原始输入数组之间的互相关。请参阅我链接到的 Wikipedia 文章的“属性”部分,以了解要使用的身份。

于 2012-04-04T22:43:56.470 回答
1

numpy 中的互相关函数非常慢。openCV 库有一个 numpy 友好的互相关函数可用。即使您尝试实现频域方法,也不会击败 openCV 库,因为有更多技巧可用于加速互相关计算。我之前发过这个:

计算互相关函数?

我相信代码是基于以下论文中详述的技巧:

JP Lewis,“快速模板匹配”,视觉界面,1995 年,第一卷。95,第 120-123 页。

于 2012-04-10T20:51:42.923 回答