加快阅读和抽取大数据文件

时间:2017-09-26 09:32:15

标签: matlab large-data downsampling

我有一些相当简单的代码,它读取一些信号数据,对其进行抽取,然后将每次迭代附加到一个单元格。数据文件的大小通常为20 - 100 GB,因此我无法将整个内容读入内存。

对于给定的采样率sR,我的代码的例子是

fid = fopen(filename,'r');

for jj=1:10
    data = fread(fid,120*sR,'float32');
    wave = complex(data(1:2:end),data(2:2:end)); %Data is in I/Q format

    for k=1:10
        waveDec = decimate(wave,2,100,'fir');
    end
    output{jj} = waveDec;
end

因此,此代码将读取10个120/2秒数据块。理想情况下,我想读取整个文件,因为减少2 ^ 10是非常激进的。这需要很长时间。

我想知道将wave变量转换为复数是一个非常繁重的操作。

阅读大块数据与小块数据有什么好处?我可以用某种方式并行化这段代码吗?

谢谢

0 个答案:

没有答案