【发布时间】:2014-08-28 18:46:32
【问题描述】:
我想实现一个基于数据流的数字信号处理系统,很像GNU Radio,其中处理以块的形式进行,这些块串在一起以处理数据流。据我所知,有三种方法可以传递数据流:一个块可以“推送”数据到下一个块,一个块可以从前一个块“拉”数据,或者块可以处理数据缓冲区并返回数据缓冲区,调度程序处理缓冲区(最后一种方式是 GNU Radio 的操作方式)。
每种方法都需要权衡取舍。例如,“拉动”架构要求,对于接受一个输入流并返回两个输出流的块,输出流使用任意大的缓冲区进行缓冲(对于n 之前的样本,可以“拉动”第二个输出)第一个输出被拉)。类似地,“推送”方法对于采用 2 个输入流并返回 1 个输出流的块具有相同的问题。但我认为这两种方法都使块的实现更容易,因为每个块都可以将它们的输入和输出视为一个流。
在我进一步了解该项目之前,我想知道:有没有研究过实现此类流程图的不同方法之间的权衡?我真的很想写一篇我可以阅读的文章,以便在实施中途遇到问题之前了解这些问题。
【问题讨论】:
标签: stream iterator dataflow gnuradio