感觉大家数字信号处理非常的感兴趣,那我继续把更多的细节展示出来(感觉可以出个课什么的),好,继续。首先所有的这些东西其实都是在数学和信号与系统里面可以被推理的,完全可以被预测;而且很多时候也是来源于不完美,至于你说哪里不完美,那可太多了。
还有一点就是,我们天然的接受这样时域这样的呈现数据,因为符合我们长久人类的认知习惯,从研究明白定时器以后感觉英语的时态也懂了,其实就是相通的。
反而频率的世界,我愿称为分量的世界:

这次不偷图了,自己画
x:频率方向;y:时间方向;z:幅值。
地面上是不同频率分量(随时间的余弦基)。
左侧墙(y = 最小)是“频域图像”(各频率分量的幅值“棒图”)。
右侧墙(x = 最大)是“时域图像”(把各频率分量叠加后的波形)。
很多科学家觉得大一统模型是弦论,其实我深以为然。

LT 红色风格的
后面我要写个软件,可以把信号拉进来自动分解。
好,继续,其实昨天的文章说的也差不多了,但是里面有很多的“行业黑话”,这样会显得作者装逼,卖弄学识,事实上,这些指标都是来评估信号质量的,就是通过变换,到底什么东西变了,变了多少。
先说:一致性增益 CG、ENBW、3 dB 主瓣宽度、首旁瓣电平——是窗口函数的四个最核心参数。
是什么:窗口信号的平均值,公式
表示加窗后一个完美相干的正弦波在 FFT 主瓣峰值会被缩小多少倍。
直观理解:
加窗相当于把信号“乘上小于 1 的权重”,信号能量被压低了。
如果不修正,幅度会被低估。
做幅度测量时,要用 CG 进行 幅度还原:
是什么:度量窗口“放大噪声”的程度。公式:
窗口像滤波器一样,把原本“落在一个 FFT bin 的噪声”扩展到多个 bin;ENBW 越大,噪声地板就被抬高越多。
做 SNR/ENOB 时必须用 ENBW 校正噪声功率,否则结果不准;比如 Hann 窗 ENBW≈1.5 bin → 噪声比 Rect 窗(1.0 bin)高约 1.76 dB。
其实这也是最重要的单位,就是频繁文章里面出现的,但是我觉得能说明白的不多,好好的记住!
是窗函数的频谱主瓣,在峰值下降 3 dB 处的宽度(以 bin 为单位)。
主瓣越窄 → 能分辨的两个频率越接近(分辨率高)。
主瓣越宽 → 谱线更模糊、邻近谱线更容易被合在一起。
用途:衡量频率分辨率;Rect 窗主瓣宽度最窄(≈0.45 bin),BH/Flattop 最宽(≈1–2 bin)。
窗函数频谱中,主瓣以外的第一个旁瓣的高度(相对主瓣 0 dB)。
旁瓣越高 → 强信号会“泄漏”更多到远处,掩盖弱信号。
旁瓣越低 → 可以在强信号旁边看清很弱的成分。
可以衡量动态范围能力:Rect 窗旁瓣 −13 dB(很差),Hann −31 dB,Blackman −58 dB,BH4/Nuttall 可到 −90 dB 以上。

这样的
3 dB 主瓣宽度:阴影区,测得 ≈ 0.443 bins
首旁瓣电平:虚线与标注点,≈ −13.26 dB
ENBW:文本标注,Rect 的 ≈ 1.00 bins
指标 | 意义 | 越小/越大好? | 工程用途 |
|---|---|---|---|
CG | 窗口对幅度的衰减因子 | 越接近 1 越好 | 幅度还原、幅度测量 |
ENBW | 窗口对噪声的等效带宽 | 越小越好 | 噪声地板校正、SNR/ENOB 测试 |
3 dB 主瓣宽度 | 能区分频率的最小间隔 | 越小越好 | 频率分辨率 |
首旁瓣电平 | 泄漏抑制能力 | 越低(越负)越好 | 动态范围、SFDR/THD |

画在一起
昨天的图是分开画的,不好看,可以放一起:
Rect 的裙摆最宽、旁瓣最高,泄漏最严重。
Hann/Hamming 明显改善,旁瓣在 −30 dB ~ −40 dB。
Blackman / Kaiser 旁瓣更低,裙摆更干净。
BH(4-term)、Nuttall、Flattop 旁瓣极低(可到 −80 ~ −100 dB),弱小谐波在强基波附近也能被看见。
这张对比图直观显示:不同窗函数对 谱泄漏的抑制能力差别巨大。

