0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是FFT?

jf_78858299 来源:ZLG致远仪器 作者: 研发部 2023-05-05 09:49 次阅读

怎么理解谐波分析(FFT)?本文将通过常用例子介绍傅立叶变化,以及计算过程中遇到幅值泄漏和栅栏效应,加窗函数原则和最后修复幅值、频率的基本原理,并给出其在高端测量仪器中的应用。

随着技术的发展,数据越来越多样化,不再以单一的形式存在,例如一段录音可被分解成若干种信息,而快速傅立叶变化(简称FFT)常常被应用在数据的分解上,接下来我们讲讲FFT的原理。

什么是FFT?

快速傅立叶变化简称FFT,其实FFT就是DFT(离散傅立叶变化)的一种快速算法,通过时间抽取或频率抽取算法来加快变化过程,具体的算法就不在这里拓展,我们只要了解离散傅立叶变化即可。举个简单的例子,假如手机里正在播放一首音乐,随着时间的推移,歌曲是不是按照它的音符播放呢?若以高低音作为纵轴,时间左右横轴建立直角坐标得到(图1-1),以音符作为横轴建立直角坐标得到(图1-2)。

图片

图1 生活中FFT例子

我们称图1中图1-1为时域,图1-2称为频域,数据由时域转换为频域的过程我们称为傅立叶转换(图2),由于转换后的频域数据是不连续的,所以为离散傅立叶转换。其中转换后得到的频谱图中频率不为零且幅值最大的一般都是基波,也叫零次谐波。

图片

图片

图2 时域到频域

什么是频率泄漏?

谐波分析一段采集时间较长的数据,需要将数据切成一帧帧进行分析,这个过程称为信号截断。信号截断分为周期截断和非周期截断。这一点还是比较好理解,就是在数据切成一帧帧的时候,每帧数据是否为周期信号进而判断是哪种类型截断。如图3显示。

图片

图3 信号截断

周期截断不存在谐波泄漏,这是因为信号频率成分为频率分辨率的整数倍。非周期截断如图所示,由于重新组成数据进行谐波分析幅值出现拖尾,即会造成如图3-2频谱图的现象,所以信号的非周期截断,导致频谱在整个频带内发生了拖尾现象,由于能力守恒最终导致幅值比原来的低,这就是幅值泄漏。

栅栏效应

栅栏效应指的是离散傅立叶变化过程的频谱被限制在基频整数倍处,犹如栅栏一样关注的频率主要分布在木块之间。

窗函数及类型

前面已经了解泄漏问题,我们可以通过加合适的窗函数来尽可能减少频谱拖尾的现象,那么什么是窗函数呢?简单理解就是不同的信号截断函数如图5所示,常见的窗函数有以下几种:

图片

图5 窗函数类型

矩形窗相当为没加窗,常用于周期信号;信号随机或未知,或者多个频率分量,测试关注是频率而非能量大小,则选择汉宁窗;对校准目的,要求幅值精准,适用平顶窗;如果要求幅值频率的精度,则选择凯塞窗;检测两信号频率相近,幅值不同的,建议用布莱克曼窗。

加窗后幅值和频率修正

通过前面已经了解加窗函数可减少泄漏现象,但频率栅栏效应没得到修复,加窗后幅值泄漏现象也只得到缓解,那么可以通过插值算法来得到一个准确的幅值和频率。算法原理是各个频率成分主瓣形状将近似窗函数频谱的主瓣形状,如果这形状可以用某个函数来描述,则可利用主峰两侧的谱线通过插值计算出主峰的高度,从而克服栅栏效应。具体的推导可查看《Hanning窗在插值FFT算法中应用的研究》这一文献。

支持谐波分析的高端仪器

示波记录仪ZDL6000支持波形离线和在线的谐波分析,离线最高可支持10M一帧进行FFT分析,支持多种窗函数设置,支持多个通道同时计算且支持回读数据进行分析,如图7。

图片

图7 离线FFT分析

在线支持最高采样率2M,多个通道同步采集计算分析,每帧数据分析周期可设置1~100ms,支持分析15次谐波,并自动刷新保存导出csv文件。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FFT
    FFT
    +关注

    关注

    15

    文章

    425

    浏览量

    58681
  • DFT
    DFT
    +关注

    关注

    2

    文章

    219

    浏览量

    22486
  • 傅立叶
    +关注

    关注

    0

    文章

    36

    浏览量

    12432
收藏 人收藏

    评论

    相关推荐

    示波器的 FFT 功能怎么调?

    示波器fft功能-示波器中的快速傅立叶变换 FFT功能非常有用。是德科技与您分享keysight示波器fft调出来的方法。Keysight示波器FFT调出来的方法
    的头像 发表于 03-19 18:04 787次阅读
    示波器的 <b class='flag-5'>FFT</b> 功能怎么调?

    FFT Verilog RTL

    FFT Verilog RTL
    发表于 07-08 15:55 41次下载

    FFT变换

      4.1 引言   4.2 基2FFT算法   4.3 进一步减少运算量的措施   4.4 分裂基FFT算法   4.5 离散哈特莱变换(DHT)
    发表于 08-11 16:50 0次下载

    利用FFT IP Core实现FFT算法

    利用FFT IP Core实现FFT算法 摘要:结合工程实践,介绍了一种利用FFT IP Core实现FFT的方法,设计能同时对两路实数序列进行256点
    发表于 01-16 10:04 6731次阅读
    利用<b class='flag-5'>FFT</b> IP Core实现<b class='flag-5'>FFT</b>算法

    FFT算法的应用

    FFT算法的应用 一. 数字滤波器设计:(一)基—2按时间抽取FFT算法对于有限长离散数字信号{x[n]},0  n &
    发表于 10-30 13:20 1w次阅读
    <b class='flag-5'>FFT</b>算法的应用

    存储深度对FFT结果的影响

    存储深度对FFT结果的影响     在DSO中,通过快速傅立叶变换(FFT)可以得到信号的
    发表于 08-25 08:06 831次阅读

    fft原理及实现

    FFT是一种DFT的高效算法,称为快速傅立叶变换(fast Fourier transform)。FFT算法可分为按时间抽取算法和按频率抽取算法,先简要介绍FFT的基本原理。从DFT运算开始,说明
    发表于 12-19 16:18 203次下载

    FFT和示波器:实用指南

    本文讨论了一些重要的FFT特性,解释了如何利用这些特性设置FFT以实现高效的分析。
    发表于 12-03 11:58 1.4w次阅读
    <b class='flag-5'>FFT</b>和示波器:实用指南

    【实用指南】教你使用FFT和示波器

    本文讨论了一些重要的FFT特性,解释了如何利用这些特性设置FFT以实现高效的分析。等下次你要在示波器中使用FFT时希望能助你一臂之力。 本文讨论了一些重要的FFT特性,解释了如何利用这
    发表于 12-08 02:01 5828次阅读

    FFT的分析和Xilinx FFT核的介绍

    fft输入输出解析。 输入:fft要求输入一个复数,但一般可以只输入实数。 输出:输出一个复数,其模为信号强度。相位为波形相位。 设: 采样频率FS 转换长度N 则: 分辨率为FS/N。 ‘量程
    发表于 02-08 15:15 1232次阅读

    fft算法是什么_如何提高fft算法分辨率

    FFT算法(fast Fourier transform),即快速傅里叶变换,是指利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称,简称FFT。快速傅里叶变换是1965年由J.W.
    发表于 11-09 09:28 8091次阅读
    <b class='flag-5'>fft</b>算法是什么_如何提高<b class='flag-5'>fft</b>算法分辨率

    3.4.3 FFT文件汇总

    3.4.3 FFT文件汇总
    发表于 04-10 09:33 36次下载

    基于Quartus II的综合仿真实现FFT IP核的FFT算法

    数字信号处理领域中FFT算法有着广泛的应用。目前现有的文献大多致力于研究利用FFT算法做有关信号处理、参数估计、F+FT蝶形运算单元与地址单元设计、不同算法的FFT实现以及FFT模型优
    的头像 发表于 01-07 09:33 9135次阅读
    基于Quartus II的综合仿真实现<b class='flag-5'>FFT</b> IP核的<b class='flag-5'>FFT</b>算法

    FFT相位差

    ⽤全相位FFT测相位差可通过取两段存在延时关系的样本分别进⾏FFT(可加窗)谱分析,再取两次谱分析的峰值谱线的相位值,并取其差值,即可提取相位差信息。但这种⽅法由于频谱泄漏的原因,精度不⾼。我们
    发表于 12-06 20:45 9次下载

    调用HLS的FFT库实现N点FFT

    在HLS中用C语言实现8192点FFT,经过测试,实验结果正确,但是时序约束不到100M的时钟,应该是设计上的延时之类的比较大,暂时放弃这个方案,调用HLS中自带的FFT库(hls:fft
    的头像 发表于 07-11 10:05 663次阅读
    调用HLS的<b class='flag-5'>FFT</b>库实现N点<b class='flag-5'>FFT</b>