我想實現一個基於數據流的數字信號處理系統,很像GNU Radio,其中處理髮生在塊中,並且這些塊串在一起處理數據流。據我所知,有三種方式可以傳遞數據流:塊可以將數據「推送」到下一個塊,塊可以從前一個塊「拉」數據,或者塊可以處理數據緩衝區並返回數據緩衝區,調度程序處理緩衝區(最後一種方式是GNU Radio的操作方式)。需要幫助瞭解數據流處理權衡
每種方法都有權衡。例如,對於採用一個輸入流並返回兩個輸出流的塊,「拉」結構要求輸出流用任意大的緩衝器進行緩衝(第二個輸出可以在第一個輸出之前被「拉動」輸出被拉動)。同樣,「推送」方法對於採用2個輸入流並返回1個輸出流的塊也有同樣的問題。但我認爲這兩種方法都可以使塊實現更容易,因爲每個塊都可以將它們的輸入和輸出視爲一個流。
在我進一步瞭解該項目之前,我想知道:是否有對這種實現這種流程圖的不同方式之間的權衡進行研究?我真的很想寫一篇我可以閱讀的文章,以便我在理解這些問題之前,在實施過程中遇到一些問題。