不直观,换成对数
峰值统一归一到 0 dB,方便不同窗函数直接对比。
Rect 旁瓣只有 −13 dB → 泄漏很严重。
Hann/Hamming 旁瓣约 −30 ~ −40 dB。
Blackman/Kaiser 旁瓣进一步下降。
BH(4-term)、Nuttall、Flattop 旁瓣抑制最强,可达 −80 ~ −100 dB;这张图就是直观的“谁能看清强信号旁边的微弱信号”。
还有一个,FFT 频谱分析时,如果信号频率不是整数 bin,就会发生谱泄漏(能量扩散到所有 bin)。
我把正常(相干)和\不正常(非相干)\两种情况叠加到同一图层里展示,并且把“不正常”的部分用图窗(inset zoom)+ 半透明矩形高亮出来了:
时域叠加:同一坐标轴上画了 (相干=实线、非相干=虚线),在边界区域加了淡红色矩形并配了一个放大图窗,展示非相干时的“边界不连续”现象。

有点压住了
频域叠加(dB):把相干与非相干的谱叠在一起(相干峰值作参考 0 dB),自动检测非相干较相干明显升高的泄漏区(主瓣外,差值 > 6 dB),用矩形高亮并在旁边放局部放大图窗,清晰看到“裙摆”抬升。

嘿嘿,登峰造极!
在最后的最后,在唠叨一下:
信号的频率恰好落在 FFT 的某个整数 bin 上。
其中 是采样率, 是 FFT 点数, 就是频率分辨率(bin 间隔)。
时域表现:采样窗口长度正好包含信号的整周期,开始点和结束点波形连续。
频域表现:信号能量集中在一个 bin(主瓣),几乎没有泄漏。
像把一个正弦波刚好切在整周期边界,拼接起来没有“断口”,所以频谱只出现在该 bin。

相干(绿色实线):信号频率正好是整数 bin,首尾点连续。
非相干(红色虚线):频率不是整数 bin,首尾点“对不上”,出现不连续。
信号频率不是整数倍的 bin 间隔:
时域表现:采样窗口长度不是整周期,信号开头和结尾出现不连续。
频域表现:能量不再集中在单个 bin,而是“溢出”到所有 bin,形成谱泄漏(裙摆)。
像是把一个正弦波硬切开,拼接后有“断口”,所以频谱扩散到很多 bin。

相干:能量集中在单一 bin(几乎没有泄漏)。
非相干:能量扩散到多个 bin,出现谱泄漏(裙摆抬起)。
这样直观就能看出:
相干 = 干净,适合测幅度
非相干 = 有泄漏,必须用窗函数抑制

看看加窗
Rect(无窗,红线):主瓣最窄,但旁瓣很高(≈−13 dB),能量大量泄漏,弱信号会被掩盖
Hann(蓝线):主瓣稍宽,但旁瓣明显下降(≈−31 dB),泄漏裙摆降低,能看清主信号附近的弱成分

多种窗函数下的频谱放到了一起
Rect:主瓣最窄,但旁瓣最高(−13 dB),泄漏最严重。
Hann:主瓣稍宽,旁瓣下降到 −31 dB,常用折中。
Blackman:主瓣更宽,旁瓣降到 −58 dB。
BH(4-term):主瓣更宽一些,但旁瓣极低(−90 dB 级),适合强弱信号共存场景。
Flattop:主瓣最宽,旁瓣低,平顶形状保证幅度测量最准确。
主瓣宽度 → 决定分辨率;Rect 最好,Flattop 最差。
旁瓣高度 → 决定动态范围;Rect 最差,BH/Flattop 最好。
特性 | 相干(整数 bin) | 非相干(非整数 bin) |
|---|---|---|
频率关系 | ||
时域采样 | 窗口内是整周期,首尾连续 | 窗口内不是整周期,首尾不连续 |
频域结果 | 能量集中在单一 bin,几乎无泄漏 | 能量扩散到邻近 bin,出现泄漏裙摆 |
分析优点 | 干净、便于幅度测量 | 更贴近实际情况,但必须加窗处理泄漏 |
所以:
“相干”:信号频率对齐 FFT bin,结果干净。
“非相干”:信号频率没对齐 FFT bin,结果会泄漏。