如何计算x(n)={4,3,2,1,0}的DFT?

问题描述:

如何计算x(n)={4,3,2,1,0}的DFT?

程序
x=[4,3,2,1,0]
N = length(x)
n = [0:N-1]
k = [0:N-1]
w = exp(-j*2*pi/N)
nk = n' * k
wnk = w.^(nk)
Xk = x * wnk
结果
x =
4 3 2 1 0
N =
5
n =
0 1 2 3 4
k =
0 1 2 3 4
w =
0.3090 - 0.9511i
nk =
0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 912
0 4 81216
wnk =
1.0000 1.0000 1.0000 1.0000 1.0000
1.0000 0.3090 - 0.9511i-0.8090 - 0.5878i-0.8090 + 0.5878i 0.3090 + 0.9511i
1.0000-0.8090 - 0.5878i 0.3090 + 0.9511i 0.3090 - 0.9511i-0.8090 + 0.5878i
1.0000-0.8090 + 0.5878i 0.3090 - 0.9511i 0.3090 + 0.9511i-0.8090 - 0.5878i
1.0000 0.3090 + 0.9511i-0.8090 + 0.5878i-0.8090 - 0.5878i 0.3090 - 0.9511i
Xk =
10.0000 2.5000 - 3.4410i 2.5000 - 0.8123i 2.5000 + 0.8123i 2.5000 + 3.4410i不是啊,是数字信号处理里的运算啊!怎么计算啊???这就是按照DSP的计算步骤来做的。我们平时都是计算四点,旋转因子是e(-j*pi/4)=-j。如果是五点,旋转因子应为e(-j*pi/5)。不过,加一个点,计算量就很大了,结果从上面可以看到,比较复杂。但是步骤都一样,另外最好利用周期性化简一下。e(-j*pi/5)=e(-j*pi/5+j*2*pi)=e(j*pi*9/5)。