
第1题
1 2 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题
1 2 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;
|
输出结果:
