起因
博主最近申请到了 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 来说简直就是灭顶之灾……
还有更好的方法吗?