首先,为什么您看不到负电压的答案是数字输出的范围从 0 到输出的最大数字电压 (+Vs)。这将具有 +Vs/2 的 DC 偏移,该偏移通过高通滤波器(串联电容)简单地过滤掉,从而在串联电容之后产生具有负电压的双极波形。
更新:根据他在回答中提供的 Marcus 链接,以下不是他们在 Rasberry PI 中实际使用 FM 发射器的方式,但作为一种可能的方法仍然有效。实际实现似乎要简单得多,利用 Rasberry-Pi 中现有的 PWM 扩频时钟控制器。该设备通常用于通过扩展最大发射发射来帮助通过发射标准,从而降低整体功率谱密度。因此,这样的设备可以用于 FM 传输,因为它通过改变正在传播的时钟信号的零交叉(稍微)来实现它的传播。因此,如果您可以访问过零变化方式的控制机制,您就可以实现 FM 发射机。
下面的原始响应显示了如果没有专用的扩频 PWM 时钟控制器可以做什么:
可以使用数控振荡器与 sigma-delta DAC 组合来实现该实施。NCO 可以提供精确的频率控制以及 AM、FM 或 PM 调制(您正在使用 FM),而 sigma delta DAC 可以仅从 1 个数字位提供多级模拟输出。
由于 FM 只关注过零,对于一个非常简单的演示应用,完全省略 sigma-delta 也是可行的,在这种情况下,NCO 是用 1 位输出实现的。但是,这会产生很大的抖动,因为过零将仅限于实际时钟的交叉与仿真波形中所需的交叉(以及需要更严格的模拟滤波的高频谱噪声)。更高的时钟频率会减少这种情况,但更有效地实现 sigma-delta 架构并在此过程中最大限度地减少抖动;这是相位噪声,又是FM噪声;然而,这种抖动很容易量化/预测,并且可能有足够高的时钟可以证明不是问题。
在这篇文章中,我将详细介绍 NCO。
用于相量实现的数控振荡器 (NCO)?
至于通过调制生成模拟输出,NCO 与 DAC 组合在一起,如下图所示,其中还显示了所有调制旋钮(通常称为 DDS 或直接数字合成器):
我没有专门审查 Rasberry pi 的实现,以了解您是否正在使用实际的 n 位 DAC,或者该部分是否使用 PWM 样式 DAC(Sigma-Delta 调制器)实现,或者相位累加器的 MSB直接使用(根据您描述输出的草图,我怀疑后两者中的任何一个)。在 Sigma Delta DAC 的情况下,它可以使用通带架构来实现,以便进行噪声整形以最大化 FM 频段中的有效位数(而不是需要非常高采样率)。
下面给出了 DAC 重建的更多考虑因素,与 Sigma Delta 方法没有直接关系,但确实显示了如何根据 DAC 输出后的后滤波生成高于 DAC 采样率的更高频率输出。

下图显示了一个非常简单的 Sigma Delta DAC 实现。将其与上面的 NCO 结构相结合,通过采样数字字生成采样,使用 FCW 端口作为 FM 调制控制可以创建 FM 信号。然而,如上所述,可以使用通带结构来代替低通结构的数字累加器,然后允许选择性噪声整形以抑制您感兴趣的 FM 频带内的量化噪声:
