
第1题
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 
 | clear all;clc;
 
 N = 64;
 n = 0:2*N-1;
 k = 0:N-1;
 n1 = 2*k;
 n2 = 2*k+1;
 W2Nk = exp(-1i*2*pi*k/2/N);
 xn = cos(2*pi*7*n/N)+cos(2*pi*19*n/N)/2;
 x1n = cos(2*pi*7*n1/N)+cos(2*pi*19*n1/N)/2;
 x2n = cos(2*pi*7*n2/N)+cos(2*pi*19*n2/N)/2;
 X1k = fft(x1n,N);
 X2k = fft(x2n,N);
 Xkfront = X1k + W2Nk.*X2k;
 Xklatter = X1k - W2Nk.*X2k;
 Xk = [Xkfront,Xklatter];
 subplot(2,1,1);
 stem(n,abs(Xk));
 xlabel("k");
 ylabel("幅值");
 title("基2-FFT的64点FFT算法");
 grid on;
 
 
 XkDFT = fft(xn,2*N);
 subplot(2,1,2);
 stem(n,abs(XkDFT));
 xlabel("k");
 ylabel("幅值");
 title("128点DFT算法");
 grid on;
 
 | 
输出结果:

用基2-FFT算法与直接128点DFT算法结果一致。
第2题
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | clear all;clc;
 N = 64;
 k = 0:N-1;
 n = k;
 Xk = 1./(1-0.8*exp(-1i*2*pi*k/N));
 xn = ifft(Xk,N);
 subplot(2,1,1);
 stem(k,abs(Xk));
 xlabel('k');
 ylabel('X(k)');
 title("序列的64点DFT");
 grid on;
 
 subplot(2,1,2);
 stem(n,real(xn));
 xlabel('n');
 ylabel('x(n)');
 title("64点IDFT得到的原序列");
 grid on;
 
 | 
输出结果:
