我应该1,636,399,763
最好在 MATLAB 中对一个非常长的长度向量(即长度顺序为 10^9)进行 FFT。但是,在 128 GB RAM 上,我的代码从下面的脚本Out of Memory
在线抛出错误, part2Vec = repmat(part2Vec_OneRepetition, 1000, 1)
该脚本尝试构建长度向量,1,636,763,000
然后尝试构建totalVec
长度为长度的1,636,399,763
FFT 并获取长度为的 FFT nFftLen = 2,147,483,648
。
任何想法如何做到这一点?例如,我可以分块进行 FFT,如果可以,我该怎么做?
%part1Vec = this is a "complex" column vector of length "1,636,763". Also, "complex" means each element is a complex number a+b*j.
%part2Vec_OneRepetition = this is a complex column vector of length "1,636,763"
part2Vec = repmat(part2Vec_OneRepetition, 1000, 1); % This is a complex column vector of length "1,636,763,000".
totalVec = [part1Vec ; part2Vec]; % This is a complex column vector of length "1,638,399,763".
nLen = length(totalVec);% This is "1,638,399,763".
nFftLen = 2.^(nextpow2(nLen));
myFft = fftshift(fft(totalVec, nFftLen));