
用 SDRPlusPlus 接收并解码 GSM-R 900MHz 信号【免费下载链接】SDRPlusPlusCross-Platform SDR Software项目地址: https://gitcode.com/GitHub_Trending/sd/SDRPlusPlusSDRPlusPlus 是一款跨平台 SDR(软件定义无线电)工具,把信号接收、解调、解码与音频输出拆分成独立加载的模块。本文以 900MHz 频段的 GSM-R 为目标,逐步说明从硬件接入到听见语音的过程:最小链路怎么搭、参数怎么调、界面出现什么变化算成功。读完可以在自己的设备上完成一次完整的接收与解调操作。完整链路:从天线到语音GSM-R 是铁路专用的数字移动通信系统,双工频率都落在 900MHz 频段,相邻信道间隔 200kHz,空口调制采用 GMSK,语音使用 12.2kbps EFR 编码。可以把 GMSK 理解为把每个符号变成一次小幅度的频率跳动,因此接收端必须先锁定符号速率,才能把比特切出来。SDRPlusPlus 把这条链路分成四段,每段都能单独验证:环节做什么在哪里信号捕获天线射频转为 I/Q 采样rtl_sdr_source频率选择数字混频把目标信道搬到基带附近核心信号路径中的 VFO 管理解调GMSK 频偏解调、符号同步、输出比特流gfsk.h语音输出解码后的 PCM 送往扬声器或文件audio_sink这种划分的好处是:解调失败时,你能判断问题出在捕获、频率选择还是解调环节,而不是四处盲调。搭一条最小接收链路硬件上,RTL-SDR 棒就能开工,Airspy、HackRF、PlutoSDR 等型号同样支持。软件侧需要 CMake、C 编译器和对应设备库(如 librtlsdr、rtaudio)。RTL-SDR 源模块和音频输出模块在构建脚本里默认开启,不需要额外传选项,一条流程就能完成:git clone https://gitcode.com/GitHub_Trending/sd/SDRPlusPlus cd SDRPlusPlus mkdir build cd build cmake .. make -j4编译成功后启动主程序,源列表里应能看到 rtl_sdr_source。如果看不到,多半是设备库或驱动没装齐,编译日志里会指出缺的是哪个依赖。让瀑布图出现稳定竖线启动后完成三步:选源、定中心频率与采样率、用 VFO 精调。源面板选择 rtl_sdr_source,采样率设 2.048MSps 这类中等值;增益按设备支持范围先给中间值。中心频率对准 GSM-R 基站发射频段。常见 900MHz GSM-R 规划中基站下行在 935-960MHz 一带;若你所在地区网络采用不同频段规划,按本地实际情况设置。用 VFO 指向要监测的具体信道。信道间隔 200kHz,顶栏能直接读出当前中心频率,对齐就是按 200kHz 步进微调。判断标准很直接:目标信道空闲时,瀑布图上只是噪声底上的一根细线;一旦有呼叫,会竖起一条持续上升的亮线,宽度约等于信道带宽。竖线出现且稳定,说明选频和采样已经成功,可以进入解调环节。顶栏显示当前中心频率,左侧是源与解码参数,中部为 FFT 与瀑布图信道对齐与干扰抑制进入解调后,真正关键的量只有两个:符号速率和频偏。GSM-R 的符号速率约 270.833k 符号/秒,频偏 27kHz。这组值已内置在 GMSK 解调算法里,你不用手填,但它决定了解调结果异常时该怀疑什么。三种常见干扰对应的处理:瀑布图顶部被削平:增益过高、ADC 饱和,先降几 dB 再看。邻道信号灌进目标信道:用解调带宽和滤波收窄接收窗口;滤波器相关的数字信号处理代码集中在源码的 dsp/filter 目录下,想深挖时好找。竖线存在但左右晃动:频率没对准,读一下顶栏偏移量,再微调 VFO,竖线会回到中心。可用的接收状态长这样:瀑布竖线稳定居中、解调输出连续、语音完整无断续。接收问题的现象与处理对照现象常见原因第一动作瀑布图一片白、过饱和增益过高或离基站太近降低增益目标频率没有竖线频率没对齐,或信道恰好空闲按 200kHz 步进取向,换信道等待能解调但语音含糊频偏略有偏移、信号弱微调 VFO,改善天线位置画面卡顿、音频断续CPU 吃紧或采样率偏高降低采样率,关掉不用的解码器源模块整体不出现设备库未安装或未编译进去查编译日志,补装依赖排查顺序固定为先信号、再解调、后语音:瀑布图正常时别动解调参数,解调正常时别动音频链路。从单信道监测到长期监测最小链路跑通后,模块化架构让扩展很直接:I/Q 存盘:打开 IQ 导出功能,把原始采样写到磁盘,之后离线回放分析,不必守着现场。多信道扫描:用 scanner 模块让 VFO 在信道列表上自动跳频,有活动就停。无人值守:scheduler 按预设时间触发录音与切频,适合长期留痕。并行监测:同屏放多个 VFO,各自挂一条解码链路,同时盯几个信道。下一步建议:在信号好的时候录一段 I/Q,用 file_source 模块回放,反复验证参数改动是否引入回归;回放结果稳定后,再把天线架到实际监测点,把这次调试固化为长期监测方案。【免费下载链接】SDRPlusPlusCross-Platform SDR Software项目地址: https://gitcode.com/GitHub_Trending/sd/SDRPlusPlus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考