对不起,这是我第一次在这里提问,我已经给出了FFT函数
void fft_1d(int n, float xr[256], float xi[256], int ntype)
{
/* compute the FFT of a complex signal
xr and xi are the real and imaginary parts respectively
xr and xi contain the signal as input and the FT as output
n is the number of points, it should be a power of 2
ntype is set to 1 for forward transform and -1 for inverse transform
*/
我被告知要扩展此功能以执行给定图像的2D(DFT)。
我的问题是:
float xr[256]
和float xi[256]
中添加什么才能进行图像的2D(DFT)?感谢您的关注!
答案 0 :(得分:3)
图像通常是纯粹的功能。因此,您可以将实际输入设置为图像值,并在调用FFT函数时将虚拟输入设置为零。
但是,为了执行2D FFT,您必须首先在每一行上调用1D FFT,然后在结果的每个列上调用1D FFT。这些中间结果将很复杂,必须这样传递给第二组FFT。