跳转到内容
新建笔记

单边幅值谱与功率谱密度

设实信号 x[n]x[n] 乘窗 w[n]w[n] 后的未归一化 DFT 为:

Xw[k]=∑n=0N−1x[n]w[n]e−j2πkn/NX_w[k]=\sum_{n=0}^{N-1}x[n]w[n]e^{-j2\pi kn/N}

窗相干增益为:

CG=1N∑n=0N−1w[n]CG=\frac{1}{N}\sum_{n=0}^{N-1}w[n]

双边峰值幅度估计:

A2[k]=∣Xw[k]∣N CGA_2[k]=\frac{|X_w[k]|}{N\,CG}

对实信号,正负频率共轭对称。构造单边峰值幅值谱时:

A1[k]={A2[k],k=02A2[k],0<k<N/2A2[k],k=N/2 且 N 为偶数A_1[k]= \begin{cases} A_2[k], & k=0\\ 2A_2[k], & 0<k<N/2\\ A_2[k], & k=N/2\ \text{且 N 为偶数} \end{cases}

DC 和偶数长度记录的 Nyquist 频点没有独立的负频率伙伴,不能乘 2。奇数 NN 不含恰好位于 Nyquist 频率的频点。

窗平方和 U=∑w2[n]U=\sum w^2[n]。双边 periodogram 为:

Pxx,2[k]=∣Xw[k]∣2fsUP_{xx,2}[k]=\frac{|X_w[k]|^2}{f_s U}

单位是“输入单位平方/Hz”。实信号的单边 PSD 同样把正频率内部频点乘 2,DC 和 Nyquist 不乘 2。

flowchart LR
A["x[n]"] --> B["去趋势"] --> C["乘窗"] --> D["DFT"]
D --> E["幅值谱<br/>除以 N·CG"]
D --> F["PSD<br/>除以 fs·Σw²"]
E --> G["内部正频点 ×2"]
F --> H["内部正频点 ×2"]

正确归一化后应近似满足:

∑kPxx[k]Δf≈1N∑nx2[n]\sum_k P_{xx}[k]\Delta f\approx\frac{1}{N}\sum_n x^2[n]

有限数据、去趋势和窗会使等式形式随定义略有变化,但这仍是非常有效的数值自检。

单段 periodogram 方差较大。Welch 方法把数据分段、加窗、计算各段 periodogram,再求平均:

flowchart LR
A["长记录"] --> B["重叠分段"] --> C["逐段加窗"] --> D["逐段 PSD"] --> E["均值或中位数平均"]
  • 段越长:频率分辨率更细,但可平均的段数更少。
  • 段越短:估计更平滑,但相近成分更难分开。
  • 重叠增加可用分段,但相邻段并非独立样本。
  • 换窗、段长或平均方式后,比较基线也应重新建立。

优先使用成熟库的 periodogram 或 welch,并显式设置 fs、窗、段长、重叠、去趋势和 scaling,不要依赖默认值猜测单位。