Hacker News 中文摘要

RSS订阅

浏览器运行 GNU Radio -- GNU Radio in the browser

GNU无线电世界(GNU Radio World)是一个在浏览器中运行的类 GNU无线电伴侣(GNU Radio Companion)流图编辑器与运行时。其 GNU无线电 DSP 栈(GNU Radio DSP stack)和 Qt 图形界面接收器(Qt GUI sinks)被编译为 WebAssembly,故可构建软件定义无线电流图,点击运行观看实时频谱、瀑布图与星座图,无需 Python、安装及服务器。它读写与原生 GNU无线电(GNU Radio)相同的 .grc 文件,附带示例流图与 IQ 记录,并通过 WebUSB 连接 RTL软件定义无线电(RTL-SDR)、Pluto软件定义无线电(PlutoSDR)或 HackRF 设备(HackRF)。

正文

一个 GNU Radio Companion 风格的流程图编辑器和运行时,完全在浏览器标签页中运行。GNU Radio 的 DSP 栈和 Qt GUI 接收端被编译为 WebAssembly,因此你可以构建软件定义无线电流程图,按下运行,观看实时频谱、瀑布图和星座图——无需 Python、安装或服务器。它读写与原生 GNU Radio 相同的 .grc 文件,附带示例流程图和示例 IQ 录制,并通过 WebUSB 连接 RTL-SDR、PlutoSDR 或 HackRF。

块库面板提供以下分类及大量模块:

  • 支持的 SDR:

    • HackRF Sink、HackRF Source
    • PlutoSDR Sink、PlutoSDR Source
    • RTL-SDR Source
    • Signal Hound BB60
  • 核心:

    • 音频:Alaw Audio Decoder、Audio Sink、Audio Source、CVSD 编解码器、FreeDV 调制解调器、GSM 编解码器等
    • 布尔运算:And、Not、Or、Xor 等
    • 字节运算:Pack K Bits、Repack Bits、Unpack K Bits 等
    • 信道模型:Channel Model、Fading Model、Frequency Selective Fading Model 等
    • 信道化器:Frequency Xlating FIR Filter、Polyphase Channelizer 等
    • 编码:Additive Scrambler、Scrambler 等
    • 控制端口:CtrlPort Monitor 等
    • 调试工具:Tags Strobe、Vector Sink 等
    • 废弃块:Clock Recovery MM、PSK Demod 等
    • 数字电视:ATSC(含交织、RS 编码、维特比等)、DVB-S2、DVB-T、DVB-T2、ITU-T J.83B 等子分类与对应块
    • 均衡器:Adaptive Algorithm、Decision Feedback Equalizer 等
    • 差错编码:各类 Decoders/Encoders、BER、FEC Async 等
    • 文件操作:File Sink、File Source、SigMF Sink/Source、Wav File 等
    • 滤波器:Band Pass Filter、Low Pass Filter、FFT Filter、Root Raised Cosine Filter 等
    • 傅里叶分析:FFT、Goertzel、Log Power FFT
    • GUI 部件(QT):QT GUI Check Box、QT GUI Constellation Sink、QT GUI Time Sink 等
    • 损伤模型:IQ Imbalance Generator、Phase Noise Generator 等
    • 工业 IO:FMComms Sink/Source、PlutoSDR Sink/Source、IIO Device 等
    • 测量工具:Probe Rate、MPSK SNR Estimator 等
    • 消息工具:Message Debug、Message Strobe 等
    • 杂项:Copy、Delay、Throttle、Variable 等
    • 调制器:AM Demod、FM Demod、GFSK Mod、GMSK Mod 等
    • 网络工具:TCP Sink、UDP Source、Socket PDU 等
    • OFDM:OFDM Carrier Allocator、OFDM Receiver、OFDM Transmitter 等
    • 包操作:Async CRC32、HDLC Framer、Header/Payload Demux 等
    • PDU 工具:PDU Filter、PDU To Stream、Tagged Stream to PDU 等
    • 峰值检测:Burst Tagger、Peak Detector 等
    • 重采样器:Fractional Resampler、Polyphase Arbitrary Resampler 等
    • Soapy:Soapy BladeRF Sink/Source、Soapy HackRF Sink/Source、Soapy RTLSDR Source 等
    • 流操作:Deinterleave、Interleave、Repeat、Stream Mux 等
    • 流标签工具:Tag Debug、Tag Gate、Tagged File Sink 等
    • 符号编码:Binary Slicer、Chunks to Symbols、Differential Encoder 等
    • 同步器:Costas Loop、FLL Band-Edge、Polyphase Clock Sync 等
    • 网格编码:PCCC Encoder、SCCC Decoder、Viterbi 等
    • 类型转换:Char To Float、Complex To Mag、Float To Complex 等
    • UHD/RFNoC:RFNoC FFT Block、RFNoC Radio、RFNoC Switchboard 等
    • 变量:Variable、Parameter、YAML Config 等
    • 视频:Video SDL Sink
    • 波形发生器:Noise Source、Signal Source、VCO 等
    • ZeroMQ 接口:ZMQ PUB Sink、ZMQ SUB Source、ZMQ REQ Sink 等
    • GNU Radio World 扩展:ADS-B Map、Spectrum Analyzer、Python Block、HRPT Image Sink 等
    • 第三方模块:gr-adsb、gr-bbc、gr-droneid、gr-dvbs2、gr-dvbs2rx、gr-foo、gr-fosphor、gr-gsm、gr-ham、gr-hrpt、gr-ieee80211、gr-ieee802154、gr-lorasdr、gr-paint、gr-radar、gr-rds、gr-satellites 等,各自包含特定协议与硬件支持块。

