Matlab使用fft画出信号频谱图的方法

 更新时间:2021年04月23日 11:45:21   作者:非 常 道  
这篇文章主要介绍了Matlab使用fft画出信号频谱图的方法,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

做雷原作业,需要对信号进行频谱分析,网上一搜太乱了,很多不是我想要的,特此整理。
DSP还没学到fft,就不对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,其时域波形图如下:

在这里插入图片描述

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

绘制频谱幅度图如下:

在这里插入图片描述

可以看到,直流分量的幅度是3,这与时域的幅度相同,5Hz和10Hz的幅度分别为0.5和1,这比时域的幅度减小了一半,这是由于这个频谱图是双边频谱。沿着x=0线“对折”过去加起来,就变成单边频谱,频域幅度就和时域幅度对应上了。

到此这篇关于Matlab使用fft画出信号频谱的文章就介绍到这了,更多相关Matlab画fft信号频谱内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • DLL(Dynamic Linkable Library) 详解说明

    DLL(Dynamic Linkable Library) 详解说明

    DLL文件(Dynamic Linkable Library 即动态链接库文件),是一种不能单独运行的文件,它允许程序共享执行特殊任务所必需的代码和其他资源
    2008-12-12
  • H5混合开发手机Web App入门:概念篇

    H5混合开发手机Web App入门:概念篇

    如果你开始学习手机 App 开发,就一定会听到 H5 这个词。它是目前的主流开发技术之一,容易上手,开发周期短、成本低、兼容传统 Web 开发。但是,很少有文章详细介绍,H5 到底是什么技术,有什么原理,跟其他技术的差异在哪里。
    2022-12-12
  • 分享下手机软件界面设计浅析

    分享下手机软件界面设计浅析

    手机的软件系统已成为用户直接操作和应用的主体,它应以美观实用、操作便捷为用户所青睐。用户界面设计的规范性显得尤为重要
    2014-05-05
  • ffmpeg播放器实现详解之框架搭建过程

    ffmpeg播放器实现详解之框架搭建过程

    这篇文章主要介绍了ffmpeg播放器实现详解之框架搭建过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 微信支付jsapi缺少参数 total_fee 错误分析与解决方法

    微信支付jsapi缺少参数 total_fee 错误分析与解决方法

    这篇文章主要介绍了微信支付jsapi缺少参数 total_fee 错误分析与解决方法,需要的朋友可以参考下
    2018-03-03
  • 浅谈如何降低软件复杂性

    浅谈如何降低软件复杂性

    软件的复杂性是我们程序员在日常开发中所必须面对的东西,学会如何 “弄清楚什么是软件复杂性,找到导致软件复杂的原因,并利用各种手法去战胜软件的复杂性” 是一门必备的能力。
    2021-05-05
  • 权限控制之粗粒度与细粒度概念及实现简单介绍

    权限控制之粗粒度与细粒度概念及实现简单介绍

    这篇文章主要介绍了权限控制之粗粒度与细粒度概念及实现简单介绍,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • electron桌面应用程序搭建及简单运行

    electron桌面应用程序搭建及简单运行

    这篇文章主要介绍了electron桌面应用程序搭建及运行,需要的朋友可以参考下
    2022-12-12
  • 漫谈架构之微服务

    漫谈架构之微服务

    微服务的架构出现已经很久很久了,微服务架构就是一种将单个应用程序转换为一组小服务的方法,每个小服务都在自己的进程中运行,并使用轻量级的交互方式(如HTTP)进行通信
    2021-06-06
  • uniapp打包安卓App的两种方式(云打包、本地打包)方法详解

    uniapp打包安卓App的两种方式(云打包、本地打包)方法详解

    这篇文章主要介绍了uniapp打包安卓App的两种方式(云打包、本地打包)方法详解,需要的朋友可以参考下
    2022-12-12

最新评论