在Matlab中计算FFT

时间:2014-03-18 02:50:55

标签: matlab fft continuous

我在变量" filter"中有一组数字。我想用matlab连续计算每32个数据的傅里叶变换(fft)。但是下面的代码似乎不起作用。任何人都有更好的解决方案吗?

for aa=1:length(filter)-32  %scans every row of numbers
 output(aa) = fft(filter(aa + (0:31)));   % compute fft every 32 data continuously      
end

1 个答案:

答案 0 :(得分:1)

如果内存空间不是问题,您可以使用im2col功能。以下代码将输入数组中的每个[1,32]块重新排列为输出数组的一列。第二行中的fft函数独立地应用于每列。

x = im2col(filter, [1, 32]);
output = fft(x);