编辑器 QT GUI 区域当前显示“无流程图运行”。提示运行流程图以在此打开其 QT GUI。提供运行按钮,可于 GNU Radio World 中打开。

控制台显示编辑器就绪,点击运行以在 WebAssembly 中执行流程图。已从链接加载示例“PSK Tx with Constellation”,打开 19 个块。

你想如何使用 Graham?

Graham 是 GNU Radio 助手(GNU Radio Assistant for Hams And Mortals)。提供三种方式:使用免费共享选项(全站共享额度,可能受限);自带 OpenAI API key(浏览器直连 OpenAI,按账户计费);通过 GNU Radio World 登录并购买预付费额度。当前状态为免费使用 OpenAI 免费层 gpt-5.6-luna,基于共享密钥按访问者限速,连接自有 key 可解除限制。

评论

社区对浏览器内运行 GNU Radio 的尝试普遍感到新奇并踊跃试用,但少数人批评其页面说明混乱、未能清晰传达工具用途;同时有老用户感慨传统工具的上手难度。

赞赏浏览器内 GNU Radio 的便捷性

  • 较多人称赞项目有趣并在代码平台加星关注,有用户实测可用,认为通过 WebUSB 连接 RTL-SDR 等硬件无需安装软件是一大优点(较多人)
  • > 做了个小测试,它确实能用,小屏幕上操作稍费劲但不影响使用(@tamimio)

认为项目界面和说明缺乏引导、令人困惑

  • 少数人指出页面描述文字难以阅读、帮助菜单无实质内容,若作为项目介绍并不成功,初次访问者容易误以为只是生成视觉效果的玩具,难以理解其处理真实信号的目的(少数人)
  • > 如果这打算作为项目介绍,那它并没有真正成功,描述文字甚至都读不清(@ghostly_s)

认为传统 GNU Radio 对初学者过于晦涩

  • 个别人回忆早年因缺乏信号处理背景,觉得原生工具链像黑盒一样无法上手,虽看好他人成果但自己难入门,正考虑借浏览器版再次尝试(少数人)
  • > 我完全没有信号处理背景,觉得它晦涩到根本没法用(@jcims)

有价值的补充

  • 有开发者已借助 WebUSB 和 WASM 在浏览器中实现 RTL-SDR 与 USRP B200 的直连,无需本地安装即可运行宽带扫描、AX.25 解码及 FM 收听。
  • 社区存在将可视化流图编辑能力移植到浏览器的探索,有开发者正基于 RustRadio 项目推进免编码搭建流图,以进一步降低使用门槛。