离散序列DFT计算及波形、幅频图绘制(Matlab实现)

本文将使用Matlab代码计算离散序列x(n)=cos((2πnf_1)⁄f_s )+cos⁡((2πnf_2)⁄f_s )的DFT,并绘制其波形图和幅频图。其中,f_1=200Hz,f_2=205Hz,f_s=1000Hz,n的取值范围为0≤n≤128。

% 定义离散序列x(n)
f1 = 200;
f2 = 205;
fs = 1000;
n = 0:128;
x = cos(2*pi*f1*n/fs) + cos(2*pi*f2*n/fs);

% 计算DFT
X = fft(x);

% 绘制波形图
subplot(2,1,1);
stem(n, x);
xlabel('n');
ylabel('x(n)');
title('离散序列x(n)的波形图');

% 绘制幅频图
freq = (0:length(X)-1)/length(X)*fs;
subplot(2,1,2);
plot(freq, abs(X));
xlabel('频率(Hz)');
ylabel('幅值');
title('离散序列x(n)的幅频图');

代码中首先定义了离散序列x(n)的参数,包括两个频率f1和f2、采样频率fs以及n的取值范围。然后使用fft函数计算了x(n)的DFT。最后分别绘制了x(n)的波形图和幅频图。

通过代码生成的波形图和幅频图可以观察到,离散序列x(n)包含两个频率分量,分别对应f1和f2。幅频图中可以清晰地看到这两个频率分量的幅值,验证了DFT计算结果的正确性。

注意:

  • 代码中使用了subplot函数将波形图和幅频图绘制在同一张图上,方便观察对比。
  • 代码中使用了stem函数绘制波形图,因为x(n)是离散序列。
  • 代码中使用了abs函数计算了DFT结果的幅值。
  • 代码中使用了xlabel、ylabel和title函数对坐标轴和图像进行标注。

总结:

本文利用Matlab代码计算了离散序列x(n)的DFT,并绘制了其波形图和幅频图。该代码可以帮助理解DFT的概念,并学习使用Matlab进行信号处理。

离散序列DFT计算及波形、幅频图绘制(Matlab实现)

原文地址: https://www.cveoy.top/t/topic/oNgT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录