我在变量" 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
答案 0 :(得分:1)
如果内存空间不是问题,您可以使用im2col
功能。以下代码将输入数组中的每个[1,32]块重新排列为输出数组的一列。第二行中的fft函数独立地应用于每列。
x = im2col(filter, [1, 32]);
output = fft(x);