当前位置: 首页 > news >正文

【信号处理】为什么功率谱不是幅度谱的平方

为什么功率谱不是幅度谱的平方


幅度谱:magnitude=2N⋅∣FFT∣magnitude = \frac{2}{N} \cdot |FFT|magnitude=N2FFT
功率谱:power_spectrum=2N2⋅∣FFT∣2power\_spectrum = \frac{2}{N^2} \cdot |FFT|^2power_spectrum=N22FFT2

如果你直接用幅度谱平方,会得到4N2⋅∣FFT∣2\frac{4}{N^2} \cdot |FFT|^2N24FFT2,正好是功率谱的 2 倍。
所以,功率谱确实不是幅度谱的简单平方,根源在于“振幅”和“物理功率”之间的关系,以及单边谱的折叠方式。

下面我用最直白的方式把原因拆开。

  1. 一个正弦波的“振幅”和“平均功率”
    假设有一个电压正弦波:
    x(t)=Acos⁡(2πf0t)x(t) = A \cos(2\pi f_0 t)x(t)=Acos(2πf0t)
    它的振幅是AAA(峰值电压)。

在 1 Ω 电阻上,它的瞬时功率是x2(t)x^2(t)x2(t),平均功率是:
Pavg=1T∫0TA2cos⁡2(2πf0t) dt=A22P_{\text{avg}} = \frac{1}{T} \int_{0}^{T} A^{2} \cos^{2}(2\pi f_{0} t) \, dt = \frac{A^2}{2}Pavg=T10TA2cos2(2πf0t)dt=2A2
结论:正弦波的平均功率 = 振幅² ÷ 2。

  1. FFT 得到的双边谱是什么样的
    对这个正弦波做 FFT(离散傅里叶变换),会在正频率
    +f0+f_0+f0和负频率−f0-f_0f0各出现一个峰。
    两个峰的幅度(忽略相位)都是A/2A/2A/2的量级(乘以点数 N 等比例,这里先不纠结 N)。

可以理解为:

总信号被“拆成”两半,一半能量在正频率,一半在负频率。

所以正频率分量的振幅是A/2A/2A/2,负频率也是A/2A/2A/2

  1. 单边幅度谱为什么要“乘 2”
    实际频谱图通常只显示正频率(单边谱)。
    为了让它直接显示出原始正弦波的振幅AAA,我们会把负频率的分量“合并”到正频率上,也就是将正频率的幅度乘以 2:

单边幅度 =2×A2=A2 \times \frac{A}{2} = A2×2A=A
所以我的代码里:magnitude = (2/N) * |FFT|
得到的峰值就是振幅 1.0 和 0.5,符合直觉。

  1. 单边功率谱为什么要“乘 2”但最后又只有一半
    功率是振幅的平方,所以当我们把负频率的功率合并到正频率时,功率也要加倍(因为负频率的功率和正频率相等)。
    于是正频率的原始功率(基于双边谱)是(A/2)2=A2/4(A/2)^2 = A^2/4(A/2)2=A2/4,加倍后变成2×A2/4=A2/22 \times A^2/4 = A^2/22×A2/4=A2/2

看到了吗?单边功率谱的正频率峰值是A2/2A^2/2A2/2,恰好等于正弦波的平均功率,而不是A2A^2A2

如果用公式表达:

单边功率谱
2×(∣X(f)∣N)2=2N2∣FFT∣22 \times \left( \frac{|X(f)|}{N} \right)^2 = \frac{2}{N^2} |\text{FFT}|^22×(NX(f))2=N22FFT2

如果直接用刚才的单边幅度谱AAA平方,会得到A2A^2A2,这相当于将平均功率乘了 2,物理上不正确。

  1. 直观对比
对象物理意义正频率峰值数值(A=1)
单边幅度谱振幅AAA1
单边幅度谱振幅AAA1
单边幅度谱的平方(无直接物理意义)A2A^2A21
单边功率谱平均功率A2/2A^2 / 2A2/20.5

所以关系是:

功率谱=2×= 2 \times=2×幅度谱2^22

这就是差一个因子 2 的原因。

  1. 代码印证
    你可以在自己代码里加一行,直接验证:
# 直接用幅度谱平方,再除以 $2$ power_from_magnitude = magnitude**2 / 2 # 画出对比 plt.plot(positive_freqs, power_spectrum, label='直接计算的功率谱') plt.plot(positive_freqs, power_from_magnitude, '--', label='幅度谱$^2$/2') plt.legend()

两条线会完全重合。

一句话总结:

幅度谱描述每个频率的“振荡幅度”(峰值);

功率谱描述每个频率贡献的“平均功率”;

对于正弦波,平均功率=A2/2= A^2 / 2=A2/2,而不是A2A^2A2,所以功率谱天然比幅度谱的平方少一半。单边谱折叠时这个1/21/21/2因子被保留了下来。

http://www.jsqmd.com/news/1093291/

相关文章:

  • 2026年批量采购无人机专用胶粘产品怎么选?行业选型指南
  • 每天5分钟玩转 Kubernetes
  • Web基础解析
  • 终极鼠标性能测试指南:用MouseTester发现你的设备真实实力
  • 深入解析PCM178x系列DAC:Delta-Sigma架构原理与音频硬件设计实战
  • 2026年6月28日博客精选
  • Java计算机毕设之基于 SpringBoot+Vue 的社区老龄关爱服务管理系统 公益助老项目发布与预约服务平台设计实现(完整前后端代码+说明文档+LW,调试定制等)
  • 奇数分频电路设计进阶:Verilog实现50%占空比的通用方法
  • 【深度学习】OpenCV 视频分析实战:背景建模 + 形态学处理实现运动目标检测
  • 牛客周赛 Round 150
  • lsyat门禁闸机播放TTS—幽冥大陆(一百51)-东方仙盟
  • 第 5 讲:Prompt、上下文、Token、模型参数
  • Cadence防静电logo .dra文件转换为 .dxf文件(16.6)
  • Web安全实战:任意文件上传漏洞原理、复现与加固指南
  • 【精通】RustMark v2.4:CI/CD 与发布工程 — Cargo Workspace 与 DevOps 深度实战
  • ABB工业机器人编程基础(十一)流程控制:FOR、WHILE 与示教器交互指令
  • Java毕设项目:便民助老资源统筹服务平台基于前后端分离实现 数字化爱老助老公益服务管理平台设计与开发 (源码+文档,讲解、调试运行,定制等)
  • 前端控制器管理化技术请求分发与视图解析
  • rocky linux安装教程:VMware虚拟机图文讲解部署Rocky Linux 9(附镜像包)
  • 量化盯盘辅助工具:不同AI工具在信息整理与复盘环节的分工用法
  • Casbin 学习指南
  • RAG检索准不准怎么量化:recall@k和MRR实操
  • 总结 6.29
  • Vue 组件通信的多种实现思路
  • Kali Linux中Skipfish扫描DVWA靶场:从工具使用到漏洞验证实战
  • 基于本地大语言模型的AI助手中间件:ai-berkshire部署与集成指南
  • 哈工大高级算法课程期末2026.6复习经验 (本科生的专业限选,选修课)
  • 银行网点实时语音识别解决方案客服沟通合规质检 业务沟通全量留痕
  • GLM-5.2 编程实战全解:744B MoE、1M 无损上下文、Code Arena 全球第一,国产开源长程 Coding 模型怎么用
  • 12 java面试题: JDK 动态代理 CGLIB 动态代理 的区别和联系是什么