数字函数发生器如何产生精确的频率?

电器工程 频率 函数发生器 频率合成
2022-01-17 08:42:48

当我意识到我对频率合成本身知之甚少时,我正在设计一个需要精确频率控制的电子电路。

例如,当我使用我的低端 2 通道任意波形发生器时,我可以将其中一个通道设置为频率为 6.00000000 MHz 的正弦波,另一个设置为 5.99999999 MHz。当我将这两个信号相乘并滤除较高频率时,我得到的是一个频率为 10 毫赫兹的精确正弦信号。所以两个波​​形之间的周期差应该是惊人的278阿秒。这将需要 3.6 PHz 的带宽才能区分一个时期内的差异!然而,我的 AWG 能够以 10mHz 的精度以及晶体振荡器的热和相位漂移精度生成 0 到 6MHz 的任何频率。(我用示波器检查过,频率稳定到6位精度,无法进一步检查)。

因此,这恰好超出了我的理解(尤其是在 60 美元以下)。在那个带宽下使用分频/倍频是不可想象的,而且我所知道的任何 VCO 都有更多的抖动,最终会漂移太多。

我错过了什么吗?你们中的任何一位工程师都知道在如此便宜的数字发生器中发生了什么吗?

4个回答

那种发生器使用 DDS 或直接数字合成

它在寄存器中跟踪所需输出的相位,并输出相位的余弦。

要使用漂亮的整数,假设您有一个 10 MHz 的时钟,并且想要生成 1.000000 MHz。每 100 ns 时钟周期,您的相位寄存器会增加 0.1 个周期。如果要生成 1.000 000 001 MHz,则每个时钟都将增加 0.100 000 000 100 个周期。

频率分辨率很便宜,您只需为相位寄存器提供足够的 LSB。在这种情况下,使用 10 MHz 时钟的 mHz 分辨率,如果总和以十进制完成,则需要 10 位数字,如果以二进制完成,则更有可能至少 34 位。使用二进制算术,有时主时钟将是一个很好的“二进制”频率,以获得很好的赫兹分辨率。对于更便宜的发生器,设计人员通常只是在相位寄存器中添加另一个 LSB 负载,并且对令人讨厌的二进制 Hz 分数具有非常精细的分辨率,这“足够好”。我的低成本发电机有 μHz!

只有前几个 MSB,通常是 10 到 16 个,具体取决于输出的质量(成本),才能驱动相位 -> 余弦转换器。因此,您输出的相位永远不会比千分之几更准确。但是,输出相位误差是非累积的,并且随着时间的推移,波形将保持相对于时钟以及由同一时钟生成的任何其他通道的正确平均相位变化率(也称为频率)。

所以频率是精确的,相位也是如此。正是这种相位近似意味着 DDS 输出具有相位噪声杂散输出。这些在示波器上是看不到的,但在任何普通的频谱分析仪上都可以看到。

你可以拆掉你便宜的函数发生器,我相信你会发现一个 DDS 芯片或 FPGA 做同样的事情。然而,可以在毫赫兹范围内增加/减少频率,但精度与 XTAL 精度相关。因此,当您从同一个 XTAL 中减去两个生成的频率时,您可以获得 mHz 的正弦波。如果你有一个单独的函数发生器,你会注意到两个源的频率不同。

解决方案是有一个参考时钟作为多个函数发生器的输入。GPSDO (GPS Disciplined Oscillator) 可用于精确同步。

尼尔和马尔科已经做出了非常详细的回应。从我的肤浅的角度来看:发生器包含一个 DAC(或几个 DAC 通道)并执行 PCM 波形播放。设计权衡大约是:

  • 您可以获得多稳定的参考时钟
  • DAC 分辨率(位深度)和采样率是因素(以及部分相互权衡)
  • 计算能力 - 每秒可以计算多少个余弦(或正弦),或使用查找表进行近似计算,直至幅度分辨率
  • 您可以为 DAC 输出构建的模拟滤波器有多平滑(和自适应)

显然,金钱是所有这些物品的总包。

这将需要 3.6 PHz 的带宽才能区分一个时期内的差异!

你误会了。我可以在没有高带宽的情况下将平均频率设置为非常高的精度。要想准确分辨频率,就做你做的1000多秒的练习,突然要求就下降了。您需要查看的是源的相位噪声或抖动,您没有指定 - 实际上很可能,您是否会测量廉价源的抖动,您实际上最终肯定会超过 100ps 范围 - 我曾经使用超高端的 AWG(想想一个家庭的价格),经过仔细校准后得到了 20ps 的估计抖动。

您进行信号合成有两种方式:

  • DDS(如@neil_UK 的优秀答案)用于低频、高相对带宽和任意波形生成 - 备注:DDS 也非常适合快速生成正弦信号,它会瞬间改变频率,但根据应用程序的不同,过滤可能会很棘手。

  • 用于高频、低噪声和正弦波和/或谐波生成的 PLL:在这样的设置精度中,您始终在锁相环中使用 VCO。这里漂移和长期噪音无关紧要。高带宽合成器示例:https ://www.ti.com/product/LMX2820

两种方法都使用固定频率参考(反过来可能会锁定到外部信号,如 GPS 或法国的 32kHz 时间信号)

编辑:通常使用现成的组件可以在参考信号的 ps 范围内实现抖动:例如,请参阅以下规格:https ://www.orolia.com/products/atomic-clocks-oscillators/gxclok- 500-gps-gnss-ocxo-时钟模块