R中的DFT矩阵

DFT-Matrix in R

我正在尝试在 R 中创建一个离散傅里叶变换矩阵,但我不知道它是否正确。

我将创建一个如下所示的矩阵:1/sqrt(N) * [w^(m*n)] for n,m in [0:N-1] for w = exp(-2* pi*i/N) 如 (Wikipedia->DFT-Matrix)

所以我尝试了:

DFT.matrix <- function (N) {

   w <- exp(-2*pi*1i/N)

   row <- vector()
   for (n in seq(0,N-1,1)) 
      for (m in seq(0,N-1,1)) 
         row <- c(row, w^(m*n))

   dft_matrix = (1/sqrt(N))*matrix(row, N, byrow=TRUE)
   return (dft_matrix)
}

复杂的i我没有建,因为不知道怎么实现。 你能帮我实现这个功能吗?

尝试

N  <- 3
w <- exp(-2*pi*1i/N)
outer(0:(N-1), 0:(N-1), function(i, j) w^(i*j)) / sqrt(N)
#             [,1]            [,2]            [,3]
#[1,] 0.5773503+0i  0.5773503+0.0i  0.5773503+0.0i
#[2,] 0.5773503+0i -0.2886751-0.5i -0.2886751+0.5i
#[3,] 0.5773503+0i -0.2886751+0.5i -0.2886751-0.5i