深入了解MRRC的系统架构、DSP处理流程和高级功能实现
┌─────────────────────────────────────────────────────────────────────────┐
│ MRRC 系统架构 V4.9.3 │
├─────────────────────────────────────────────────────────────────────────┤
│ 客户端层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────┐ │
│ │ 移动端界面 │ │ 桌面端界面 │ │ CW解码页面 │ │ FT8控制台 │ │
│ │ mobile_modern │ │ modern.html │ │ cw_live.html │ │ ft8_ultron│ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └────┬─────┘ │
│ │ │ │ │ │
│ └──────────────────┴─────────────────┴────────────────┘ │
│ │ │
│ HTTPS / WebSocket │
│ ▼ │
├─────────────────────────────────────────────────────────────────────────┤
│ 服务层 │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ MRRC 主程序 (Tornado) │ │
│ ├──────────────────────────────────────────────────────────────┤ │
│ │ /WSCTRX - 主控制+音频 (PTT/频率/模式) │ │
│ │ /WSATR1000 - 天调功率/SWR实时显示 │ │
│ │ /WSCW - CW后端解码 (可选) │ │
│ └──────┬─────────────────────────────────────────────┬──────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────┐ ┌──────────────────┐ │
│ │ rigctld │ │ ATR-1000 代理 │ │
│ │ (Hamlib) │ │ atr1000_proxy │ │
│ └────────┬────────┘ └────────┬─────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────┐ ┌──────────────────┐ │
│ │ 电台设备 │ │ ATR-1000 天调 │ │
│ │ IC-M710 │ │ 功率计/天调 │ │
│ └─────────────────┘ └──────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ FT8/ULTRON 集成 (可选) │ │
│ ├──────────────────────────────────────────────────────────────┤ │
│ │ ULTRON 自动化工具 → JTDX/WSJT-X → UDP 2237 │ │
│ │ DXCC 目标追踪、智能通联、自动 CQ │ │
│ └──────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
| 组件 | 文件 | 功能 |
|---|---|---|
| 主程序 | 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追踪 |
电台音频 (48kHz Float32)
│
▼
┌─────────────────┐
│ DC去除 + 软削波 │ 保护后续处理
└────────┬────────┘
│
▼
┌─────────────────┐
│ Int16 转换 │ 48kHz → 16bit
└────────┬────────┘
│
▼ (可选)
┌─────────────────┐
│ WDSP 处理 │ NR2/NB/ANF/AGC
│ - 频谱降噪 │ 15-20dB降噪
│ - 噪声抑制 │
│ - 自动陷波 │
│ - AGC增益 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Opus 编码 │ 16kHz/20kbps
└────────┬────────┘
│
▼
┌─────────────────┐
│ WebSocket │ 浏览器传输
└────────┬────────┘
│
▼
┌─────────────────┐
│ AudioWorklet │ 低延迟播放
└─────────────────┘
麦克风输入 (48kHz)
│
▼
┌─────────────────┐
│ 抗混叠滤波 │ 6kHz低通
└────────┬────────┘
│
▼
┌─────────────────┐
│ 降采样 │ 48kHz → 16kHz
└────────┬────────┘
│
▼
┌─────────────────┐
│ TX均衡器 │ 三段EQ预设
└────────┬────────┘
│
▼
┌─────────────────┐
│ Opus 解码 │ 16kHz → 48kHz
└────────┬────────┘
│
▼
┌─────────────────┐
│ WebSocket │ 发送到服务器
└────────┬────────┘
│
▼
┌─────────────────┐
│ 电台输入 │ CAT PTT控制
└─────────────────┘
WDSP (Warren Pratt's Digital Signal Processing) 是 OpenHPSDR 项目开发的高性能DSP库,被广泛应用于专业业余无线电软件。
| 模块 | 功能 | 效果 |
|---|---|---|
| NR2 | 频谱降噪 | 15-20dB 降噪深度 |
| NB | 脉冲噪声抑制 | 消除火花/雷电 |
| ANF | 自动陷波 | 消除单频干扰 |
| AGC | 自动增益控制 | 4种模式可选 |
MRRC V4.8 引入了完整的 CW 实时解码系统,采用 Browser-First AI 设计理念。
┌─────────────────────────────────────────────────────────────┐
│ CW 解码双模式架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 前端模式 (推荐) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 音频流 │───►│ ONNX Runtime │───►│ CTC 解码 │ │
│ │ (16kHz) │ │ (2MB模型) │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │
│ │ ┌────────▼────────┐ │
│ │ │ QSO 状态机 │ │
│ │ │ 智能回复建议 │ │
│ │ └────────────────┘ │
│ │ │
│ 延迟: <50ms │
│ 依赖: 无 (纯浏览器) │
│ │
├─────────────────────────────────────────────────────────────┤
│ │
│ 后端模式 (备选) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ WebSocket │───►│ morseangel │───►│ 文本输出 │ │
│ │ /WSCW │ │ (PyTorch) │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ 延迟: <100ms │
│ 依赖: PyTorch + CUDA │
│ │
└─────────────────────────────────────────────────────────────┘
| 指标 | 前端模式 | 后端模式 |
|---|---|---|
| 模型大小 | 2MB (ONNX) | 160MB (PyTorch) |
| 推理延迟 | <50ms | <100ms |
| 字符错误率 | <3% | <2% |
| 网络依赖 | 无 | 有 |
┌─────────────────────────────────────────────────────────────┐
│ ATR-1000 集成架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 前端 (mobile_modern.js) │
│ │ │
│ │ WebSocket /WSATR1000 │
│ ▼ │
│ ┌─────────────────┐ │
│ │ UHRR 主程序 │ 消息路由 + 批量广播 │
│ └────────┬────────┘ │
│ │ │
│ │ Unix Socket │
│ ▼ │
│ ┌─────────────────┐ WebSocket │
│ │ atr1000_proxy │◄────────────────────────────────┐ │
│ │ 独立进程 │ │ │
│ └────────┬────────┘ │ │
│ │ │ │
│ └──────────────────────┬──────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────┐ │
│ │ ATR-1000 设备 │ │
│ │ 192.168.1.63:60001 │ │
│ │ 功率/SWR/继电器状态 │ │
│ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
ULTRON Enhanced 是 MRRC V4.9 新增的 FT8 数字模式自动化工具,支持 JTDX、WSJT-X、MSHV 软件联动。
| 功能 | 说明 |
|---|---|
| 自动 CQ | 空闲时自动呼叫 CQ |
| 智能响应 | 自动应答来电呼叫 |
| DXCC 追踪 | 目标实体白名单,智能选择 |
| 波段策略 | 不同波段不同目标 |
| 日志分析 | 自动分析已通联实体 |
# 进入 FT8 目录
cd ft8
# 运行 ULTRON (Python 版)
python run_ultron.py
# DXCC 增强模式
python ultron_dxcc.py
# 分析 DXCC 状态
python dxcc_analyzer.py
| 命令 | 格式 | 说明 |
|---|---|---|
| 设置频率 | setFreq:14074000 |
Hz为单位 |
| 设置模式 | setMode:USB |
USB/LSB/CW/FM |
| PTT控制 | setPTT:1 |
1=发射, 0=接收 |
| 音量 | setRXA:50 |
0-100 |
| 滤波器 | setFilter:2400 |
Hz为单位 |
| WDSP控制 | setWDSP:NR2:1 |
模块:开关 |
查看安装指南或加入社区讨论