# FFT

class mindradar.FFT(n=-1, dim=-1, norm='backward')

  傅里叶变换FFT。计算表达式为:

  \[X[\omega_1, \dots, \omega_d] = \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] e^{-j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}},\]

  其中， \(d\) = signal_ndim 是信号的维度，\(N_i\) 则是信号第 \(i\) 个维度的大小。

  参数：

    - n (int，可选) - 输出转换轴的长度。如果n小于输入的长度，则裁剪输入。如果它更大，则输入将填充零。如果未给出n，则使用沿轴指定的轴的输入长度。默认值： `-1` 。

    - dim (int，可选) - 计算FFT的轴。如果没有给出，则使用最后一个轴。默认值： `-1` 。

    - norm (str，可选) - 表示该操作的规范化方式，可选值：[ `"backward"` , `"forward"` , `"ortho"` ]。默认值： `"backward"` 。

      - “backward”，正向变换不缩放，逆变换按 \(1/n\) 缩放，其中 n 表示输入 x 的元素数量。

      - “ortho”，正向变换与逆变换均按 \(1/\sqrt n\) 缩放。

      - “forward”，正向变换按 \(1/n\) 缩放，逆变换不缩放。

  输入：

    - x (Tensor) - 输入Tensor的维数必须大于或等于 dim 。数据类型应为复数。

  输出：

    Tensor，表示复数到复数傅里叶变换FFT的结果。

  支持平台：

    `CPU`

  备注

  FFT要求complex64或complex128类型的输入，返回complex64或complex128类型的输出。

  示例：

      1import mindspore as ms
      2import mindradar as mr
      3import numpy as np
      4
      5x = np.exp(3j * np.pi * np.arange(10) / 10).reshape(2, 5).astype(np.complex64)
      6x_tensor = ms.Tensor(x)
      7fft = mr.FFT()
      8out = fft(x_tensor)
      9print(out)