为什么在 GNU Radio 的 GUI 时间接收器中不显示节流的文件源数据?

Why doesn't throttled file source data display in GUI time sink for GNU radio?

我有一个带有文件源(关闭重复)和 GUI 时间接收器的流程图。该图以 2 个样本/秒的速度被节流块节流。我希望每秒在我的 GUI Time Sink 中看到两个新示例。但是,GUI Time Sink 不是 1 秒更新,而是根本不显示任何内容。如果我在文件源上打开重复,GUI Time Sink 会更新。为什么在关闭重复时不更新?

我的问题类似于。就我而言,我还有一个文件源被限制为非常慢的采样率。但是,我的接收器是 GUI 时间接收器,而不是文件接收器——我在时间接收器上看不到 "Unbuffered" 参数的选项。

我的流程图

重复关闭

重复

这其实是多题合一:

  1. 您假设时间接收器在进入时会显示两个新值。事实并非如此:它只会在(至少)具有与您配置的要显示的新项目一样多的新项目时更新显示点数.
  2. 您假设 GNU Radio 会愉快地一次阅读一个(或两个)项目。通常,情况并非如此:它会向文件源询问输出缓冲区中有多少项 space,例如 8192(不固定)。通常,
  3. 油门并不像你想象的那样起作用。它采用每次调用其工作函数时获得的输入样本数(例如 8192),并将该数字除以您设置的节流率,然后仅阻塞该秒数。 Throttle 在较长的时间范围内调节 平均 速率,或者在您真正最小的速率情况下,在很长的时间范围内。

您可以限制输出缓冲区中的项目数,但不能低于页面大小 (4kB);对于至少有 1024 个项目的复合体。

我认为经典的图形化 GNU Radio 接收器可能不适合逐个样本地分析文件。

我建议尝试 Tim O'Shea gr-pyqt 附带的示例流程图。它们对于这种分析非常方便。