FFT是离散傅立叶变换的快速算法,可以将一个信号变换

到频域。有些信号在时域上是很难看出什么特征的,但是如

果变换到频域之后,就很容易看出特征了。这就是很多信号

分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱

提取出来,这在频谱分析方面也是经常用的。

虽然很多人都知道FFT是什么,可以用来做什么,怎么去

做,但是却不知道FFT之后的结果是什意思、如何决定要使用

多少点来做FFT。

现在圈圈就根据实际经验来说说FFT结果的具体物理意义。

一个模拟信号,经过ADC采样之后,就变成了数字信号。采样

定理告诉我们,采样频率要大于信号频率的两倍,这些我就

不在此罗嗦了。

采样得到的数字信号,就可以做FFT变换了。N个采样点,

经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT

运算,通常N取2的整数次方。

假设采样频率为Fs,信号频率F,采样点数为N。那么FFT

之后结果就是一个为N点的复数。每一个点就对应着一个频率

点。这个点的模值,就是该频率值下的幅度特性。具体跟原始

信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT

的结果的每个点(除了第一个点直流分量之外)的模值就是A

的N/2倍。而第一个点就是直流分量,它的模值就是直流分量

的N倍。而每个点的相位呢,就是在该频率下的信号的相位。

第一个点表示直流分量(即0Hz),而最后一个点N的再下一个

点(实际上这个点是不存在的,这里是假设的第N+1个点,也

可以看做是将第一个点分做两半分,另一半移到最后)则表示

采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率

依次增加。例如某点n所表示的频率为:Fn=(n-1)*Fs/N。

由上面的公式可以看出,Fn所能分辨到频率为为Fs/N,如果

采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。

1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒

时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时

间的信号并做FFT,则结果可以分析到0.5Hz。如果要提高频率

分辨力,则必须增加采样点数,也即采样时间。频率分辨率和

采样时间是倒数关系。

假设FFT之后某点n用复数a+bi表示,那么这个复数的模就是

An=根号a*a+b*b,相位就是Pn=atan2(b,a)。根据以上的结果,

就可以计算出n点(n≠1,且n<=N/2)对应的信号的表达式为:

An/(N/2)*cos(2*pi*Fn*t+Pn),即2*An/N*cos(2*pi*Fn*t+Pn)。

对于n=1点的信号,是直流分量,幅度即为A1/N。

由于FFT结果的对称性,通常我们只使用前半部分的结果,

即小于采样频率一半的结果。

好了,说了半天,看着公式也晕,下面圈圈以一个实际的

信号来做说明。

假设我们有一个信号,它含有2V的直流分量,频率为50Hz、

相位为-30度、幅度为3V的交流信号,以及一个频率为75Hz、

相位为90度、幅度为1.5V的交流信号。用数学表达式就是如下:

S=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180)

式中cos参数为弧度,所以-30度和90度要分别换算成弧度。

我们以256Hz的采样率对这个信号进行采样,总共采样256点。

按照我们上面的分析,Fn=(n-1)*Fs/N,我们可以知道,每两个

点之间的间距就是1Hz,第n个点的频率就是n-1。我们的信号

有3个频率:0Hz、50Hz、75Hz,应该分别在第1个点、第51个点、

第76个点上出现峰值,其它各点应该接近0。实际情况如何呢?

我们来看看FFT的结果的模值如图所示。

图1 FFT结果

从图中我们可以看到,在第1点、第51点、和第76点附近有

比较大的值。我们分别将这三个点附近的数据拿上来细看:

1点: 512+0i

2点: -2.6195E-14 - 1.4162E-13i

3点: -2.8586E-14 - 1.1898E-13i

50点:-6.2076E-13 - 2.1713E-12i

51点:332.55 - 192i

52点:-1.6707E-12 - 1.5241E-12i

75点:-2.2199E-13 -1.0076E-12i

76点:3.4315E-12 + 192i

77点:-3.0263E-14 +7.5609E-13i

很明显,1点、51点、76点的值都比较大,它附近的点值

都很小,可以认为是0,即在那些频率点上的信号幅度为0。

接着,我们来计算各点的幅度值。分别计算这三个点的模值,

结果如下:

1点: 512

51点:384

76点:192

按照公式,可以计算出直流分量为:512/N=512/256=2;

50Hz信号的幅度为:384/(N/2)=384/(256/2)=3;75Hz信号的

幅度为192/(N/2)=192/(256/2)=1.5。可见,从频谱分析出来

的幅度是正确的。

然后再来计算相位信息。直流信号没有相位可言,不用管

它。先计算50Hz信号的相位,atan2(-192, 332.55)=-0.5236,

结果是弧度,换算为角度就是180*(-0.5236)/pi=-30.0001。再

计算75Hz信号的相位,atan2(192, 3.4315E-12)=1.5708弧度,

换算成角度就是180*1.5708/pi=90.0002。可见,相位也是对的。

根据FFT结果以及上面的分析计算,我们就可以写出信号的表达

式了,它就是我们开始提供的信号。

总结:假设采样频率为Fs,采样点数为N,做FFT之后,某

一点n(n从1开始)表示的频率为:Fn=(n-1)*Fs/N;该点的模值

除以N/2就是对应该频率下的信号的幅度(对于直流信号是除以

N);该点的相位即是对应该频率下的信号的相位。相位的计算

可用函数atan2(b,a)计算。atan2(b,a)是求坐标为(a,b)点的角

度值,范围从-pi到pi。要精确到xHz,则需要采样长度为1/x秒

