技术文档

深入了解MRRC的系统架构、DSP处理流程和高级功能实现

🏗️ 系统架构

整体架构图

MRRC 系统架构 V5.6.5 客户端层 移动端界面 mobile_modern .html / .js 桌面端界面 modern.html controls.js CW解码 cw_live.html ONNX Runtime FT8 Ultron ft8_ultron.html UDP 2237-2238 语音助手 mobile_voice_ Whisper+TTS PTT 安全 Touch Release 3-Level Guard HTTPS / WebSocket (Opus / Int16) 服务层 MRRC 主程序 (Tornado / Python 3.12+) /WSCTRX 控制+音频 (PTT/频率/模式/WDSP/录音) /WSaudioRX RX 音频流 (Opus/Int16, RNNoise/WDSP) /WSaudioTX TX 音频上传 (Opus 编码, EQ 链) /WSATR1000 天调功率/SWR 实时显示, 学习缓冲 /WSFT8 FT8 WebSocket 桥接 (UDP 2238) /WSCW CW 后端解码 (PyTorch, 可选) rigctld (Hamlib) IC-M710 @4800bd 电台设备: IC-M710 ATR-1000 代理 LearningBuffer V5.6 ATR-1000 天调: 功率/SWR 计 FT8 / ULTRON 远程控制台 (V5.6+) 浏览器UI:瀑布图、6 消息槽、自动序列器、DXCC 追踪 服务端:QSOSequencer、ADIF 日志、DXCC 数据库查询 桥接:JTDX/WSJT-X/MSHV via UDP 2237 - WS Bridge 2238 PTT 安全防护系统 (V5.6+) L1 浏览器:触摸滑动释放、页面隐藏停发、30s 看门狗 L2 协议层:ACK x3 重试 + 冗余音频通路回退 L3 服务端:120s TOT 硬限制、每 2s 持续重试

核心组件

组件 文件 功能
主程序 MRRC WebSocket服务器,处理音频流和控制命令
音频接口 audio_interface.py PyAudio封装,支持多格式解码
DSP处理 wdsp_wrapper.py WDSP库封装,NR2降噪/AGC/ANF
电台控制 hamlib_wrapper.py rigctld通信封装
天调代理 atr1000_proxy.py ATR-1000独立代理进程
语音助手 voice_assistant_service.py Whisper ASR + Qwen3-TTS
FT8集成 ft8/ultron.py ULTRON自动化工具,DXCC追踪

🔊 音频处理流程

接收音频链路 (RX)

电台音频 48kHz Float32 DC去除 + 软削波 保护后续处理 Int16 转换 48kHz - 16bit (可选) WDSP 处理 NR2 / NB / ANF / AGC 频谱降噪 - 噪声抑制 - 自动陷波 - AGC增益 15-20dB降噪 Opus 编码 16kHz / 20kbps WebSocket 浏览器传输 AudioWorklet 低延迟播放 RX AUDIO PIPELINE

发射音频链路 (TX)

麦克风输入 48kHz 抗混叠滤波 6kHz 低通 降采样 48kHz - 16kHz TX均衡器 三段EQ预设 Opus 解码 16kHz - 48kHz WebSocket 发送到服务器 电台输入 CAT PTT控制 TX AUDIO PIPELINE

🎛️ WDSP 数字信号处理

WDSP (Warren Pratt's Digital Signal Processing) 是 OpenHPSDR 项目开发的高性能DSP库,被广泛应用于专业业余无线电软件。

功能模块

模块 功能 效果
NR2 频谱降噪 15-20dB 降噪深度
NB 脉冲噪声抑制 消除火花/雷电
ANF 自动陷波 消除单频干扰
AGC 自动增益控制 4种模式可选

AGC 模式

  • LONG:长延迟,适合稳定信号
  • SLOW:慢响应,平衡选择
  • MED:中等响应,默认推荐
  • FAST:快速响应,适合快速QSY

📡 CW 解码系统架构

MRRC V5.4 引入了完整的 CW 实时解码系统,采用 Browser-First AI 设计理念。

双模式解码架构

CW 解码双模式架构 前端模式 (推荐) 音频流 16kHz ONNX Runtime 2MB模型 CTC 解码 QSO 状态机 智能回复建议 延迟: <50ms 依赖: 无 (纯浏览器) 后端模式 (备选) WebSocket /WSCW morseangel PyTorch 文本输出 延迟: <100ms 依赖: PyTorch + CUDA BROWSER-FIRST AI SERVER-SIDE

技术规格

指标 前端模式 后端模式
模型大小 2MB (ONNX) 160MB (PyTorch)
推理延迟 <50ms <100ms
字符错误率 <3% <2%
网络依赖

在线体验

📊 ATR-1000 集成

系统架构

ATR-1000 集成架构 前端 mobile_modern.js WebSocket /WSATR1000 UHRR 主程序 消息路由 + 批量广播 Unix Socket atr1000_proxy 独立进程 WebSocket - 设备协议转换 ATR-1000 设备 192.168.1.63:60001 功率 / SWR / 继电器状态 TCP/IP

智能天调学习

  • 自动学习:每次发射时记录频率与天调参数对应关系
  • 快速调谐:频率变化时自动应用已学习参数
  • 参数持久化:保存到 atr1000_tuner.json

📻 FT8/ULTRON 集成

ULTRON 是 MRRC 的 FT8 数字模式远程控制台 (V4.9 引入,V5.6 全面升级),通过 WebSocket 桥接为 JTDX/WSJT-X/MSHV 提供全功能浏览器界面。

核心功能

功能 说明
自动 CQ 空闲时自动呼叫 CQ
智能响应 自动应答来电呼叫
DXCC 追踪 目标实体白名单,智能选择
波段策略 不同波段不同目标
日志分析 自动分析已通联实体

在线体验

📝 通信协议

WebSocket 命令 (WSCTRX)

命令格式说明
设置频率setFreq:14074000Hz 为单位,同步至 ATR-1000
读取频率getFreq从电台读取,广播响应
设置模式setMode:USBUSB/LSB/CW/FM/AM
读取模式getMode从电台读取当前模式
PTT 发射setPTT:true按下发射键(含重试)
PTT 接收setPTT:false释放发射键(含 ACK 协议,3 次重试)
读取 PTTgetPTT从硬件读取实际 PTT 状态
调谐音tune:true / tune:false启动/停止调谐音 (5% 音量)
CQ 播放cq:true / cq:false启动/停止 CQ 音频 (cq.wav)
WDSP 开关setWDSPEnabled:true启用/禁用 WDSP 处理
NR2 级别setWDSPNR2Level:20=关, 1=低, 2=中, 3=高, 4=最高
噪声消除setWDSPNB:true开关 NB (脉冲干扰)
自动陷波setWDSPANF:true开关 ANF 自动陷波滤波器
添加陷波addWDSPNotch:1500,200手动陷波 (中心频率Hz, 宽度Hz)
AGC 模式setWDSPAGC:30=关, 1=长, 2=慢, 3=中, 4=快
带通滤波setWDSPBandpass:300,2700低截止 Hz, 高截止 Hz
录音startRecording / stopRecording立体声 WAV → MP3 录音
频道存储memLoadAll / memSaveAll:{json}每用户记忆频道 (6 个槽位)
心跳PING延迟检测,响应 PONG

需要更多帮助?

查看安装指南或加入社区讨论