温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在Matlab中利用fft绘制信号频谱图

发布时间:2021-04-30 15:28:41 来源:亿速云 阅读:1083 作者:Leah 栏目:开发技术

这篇文章将为大家详细讲解有关怎么在Matlab中利用fft绘制信号频谱图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

fs=500;%采样率
f1=5;%信号频率
f2=10;%信号频率
T=1;%时宽1s
n=round(T*fs);%采样点个数
t=linspace(0,T,n);%时域横坐标
x = 3+cos(2*pi*f1*t) + 2.*cos(2*pi*f2*t);%形成三频信号,注意第二个频率信号幅度为2,直流幅度为3
figure(1);
plot(t,x);%画时域图
xlabel("t/s")
grid on

X = fftshift(fft(x./(n))); %用fft得出离散傅里叶变换
f=linspace(-fs/2,fs/2-1,n);%频域横坐标,注意奈奎斯特采样定理,最大原信号最大频率不超过采样频率的一半
figure(2)
plot(f,abs(X));%画双侧频谱幅度图
xlabel("f/Hz")
ylabel("幅度")
grid on

显然,该信号有三个频率分量,直流(0频),5Hz和10Hz,对应的幅度分别为3、1、2,其时域波形图如下:

怎么在Matlab中利用fft绘制信号频谱图

转换为频域的关键函数是X = fftshift(fft(x./(n)));一定注意需要除以总样本数n,然后用fftshift将曲线挪一下位置。
做完这步操作后,得出的是双边频谱,频率范围从-fs/2到fs/2,这是因为奈奎斯特采样定理,给定采样频率为fs,那么原信号的最大频率不超过fs/2。横坐标的点数和时域信号的采样点数相同,这由离散傅里叶变换的性质给出。

绘制频谱幅度图如下:

怎么在Matlab中利用fft绘制信号频谱图

关于怎么在Matlab中利用fft绘制信号频谱图就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI