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信号频谱内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 300行代码让外婆实现语音搜索购物功能

    300行代码让外婆实现语音搜索购物功能

    这篇文章主要介绍了300行代码让外婆实现语音搜索购物功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 人人都是开发者:7款傻瓜式APP开发工具

    人人都是开发者:7款傻瓜式APP开发工具

    国外的营销工作者和技术开发者开发了许多能帮助企业创建简单APP应用的工具,通过这些工具,就算是一个对程序一窍不通的普通网民都可以很容易的创建一个企业的APP程序,并可以对程序进行应用更新维护,开展营销等活动
    2013-11-11
  • Scala函数式编程专题--scala基础语法介绍

    Scala函数式编程专题--scala基础语法介绍

    这篇文章主要介绍了scala基础语法的的相关资料,文中讲解非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • Sqoop的安装与使用详细教程

    Sqoop的安装与使用详细教程

    Sqoop是一款开源的工具,主要用于在Hadoop与传统数据库间进行数据的传递,这篇文章主要介绍了Sqoop的安装与使用详细教程,需要的朋友可以参考下
    2021-04-04
  • 分享5个实用的vs调试技巧

    分享5个实用的vs调试技巧

    vs 是我们平时编写代码时的首选工具,相信也是大多数小伙伴儿的首选调试工具,因为实际操作起来太方便了,代码编写完,一个 F5 就可以愉快的调试了。今天我想向大家推荐几个非常值得了解 vs 调试技巧。
    2020-09-09
  • 微信支付jsapi缺少参数 total_fee 错误分析与解决方法

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

    这篇文章主要介绍了微信支付jsapi缺少参数 total_fee 错误分析与解决方法,需要的朋友可以参考下
    2018-03-03
  • 使用Jenkins Dashboard插件可视化部署的方法

    使用Jenkins Dashboard插件可视化部署的方法

    这篇文章主要介绍了使用Jenkins Dashboard插件可视化部署的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • vscode安装git及项目开发过程

    vscode安装git及项目开发过程

    这篇文章主要介绍了vscode安装git及项目开发过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 详解静态分析技术符号执行

    详解静态分析技术符号执行

    本文提纲絜领的介绍了符号执行,让大家明白这个技术的主要作用和面临的挑战,领大家入坑。
    2021-05-05
  • 详解windows 环境下搭建electricSearch+kibana

    详解windows 环境下搭建electricSearch+kibana

    这篇文章主要介绍了windows 环境下搭建electricSearch+kibana,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05

最新评论