帕塞瓦尔定理模拟器 返回
信号处理模拟器

帕塞瓦尔定理 — 时间与频率的能量守恒

离散信号的时间域能量与频率域能量在DFT中完全一致。通过正弦、矩形脉冲和高斯三种信号的实时验证,直观体验傅里叶分析的核心保存定律。

参数设置
信号类型(0=正弦 1=矩形脉冲 2=高斯)
振幅 A
频率 f₀(类型0用)
bin
采样点数 N

默认值(正弦, A=1, f₀=10, N=512)下E_t=E_f=256,相对误差约为浮点数精度误差(1e-12)。

计算结果
时间域能量 E_t = Σ|x|²
频率域能量 E_f = (1/N)Σ|X|²
相对误差 |E_t-E_f|/E_t
--
选定 f0 分量
峰值频率 bin
时间信号 x[n] 和功率谱 |X[k]|²/N

上段:时间信号 x[n](蓝色,横轴 n 显示前200个采样)/下段:PSD = |X[k]|²/N(红色,横轴 k 为 0〜N/2,峰值高亮)

理论与主要公式

帕塞瓦尔定理是信号处理中的基本定理,表明信号的能量在时间域和频率域中得到保存。对于离散信号 x[n](长度 N),以下关系成立:

离散傅里叶变换(DFT):

$$X[k] = \sum_{n=0}^{N-1} x[n]\, e^{-j 2\pi k n / N}$$

帕塞瓦尔定理(标准DFT正规化约定):

$$\sum_{n=0}^{N-1} |x[n]|^2 = \frac{1}{N}\sum_{k=0}^{N-1} |X[k]|^2$$

功率谱密度(周期图估计):

$$\mathrm{PSD}[k] = \frac{|X[k]|^2}{N}$$

对于单个周频率的余弦信号 $x[n] = A\cos(2\pi f_0 n / N)$,时间域能量为 $\sum |x[n]|^2 = N A^2 / 2$(因为$\cos^2$的平均值为 1/2)。

帕塞瓦尔定理模拟器说明

🙋
我在教科书中看过"帕塞瓦尔定理"这个名字,但最终有什么用处呢?看公式没有实际感受。
🎓
简单说,"无论用时间还是用频率来测量,信号的能量值必然相同"。看模拟器的默认值(正弦, A=1, N=512)。E_t是256,E_f也是256,相对误差几乎为零吧?$\cos^2$ 的平均值是 1/2,所以理论值正好是 $N \cdot A^2 / 2 = 512 \cdot 1 / 2 = 256$。时间和频率分别计算,但结果完全一致——这就是定理的核心。
🙋
真的!E_t和E_f都精确到256!相对误差约1e-13。这个误差是什么?
🎓
那是"浮点数舍入误差"。理论上应该是零,但计算时N次加法中每次都会产生2⁻⁵²左右的误差积累。反过来说,误差只有1e-13其实是"定理精确成立"的证明。试试把振幅A改成2。E_t和E_f会一起跳到约1024(=N·A²/2)。
🙋
确实!信号类型改成1(矩形脉冲)时,能量大幅下降,但还是完全一致啊。
🎓
矩形脉冲只在中央 N/8 个采样点为 A=1,其余为0,所以时间域能量应该是 N/8 = 64。下方频谱显示了类似sinc函数的分散谱。把所有这些频率分量加起来再除以N,结果就是64——能量完全守恒。信号形状改变,但时间和频率的能量总和必定平衡——这就是帕塞瓦尔的威力。
🙋
高斯信号(类型2)的频谱更平滑。实际应用中怎么用呢?
🎓
典型应用是振动和声学测量。比如加速度传感器数据,要计算"总振动能量",可以对时间波形的平方积分,也可以FFT后对频谱求和——两种方法结果相同,帕塞瓦尔保证了一致性。还有,如果只想要"100Hz到200Hz的能量",在频率域只对这个范围的分量求和,结果会等于时间域通过带通滤波后的能量——非常实用。

常见问题

DFT定义有三种正规化约定。(1)正向变换不乘以N的非正规化约定:Σ|x|² = (1/N)·Σ|X|²(本工具采用)。(2)正向变换乘以1/N的约定:Σ|x|² = N·Σ|X|²。(3)正向变换乘以1/√N的对称约定:Σ|x|² = Σ|X|²。NumPy默认采用(1),MATLAB fft()也是(1),SciPy可以用 norm='ortho' 切换到(3)。不同约定帕塞瓦尔都成立,但系数不同,实现时务必注意。
实数信号的DFT具有"厄米对称性":X[N-k] = X[k]*(复共轭)。因此|X[k]|² = |X[N-k]|²。cos信号含有正频率+f₀和负频率−f₀两部分,所以在k=f₀和k=N-f₀处对称出现两个峰。本工具下图只显示k=0..N/2范围,所以看得到左半部分的峰(k=10),峰值分量特定返回最早出现的那个。
严格来说,"功率谱"指单个频率分量的电力|X[k]|²/N²,"功率谱密度(PSD)"指单位频率宽度的电力|X[k]|²/(N·Δf),其中Δf=fs/N时得|X[k]|²/fs。在能量守恒讨论中,本工具简单使用|X[k]|²/N,称为"正规化周期图"。在实际物理计测中(V²/Hz、g²/Hz等单位),需要除以采样频率fs来校正量纲。
连续信号的帕塞瓦尔(Plancherel定理)形式为 ∫|x(t)|²dt = ∫|X(f)|²df,用积分表示。离散信号用求和替代积分,同时根据DFT正规化约定引入1/N系数。本质相同,都是"时间和频率的能量守恒",但有限长离散信号会受"帧端不连续导致的泄漏"影响。不过帕塞瓦尔本身严格成立——泄漏只影响具体某些频率bin的值,全部频率相加后的能量总是和时间域一致。

