如何在C中使用给定的FFT函数?

时间:2010-10-22 09:43:06

标签: c fft

对不起,这是我第一次在这里提问,我已经给出了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)。

我的问题是:

  1. 我可以获得给定图像的每个itensity值但是我如何处理fft_1d的复杂组件(实部/虚部)?换句话说,我应该在参数float xr[256]float xi[256]中添加什么才能进行图像的2D(DFT)?
  2. 感谢您的关注!

1 个答案:

答案 0 :(得分:3)

图像通常是纯粹的功能。因此,您可以将实际输入设置为图像值,并在调用FFT函数时将虚拟输入设置为零。

但是,为了执行2D FFT,您必须首先在每一行上调用1D FFT,然后在结果的每个上调用1D FFT。这些中间结果将很复杂,必须这样传递给第二组FFT。