使用GNU Radio的HackRF One传输时的高延迟

时间:2016-10-02 17:58:04

标签: lag gnuradio software-defined-radio

因此,我对RC玩具无线协议进行了逆向工程,并在GNU Radio Companion中编写了流程图,用于复制玩具的命令。

接收器块是osmocom接收器,发送设备是HackRF One。

我遇到的问题是按下按钮和玩具反应之间的严重滞后,大​​约1-2秒。

快速按下,例如"前进"按钮两次将导致玩具快速连续前进两次,按下后大约一秒钟。所以它不像流程图本身那么慢。 CPU使用率也相当低。这看起来像是一些缓冲问题。

我非常确定流程图本身会立即响应按钮按下,因为调试打印在按下/按下按钮的同时出现,并且方形波也会立即出现在GUI范围内。< / p>

我尝试将HackRF缓冲区的数量减少到一个(通过设置设备参数hackrf,buffers=1),但它没有帮助。

我设置了#34;最大输出数量&#34;对于流程图也是10,它也没有区别(我也尝试了其他一些值)。鉴于信号在GUI范围内显示的时间比1秒后更快,它无论如何都不会起作用。

如何减少延迟呢?

GNU Radio Companion flow graph

编辑:我按照@ Manos的建议,尝试调整采样率。

添加插值为8的合理重采样块(并相应地调整接收器采样率)和设置hackrf,buffers=1使得延迟几乎不存在。

然而,将我的自定义块的输出采样率降低到500k并进行16倍插值仍然会导致明显的滞后,可能是400-500ms(仍然没有像它在源和接收器上的1M时那样引人注目)。我不确定如何解决它。不幸的是,以1M运行我的自定义块会占用100%的CPU并导致偶尔出现下溢。

0 个答案:

没有答案