离散序列DFT计算及波形、幅频图绘制(Matlab实现)
离散序列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进行信号处理。
原文地址: https://www.cveoy.top/t/topic/oNgT 著作权归作者所有。请勿转载和采集!