1.求序列10点dft并画出幅度相位谱
2.画出dtft幅度相位谱
3.验证dft是dtft的采样
%%
%123
n= 0:9;
x = [1 3 5 7 9 9 7 5 3 1];
k=n;
w1=linspace(0,2*pi,500);%生成等间隔长度-2Π-2Π的频率
N=length(n);
y1=x*exp(-j*2*pi/N).^(n'*k);%DFT公式
y2=x*exp(-j*n'*w1);%DTFT公式
figure(1);%生成图窗如下(1)(2)
stem(n,x,'.');ylabel('x(n)');%原始信号
figure(2);
subplot(2,1,1);stem(k,abs(y1),'.');xlabel('X pi');ylabel('幅度');%dft幅度谱
subplot(2,1,2);stem(k,angle(y1),'.');xlabel('rad');ylabel('相位');%dft相位
figure(3);
subplot(2,1,1);plot(w1/pi,abs(y2));xlabel('X pi');ylabel('幅度');%dtft幅度谱
subplot(2,1,2);plot(w1/pi,angle(y2));xlabel('rad');ylabel('相位');%dtft相位
figure;%(3)图窗,放在一起比较
%stem(k,abs(y1),'.');ylabel('mag X(k)')
stem(2*k/N,abs(y1),'.');xlabel('X pi');ylabel('幅度');%dft幅度谱
hold on;
plot(w1/pi,abs(y2));xlabel('X pi');title('幅度');%dtft
figure;
stem(2*k/N,angle(y1),'filled');ylabel('相位');
hold on;
plot(w1/pi,angle(y2));xlabel('rad');title('相位');
%因为DFT是基于周期性假设的,而DTFT是对整个时域信号进行频谱计算。
%相位不同,DFT的相位信息在每个离散频率点上是一致的,并且与DTFT的相位信息有一定的差异。
4.判断dft能否重构dtft并给出插值函数
%%
%(4)
x=[1,3,5,7,9,9,7,5,3,1];
N=length(x);
XK1=fft(x,N);
n=0:length(x)-1;
w1=[0:511]*2*pi/512;
figure
stem([0:9]/10*2*pi,abs(XK1))
xlabel('rad');
ylabel('|X(e^jw)|');
title('DTFT频谱图');
hold on
k=0:N-1;
A=neichahanshu(x,N,w1);
% for W = 1:length(w)
% num1=1-exp(-j*w(W)*N);
% num2=N*(1-exp(-j*(w(W)-2*pi*k/N)));
% num3=num1./num2;
% A(W)=sum(XK1.*num3);
% end
plot(w1,abs(A));xlabel('X pi');ylabel('幅度');
内插函数
function ya=neichahanshu(xa,Na,wa)
ka=0:Na-1;
XK1a=fft(xa,Na);
for W = 1:length(wa)
num1=1-exp(-j*wa(W)*Na);
num2=Na*(1-exp(-j*(wa(W)-2*pi*ka/Na)));
num3=num1./num2;
y(W)=sum(XK1a.*num3);
ya=abs(y);
end
end