Reader

修改 RTL-SDR 驱动使 rtl_tcp 支持从 I/Q 通道直采信号

| I BCL. | 博客

起因

博主最近申请到了 WebSDR 的服务端程序,在准备好各种环境之后,却卡在了与 RTL-SDR 的对接上……

WebSDR 的后端一般与 RTL-SDR 驱动自带的 TCP 服务器模块 rtl_tcp 对接并进行调谐。rtl_tcp 的启动很简单,只需要一行命令即可解决。

1
root@yukiho:~# rtl_tcp -a 127.0.0.1 -s 1024000 -g 0 -d 0 -p 1234

在设置好中心频率(9500 kHz),采样率(1.2 Msps)并启动该模块之后,博主却发现 WebSDR 并不能正常地接收短波信号,频谱瀑布一片空白。

这就很迷了。经过一波分析之后,博主得出了结论:

rtl_tcp 命令不能像 rtl_sdr 命令一样使用 I/Q 通道直采接收中短波信号,而此前 OpenWebRX 能实现是因为 Op 采用的是支持 I/Q 通道直采的 rtl_sdr 模块加 netcat 转发数据至 TCP 实现的……

转发数据确实是一条新的思路,但是操作起来却有些麻烦:

1
root@yukiho:~# rtl_sdr -D2 -s 1024000 -f 9500000 -p 0 -g 0 -| nmux --bufsize 253952 --bufcnt 379 --port 1234 --address 127.0.0.1

此外,由于引入了新的工具 netcat 做数据转发,所以负载也跟着上去了,对于博主的垃圾 Orange Pi Lite 来说简直就是灭顶之灾……

还有更好的方法吗?