Question 1
已知信号
这里,N=25,Q= 0.9+j0.3。可以推导出 ,
首先根据这个式子计算 X(k) 的理论值,然后计算输入序列 x(n) 的32个值,再利用基2时间抽选的FFT算法,计算 x(n) 的离散傅里叶变换(DFT) X(k) ,与 X(k) 的理论值比较(要求计算结果最少6位有效数字)。
代码
format long; %精度达到15位
Q=complex(0.9,0.3); %计算Q
n=0:24;
xn=Q.^n; %生成25点x(n)
WN=exp(-j*2*pi/25); %计算WN
Xk=(1-Q.^25)./(1-Q.*WN.^n); %用理论公式计算X(k)
xn=[xn,zeros(1,7)]; %补零生成32点x(n)
Xk1=fft(xn,32); %用基2-时间抽选FFT计算X(k)
subplot(3,1,1); %绘制定义式计算的X(k)
stem(n,abs(Xk));
title('N=25 Use Definition');
subplot(3,1,2); %绘制DIT-FFT计算的X(k)
stem(0:31,abs(Xk1));
title('N=32 Use DIT-FFT');
Xk=[Xk,zeros(1,7)];
subplot(3,1,3); %绘制差值图
stem(0:31,abs(Xk1-Xk));
title('Difference');
图像
由图像可知,FFT计算得到的X(k)与理论值基本一致,但也存在较大误差。这可能与计算机运算的舍入有关。
Question 2
假设信号 x(n)