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
我正在尝试在 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