手动离散傅里叶变换

信息处理 傅里叶变换
2022-02-19 00:59:30

我有一个任务,我得到了序列的 DFT作为以及 x[n]X[k]={4,3,2,1,0,1,2,3}

y[n]={x[n/2]if n is even0otherwise

我应该找到并绘制的 DFT 。y[n]

所以如果我们知道,找到y[n]={x[0],0,x[1],0...x[7],0}Y[k]x[n]

我知道如何使用 DFT 和 IDFT 的定义来计算,但是手动完成是一项乏味的任务,尤其是当序列长于几个项目时。有没有更快的方法来手动计算 DFT 和 IDFT 而不使用像 Matlab 这样的程序?x[n]

2个回答

如果你使用 DFT 公式,你会得到: 现在,代入的定义,得到: 所以,对于你得到 并且对于你得到 因此,

Y[k]=n=02N1y[n]e2πkn2N
y[n]
Y[k]=n=0N1x[n]e2πk(2n)2N=n=0N1x[n]e2πknN

0k<N
Y[k]=X[k]
kN
Y[k]=n=0N1x[n]e2πknN=n=0N1x[n]e2π(kN)nN=Y[kN]

Y[k]={X[k]0k<NX[kN]kN
X[k]={4,3,2,1,0,1,2,3,4,3,2,1,0,1,2,3}

为了得到 我们只需替换值:n=0N

y[0]=x[0],y[1]=0,y[2]=x[1],y[3]=0;y[4]=x[2],y[5]=0,y[6]=x[3],y[7]=0

现在使用公式:

F[n]=k=0N1x[k]ej2πknN