【发布时间】:2014-09-07 00:54:06
【问题描述】:
我正在尝试计算从大小约为 16 GB 的文本文件导入的大量数据的快速傅立叶变换。我试图想办法在matlab中计算它的fft,但是由于我的计算机内存(8gB),它给了我一个内存不足的错误。我尝试使用memmap、textscan,但无法申请获取组合数据的FFT。
谁能指导我如何获得傅立叶变换?我还尝试在远程服务器上使用 C++ 代码获取傅立叶变换(使用定义),但执行需要很长时间。谁能给我一个关于我应该如何处理这些大数据的正确见解?
【问题讨论】:
-
要么尝试将数据拆分成更小的块,以便您的计算机可以处理它,要么获得更多内存。
-
@JoachimPileborg 但是将数据分成更小的块会使应用 FFT 变得困难。 FFT 需要访问所有数据
-
我真的很想知道你打算用那个 FFT 做什么?
-
@user3821417:您真的想要拥有数十亿点的 FFT 吗?因为通常在较长的信号上你会计算一个频谱图(它只是在很短的时间间隔内重复计算 FFT)
-
@MSalters 只是作为应用程序示例查看this。应用程序是搜索脉冲星,他们在那篇论文中谈到的数据从 2^29 到 2^33 不等。不了解 OP 的应用,但有时需要对大型数据集进行 FFT。
标签: c++ matlab fft large-data