news 2026/6/10 18:54:12

FFT 工程关键点总结(采样分辨率 / 频点 / 相位)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FFT 工程关键点总结(采样分辨率 / 频点 / 相位)

本文只讨论 FFT 在嵌入式与工程中的实际含义,不涉及数学推导。


一、采样分辨率是什么?

1. 先定义所有变量(很重要)

符号含义
fs采样率(Hz),每秒采样多少次
NFFT 点数(一次参与 FFT 的采样点数量)
T采样时间长度(秒)
Δf频率分辨率(Hz)

2. 它们之间的关系

采样时间长度
T = N / fs
  • N个点
  • 每秒采fs
  • 一共覆盖T秒的数据

频率分辨率
Δf = 1 / T = fs / N

含义:

FFT 能区分的最小频率间隔


3. 工程本质结论

  • fs决定你能看到多高的频率
  • N决定你看了多久
  • Δf决定你能分多细

频率分辨率的本质是:采样时间长度,而不是采样率本身


二、FFT 频点对应的是什么?

1. 再定义变量

符号含义
kFFT 频点序号(整数,从 0 开始)
Δf频率分辨率(Hz)
f(k)k个频点所代表的实际频率(Hz)

2. 频点与频率的对应关系

f(k) = k × Δf

含义:

  • FFT 并不是“算出一个频率”
  • FFT 是把频率范围按 Δf 分成很多桶
  • k个桶的中心频率是k × Δf

3. 具体工程例子

已知条件
fs = 2048 Hz N = 1024
计算
T = N / fs = 0.5 s Δf = fs / N = 2 Hz
对应关系
k = 0 → 0 Hz k = 1 → 2 Hz k = 2 → 4 Hz k = 25 → 50 Hz

可以理解为:1 个频点代表 2 Hz 宽度的频率区间


4. FFT 能不能“算准”的唯一判断条件

定义变量
符号含义
f_sig实际信号频率(Hz)
判断条件
f_sig / Δf = 整数
  • ✔ 是整数 → 能量集中在一个频点
  • ✘ 不是整数 → 能量分散到多个频点(频谱泄漏)

三、FFT 中的相位是怎么计算的?

1. FFT 输出数据的含义

FFT 在每个频点k上输出一个复数:

X[k] = Re[k] + j · Im[k]
符号含义
X[k]k个频点的 FFT 结果
Re[k]实部
Im[k]虚部
j虚数单位

2. 相位的计算方式

φ[k] = atan2( Im[k], Re[k] )
符号含义
φ[k]k个频点的相位(弧度)
atan2()四象限反正切函数

3. FFT 相位的真实物理意义

FFT 计算得到的相位表示的是:

该频率分量,相对于“采样起点”的相位

其中:

项目说明
采样起点DMA 开始采样的第一个点
相位零点并不是信号的物理零相位

4. 为什么单通道 FFT 相位通常没意义?

因为相位包含:

  • 采样起点偏移
  • 滤波器群延时
  • ADC / 数字链路延时

所以:

单通道 FFT 相位 → 只用于稳定性判断

5. 工程中“有意义的相位”

① 通道间相位差
符号含义
φ1通道 1 的相位
φ2通道 2 的相位
Δφ = φ2 − φ1

② 谐波相对基波相位
符号含义
φ1基波相位
φn第 n 次谐波相位
Δφn = φn − n · φ1

四、工程最终结论(纯结论版)

采样时间 T = N / fs 频率分辨率 Δf = 1 / T = fs / N 频点频率 f(k) = k × Δf FFT 能否算准:f_sig / Δf 是否为整数 FFT 相位只能使用“相对相位”

五、一句话总结

FFT 的本质是:用 N/fs 秒的数据,把频率按 fs/N 分桶;
是否准确,只取决于你看得够不够久,以及频率是否对齐桶中心。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:00:39

我发现动态病例生成补足医学教育短板,三甲医院培训效率翻倍

📝 博客主页:Jax的CSDN主页 目录当AI医生遇上人类医生:一场关于信任的拉锯战 一、我的AI搭档有点飘 二、AI医生的"成长日记" 1. 药物研发:从烧钱到省心 2. 临床试验:效率与伦理的博弈 三、AI医生的"人…

作者头像 李华
网站建设 2026/6/10 5:39:21

Kotaemon支持动态工具调用,真正实现智能决策闭环

Kotaemon支持动态工具调用,真正实现智能决策闭环 在企业级AI应用从“能说”向“能做”演进的今天,一个核心问题日益凸显:语言模型再强大,若无法与真实业务系统打通,终究只是信息的搬运工。用户问“我的订单什么时候发货…

作者头像 李华
网站建设 2026/6/10 14:08:39

Kotaemon错题本整理:学生专属辅导Agent

Kotaemon错题本整理:学生专属辅导Agent 在一所普通初中的晚自习教室里,一个学生正皱着眉头翻看物理试卷。那道关于浮力的选择题他错了两次,笔记上写满了公式却还是理不清思路。如果此刻能有一位老师坐下来,结合他过去的错误习惯&a…

作者头像 李华
网站建设 2026/6/9 16:21:13

Qt跨线程安全通信指南

1.QMetaObject::invokeMethod()应用举例,举一个完整的例子在Qt中&#xff0c;QMetaObject::invokeMethod() 是一个强大的跨线程调用工具&#xff0c;常用于安全地在不同线程间调用对象的方法。以下是一个完整的跨线程UI更新示例&#xff1a;cpp#include <QCoreApplication&g…

作者头像 李华
网站建设 2026/6/10 15:53:40

Kotaemon智能对话系统的容错与恢复机制

Kotaemon智能对话系统的容错与恢复机制 在企业智能化转型的浪潮中&#xff0c;智能对话系统早已不再是简单的“问—答”工具。从金融客服到医疗咨询&#xff0c;越来越多的关键业务场景依赖于能够持续、稳定运行的对话代理。然而&#xff0c;现实环境中的网络抖动、服务中断、第…

作者头像 李华