FFT在非流图中心应用程序从流图不同中心应用程序,如uhd_fft(FFT in non-flowg

2019-10-21 14:22发布

我写了一个小的GNU电台节目从USRP N210捕捉和情节FFT数据。

为了避免锁定了我的图形用户界面(matplotlib和wxPython的),我只运行流图的GUI报告说,它的闲置后。

为了做到那样的时机,我使用非流图中心的方法,在GNU Radio的教程中介绍。

从本质上讲,我有一个主循环看起来像这样(伪):

topblock.set_usrp_freq()
while True:
    topblock.run()
    data = topblock.vector_sink.data()
    thread-safe call to plot data
    wait for gui.EVT_IDLE
    topblock.skiphead.reset()
    topblock.head.reset()

当流图基本上是这样:

self.connect(usrp, skiphead, stream_to_vector, head, fft, c2mag_sq, stats, volts_to_dBm, vector_sink)
# skiphead is modified to be resettable like head

当我使用类似的参数,我希望看到我看到的时候我跑同样的事情uhd_fft -f 700M -s 10e6

从我matplotlib阴谋的输出,首先非常相似,具有非常明显的LO除外。 我曾试图按照通过代码uhd_fft ,我不认为他们会做任何LO抵消,所以我的第一个问题就是问:uhd_fft避免以某种方式绘制LO,或者是我从运行我流图的方式导致LO主循环被宣判?

编辑:我已经证实了超Lo是,每次发生电压尖峰的副产品的流图是“运行()”。 你需要下降到更低至LO样本的数量可以看出,在我的随访后的时间数据: 使用简单的GNU收音机流图时,从USRP电压脉冲在Python

第二次运行后,我渐渐收到奇怪的数据绘制那绝对犯规”在uhd_fft发生。 我可以让这个消失倾倒每流图运行数千样本与skiphead块,但我的第二个问题是:Q:为什么运行从单独的主循环导致垃圾数据流图进行绘制,即使USRP不正在重新调整? uhd_fft采用的是流图中为中心的流程,并没有这个问题:

我的直觉是,有一些注意事项与运行未在本教程中提到的非流图中心的应用程序。

文章来源: FFT in non-flowgraph centered application different from flowgraph centered apps like uhd_fft
标签: gnuradio usrp