如何对任意变量进行傅里叶变换?

时间:2017-12-06 00:14:09

标签: matlab fft dct cartesian-coordinates spherical-coordinate

我想采用以下形式的FFT: Fourier in spherical coordinates

事实上,我的f(theta,phi)是一个3D图像体素,即它有f(半径,theta,phi)。如果我必须沿着dx取整数,那就等于选择我的IMG(ylocation,:,zlocation)= currentvoxel并在其上运行fft(currentvoxel)。但是,现在我只需要沿着phi拍摄fft。这很难,因为它需要我找到所有位于theta = currenttheta的位置,并且对于每个r = currentr,我必须找到所有要取fft的phi。

我甚至不知道如何展开phi来取fft。当它是笛卡尔坐标时,它很容易,只需从x = 0开始,... x = end并运行fft。 phi案例是否相同?获取某个r,theta上的所有phi和将它们排序为0到2pi 并取fft?

或者正弦/余弦变换如下: cosine/sine transform

如果这是f(x,y),我认为在MATLAB中这样做的方法是采用dct(f *(x。^ 2 + y。^ 2))。换句话说,运行离散余弦变换。我对吗?

第二部分的额外澄清: 我感兴趣的积分是:bessel 其中j_l(kr):expanded j_lexpanded further 最后,F_(l)(t)由前一个给出:cosine/sine transform

0 个答案:

没有答案