回答读者一个关于采样的疑问。(我只能说这是我写的东西没有好好学习)
这是一个典型的混叠(aliasing)现象。
你用 45 MHz 采样频率去采一个 21.19 MHz 的信号,表面上满足奈奎斯特采样定理(采样率 > 2 × 信号频率),但实际上仍然可能出现“看似多余”的频谱分量,其原因是有很多种的,这里可以一一列举:
由于 45 MHz ≈ 2 × 21.19 MHz + 2.62 MHz,实际频率关系是:
采样奈奎斯特频率 = 22.5 MHz;你采的信号为 21.19 MHz,非常接近奈奎斯特频率。
这时会出现频谱折叠靠近 DC 或低频处的“镜像项”,如下图解释:
原信号分量 | 折叠后映射位置(在 0~Fs/2 中) |
---|---|
21.19 MHz | 45 - 21.19 = 23.81 MHz(> Fs/2 → 映射回 1.69 MHz) |
也就是说,你看到的那些“谐波”其实不是信号自身的谐波,而是混叠折返(alias)造成的镜像频率。
主峰出现在 21.19 MHz,接近奈奎斯特频率 22.5 MHz;
可见许多“谐波”分布在低频区域(例如 3f、5f…);这些高频谐波本应在 63.57 MHz(3f)、105.95 MHz(5f)等,但因超出采样频率,会折叠 alias 到低频区域;这就造成你在 FFT 中看到很多看似不属于信号的频率分量。
虽然你采样率“足够高”,但如果信号不是带限的纯波形(如方波、脉冲等),高频分量还是会混叠进来;这正是频谱 aliasing 的直观表现。
你测的 21.19 MHz 可能不是纯正弦波,而是:
方波、脉冲波、或者其他含有高次谐波成分的波形;这些高频谐波成分 > 22.5 MHz,超出奈奎斯特频率,会混叠回来,映射到低频。
例如,方波会有大量奇次谐波:
f, 3f, 5f, ...
其中像 3 × 21.19 MHz = 63.57 MHz,这个远超 45 MHz,经过混叠后会出现在“奇怪的位置”。
没有用 低通滤波器(cutoff ≈ 22 MHz) 去限制输入信号的频谱带宽,那么:
所有 22.5 MHz 以上的信号分量(包括噪声/谐波)都会混叠回 0~22.5 MHz;这些频率分量出现在 FFT 中,就像是“多余的杂散/谐波”。
高频信号(尤其 > 10 MHz)在被采样时,如果采样时钟有抖动,会导致:
时间不均匀采样;在 FFT 中体现为噪声地板升高或频谱线展开、失真;显得像“杂散分量”或谐波污染。
如果你没有用窗函数(或用了不合适的窗函数),FFT 会出现频谱泄漏(spectral leakage);导致主频旁边出现多个低幅值“谐波”或“裙带”现象;这些也容易被误认为是谐波分量。
可以做以下的测试,观察会不会有改善:
确认输入波形是否纯净(使用频谱仪看输入端);
加一级低通滤波器(带宽 < 22 MHz);
检查 ADC 驱动和采样时钟的质量(jitter);
FFT 加窗函数(例如 Hanning)避免泄漏;
换更高采样率,尝试 80 MHz、100 MHz 采样,提高 Nyquist 边界。