测了一组振动数据,用 FFT 求出幅值谱,领导说要看功率谱密度,我就直接把幅值平方当密度交上去。结果对方回了一句单位不对,才发现自己把 PSD 和幅值谱搞混了。

PSD 描述的是功率怎么分布到频率上

功率谱密度,简称 PSD,单位是每赫兹的功率,常见写法是 g²/Hz 或者 m²/s³。它回答的问题不是某个频率上有多少能量,而是频率附近单位带宽里功率有多密。所以它的数值和采样率、频率分辨率直接挂钩,换一种采样参数,同一个信号的 PSD 数值就变了。这一点和幅值谱完全不同,幅值谱看的是峰值,PSD 看的是密度。

离散计算的一条常用路径

工程里最常用的还是周期图法,先用 FFT 再归一化:

Pxx(f) = |X(f)|² / (fs * N * U)
U = 窗函数的功率归一化因子
N = FFT 点数   fs = 采样率

X(f) 是 FFT 结果,fs 乘 N 再乘上窗的功率修正 U,得到的就是单边谱。窗用汉宁窗时 U 大概取 1.5,具体值查窗表,别随手写 1,写错了整条曲线会整体偏高或偏低。

几个参数改一个结果就变

  • 采样率 fs 变高,同样信号的 PSD 幅值下降
  • FFT 点数 N 变大,频率分辨率变细,谱线更密
  • 平均段数变多,谱更平滑但峰值被压
  • 加窗能压泄漏,但要付出能量和分辨率的代价

随机信号要用平均

单次 FFT 出来的 PSD 毛刺很大,看着像噪声。随机振动要做多段平均,常用的做法是 Welch 法:把长信号切成若干段,段与段之间可以重叠一半,每段加窗后各自算 PSD,最后取平均。段数越多曲线越平滑,工程上一般取 8 到 32 段。随机信号的 PSD 是统计量,段数太少没有意义。

建议:先确认单位是 g²/Hz 还是别的,再回看窗和归一化因子有没有对上,最后才纠结曲线好不好看。顺序反了,改多少参数都白搭。