gpt4 book ai didi

gnuradio - GNU Radio 中的 block 类型

转载 作者:行者123 更新时间:2023-12-05 03:11:43 24 4
gpt4 key购买 nike

我仍在学习 GNU Radio,我对信号处理 block 类型的理解有些困难。我知道如果我创建一个 block ,假设在输入和输出 4 个样本中采用 2 个样本,它将是一个 2 的插值器。

但是现在,我想创建一个将成为成帧器的 block 。因此,它将有两个输入和一个输出。该 block 将从第一个输入接收 n 个样本,然后从第二个输入获取 m 个输入并附加到从输入第一个接收到的样本,然后输出它们。在这种情况下,我的样本应该是字节。

请问在这种情况下如何进行?我这样走的路对吗?有人知道如何处理这种情况吗?

最佳答案

sync_block/interpolator/decimator 未涵盖您的情况(输入 0 和输入 1 与输出具有不同的相对速率) GNU Radio 拥有的"template",因此您必须使用通用 block 方法。

假设您熟悉 gr_modtool¹,您可以使用它来添加诸如 interpolator(相对速率 >1)、decimators 之类的东西(<1) 和 sync (=1) block :

-t BLOCK_TYPE, --block-type=BLOCK_TYPE
One of sink, source, sync, decimator, interpolator,
general, tagged_stream, hier, noblock.

但还要注意 general 类型。使用它,您可以实现一个对输入和输出之间的关系没有任何限制的 block 。也就是说

  1. 您将不得不从输入中手动consume() 项目,因为您从输入中获取的项目数量不能再由输出项目的数量得出,并且
  2. 您将必须实现一个forecast 方法来告诉GNU Radio 调度器对于给定的输出您需要多少项目。

gr_modtool 将为您提供一个 stub ,您只需在其中添加正确的代码!


¹ 如果您不是:它在 GNU Radio Guided Tutorials 中介绍,第 3 部分左右,我认为您可以快速而有趣地阅读一些内容。

关于gnuradio - GNU Radio 中的 block 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36289994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com