【问题标题】:How does a gnuradio source block know how many samples to output?gnuradio 源代码块如何知道要输出多少样本?
【发布时间】:2016-04-29 10:00:24
【问题描述】:

我正在尝试了解 gnuradio 源代码块的工作原理。我知道如何制作一个简单的 outputs a constant 并且我了解采样率的含义,但我不确定如何(或在何处)将两者结合起来。

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

如果一个源块负责其采样率,它如何调节它?他们会检查系统时钟并据此输出样本吗?

【问题讨论】:

    标签: signal-processing gnuradio


    【解决方案1】:

    他们会检查系统时钟并根据它输出样本吗?

    绝对不是。所有 GNU Radio 模块都以处理器可以提供的最大速度运行。

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

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

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

    【讨论】:

    • 如何将 sample_rate 用于analog.signal_source 之类的东西?
    • 根据给定的采样率和信号频率,Signal source 块计算连续采样之间的相位增量。
    • 这个答案的正确性和重要性怎么强调都不为过!
    猜你喜欢
    • 1970-01-01
    • 2016-04-24
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    相关资源
    最近更新 更多