0

GNU Radio のフローグラフに問題があります。私のアプリケーションではネイティブ ブロックがうまく機能しなかったため、Delay ブロックとしてカスタム ブロックを作成しました。カスタム ブロックの前に UHD ソースがあります。4M のサンプルレートで動作しています。しかし、シミュレーションを開始すると、オーバーフロー ("O") が生成されます。UHD ソースの出力をファイルに保存し、「オフライン」モードでシミュレーションを再度再生すると、オーバーフローのエラーが発生しないため、これは奇妙だと思います。つまり、「オンライン」モードで作業しているときだけ問題が発生します。UHD ソースで以前に保存されたファイルではなく、UHD ソースで作業している場合のみ。

ここに画像の説明を入力

Delay_amostra_sync ブロック コード:

numpy をインポート

gnuradio import grから

class Delay_amostra_sync(gr.sync_block): """ ブロック Delay_amostra_sync の docstring """ def init (self, var): gr.sync_block. init (self, name="Delay_amostra_sync", in_sig=[numpy.complex64], out_sig=[numpy.complex64]) self.var = var self.cont = 0
self.buffer = numpy.array([])
self.c = 1

def work(self, input_items, output_items):
    in0 = input_items[0]
    out = output_items[0]

    self.dados = numpy.array(input_items[0], copy=True)

    self.buffer = numpy.append(self.buffer, self.dados)      

    if self.cont >= self.var:                         
        out[:] = self.buffer[range(0,len(out))]
        self.buffer = numpy.delete(self.buffer, range(0,len(out)), 0)            
    self.cont = self.cont + 1

return len(output_items[0])

4

0 に答える 0