2016-03-29 84 views
2

我仍然在學習GNU Radio,並且我無法理解有關信號處理塊類型的信息。我明白,如果我在輸入和輸出4個樣本中創建一個塊(假設有2個樣本),它將是一個內插值爲2.GNU Radio中的塊類型

但是現在,我想要創建一個將成爲構建器的塊。所以它會有兩個輸入和一個輸出。該塊將接收來自第一個輸入的n採樣,然後從第二個輸入採取m輸入並附加到從輸入1接收的採樣,然後輸出它們。在這種情況下,我的樣本應該是字節。

如何在這種情況下進行?我正在走這條正確的道路嗎?是否有人知道繼續這種情況?

回答

2

您的情況(輸入0和輸入1與輸出的相對速率不同)不在GNU Radio的「模板」sync_block/interpolator/decimator中,因此您必須使用通用塊方法。

假設你熟悉gr_modtool¹,你可以用它來添加一些東西像interpolator(相對比率> 1),decimators(< 1)和sync(= 1)塊:

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

但還請注意general類型。使用它,您可以實現對輸入和輸出之間關係沒有任何限制的塊。這意味着,

  1. 你會從輸入到手動consume()項目,因爲你輸入了項目的數量不能再通過輸出項目的數量來導出,
  2. 你將不得不實施一個forecast方法告訴GNU無線電調度程序你需要多少物品給一個給定的輸出。

gr_modtool會給你一個存根,你只需要添加正確的代碼!


¹如果你不是:它在 GNU Radio Guided Tutorials,第3部分左右介紹,我認爲這將是一個快速而有趣的閱讀給你。

+0

謝謝你的回覆。其實我使用'gr_modtool',它是一個很棒的工具。而且,我認爲我應該嘗試更好地理解調度器如何通過'Work()'和'general_work()'方法管理輸入和輸出項目。 –

相關問題