实际应用

振动和声学测量:机械状态监测和声学计测中,用加速度传感器或麦克风记录时间序列,可以通过二乘积分计算"全RMS值",也可以FFT后频谱求和——结果相同,帕塞瓦尔定理保证一致性。进一步,做1/3倍频程分析时,只在特定频率范围对频率分量求和,得到的带通功率与时间域带通滤波后的能量相等。

通信系统的SNR评估:无线和光通信中,需要计算信噪比SNR。这正是帕塞瓦尔的应用——从时间波形计算全功率,或在频率域分离信号带和噪声带分别计算,两种方法等价。MATLAB的 snr() 函数和NumPy的频谱分析都是这个原理。

图像处理与压缩:JPEG/MPEG等压缩算法,把图像变换到频率域(DCT、DFT),然后删除低能量高频分量。通过PSD评估各频率成分的能量分布,优先删除能量少的分量。结合Wiener-Khinchin定理,自相关强的信号(PSD集中)能获得更高压缩率。

量子力学中的概率解释:帕塞瓦尔本质上是酉变换的模长保存律。量子力学中,波函数ψ(x)的概率密度|ψ(x)|²与动量空间表示φ(p)的|φ(p)|²满足 ∫|ψ|²dx = ∫|φ|²dp。这保证了位置空间和动量空间计算"全概率=1"的一致性,是量子论的基本性质。

常见误解与注意事项

最常见的错误是「忘记1/N正规化系数」。NumPy和MATLAB的 fft() 采用非正规化约定(正向变换不乘N),所以生的频谱平方和 Σ|X[k]|² 是时间域能量的 N 倍。必须除以 N 才能验证能量守恒。而SciPy用 norm='ortho' 就变成对称约定,Σ|X[k]|² 直接等于时间域能量。一定要查阅库文档。

其次常见的是「忽视周期图的统计不稳定性」。本工具显示的 PSD[k] = |X[k]|²/N 仅是单帧估计,对于随机噪声方差很大,PSD值在真值周围摇摆。实务中用Welch法(多帧重叠平均)、Bartlett法(无重叠平均)或AR模型法等来降低估计方差。帕塞瓦尔在任何估计方法下都严格成立,但单个频率bin的可信度是另一回事。

最后一个误解是「有频谱泄漏就破坏帕塞瓦尔」。不使用窗函数(即用矩形窗)的DFT,当信号频率不是整数bin时会产生"泄漏频谱"分散分布。这导致某些bin值偏离真电力,但全频率bin求和后,时间域能量仍然精确相等(帕塞瓦尔严格成立)。本工具用"高斯"信号示例宽谱时,虽然没有明显峰值,但 E_t = E_f 仍然精确成立。

使用指南

  1. 选择信号类型(slType):正弦(0)、矩形脉冲(1, 中央N/8宽)、高斯(2)三选一
  2. 设定振幅(slA)范围0.1~5.0,指定正弦频率f0(slF0)为1~50(DFT bin编号)
  3. 设置采样点数N(slN)为64~1024点,DFT运算自动执行
  4. 确认时间域能量E_t=Σ|x|²与频率域能量E_f=(1/N)Σ|X|²的相对误差一致性

具体计算示例

输入振幅A=5.0、频率f0=10(bin)、采样数N=256的正弦:时间域能量E_t=N·A²/2=256×25/2=3200,频率域能量E_f=3200,相对误差为浮点精度(≈1e-15)。矩形脉冲(中央N/8宽, A=3.0, N=1024)时,E_t=(N/8)·A²=128×9=1152,展宽为sinc状的谱总和同样为1152,可验证帕塞瓦尔定理。

实务注意事项

  1. 未使用窗函数(Hanning、Hamming)时频谱泄漏明显,N=64等少采样时E_f被低估,建议N≥256
  2. 采样频率fs≥2f0×5(奈奎斯特频率5倍以上)确保f0≤fs/2.56,控制误差±1%以内
  3. 机械振动诊断(轴承异常50~500Hz)及电力品质评估(基波60Hz、谐波检测)中,先用帕塞瓦尔验证能量守恒,再精确计算各周频分量贡献率