的信号,并做FFT。要提高频率分辨率,就需要增加采样点数,

这在一些实际的应用中是不现实的,需要在较短的时间内完成

分析。解决这个问题的方法有频率细分法,比较简单的方法是

采样比较短时间的信号,然后在后面补充一定数量的0,使其长度

达到需要的点数,再做FFT,这在一定程度上能够提高频率分辨力。

具体的频率细分法可参考相关文献。

我看这个就写的很好,转过来,楼主看看

fft函数图像横坐标是什么_FFT变换后,坐标单位是什么?相关推荐

  1. fft函数图像横坐标是什么_FFT结果的物理意义

    FFT是离散傅立叶变换的快速算法,可以将一个信号变换 到频域.有些信号在时域上是很难看出什么特征的,但是如 果变换到频域之后,就很容易看出特征了.这就是很多信号 分析采用FFT变换的原因.另外,FFT ...

  2. fft函数图像横坐标是什么_10分钟学会:函数图像的平移与伸缩变换

    函数图像的变换在初中就接触了,初中主要讲了图像的平移变换.很多同学采用"左加右减,上加下减"的口诀进行记忆,基本能够解决初中遇到的问题. 到了高中以后,在三角函数章节,增加了函数图 ...

  3. fft函数图像横坐标是什么_频谱图中横坐标为频率,纵坐标的幅值代表什么

    展开全部 纵坐标的幅值代表信号的e69da5e6ba9062616964757a686964616f31333431353932振幅强度,单位为分贝(dB),采用线性分度. 在实际使用中,频谱图有三种 ...

  4. fft函数图像横坐标是什么_Matlab 对于fft作图 横坐标问题

    假设采样频率为Fs,信号频率F,采样点数为N.那么FFT之后结果就是一个为N点的复数.每一个点就对应着一个频率点.这个点的模值,就是该频率值下的幅度特性.具体跟原始信号的幅度有什么关系呢?假设原始信号 ...

  5. 利用Python提取函数图像数据并拟合曲线

    目录 1. 前言 2. 数据提取 2.1 图像预处理 2.2 提取数据 3. 曲线拟合 4. 优化代码 1. 前言 学校导师要求拟合曲线,但只有函数图像没有数据,图像和公式都不懂就负责把系数算出来. ...

  6. 集成计算器,日期差,绘制函数图像功能的Matlab App Designer 开发

    目录 一.引言 1.实验背景 2.实验内容 二.实验过程 1.实验原理 2.Matlab代码 (1)Matlab关键代码解读 (2)完整代码 三.运行输出结果 一.引言 1.实验背景 本实验的构思启发 ...

  7. 离散傅里叶变换DFT与FFT,MATLAB的FFT函数使用(原创)——如何使用fft()绘制出真正的频谱图像

    以前一直对MATLAB中fft()函数的使用一直存在疑惑,为什么要加一 些参数,并且如何确定这些参数,也查了许多资料,但很多都感觉只是 表面一说根本没有讲清其本质.但随着学习的推进,慢慢有所领悟,所 ...

  8. EM@函数变换(几何变换)@函数图像伸缩偏移@奇偶性@周期性

    文章目录 EM@函数变换(几何变换)@函数图像伸缩偏移@奇偶性@周期性 平面上的伸缩变换

  9. 数字图像处理 - 投影重建图像(一)雷登变换和傅里叶切片

    关于投影的基础知识: 假设我们要用一束细细的,平行的X射线从左到右穿过(通过一个图像平面),这里我们假设物体吸收的射线束能量 比背景吸收的射线束能量多.我们利用放在放在另一端的X射线吸收检测器来检测射 ...

最新文章

  1. ORACLE 10G DATAGUARD实战步骤(转载)
  2. 利用oracle快照dblink解决数据库表同步问题
  3. 一元流量显示服务器繁忙,流量充不进去老退款
  4. 这里有一份面筋请查收(六)
  5. 算法与数据结构(part6)--单向链表
  6. c++中的文件读写的操作
  7. Python中 类和对象调用其他类中的变量和方法
  8. Javascritp入门
  9. POJ - 1704 Georgia and Bob
  10. 硬核 App,这项新功能一定要打开,关键时刻能救命!!
  11. lepus监控oracle数据库_数据库监控软件Lepus之修改admin密码
  12. 2021-08-21 mvc架构
  13. 190601每日一句
  14. 深源恒际上线二代个人信用报告OCR识别服务
  15. 【考研数学】函数图像(三角函数、幂函数、指数函数等)
  16. 人工智能 —— 计算智能概述
  17. elementUI---使用按钮切换折叠侧边栏
  18. 服务器上phpstudy搭建网站,如何使用PHPstudy在本地搭建一个网站(最新图文教程)...
  19. 【python技能树】python简介
  20. TexturePacker使用详解

热门文章

  1. mapbox symbols 层级设置_Mapbox 地图样式规范
  2. 朝花夕拾 Java练习题time
  3. pointer-events: none。 影子属性。 解决遮罩层下面图片或文字超链接无法选中执行功能
  4. 抛弃PQmagic 用Windows 7自带小工具调整分区大小
  5. 极简办公时代已来,商务电子邮箱“效率”为王
  6. 【电子取证篇】电子数据鉴定基本原则
  7. NCTF KeyBoard
  8. 号称全球最薄的滑盖机!三星D528亮相
  9. web前端全栈0基础到精通(祺)vue 02
  10. 使用Python+Qt5 制作带UI界面的多线程配爬取小程序