如何根据极坐标将矩阵划分为一系列区间

时间:2011-04-23 13:19:33

标签: arrays coordinates fft bin

我正在尝试在Octave / Matlab中编写一个程序,旨在拍摄图像,对该图像执行2D快速傅立叶变换,然后将FFT数据分成一系列的平均值可以计算FFT强度。这些箱需要计算该谱的每个5度段的傅里叶谱的强度:

即。想象一下500x500阵列,然后将它分成72个相等的切片(就像切片披萨一样),每个切片相隔5度。然后,这些切片形成箱,并计算其中的平均值。

我理解为了产生这个,我必须将得到的FFT的笛卡尔坐标转换为极坐标,这样我就可以使用θ的值来计算二进制位。此外,要像披萨一样切割阵列,极坐标必须始于图像的中心。我知道如何做到这一点,但是一旦我完成了这个,我就被困在如何将阵列分成两个箱子。

有人可以帮忙吗?假设这个解释有意义吗?

1 个答案:

答案 0 :(得分:0)

实际上,它并不完全清楚。

但我认为你的意思是在傅里叶域中的极坐标 ,在这种情况下,你可以从atan2(f_y, f_x) f_y和{{{{{}}获得每个点的角度。 1}}是傅里叶域中的y和x坐标。对于FFT,这些通常通过排序

与数组索引相关
f_x

对于matlab,另请参阅fftshift