序列 DTFT 和 DFT 之间的关系matlab代码
时间: 2024-05-29 08:12:30 浏览: 93
用matlab实现DTFT 和DFT
5星 · 资源好评率100%
以下是序列DTFT和DFT之间的关系的MATLAB代码:
% 生成一个长度为N的随机序列x
N = 16;
x = randn(1,N);
% 计算DTFT
w = linspace(-pi,pi,1000);
X = zeros(size(w));
for k=1:N
X = X + x(k)*exp(-1j*w*(k-1));
end
% 计算DFT
Xk = fft(x);
% 比较DTFT和DFT
figure;
subplot(2,1,1);
plot(w,abs(X),'b');
hold on;
stem(linspace(-pi,pi,N),abs(Xk),'r');
xlabel('Frequency');
ylabel('Magnitude');
title('Magnitude spectrum');
legend('DTFT','DFT');
subplot(2,1,2);
plot(w,angle(X),'b');
hold on;
stem(linspace(-pi,pi,N),angle(Xk),'r');
xlabel('Frequency');
ylabel('Phase');
title('Phase spectrum');
legend('DTFT','DFT');
% 输出结果
disp('DTFT和DFT之间的关系:');
disp(['DTFT的幅度和相位谱:', num2str(abs(X)), ',', num2str(angle(X))]);
disp(['DFT的幅度和相位谱:', num2str(abs(Xk)), ',', num2str(angle(Xk))]);
阅读全文