gnuradio 源块如何知道要输出多少个样本?

Ric*_*Ric 3 signal-processing gnuradio

我试图了解 gnuradio 源块的工作原理。我知道如何制作一个输出常量的简单的,并且我了解采样率的含义,但我不确定如何(或在哪里)将两者结合起来。

源块是否负责调节要输出的数据量?或者它输出的数量是否取决于流程图中的其他块以及它们消耗的量?一些源块将sample_rate作为输入,这让我认为是前者。但其他街区则不然,这让我认为是后者。

如果源块负责其采样率,那么它如何调节它?他们是否检查系统时钟并据此输出样本?

Man*_*nos 5

他们是否检查系统时钟并据此输出样本?

当然不。所有 GNU Radio 块都以处理器可以提供的最大速度运行。

然而,GNU Radio 依赖于这样一个事实:每个流程图可能具有以恒定速率产生/消耗样本的源和/或接收器设备(例如USRP、其他SDR设备、声卡)。因此,流程图以硬件的速率受到限制。

为了避免 CPU 饱和,如果这些硬件设备都不存在,GNU Radio 提供了一个块,Throttle尝试(不太准确)通过在每个样本之间休眠适当的时间来以给定的速率限制每秒的样本数穿过该Throttle块。

sample_rate参数而言,不包括Throttle特定于设备的块,它用于图形表示或内部计算。

  • 根据给定的采样率和信号频率,“信号源”块计算连续样本之间的相位增量。 (3认同)