快速傅里叶FFT变换
目录一、概述二、FFT结果的物理意义1、FFT讲解2、实例讲解3、总结4、Matlab测试程序三、理解离散傅立叶变换参考1、DFT、DFS、FFT区别2、名词解释一、概述DFS 是周期序列的离散傅里叶级数DTFT 是非周期序列的傅里叶变换称离散时间傅里叶变换其频谱是连续的函数DFT 是有限长序列的离散傅里叶变换是对其 DTFT 的等间隔抽样是离散的频谱。DFT 是 DFS 的主值序列是非周期的。而 DFS 是 DTFT 的频域内的抽样。FFT 是 DFT 的一种高效快速算法也称作快速傅里叶变换。二、FFT结果的物理意义1、FFT讲解FFT 是离散傅立叶变换DTF的快速算法可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的但是如果变换到频域之后就很容易看出特征了。这就是很多信号分析采用 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的再下一个点实际上这个点是不存在的这里是假设的第N1个点也可以看做是将第一个点分做两半分另一半移到最后则表示采样频率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 用复数abi 表示那么这个复数的模就是 An √(a*ab*b)相位就是 Pn atan2(b,a)。根据以上的结果就可以计算出 n点n ≠ 1且n ≤ N/2对应的信号的表达式为An/(N/2)*cos(2*pi*Fn*tPn)即 2*An/N*cos(2*pi*Fn*tPn)。对于 n 1点的信号是直流分量幅度即为 A1/N。由于FFT结果的对称性通常我们只使用前半部分的结果即小于采样频率一半的结果。2、实例讲解假设我们有一个信号它含有 2V 的直流分量频率为 50Hz、相位为 -30°、幅度为 3V 的交流信号以及一个频率为 75Hz、相位为 90°、幅度为 1.5V 的交流信号。数学表达式Signal 23*cos(2*pi*50*t-pi*30/180)1.5*cos(2*pi*75*tpi*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 的结果的模值如图所示。图2.2.1 时域到频域变换图2.2.2 各个频域幅值从图中我们可以看到在第1点、第51点、和第76点附近有比较大的值。我们分别将这三个点附近的数据拿上来细看1点 5120i2点 -2.6195E-14 - 1.4162E-13i3点 -2.8586E-14 - 1.1898E-13i……50点-6.2076E-13 - 2.1713E-12i51点332.55 - 192i52点-1.6707E-12 - 1.5241E-12i……75点-2.2199E-13 -1.0076E-12i76点3.4315E-12 192i77点-3.0263E-14 7.5609E-13i很明显1点、51点、76点的值都比较大它附近的点值都很小可以认为是 0即在那些频率点上的信号幅度为 0。接着我们来计算各点的幅度值。分别计算这三个点的模值结果如下1点 51251点38476点192按照公式可以计算出直流分量为512/N 512/256 250Hz信号的幅度为384/(N/2) 384/(256/2) 375Hz信号的幅度为 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 结果以及上面的分析计算我们就可以写出信号的表达式了它就是我们开始提供的信号。3、总结假设采样频率为 Fs采样点数为 N做 FFT 之后某一点nn从1开始表示的频率为Fn (n-1)*Fs/N该点的模值除以 N/2 就是对应该频率下的信号的幅度对于直流信号是除以N该点的相位即是对应该频率下的信号的相位。相位的计算可用函数atan2(b,a) 计算。atan2(b,a) 是求坐标为 (a,b)点的角度值范围从 -ππ。要精确到 xHz则需要采样长度为 1/x秒的信号并做 FFT。要提高频率分辨率就需要增加采样点数这在一些实际的应用中是不现实的需要在较短的时间内完成分析。解决这个问题的方法有频率细分法比较简单的方法是采样比较短时间的信号然后在后面补充一定数量的 0使其长度达到需要的点数再做 FFT这在一定程度上能够提高频率分辨力。具体的频率细分法可参考相关文献。使用Excel进行傅里叶变换傅里叶变换FFT基于Excel。4、Matlab测试程序close all; %先关闭所有图片 Adc2; %直流分量幅度 A13; %频率F1信号的幅度 A21.5; %频率F2信号的幅度 F150; %信号1频率(Hz) F275; %信号2频率(Hz) Fs256; %采样频率(Hz) P1-30; %信号1相位(度) P290; %信号相位(度) N256; %采样点数 t[0:1/Fs:N/Fs]; %采样时刻 %信号 SAdcA1*cos(2*pi*F1*tpi*P1/180)A2*cos(2*pi*F2*tpi*P2/180); %显示原始信号 plot(S); title(原始信号); figure; Y fft(S,N); %做FFT变换 Ayy (abs(Y)); %取模 plot(Ayy(1:N)); %显示原始的FFT模值结果 title(FFT 模值); figure; AyyAyy/(N/2); %换算成实际的幅度 Ayy(1)Ayy(1)/2; F([1:N]-1)*Fs/N; %换算成实际的频率值 plot(F(1:N/2),Ayy(1:N/2)); %显示换算后的FFT模值结果 title(幅度-频率曲线图); figure; Pyy[1:N/2]; for i1:N/2 Pyy(i)phase(Y(i)); %计算相位 Pyy(i)Pyy(i)*180/pi; %换算为角度 end; plot(F(1:N/2),Pyy(1:N/2)); %显示相位图 title(相位-频率曲线图);三、理解离散傅立叶变换理解离散傅立叶变换一. 傅立叶变换的由来理解离散傅立叶变换二. 实数形式离散傅立叶变换理解离散傅立叶变换三.复数理解离散傅立叶变换四. 复数形式离散傅立叶变换参考1、DFT、DFS、FFT区别2、名词解释1采样频率单位时间一般1秒内采样点数2带宽指的是信号的主体占据的频率范围3频率分辨率分辨两个不同频率信号的最小间隔所以信号越长分辨率越好T就是采样前模拟信号的时间长度。我与春风皆过客你携秋水揽星河。觉得不错动动发财的小手点个赞哦

相关新闻

2021年中青杯数学建模C题在线教学的分析与研究求解全过程论文及程序

2021年中青杯数学建模C题在线教学的分析与研究求解全过程论文及程序

2021年中青杯数学建模 C题 在线教学的分析与研究 原题再现:随着教育信息化的发展,在线教学与传统教学深度融合已成为必然趋势。多媒体课件的展示,或MOOC教学在高校中已经是非常常见的一种教学模式。在线教学智能教室的建设,正在不…

2026/8/17 16:49:22 阅读更多 →
2026论文AI工具真实排名[特殊字符]不吹不黑|定稿直接照抄选

2026论文AI工具真实排名[特殊字符]不吹不黑|定稿直接照抄选

写论文别再乱选AI工具了!2026高校AIGC检测全面升级,很多热门AI看着好用,实则高危、造假、泄露、格式翻车,一用就延毕。我把目前全网最火的几款论文AI全部实测完毕,不营销、不吹捧,按「初稿可用/辅助能用/定…

2026/8/17 16:49:00 阅读更多 →
AI编码时代的集体焦虑:从“程序员“到“审核员“,我们在失去什么?

AI编码时代的集体焦虑:从“程序员“到“审核员“,我们在失去什么?

AI编码时代的集体焦虑:从"程序员"到"审核员",我们在失去什么? 2026年初至今,软件工程领域经历了一场前所未有的工作流变革。Evan Schwartz 在 8 月 5 日发布了一篇文章《Notes from the AI Coding Transition…

2026/8/16 13:50:53 阅读更多 →

最新新闻

基于Stable Diffusion与LoRA的明日方舟角色AI绘画部署实践

基于Stable Diffusion与LoRA的明日方舟角色AI绘画部署实践

这次我们来看一个基于《明日方舟》角色“迷迭香”的AI图像生成项目。这类项目通常聚焦于利用Stable Diffusion等开源模型,结合特定的角色LoRA或Checkpoint,实现高质量、风格化的二次元角色图像生成。对于喜欢《明日方舟》或想学习角色定制化AI绘画的开发…

2026/8/17 16:48:28 阅读更多 →
AI PPT生成API实战:从环境配置到批量集成的完整指南

AI PPT生成API实战:从环境配置到批量集成的完整指南

这类工具最值得先看的不是功能列表,而是能不能在普通环境里稳定跑起来,以及它到底解决了PPT制作流程里的哪个具体痛点。Generateppt.com 这个项目,从标题看是把一个PPT生成服务免费开放了,核心价值在于提供了一个基于AI的、可能通…

2026/8/17 16:48:28 阅读更多 →
AI生成PPT技术解析:从NLP到API集成的全流程实践

AI生成PPT技术解析:从NLP到API集成的全流程实践

1. 项目背景与核心概念你是否也曾为制作一份高质量的PPT而头疼?从构思大纲、设计模板、填充内容到排版美化,整个过程耗时耗力,尤其对于技术分享、项目汇报这类需要逻辑清晰、视觉美观的场景。传统的PPT制作工具虽然功能强大,但学习…

2026/8/17 16:48:28 阅读更多 →
前端笔记之el-tree结合el-tree-transfer实现穿梭框里展示树形数据

前端笔记之el-tree结合el-tree-transfer实现穿梭框里展示树形数据

参考文章&#xff1a;我把他的弹框单拉出来一个独立文件作为组件方便使用&#xff0c;遇到一些问题记录一下。 testComponet.vue <template><div class"per_container"><div class"per_con_left"><div class"per_con_title&q…

2026/8/17 16:48:28 阅读更多 →
项目管理进阶:详解华为研发项目管理(IPD流程管理)【附全文阅读】

项目管理进阶:详解华为研发项目管理(IPD流程管理)【附全文阅读】

本文围绕华为 IPD 流程管理展开,IPD 源于 PACE 理论,经 IBM 实践成为系统工程,其核心目标是实现产品开发的准、快、低。它涵盖结构化端到端流程,设有决策评审点和技术评审点把控质量与投资。通过跨部门团队协同,管理新产品开发和老产品优化变更。产品开发流程包括概念、计…

2026/8/17 16:47:27 阅读更多 →
IPD研学:76页页基于IPD思想-华为需求管理培训方案【附全文阅读】

IPD研学:76页页基于IPD思想-华为需求管理培训方案【附全文阅读】

适应人群 本方案适用于企业中参与产品研发、市场、销售、项目管理等部门的人员,尤其是负责需求管理工作的相关从业者;致力于提升产品竞争力,对优化需求管理流程、提高产品开发质量感兴趣的企业管理者;以及希望了解行业前沿需求管理方法,寻求突破和创新的相关人士。…

2026/8/17 16:47:27 阅读更多 →

日新闻

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

1. 项目概述&#xff1a;为什么异步调用是LabVIEW进阶的必修课&#xff1f; 如果你用LabVIEW做过稍微复杂点的项目&#xff0c;尤其是涉及界面响应、多任务并行或者硬件IO等待的场景&#xff0c;大概率遇到过这样的窘境&#xff1a;前面板点个按钮&#xff0c;整个程序就“卡死…

2026/8/17 0:00:08 阅读更多 →
LabVIEW异步调用实战:解决界面卡顿与并行处理难题

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

1. 项目概述&#xff1a;为什么异步调用是LabVIEW进阶的必经之路如果你在LabVIEW里写过稍微复杂点的程序&#xff0c;尤其是涉及到界面响应、多任务并行或者硬件IO等待&#xff0c;大概率会遇到一个头疼的问题&#xff1a;程序“卡”住了。前面板点不动&#xff0c;进度条不更新…

2026/8/17 0:00:08 阅读更多 →
飞书局域网文件传输实战:3种方案实现高速点对点传输

飞书局域网文件传输实战:3种方案实现高速点对点传输

1. 项目概述&#xff1a;为什么要在局域网内用飞书传文件&#xff1f; 飞书作为一款主流的协同办公套件&#xff0c;其核心功能是围绕云端协作设计的。无论是文档、表格还是文件&#xff0c;通常的分享逻辑都是“上传到云端 -> 生成链接 -> 分享给同事”。这个流程在互联…

2026/8/17 0:00:08 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者&#xff0c;最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent&#xff0c;从本地部署到云端API&#xff0c;我们正处在一个技术栈快速重构的节点。然而&#xff0c;面对层出不穷的模型、框架和工具&#xf…

2026/8/17 2:58:27 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/17 2:58:30 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…

2026/8/17 2:58:32 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →