离散时间傅里叶变换DTFT可用来分析离散序列的频谱。DTFT的计算可以将计算出来再通过对w取值得出,但这样增加了计算难度。这里使用DTFT定义计算序列x(n)的DTFT。
定义函数DTFT用于计算序列x(n)的DTFT:
function [X_jw1,X_jw2]=DTFT(xn,N)
%功能:计算离散时间傅里叶变换DTFT
%xn:时域序列;N:w取多少点
%X_jw1:xn在[0:pi]的DTFT;X_jw2:xn在[0:2*pi]的DTFT
M=length(xn);
n=0:M-1;
w1=(0:N)*pi/N;
w2=(0:N)*2*pi/N;
X_jw1=xn*exp(-j*n'*w1);
X_jw2=xn*exp(-j*n'*w2);
end
以三角序列为例,即。主函数脚本代码为:
w=(0:500)*pi/500;
[X1,~]=DTFT(xcn,500);
%subplot(2,1,1);
plot(w,abs(X1));xlabel('w');ylabel('|X_c(w)|');
运行结果为:
此外,值得注意的是,DTFT关于对称,如果w范围拓展到
,脚本代码为:
w=(0:500)*2*pi/500;
[~,X2]=DTFT(xcn,500);
%subplot(2,1,1);
plot(w,abs(X2));xlabel('w');ylabel('|X_c(w)|');
运行结果为: