离散傅里叶变换DFT的推导和lisp实现

离散傅里叶变换DFT的推导和lisp实现

lisp 代码:点击打开链接

执行例子:

> (load "ss/dft.ss")
> (dft '(1 1 1 1 1 1 1 1))
(8 0 0 0 0 0 0 0)
> (idft (dft '(1 1 1 1 1 1 1 1)))
(1 1.0 1.0 1.0 1 1.0 1.0 1.0)

> (dft '(1 2 3 4 5 6 7 8))
(36 -4.0+9.65685424949238i -4.0+4.0i -4.0+1.6568542494923797i -4
    -3.9999999999999996-1.6568542494923797i
    -3.9999999999999996-4.0i
    -3.9999999999999987-9.65685424949238i)
> (idft (dft '(1 2 3 4 5 6 7 8)))
(1.0000000000000002+0.0i 2.0000000000000004+1.167434911886255e-16i
  3.0-9.957992501029599e-17i 4.0+2.2776579365114115e-16i
  5.0+0.0i 6.0-1.0530111373640582e-16i
  7.0+9.957992501029599e-17i 8.0-2.3920817110336085e-16i)